yangguo@chromium.org
b22724e48b
Fix issue with storing 31-bit bitfield as Smi.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/428183003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-31 07:50:26 +00:00
danno@chromium.org
a1383e2250
Land the Fan (disabled)
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/426233002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 13:54:45 +00:00
verwaest@chromium.org
d07de6ed59
Encapsulate type in the PropertyHandlerCompiler
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/426633002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 10:09:10 +00:00
verwaest@chromium.org
f08d2690c6
Fix Object.freeze with field type tracking.
...
Keep the descriptor properly intact while update the field type.
BUG=v8:3458
LOG=y
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/424093002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-29 13:30:29 +00:00
yangguo@chromium.org
a8a02a51f1
Inline Math.fround in optimized code.
...
R=svenpanne@chromium.org
BUG=v8:3469
LOG=N
Review URL: https://codereview.chromium.org/425943002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-29 11:34:08 +00:00
verwaest@chromium.org
4a956ab1c2
Change Has* and Get*Attributes to return Maybe<*>, indicating possible exceptions.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/418383002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-25 18:32:11 +00:00
hpayer@chromium.org
a5b923eca9
Use heap iterator in store buffer when page was swept precisely.
...
BUG=
R=rmcilroy@chromium.org
Review URL: https://codereview.chromium.org/413693002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 10:45:37 +00:00
yangguo@chromium.org
88000d039f
Fix debugger-related issues in the code serializer.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/410883003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 08:27:04 +00:00
yangguo@chromium.org
ed04566cba
Correctly hook up back references to internalized strings in code deserializer.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/411483002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 07:16:32 +00:00
verwaest@chromium.org
3bba0204c0
Support setting named properties on non-JSObjects.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/407953002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-22 08:28:49 +00:00
verwaest@chromium.org
85bc602912
Reduce usage of StoreMode.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/409603002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 16:01:50 +00:00
verwaest@chromium.org
f9d631b4bf
Rename CurrentMapForDeprecated to TryUpdate, and introduce Map::Update which potentially deprecates
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/401243003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 15:59:05 +00:00
yangguo@chromium.org
3b9f5e86d4
Store both major and minor key on code stubs.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/409613002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22505 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 13:10:14 +00:00
rossberg@chromium.org
8023c9f564
Implement basic code generation for arrow functions
...
Implements code generation for arrow functions by desugaring them into
a FunctionLiteral. For the moment, a normal FUNCTION_SCOPE is used, so
"this" and "arguments" behave as in normal functions. Implementing the
correct scoping rules is to be done later on.
BUG=v8:2700
LOG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/382893003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 09:58:01 +00:00
jkummerow@chromium.org
1211f606ae
Cache IC handlers on the prototype's map if possible
...
instead of on the receiver's map. Lazily overwrite cached handler if it is
identical to the handler that just missed.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/400523007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-18 13:50:21 +00:00
verwaest@chromium.org
7e29b64e27
Reimplement SetProperty using the LookupIterator
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/392243002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-18 13:47:25 +00:00
jochen@chromium.org
fe558594b9
Remove JSReceiver::GetPrototype and replace it with PrototypeIterator calls
...
BUG=none
R=verwaest@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/390323002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-17 09:44:37 +00:00
yangguo@chromium.org
d1333142e2
Ship ES6 Math functions.
...
R=rossberg@chromium.org
BUG=v8:2938
LOG=Y
Review URL: https://codereview.chromium.org/394833002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-16 14:00:15 +00:00
yangguo@chromium.org
a211a52a6e
Store builtin index on the builtin code object.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/395823002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-16 09:55:34 +00:00
yangguo@chromium.org
ef734e2686
Verify that source string matches serialized code.
...
R=mvstanton@chromium.org , vogelheim@chromium.org
Review URL: https://codereview.chromium.org/394793002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-16 06:59:14 +00:00
mstarzinger@chromium.org
ee51510674
Unify the IsShortcutCandidate predicate.
...
R=yangguo@chromium.org
BUG=v8:2803
LOG=N
Review URL: https://codereview.chromium.org/390193007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-15 09:19:22 +00:00
yangguo@chromium.org
fd57811644
Fix up internalized strings after deserializing user code.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/387343002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-15 08:46:47 +00:00
verwaest@chromium.org
6466ff39fb
Remove PropertyAttributes from SetProperty
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/390833003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 14:52:24 +00:00
jochen@chromium.org
712957548d
Unify LookupIterator::GetRoot and Objects::GetRootMap
...
BUG=none
R=verwaest@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/388193002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 10:54:24 +00:00
jochen@chromium.org
168742b81a
Introduce a PrototypeIterator class and use it for prototype access
...
The new pattern is that we first get the map of the root of the
prototype chain using Object::GetMapRoot() and then walk up the
prototype chain using Map::prototype().
BUG=???
R=verwaest@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/376233002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-14 07:19:49 +00:00
hpayer@chromium.org
0b38ffaca8
Revert "Precisely sweeping of scan-on-scavenge pages."
...
BUG=
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/387483002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 12:22:01 +00:00
yurys@chromium.org
3994880715
Support ES6 Map and Set in heap profiler
...
Added special handling for Map and Set in the heap snapshot generator.
Extracted common base type from JSMap/JSSet similar to JSWeakMap/JSWeakSet.
After handling collection specific properties all collections are processed as regular JSObject to make sure all regular properties set on them are present in the heap snapshot.
BUG=v8:3368
LOG=Y
R=alph@chromium.org , rossberg@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=22311
Review URL: https://codereview.chromium.org/373183002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 10:54:47 +00:00
yurys@chromium.org
3b2511ed4a
Revert "Support ES6 Map and Set in heap profiler"
...
This reverts commit 47f86e067f
due to some weird (likely unrelated) compilation errors.
BUG=v8:3368
TBR=rossberg
Review URL: https://codereview.chromium.org/380153002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 08:45:45 +00:00
yurys@chromium.org
47f86e067f
Support ES6 Map and Set in heap profiler
...
Added special handling for Map and Set in the heap snapshot generator.
Extracted common base type from JSMap/JSSet similar to JSWeakMap/JSWeakSet.
After handling collection specific properties all collections are processed as regular JSObject to make sure all regular properties set on them are present in the heap snapshot.
BUG=v8:3368
LOG=Y
R=alph@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/373183002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 07:24:52 +00:00
adamk@chromium.org
05463c4906
Avoid unnecessary hashing in OrderedHashTable
...
Add an overload of OrderedHashTable::FindEntry that takes
a hash along with the key to allow callsites which need to
re-use the hash (such as Add()) to avoid recomputing it.
On my Macbook this results in improvements on the Collections
microbenchmarks:
Map-Collections: +4%
Set-Collections: +5%
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/373323002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 16:19:53 +00:00
dusan.milosavljevic@rt-rk.com
a0f6878a06
Add mips64 port.
...
Summary:
- Changes in common code are mainly boilerplate changes,
gyp and test status files updates.
- On mips64 simulator all tests pass from all test units.
- Current issues: mjsunit JS debugger tests fail randomly on HW in release mode.
Corresponding tests are skipped on HW.
- Skipped tests on mips64: test-heap/ReleaseOverReservedPages, mjsunit/debug-*
TEST=
BUG=
R=danno@chromium.org , plind44@gmail.com , ulan@chromium.org
Review URL: https://codereview.chromium.org/371923006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 11:08:26 +00:00
rmcilroy@chromium.org
ae6496e6ea
[Arm]: Optimize ConstantPoolBuilder::Populate code by minimizing calls to OffsetOfElementAt
...
Calling OffsetOfElementAt becomes expensive when compiling functions with many
constant pool entries. This was causing a regression in MandreelLatency due
to the time spent populating the constant pool array for large compiled
functions.
This change avoids calling OffsetOfElementAt for each entry, and instead keeps
track of the current offsets in ConstantPoolBuilder::Populate. This gives the
following improvements on a Nexus 5:
Inline CP | OOL CP (before CL) | OOL CP (after CL)
Mandreel: 4305 | 3961 | 4120
MandreelLatency: 2298 | 1198 | 1994
Octane Score: 5197 | 4982 | 5152
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/376973002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 09:08:37 +00:00
hpayer@chromium.org
ac8b636756
Reland "Precisely sweep scan on scavenge pages and use heap iterator to iterate over them."
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/377863003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 08:44:45 +00:00
jkummerow@chromium.org
d7ecf0e428
Fix build (solve OBJECT_PRINT dependency)
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/373003004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 08:43:20 +00:00
verwaest@chromium.org
cef7b20ec0
Only create arguments-maps in the bootstrapper, remove now obsolete ValueType flag.
...
TBR=dslomov@chromium.org
BUG=
Review URL: https://codereview.chromium.org/375503008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-07 13:27:37 +00:00
dslomov@chromium.org
7050e6fa06
Revert "Only create arguments-maps in the bootstrapper, remove now obsolete ValueType flag."
...
This reverts commit r22240 for breaking tests on Linux.
Revert "Remove SetOwnPropertyIgnoreAttribute uses from the bootstrapper"
This reverts commit r22241 for breaking tests on Linux.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/371913002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-07 13:12:29 +00:00
verwaest@chromium.org
1ef7582e7e
Only create arguments-maps in the bootstrapper, remove now obsolete ValueType flag.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/358363003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-07 12:21:01 +00:00
svenpanne@chromium.org
018ef484b9
More OStreamsUse OStreams more often.
...
This is a mostly mechanical CL (more than 90% Emacs macros and
query-replace-regexp) moving FILE*/StringStream*-based APIs to
OStream-based APIs. There are a few places where this had to stop,
otherwise the CL would be even bigger, but this can easily and
incrementally cleaned up later.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/363323003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-07 09:57:29 +00:00
rmcilroy@chromium.org
40af47d46a
[Arm]: Enable use of extended out-of-line constant pool for Arm.
...
- Adds support to the Arm assembler to use extended constant pools.
- Update (set_)target_address_at to support extended constant pool load
updates.
- Replace Operand::is_single_instruction with Operand::instructions_required
Due to the fact that different constant pool load types require different
numbers of instructions.
- Various cleanups of ConstantPoolBuilder to cleaner integration of the
extended constant pool building.
- Update GetRelocatedValue such that offsets to both map_check and bool_load
are explicitly provided, rather than location of bool_load being inferred
based on map_check, since the code inbetween is no longer of a predictable
size.
- Update MacroAssembler::GetRelocatedValueLocation() to add support for
getting a value from an extended constant pool entry.
- Update Debug::SetAfterBreakTarget() to use target_address_from_return_address
when checking for debug breaks at constant pool load points.
- Change ConstantPoolIterateBody to iterate over both heap and code pointer in
the small section before moving onto the extended section, to work around the
requirement of the serializer that pointers are iterated in-order.
- Increase old_pointer_space SizeOfFirstPage() to offset the fact that constant
pools are now in the old pointer space (rather than code).
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/356393003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-03 17:01:14 +00:00
jkummerow@chromium.org
dfa8df2fdd
Fix deopt reason printing to print stub failure reason with --trace-stub-failures --code-comments
...
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/369843002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-03 11:47:31 +00:00
ishell@chromium.org
2fba190240
One of the fast cases in JSObject::MigrateFastToFast() should not be taken if the number of fields did not change.
...
BUG=chromium:390918
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/363073002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-02 19:10:19 +00:00
verwaest@chromium.org
a1dd1a262c
Revert "Remove special ExecutableAccessorInfo handling based on flag"
...
Temporarily reverting until we figure out how to handle the API cases that use accessors to lazily compute values.
dataAttributeGetterCustom in V8MessageEventCustom (at least) overwrites itself with the computed value using ForceSet. We can either force such clients to first use ForceDelete before caching, use some other caching mechanism; or provide an API for lazily computed properties.
TBR=dcarney@chromium.org
BUG=
Review URL: https://codereview.chromium.org/365903005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-02 16:59:04 +00:00
verwaest@chromium.org
2350d46146
Remove special ExecutableAccessorInfo handling based on flag
...
This additionally removes special "prototype" handling for O.o, since it's broken; and added test.
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/368853003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-02 15:28:29 +00:00
yangguo@chromium.org
a481d753d0
Stack traces exposed to Javascript should omit extensions.
...
R=marja@chromium.org
BUG=v8:311
LOG=Y
Review URL: https://codereview.chromium.org/363893003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-02 13:36:29 +00:00
marja@chromium.org
7717f2366f
Handle "//# sourceURL" comments in the Parser instead of the JS.
...
BUG=v8:2948
LOG=N
R=svenpanne@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/316173002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-02 07:01:31 +00:00
ishell@chromium.org
2c94151e6e
Reland r22082 "Replace HeapNumber as doublebox with an explicit MutableHeapNumber."
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/334323003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-01 15:02:31 +00:00
verwaest@chromium.org
26eae0c429
Clean up the global object naming madness.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/352173006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-01 12:12:34 +00:00
verwaest@chromium.org
6ff2a77364
Wrap InitializeProperty around SetOwnPropertyIgnoreAttributes and switch over uses
...
This is a step in the direction of disentangling all uses of SetOwnPropertyIgnoreAttributes so we can provide a more specific implementation for those usecases, and reduce the capabilities of those clients, avoiding subtle bugs.
InitializeProperty only supports adding properties to extensible objects that do not contain the property yet. JSGlobalProxies cannot have properties themselves, so are not supported either.
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/352813002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 13:48:57 +00:00
jochen@chromium.org
a4506cd3f2
Move platform abstraction to base library
...
Also split v8-core independent methods from checks.h to base/logging.h and
merge v8checks with the rest of checks.
The CPU::FlushICache method is moved to CpuFeatures::FlushICache
RoundUp and related methods are moved to base/macros.h
Remove all layering violations from src/libplatform
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/358363002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 13:25:46 +00:00
ishell@chromium.org
d1190c503d
Revert "Replace HeapNumber as doublebox with an explicit MutableHeapNumber."
...
This reverts commit r22082 for breaking arm64 build.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/360023003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 10:19:31 +00:00
ishell@chromium.org
cea1824f58
Replace HeapNumber as doublebox with an explicit MutableHeapNumber.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/355793003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 09:44:43 +00:00
mstarzinger@chromium.org
b7d3d51a62
Remove kDontInline and simplify compiler hints.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/359733004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 08:59:23 +00:00
yangguo@chromium.org
a2d15ce518
Compile optimized code with active debugger but no break points.
...
R=ulan@chromium.org
BUG=386492
LOG=Y
Review URL: https://codereview.chromium.org/356713004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 06:32:51 +00:00
danno@chromium.org
8313c523b3
Optimize Map/Set.prototype.forEach
...
Instead of using an iterator result object and an entries array
(for Map) we introduce a new runtime function that uses an array
as an out param.
On the Map ForEach perf test this leads to a 2.5x performance
improvement. On the overall Map and Set tests this leads to a 18%
and 13% improvement respectively.
BUG=None
LOG=Y
R=danno@chromium.org
Review URL: https://codereview.chromium.org/355663002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 00:40:45 +00:00
mstarzinger@chromium.org
8a35e9ce47
Drop obsolete dont_optimize compiler hint.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/354813003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 12:12:21 +00:00
ishell@chromium.org
80e1bf42e5
More Map methods moved to private part.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/350023002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 15:56:36 +00:00
ishell@chromium.org
ae1aaf7c76
Making MigrateToMap() a single bottleneck for all migrations except slow-to-fast case.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/346743005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 15:28:29 +00:00
svenpanne@chromium.org
52fa41c3df
Make Object::IsFoo const.
...
Removed a few useless const_casts on the way.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/351573002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 09:47:25 +00:00
yangguo@chromium.org
438f49a322
Do not eagerly update allow_osr_at_loop_nesting_level.
...
Having debug break points prevents OSR. That causes
allow_osr_at_loop_nesting_level and the actually patched state
to go out of sync.
R=jkummerow@chromium.org
BUG=387599
LOG=Y
Review URL: https://codereview.chromium.org/346223007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 09:31:30 +00:00
ishell@chromium.org
f73e033be7
Map::MigrateToMap() now supports fast case (transition from a map that has run out of property space).
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/347413002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 14:23:25 +00:00
ishell@chromium.org
d2f229bf9f
Several methods moved from JSObject to Map.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/349203002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 13:46:49 +00:00
alph@chromium.org
f61854fe0a
Support LiveEdit on Arm64
...
BUG=368580
LOG=Y
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/339663007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 13:20:26 +00:00
rmcilroy@chromium.org
1b080a76c1
[Arm] Various cleanups to the Arm assembler backend.
...
A couple of cleanups to the Arm backend to enable support of extended
OOL constant pools in a following CL.
- Remove instruction pattern extern const's and replace their use with IsXXX()
functions.
- Do calculation of the target address of a load from constant pool in one
place.
- A couple of other small cleanups.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/317653003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 11:27:24 +00:00
verwaest@chromium.org
bd5f13ebc3
Remove specialized access checks and overwrites altogether. They are already handled by GetOwnPropertyAttributes (and GetPropertyAttributesWithFailedAccessChecks)
...
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/331693006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 09:11:45 +00:00
verwaest@chromium.org
d06afb3ce0
Remove AccessControl from AccessorPairs, as it's an invalid usecase of AllCan*
...
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/332863003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 09:02:16 +00:00
svenpanne@chromium.org
996eed315e
Make our FOO::cast methods const.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/347073003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 08:51:13 +00:00
plind44@gmail.com
b6b57605ed
MIPS: Fix big-endian after r21774/r21803.
...
Fix big-endian ordering of InstanceType and BitField by always loading
the pair as a 16-bit value, even in the API accessor. Clean up some
assertions.
R=danno@chromium.org , mtbrandy@gmail.com
Review URL: https://codereview.chromium.org/334403003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 23:02:36 +00:00
palfia@homejinni.com
57d0b53eed
MIPS: Support LiveEdit.
...
Port r21895 (210f7aa)
BUG=368580
LOG=Y
R=jkummerow@chromium.org , palfia@homejinni.com
Review URL: https://codereview.chromium.org/349703002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 20:52:57 +00:00
svenpanne@chromium.org
dda110fd77
Make object accessors more const-correct.
...
Getting closer to making our IsFOO and FOO::cast methods const-correct...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/349623002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 10:31:17 +00:00
alph@chromium.org
969759fd3f
Support LiveEdit on ARM
...
BUG=368580
LOG=Y
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/344573004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 09:41:14 +00:00
mstarzinger@chromium.org
fec6e62dfb
Check alpha-sorting of includes during presubmit.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/333013002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 08:40:11 +00:00
dcarney@chromium.org
bd3f8a524e
Revert "Optimize Function.prototype.call"
...
This reverts commit r21840.
R=danno@chromium.org
LOG=y
BUG=chromium:385565
Review URL: https://codereview.chromium.org/347573002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-18 14:04:41 +00:00
verwaest@chromium.org
7005abf03b
Optimize Function.prototype.call
...
- May inline the function, or call it directly, instead of going through call
- Supports arguments object escaping when it escapes to builtins (preparation for slice.call(arguments, ...) optimization)
- Both .call and .apply now support inlining when calling builtins indirectly
BUG=
R=verwaest@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/335683002
Patch from Petka Antonov <p.antonov@partner.samsung.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 12:52:23 +00:00
jkummerow@chromium.org
8334faa0e0
Allow all Names to be fast property names
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/329393005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 09:59:39 +00:00
verwaest@chromium.org
fd80653a4c
Rewrite GetPropertyAttribute to use the LookupIterator
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/321543004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 15:08:33 +00:00
danno@chromium.org
634cb5e8a1
Revert "Revert "Reland 21774: Generate KeyedLoadGeneric with Hydrogen""
...
This CL tickled an unrelated arm64 bug which was is fixed separately.
The MIPS port (originally landed 21784) is also included.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/331633002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 09:58:10 +00:00
danno@chromium.org
c17e79293b
Revert "Reland 21774: Generate KeyedLoadGeneric with Hydrogen"
...
Due to lingering arm64 failures in Test262
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/332663003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 07:38:49 +00:00
danno@chromium.org
905d777d8f
Reland 21774: Generate KeyedLoadGeneric with Hydrogen
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/57123002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-11 21:44:50 +00:00
danno@chromium.org
006bdafecc
Revert 21774: "Generate KeyedLoadGeneric with Hydrogen"
...
Due to arm64 and GCMole failures
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/329253003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-11 16:33:44 +00:00
danno@chromium.org
3b9039abc3
Generate KeyedLoadGeneric with Hydrogen
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/57123002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-11 14:56:38 +00:00
verwaest@chromium.org
bb2b08b194
Implement LookupIterator designed to replace LookupResult
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/314953006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-11 09:59:14 +00:00
danno@chromium.org
7c56c0e864
Reland 21720: Introduce FieldIndex to unify and abstract property/field offset
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/300283002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-10 14:01:08 +00:00
bmeurer@chromium.org
0fcd89161b
Fix invalid attributes when generalizing because of incompatible map change.
...
BUG=382143
LOG=y
TEST=mjsunit/regress/regress-382143
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/324933003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21743 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-10 12:24:54 +00:00
danno@chromium.org
ec57abdaa7
Revert 21720: "Introduce FieldIndex to unify and abstract property/field offset"
...
Due to assorted failures
R=mstarzinger@chromium.org
TBR=mstarzginer@chromium.org
Review URL: https://codereview.chromium.org/329463005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-10 09:00:10 +00:00
danno@chromium.org
ffc4ad0697
Introduce FieldIndex to unify and abstract property/field offset
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/300283002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21720 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-06 14:05:10 +00:00
jochen@chromium.org
3d882db26a
Drop unused Object::GetMarkerMap method
...
R=verwaest@chromium.org
BUG=none
LOG=n
Review URL: https://codereview.chromium.org/317373002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-06 13:54:08 +00:00
rmcilroy@chromium.org
97c962c255
Add support for extended constant pool arrays.
...
This CL adds support for ConstantPoolArrays which contain an extended section.
This will be used to enable larger constant pools than can be addressed by a
single ldr with immediate offset instruction (which has a limit of a 4KB range).
Extended constant pools will have a small section, which is addressable via a
single ldr instruction, and an extended section, which will require a multi-
instruction sequence to load from.
Currently, no code uses the extended ConstantPoolArray's - this change will
be made in a followup CL.
A number of changes are made to the ConstantPoolArray object in order to
support this:
- Small section layout is now entirely defined by the small layout bitmaps.
- The ConstantPoolArray no longer extends FixedArrayBase since the length
field is not useful for extended layouts.
- Enums are used to represent the type of an entry and the layout section.
- An iterator can be used to iterate through all elements of a given type.
- A number of tests were added for these features.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/304143002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 16:22:10 +00:00
ishell@chromium.org
55443af648
Fixed lint errors caused by "runtime/references" rule (Is this a non-const reference?) and the rule itself is restored.
...
BUG=v8:3326
LOG=N
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/314723002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 15:45:38 +00:00
hpayer@chromium.org
5a1364a588
Deopt maybe tenure allocation sites when semi-space is maximum size.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/307363002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 11:59:47 +00:00
jochen@chromium.org
56a486c322
Use full include paths everywhere
...
- this avoids using relative include paths which are forbidden by the style guide
- makes the code more readable since it's clear which header is meant
- allows for starting to use checkdeps
BUG=none
R=jkummerow@chromium.org , danno@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/304153016
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 08:12:43 +00:00
hpayer@chromium.org
b8c3ee40ab
Tenure allocation sites only when semi-space is maximum size.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/309623007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 07:55:38 +00:00
bmeurer@chromium.org
2a2874b9c3
Inline fast path for Array.indexOf() and Array.lastIndexOf().
...
TEST=mjsunit/array-indexing
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/308793012
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 04:01:34 +00:00
adamk@chromium.org
2e2eb6a07e
Split Put into Put and Remove
...
No longer treat the hole as a removal. This removes one branch in
Put and cleans up the API.
BUG=None
LOG=Y
R=adamk@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/309663005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 00:53:16 +00:00
adamk@chromium.org
509a1a405c
ES6: Add support for values/keys/entries for Map and Set
...
This allows code like this:
var map = new Map();
map.set(1, 'One');
...
var iter = map.values();
var res;
while (!(res = iter.next()).done) {
print(res.value);
}
BUG=v8:1793
LOG=Y
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/259883002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 00:34:01 +00:00
yangguo@chromium.org
19c71f9e47
Some more debugger-related refactorings.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/297303006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 12:51:19 +00:00
verwaest@chromium.org
60a71d8a8c
Remove PROHIBITS_OVERWRITING as it is subsumed by non-configurable properties.
...
v8::DontDelete is set for Unforgeable properties, so just not setting PROHIBITS_OVERWRITING should be enough.
The secondary "feature" of not allowing accessors to be installed in extending objects is incorrect and confusing, given that it only applies to accessors but not to regular properties:
Object.defineProperty({__proto__:window}, "location", { value: 10 })
works where
Object.defineProperty({__proto__:window}, "location", { get: function() {} })
doesn't work.
LOG=y
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/306203002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 11:02:06 +00:00
verwaest@chromium.org
92022c1175
Clean up (Get|Set)Property(Attributes)WithFailedAccessChecks
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/309653003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 10:59:11 +00:00
danno@chromium.org
8669cce70a
Fix lint complaints in objects.h
...
R=rossberg@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/304533007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-28 12:03:40 +00:00
mvstanton@chromium.org
8c54a373dd
Changing the attributes of a data property implemented with
...
ExecutableAccessorInfo turns the property into a field. Better
to keep it as a callback, and correctly deal with the changed
property attributes.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/262053011
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-28 09:58:27 +00:00
verwaest@chromium.org
6b712555dd
Cleanup GetPropertyWithCallback / SetPropertyWithCallback API
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/305513004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-28 09:29:27 +00:00
danno@chromium.org
6fa616ad73
Convert String array index/length hash to BitField
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/300023011
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 14:55:29 +00:00
jochen@chromium.org
276adeda1a
Replace STATIC_CHECK with STATIC_ASSERT.
...
It's just an alias, and STATIC_ASSERT is used way more often
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/304553002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 13:43:29 +00:00
yangguo@chromium.org
1630b6d83c
Fix PathTracer.
...
When tracing, we abuse the map for marking, thereby mutating it.
FixedTypedArrayBase::size() uses the object's map, which causes crash.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/300753002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 13:05:11 +00:00
yangguo@chromium.org
620555b495
Do not break in native code (including non-builtin debugger code).
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/300773002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 12:21:40 +00:00
danno@chromium.org
621c7eb673
Convert ElementsKind into a BitField
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/306513002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 09:38:01 +00:00
bmeurer@chromium.org
683bc694ad
Skip write barriers in the fast case when setting up local context.
...
The FastNewContextStub always allocates in new space, so we don't
need to update the write barrier when copying the parameters to
the newly allocated context.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/297203002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-26 08:13:09 +00:00
ishell@chromium.org
7c55f645d5
Cleanup after inobject slack tracking improvement.
...
1) %SetExpectedNumberOfProperties() function removed.
2) Obsolete SharedFunctionInfo::BeforeVisitingPointers() removed.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/289283018
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-23 12:55:57 +00:00
bmeurer@chromium.org
a56bbe9203
Avoid dynamic initial map check when inlining call-new.
...
This improves check elimination and removes a load plus
a map check for every inlined call-new.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/293223002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-23 09:30:47 +00:00
ishell@chromium.org
4b9c03050a
Reland r21442 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."
...
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/292183008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-23 08:52:05 +00:00
ishell@chromium.org
9f3183f76b
Revert "Reland r21346 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis.""
...
This reverts r21442.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/292433016
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 17:13:28 +00:00
ishell@chromium.org
00b8e6128f
Reland r21346 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."
...
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/290993009
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 16:22:23 +00:00
rossberg@chromium.org
06f746a576
Consistently say 'own' property
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/291153005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 15:27:57 +00:00
ishell@chromium.org
58932c6c44
Revert "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."
...
This reverts r21436.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/295933012
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 13:38:32 +00:00
ishell@chromium.org
4a47cc5f63
Inobject slack tracking is done on a per-closure basis instead of per-shared info basis.
...
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/283383006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 12:35:45 +00:00
ulan@chromium.org
e56594f10a
Fix Array.prototype.push and Array.prototype.unshift for read-only length.
...
BUG=
R=mstarzinger@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/279773002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 08:09:57 +00:00
yangguo@chromium.org
ab3afc5722
Reland "Prevent liveedit on or under generators with open activations"
...
The change relative to the previous CL is a logic change in
DropActivationsInActiveThreadImpl. The previous CL skipped the matcher
unless the frame was a JS frame; this was correct for
MultipleFunctionTarget but not for SingleFrameTarget.
I have not been able to reproduce the original failures on either
architecture (ia32 or x64; stack frame dropping is unsupported on other
architectures).
R=yangguo@chromium.org
LOG=N
TEST=mjsunit/harmony/generators-debug-liveedit.js
BUG=
Review URL: https://codereview.chromium.org/270283002
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 07:32:59 +00:00
adamk@chromium.org
9f86a91e76
Teach OrderedHashSet::Remove to report whether it actually removed anything
...
This avoids an unnecessary runtime call from Set.prototype.delete().
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/290733008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 12:16:47 +00:00
adamk@chromium.org
50f5a79590
Use SameValueZero for Map and Set
...
Instead of normalizing the keys we use SameValueZero for the actual
comparison.
BUG=v8:1622
LOG=Y
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/299703004
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-21 08:47:02 +00:00
adamk@chromium.org
70c3a714a1
ES6 Map/Set iterators/forEach improvements
...
This changes how Map/Set interacts with its iterators. When the
underlying table is rehashed or cleared, we create a new table (like
before) but we add a reference from the old table to the new table. We
also add an array describing how to transition the iterator from the
old table to the new table.
When Next is called on the iterator it checks if there is a newer table
that it should transition to. If there is, it updates the index based
on the previously recorded changes and finally changes itself to point
at the new table.
With these changes Map/Set no longer keeps the iterators alive. Also,
as before, the iterators keep the underlying table(s) alive but not the
actual Map/Set.
BUG=v8:1793
LOG=Y
R=mstarzinger@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/289503002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 14:22:05 +00:00
jkummerow@chromium.org
a3a5642097
Harden more runtime functions
...
BUG=chromium:372239
LOG=n
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/282493005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-12 15:30:00 +00:00
adamk@chromium.org
97dd64091b
Clean up hash creation code to use Handle<Smi> where possible
...
Also remove apparently-bogus TODO and reorder arguments in
Object::GetOrCreateHash to put Isolate first (as seems to
be the custom).
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/268063005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-09 18:31:08 +00:00
verwaest@chromium.org
03905e4753
Directly create API functions with readonly prototypes rather than converting. Remove FunctionSetReadOnlyPrototype.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/274463003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-09 17:59:15 +00:00
verwaest@chromium.org
ed64101bc7
Reland and fix r21225 and r21226
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/272203002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-09 16:18:58 +00:00
ishell@chromium.org
cb1a32885c
[Sheriff] This reverts commits r21225 and r21226 for breaking Linux64 build.
...
Revert "Make BitField3 a raw uint32 field, and move to the start of the map."
Revert "Make space available in bf3 by moving FunctionWithPrototype to bf1"
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/278883002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-09 14:28:59 +00:00
verwaest@chromium.org
3c58a5a8df
Make space available in bf3 by moving FunctionWithPrototype to bf1
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/275053002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-09 13:20:40 +00:00
verwaest@chromium.org
ec195cd929
Make BitField3 a raw uint32 field, and move to the start of the map.
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/272163002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-09 13:18:25 +00:00
ishell@chromium.org
ff2d004f85
Presubmit checks recover:
...
1) runtime/references checks temporarily disabled (56 items left)
2) other errors fixed
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/277913002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-09 12:59:24 +00:00
bmeurer@chromium.org
7c45d49861
Improve Array.shift() performance for small arrays.
...
TEST=mjsunit/array-shift,mjsunit/array-shift2,mjsunit/array-shift3
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/279743002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-09 08:28:25 +00:00
rossberg@chromium.org
5c9ad091e9
Revert "Prevent liveedit on or under generators with open activations"
...
Seems to crash some tests on buildbots.
TBR=ishell@chromium.org
CC=wingo@igalia.com ,yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/273433002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-06 16:02:18 +00:00
wingo@igalia.com
ab96529a4a
Prevent liveedit on or under generators with open activations
...
R=yangguo@chromium.org
LOG=N
TEST=mjsunit/harmony/generators-debug-liveedit.js
BUG=
Review URL: https://codereview.chromium.org/266983004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-06 14:57:52 +00:00
mvstanton@chromium.org
f2903b6f6c
Fix for 3303 MultithreadedParallelIsolates has a race condition.
...
The fix is to make the code aging sequence hang off the isolate.
BUG=v8:3303
R=svenpanne@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/261953002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-06 11:25:37 +00:00
Jacob.Bramley@arm.com
77d6bca46f
ARM64: Use default-NaN mode to canonicalize NaNs.
...
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/255343004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-06 08:05:27 +00:00
adamk@chromium.org
3274485c50
Store JSGlobalProxy's identity hash directly on the proxy itself
...
Previously, the hash was stored on the underlying global object, since
it was stored in the hidden property table. This patch moves to an
implementation modeled on JSProxy, adding a new 'hash' field to JSGlobalProxy.
This allows storing the global proxy in a Map, Set, WeakMap, or WeakSet and
accessing it even after the proxy has been attached to a new global, which
is Firefox's current behavior and was the consensus of a recent thread on public-script-coord:
http://lists.w3.org/Archives/Public/public-script-coord/2014AprJun/0012.html
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/254433002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-05 18:27:57 +00:00
wingo@igalia.com
275bfa1b61
Relocate suspended generator activations when enabling debug mode
...
R=yangguo@chromium.org
BUG=v8:3289
LOG=N
Review URL: https://codereview.chromium.org/264973014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-05 14:31:51 +00:00
jochen@chromium.org
8554da5c68
Revert r21141.
...
Relocate suspended generator activations when enabling debug mode
BUG=v8:3289
LOG=N
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/262193003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-05 13:28:21 +00:00
wingo@igalia.com
9a9943b564
Relocate suspended generator activations when enabling debug mode
...
R=yangguo@chromium.org
BUG=v8:3289
LOG=N
Review URL: https://codereview.chromium.org/260423002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-05 12:57:14 +00:00
bmeurer@chromium.org
785bdf7c1e
Don't add code dependencies eagerly for HCheckMaps.
...
Instead of adding code dependencies on stable during
graph creation, we now add them during code generation
for those HCheckMaps that survived dead code elimination.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/264973013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-05 11:03:14 +00:00
ishell@chromium.org
5883de41cc
Map::TransitionElementsTo() extracted from JSObject::GetElementsTransitionMap().
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/260803002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-05 09:57:45 +00:00
rafaelw@chromium.org
1b270ef5ea
Re-enable Object.observe and add enforcement for security invariants.
...
This patch reverts r21062 which disabled Object.observe and the relevant tests.
It also adds enforcement for the following three invariants:
1) No observer may receive a change record describing changes to an object which is in different security origin (context have differing security tokens)
2) No observer may receive a change record whose context's security token is different from that of the object described by the change.
3) Object.getNotifier will return null if the caller and the provided object are in differing security origins
Further, it ensures that the global object can never be observed nor a notifier retrieved for it.
Tests are included.
R=verwaest@chromium.org , rossberg
LOG=Y
Review URL: https://codereview.chromium.org/265503002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-02 13:55:11 +00:00
ishell@chromium.org
ca2def98a5
Map::Normalize() introduced as single entry point for map normalization and Map::NotifyLeafMapLayoutChange() made private.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/263663002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-02 10:27:12 +00:00
bmeurer@chromium.org
59e5c97ec0
Don't add code dependencies on transitioning stores eagerly.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/256303007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-02 06:37:54 +00:00
svenpanne@chromium.org
7bfc426fc9
Object.defineProperty shouldn't be a hint that we're constructing a dictionary.
...
BUG=362870
LOG=y
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/261583004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-02 06:02:00 +00:00
ishell@chromium.org
f7e8255f5c
StringTable::Lookup*IfExist() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/265553003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-30 17:27:40 +00:00
ishell@chromium.org
b8008a3e39
ScopeInfo::ContextSlotIndex() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/253263003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-30 15:13:38 +00:00
mvstanton@chromium.org
287f65aec9
CallICStub with a "never patch" approach by default. Patching will
...
occur only when custom feedback needs to be gathered (future CLs).
Now rebased on https://codereview.chromium.org/254623002/ , which moves the type feedback vector to the SharedFunctionInfo.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/247373002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-30 14:33:35 +00:00
jkummerow@chromium.org
2008b820dc
Harden more runtime functions
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/255333004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-30 13:19:19 +00:00
yangguo@chromium.org
88144ee17f
Kiss goodbye to MaybeObject.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/259173003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-30 12:25:18 +00:00
mvstanton@chromium.org
15dc39a86f
Simplify feedback vector creation and store in SharedFunctionInfo.
...
LOG=N
BUG=v8:3212
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/254623002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-30 10:51:01 +00:00
ishell@chromium.org
303f2ab50f
WeakHashTable::Lookup() handlified and ObjectHashTable's interface cleaned up.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/251293002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 14:31:12 +00:00
ishell@chromium.org
9ca2fc30a9
OrderedHashTable::FindEntry() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/260313003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 14:16:38 +00:00
ishell@chromium.org
c3d349f028
OrderedHashMap::Lookup() and ObjectHashTable::Lookup() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/256743008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 14:09:14 +00:00
ishell@chromium.org
c8e95c411c
JSObject::GetHiddenProperty() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/255153002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 13:51:14 +00:00
ishell@chromium.org
e025457443
Object::Lookup(), JSObject::*Lookup*() and JSReceiver::*Lookup*() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/253843006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 13:43:17 +00:00
yangguo@chromium.org
99d9712bb0
Return MaybeHandle from Object::ToSmi.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/260083011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 13:18:27 +00:00
dcarney@chromium.org
7b1e830489
Remove String::Visit
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/254763008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 13:09:31 +00:00
yangguo@chromium.org
14f132c2d9
Refactor calls to CALL_HEAP_FUNCTION.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/258953009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 07:02:11 +00:00
bmeurer@chromium.org
d4b533d41b
Bulk update of Google copyright headers in source files.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/259183002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 06:42:26 +00:00
yangguo@chromium.org
38b82f40d0
Remove some remnants of MaybeObjects in objects.*.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/256993003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-28 15:33:16 +00:00
yangguo@chromium.org
ee0cd292d7
Tighten OpenHandle's extra checks.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/240113010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-28 13:42:03 +00:00
bmeurer@chromium.org
15e0189c97
Fix and improve Map::CurrentMapForDeprecatedInternal().
...
Inline relevant bits from Map::FindUpdatedMap() and Map::IsMoreGeneralThan()
into Map::CurrentMapForDeprecatedInternal() to fix issues introduced
with field type tracking, avoid the useless second pass over the transition
tree, and finally make it easier to understand what this method actually
does.
TEST=mjsunit/regress/regress-365172-2
R=svenpanne@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=20997
Review URL: https://codereview.chromium.org/257893004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-28 11:09:07 +00:00
bmeurer@chromium.org
5396d4e994
Revert "Fix and cleanup Map::GeneralizeRepresentation()."
...
This reverts commit r21006 for performance regressions.
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/259003002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-28 11:02:12 +00:00
bmeurer@chromium.org
0377bccdcf
Fix and cleanup Map::GeneralizeRepresentation().
...
TEST=mjsunit/regress/regress-365172-[1-3],mjsunit/field-type-tracking
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/259993004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-28 10:19:25 +00:00
bmeurer@chromium.org
88ca76bce1
Fix CurrentMapForDeprecated() to return MaybeHandle instead of a null handle.
...
Also fix TryMigrateInstance() to return bool instead of the parameter or
a null handle.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/251683003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-28 05:47:43 +00:00
ishell@chromium.org
ce14ab9743
HashTableKey::AsObject() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/250773004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 13:59:33 +00:00
ishell@chromium.org
dc1fe284b7
*Shape::AsObject() are no longer used - removed.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/256773002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 13:50:19 +00:00
ishell@chromium.org
3ce912038e
ObjectHashTable's key and WeakHashTable's key types are now Handle<Object> instead of Object*.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/257853003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20982 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 13:35:03 +00:00
ishell@chromium.org
a5bde58531
Dictionary::SetEntry() and Dictionary::AddEntry() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/250913003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20981 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 13:21:16 +00:00
ishell@chromium.org
fd02e1220c
HashTable::New() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/257633002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 13:06:21 +00:00
ishell@chromium.org
88734238ec
Reland r20960: "HashTable::EnsureCapacity() handlified."
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/256743002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 12:59:07 +00:00
yangguo@chromium.org
cb2f43cb14
Always include debugger support.
...
Motivation: we do not have test coverage for debuggersupport=off.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/256653004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 11:00:37 +00:00
ishell@chromium.org
9bda4a2987
Revert "HashTable::EnsureCapacity() handlified."
...
This reverts commit r20960 for breaking Windows build.
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/250893002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 08:31:21 +00:00
ishell@chromium.org
b1a7ae6b7e
HashTable::EnsureCapacity() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/250643002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 08:18:24 +00:00
ishell@chromium.org
96e5434b54
WeakHashTable::Put() and callers handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/253393006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 08:10:44 +00:00
ishell@chromium.org
6d47753059
Dictionary::DeleteProperty() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/250023002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 08:03:52 +00:00
ishell@chromium.org
c8d36c711c
Dictionary::New() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/246743003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 07:56:13 +00:00
ishell@chromium.org
f86232836e
Dictionary::GenerateNewEnumerationIndices() and Dictionary::EnsureCapacity() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/250013002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-24 15:33:40 +00:00
ishell@chromium.org
2e0c29654c
Dictionary::Add() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/249723004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20948 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-24 15:16:26 +00:00
ishell@chromium.org
cb46971aa3
NameDictionary's key type is now Handle<Name> instead of Name*.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/252383006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-24 14:59:09 +00:00
bmeurer@chromium.org
d699684beb
Revert "Some code cleanup, esp. includes and copyright headers."
...
This reverts commit r20938 for breaking the windows build.
TBR=ulan@chromium.org
Review URL: https://codereview.chromium.org/254463003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-24 11:44:22 +00:00
bmeurer@chromium.org
18b07afb8f
Some code cleanup, esp. includes and copyright headers.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/257453003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-24 11:32:48 +00:00
ishell@chromium.org
34e59aa239
Dictionary::AtPut() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/249883003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-24 10:47:13 +00:00
ishell@chromium.org
c0ff5354d2
Reland r20932: "*NumberDictionary::AtNumberPut() handlified."
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/254593002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-24 10:39:50 +00:00
ishell@chromium.org
7e8f53181f
Revert "*NumberDictionary::AtNumberPut() handlified."
...
This reverts commit r20932 for breaking Mac build.
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/251383003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-24 10:17:10 +00:00
ishell@chromium.org
b95ffe9067
*NumberDictionary::AtNumberPut() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/250003002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-24 09:59:44 +00:00
ishell@chromium.org
7e3fafc605
*NumberDictionary::AddNumberEntry() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/249993002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-24 09:49:06 +00:00
ishell@chromium.org
7c1a0e81ef
*NumberDictionary::Set() handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/249973002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-24 08:55:31 +00:00
ishell@chromium.org
4591771820
StringTable::LookupKey() and all callers handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/249103002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-23 15:43:39 +00:00
yangguo@chromium.org
6d250412f1
Clean up some uses of Failures and MaybeObjects.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/245963007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-23 15:08:03 +00:00
wingo@igalia.com
e12ae547cf
Avoid exposing compiler-allocated temporaries to the debugger
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/245963006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-23 08:58:41 +00:00
bmeurer@chromium.org
7e48108f3b
Sort functions in polymorphic calls based on overall profiling ticks and inlined AST size.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/248953002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-23 07:07:54 +00:00
mvstanton@chromium.org
5ef2c18639
JSObject::DeepCopy and other functions returned an empty handle to
...
indicate an exception. All usages but one changed to return
MaybeHandles, and to use macros around the call.
The remaining work is in Compiler::GetUnoptimizedCode(), and when
that is turned into a MaybeHandle, then the macros dealing with
null handle returns can be eliminated.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/247013002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 09:32:42 +00:00
yangguo@chromium.org
2c394ad00d
Introduce exception object and remove some uses of MaybeObject::IsFailure().
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/240883003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 07:33:20 +00:00
adamk@chromium.org
3308cb5857
ES6: Add support for Map/Set forEach
...
This implements MapIterator and SetIterator which matches
the same constructs in the ES6 spec. However, these 2
iterators are not exposed to user code yet. They are only
used internally to implement Map.prototype.forEach and
Set.prototype.forEach.
Each iterator has a reference to the OrderedHashTable where
it directly accesses the hash table's entries.
The OrderedHashTable has a reference to the newest iterator
and each iterator has a reference to the next and previous
iterator, effectively creating a double linked list.
When the OrderedHashTable is mutated (or replaced) all the
iterators are updated.
When the iterator iterates passed the end of the data table
it closes itself. Closed iterators no longer have a
reference to the OrderedHashTable and they are removed from
the double linked list. In the case of Map/Set forEach, we
manually call Close on the iterator in case an exception was
thrown so that the iterator never reached the end.
At this point the OrderedHashTable keeps all the non finished
iterators alive but since the only thing we currently expose
is forEach there are no unfinished iterators outside a forEach
call. Once we expose the iterators to user code we will need
to make the references from the OrderedHashTable to the
iterators weak and have some mechanism to close an iterator
when it is garbage collected.
BUG=1793, 2323
LOG=Y
R=adamk@chromium.org
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/238063009
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 17:45:32 +00:00
dslomov@chromium.org
439f68dd45
Handlify PolymorphicCodeCache.
...
R=yangguo@chromium.org , yannguo@chromium.org
Review URL: https://codereview.chromium.org/240093003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 13:59:57 +00:00
yangguo@chromium.org
0c614e2b48
Some MaybeHandles related cleanups.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/240443005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 08:33:18 +00:00
bmeurer@chromium.org
779e87b87a
Track up to 5 stable maps as field type.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/240813002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 08:22:22 +00:00
adamk@chromium.org
91618cf1e9
Revert "ES6: Add support for Map/Set forEach"
...
This reverts https://code.google.com/p/v8/source/detail?r=20823
It broke Windows builds. Will need to find a Windows try bot to figure
out why.
TBR=mstarzinger@chromium.org ,arv@chromium.org
Review URL: https://codereview.chromium.org/238973011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 21:19:25 +00:00
adamk@chromium.org
7c300d1f83
ES6: Add support for Map/Set forEach
...
This implements MapIterator and SetIterator which matches
the same constructs in the ES6 spec. However, these 2
iterators are not exposed to user code yet. They are only
used internally to implement Map.prototype.forEach and
Set.prototype.forEach.
Each iterator has a reference to the OrderedHashTable where
it directly accesses the hash table's entries.
The OrderedHashTable has a reference to the newest iterator
and each iterator has a reference to the next and previous
iterator, effectively creating a double linked list.
When the OrderedHashTable is mutated (or replaced) all the
iterators are updated.
When the iterator iterates passed the end of the data table
it closes itself. Closed iterators no longer have a
reference to the OrderedHashTable and they are removed from
the double linked list. In the case of Map/Set forEach, we
manually call Close on the iterator in case an exception was
thrown so that the iterator never reached the end.
At this point the OrderedHashTable keeps all the non finished
iterators alive but since the only thing we currently expose
is forEach there are no unfinished iterators outside a forEach
call. Once we expose the iterators to user code we will need
to make the references from the OrderedHashTable to the
iterators weak and have some mechanism to close an iterator
when it is garbage collected.
BUG=1793,2323
LOG=Y
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/240323003
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 21:12:27 +00:00
dslomov@chromium.org
2828508358
Handlify HashTable and Dictionary growing.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/240023004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 18:17:20 +00:00
ishell@chromium.org
dd2062833e
Reland r20772 "Handlifying clients of StringTable, step 1."
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/238263003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 14:15:32 +00:00
yangguo@chromium.org
7af5597287
Reland "Move functions from handles.cc to where they belong."
...
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/239113009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 13:28:11 +00:00
yangguo@chromium.org
0cba01c420
Revert "Move functions from handles.cc to where they belong."
...
This reverts r20802 .
TBR=jarin@chromium.org
Review URL: https://codereview.chromium.org/239543010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 12:35:50 +00:00
yangguo@chromium.org
3b66957602
Move functions from handles.cc to where they belong.
...
R=mvstanton@chromium.org , ulan@chromium.org
Review URL: https://codereview.chromium.org/237673014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 12:16:06 +00:00
dslomov@chromium.org
35a30a5a5f
Handlify CodeCache.
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/239203003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 12:10:56 +00:00
verwaest@chromium.org
9da828a5a5
Move CopyReplaceDescriptors to private
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/239203002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 11:25:29 +00:00
verwaest@chromium.org
10714e29fa
Introduce an abstraction to write to a field.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/236063016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 11:11:21 +00:00
verwaest@chromium.org
cf26c1421a
Move property addition code from JSObject to Map
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/238543005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 10:45:57 +00:00
yangguo@chromium.org
139be49fcf
Remove some uses of MaybeObject methods.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/236303015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 07:26:34 +00:00
yangguo@chromium.org
9a71bc722d
Remove further unhandlified call sites of number allocations.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/239143003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 06:18:37 +00:00
adamk@chromium.org
a44e10cad6
Revert "ES6: Add support for Map/Set forEach"
...
This reverts commit https://code.google.com/p/v8/source/detail?r=20781 .
It broke the Win32 builders.
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/239163012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 01:03:56 +00:00
adamk@chromium.org
a1af5a2a2f
ES6: Add support for Map/Set forEach
...
This implements MapIterator and SetIterator which matches
the same constructs in the ES6 spec. However, these 2
iterators are not exposed to user code yet. They are only
used internally to implement Map.prototype.forEach and
Set.prototype.forEach.
Each iterator has a reference to the OrderedHashTable where
it directly accesses the hash table's entries.
The OrderedHashTable has a reference to the newest iterator
and each iterator has a reference to the next and previous
iterator, effectively creating a double linked list.
When the OrderedHashTable is mutated (or replaced) all the
iterators are updated.
When the iterator iterates passed the end of the data table
it closes itself. Closed iterators no longer have a
reference to the OrderedHashTable and they are removed from
the double linked list. In the case of Map/Set forEach, we
manually call Close on the iterator in case an exception was
thrown so that the iterator never reached the end.
At this point the OrderedHashTable keeps all the non finished
iterators alive but since the only thing we currently expose
is forEach there are no unfinished iterators outside a forEach
call. Once we expose the iterators to user code we will need
to make the references from the OrderedHashTable to the
iterators weak and have some mechanism to close an iterator
when it is garbage collected.
BUG=1793,2323
LOG=Y
R=adamk@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/236143002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 00:40:03 +00:00
plind44@gmail.com
5a016958c6
MIPS: Add big-endian support for MIPS.
...
Important notices:
- The snapshot cannot be created for big-endian target in cross-compilation
environment on little-endian host using simulator.
- In order to have i18n support working on big-endian target, the icudt46b.dat and
icudt46b_dat.S files should be generated and upstreamed to ICU repo.
- The mjsunit 'nans' test is endian dependent, it is skipped for mips target.
- The zlib and Mandreel from Octane 2.0 benchmark are endian dependent due to
use of typed arrays.
TEST=
BUG=
R=jkummerow@chromium.org , plind44@gmail.com
Review URL: https://codereview.chromium.org/228943009
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 16:39:21 +00:00
ishell@chromium.org
cc5c454573
Revert "Handlifying clients of StringTable, step 1."
...
This reverts commit r20772.
TBR=jarin@chromium.org
Review URL: https://codereview.chromium.org/239273002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 15:17:04 +00:00
ishell@chromium.org
be29476f64
Handlifying clients of StringTable, step 1.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/239113002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 14:20:59 +00:00
yangguo@chromium.org
6ff4f1d361
Use a wrapper for copying object.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/238113003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 13:42:41 +00:00
yangguo@chromium.org
1a44233cef
Handlify JSObject::FastPropertyAt.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/238583004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20765 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 12:11:39 +00:00
dslomov@chromium.org
5ab9c55ae3
First round of runtime.cc handlification.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/238933002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 10:37:12 +00:00
yangguo@chromium.org
134c2e75ad
Handlify PrepareSlowElementsForSort and JSArrayUpdateLengthFromIndex.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/238713003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20757 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 10:29:56 +00:00
bmeurer@chromium.org
b5cec2b72f
Handlify AddDependentCode(), AddDependentCompilationInfo() and AddDependentIC().
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/236193014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 10:14:50 +00:00
verwaest@chromium.org
76e1386acb
Bump kMaxFastProperties (non-keyed assignments) to 128.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/238683004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 08:59:51 +00:00
yangguo@chromium.org
a54d24a1d6
Handlify TypedArray setters.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/235923013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20749 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 08:15:33 +00:00
bmeurer@chromium.org
6b4d4b7287
Reland "Track field types.".
...
This is an initial step towards tracking the exact types instead of just
the representations of fields. It adds support to track up to one map of
heap object field values, eliminating various map checks on values
loaded from such fields, at the cost of making stores to such fields
slightly more expensive.
Issues with transitioning stores and fast object literals in Crankshaft
fixed.
TEST=mjsunit/field-type-tracking
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/238773002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 07:36:47 +00:00
yangguo@chromium.org
123a271e72
Reland "Handlify Runtime::InitializeIntrinsicFunctionNames."
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/236823003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 19:37:51 +00:00
verwaest@chromium.org
494bf01e53
Initial steps for moving code onto Map
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/237143004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 16:21:38 +00:00
ishell@chromium.org
4792f61042
Reland "HashTable::Shrink() handlified and derived template parameter added to HashTable hierarchy."
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/227423004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 15:56:57 +00:00
ishell@chromium.org
f4dc0ee882
Revert "Reland "HashTable::Shrink() handlified and derived template parameter added to HashTable hierarchy.""
...
This reverts r20724.
TBR=jarin@chromium.org
Review URL: https://codereview.chromium.org/237043002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 13:25:16 +00:00
ishell@chromium.org
72e2d5b3c8
Reland "HashTable::Shrink() handlified and derived template parameter added to HashTable hierarchy."
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/235643002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20724 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 12:50:04 +00:00
yangguo@chromium.org
0b20d13b40
Handlify AddToOptimizedCodeMap.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/236963002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 11:46:35 +00:00
yangguo@chromium.org
8eaff70bed
Revert "Handlify Runtime::InitializeIntrinsicFunctionNames."
...
This reverts r20718.
TBR=jarin@chromium.org
Review URL: https://codereview.chromium.org/236343005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 11:43:40 +00:00
yangguo@chromium.org
3a12bbe0fa
Handlify Runtime::InitializeIntrinsicFunctionNames.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/236133005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 11:32:12 +00:00
verwaest@chromium.org
de50f63f16
Clean up the public interface of Map.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/234573005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 11:19:37 +00:00
yangguo@chromium.org
b44598b387
Handlify Object::ToObject.
...
R=bmeurer@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/235943007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 09:19:09 +00:00
jarin@chromium.org
c1a3ab6b4f
Revert "Track field types."
...
Revert r20701.
TBR=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/236843002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 08:24:15 +00:00
bmeurer@chromium.org
9cf3909975
Track field types.
...
This is an initial step towards tracking the exact types instead of just the representations of fields. It adds support to track up to one map of heap object field values, eliminating various map checks on values loaded from such fields, at the cost of making stores to such fields slightly more expensive.
TEST=mjsunit/field-type-tracking
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/167303005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20701 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 06:29:15 +00:00
ishell@chromium.org
13a3a00102
Revert "HashTable::Shrink() handlified and derived template parameter added to HashTable hierarchy."
...
This reverts commit r20697 for breaking ASAN build.
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/235353003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 17:55:52 +00:00
ishell@chromium.org
be3df6164b
HashTable::Shrink() handlified and derived template parameter added to HashTable hierarchy.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/234663004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 17:44:58 +00:00
verwaest@chromium.org
ac659f3882
Handlify Map::RawCopy
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/235183002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 13:48:52 +00:00
ulan@chromium.org
49d951d043
Do not call user defined getter of Error.stackTraceLimit.
...
Handlify GetNormalizedProperty.
BUG=360733
LOG=N
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/233243005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 13:16:36 +00:00
yangguo@chromium.org
80a974ba00
Reland "Handlify GetProperty."
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/235083002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 12:47:34 +00:00
mvstanton@chromium.org
c5eaf80707
Handlify Map::CopyDropDescriptors().
...
* And contain knowledge better in TransitionArray and DescriptorArray (for example WhitenessWitness is now private to DescriptorArray).
* And remove some factory methods
* And handlify some other things.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/234783002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 12:13:53 +00:00
yangguo@chromium.org
93c9717473
Revert "Handlify GetProperty."
...
This reverts r20682.
TBR=dcarney@chromium.org
Review URL: https://codereview.chromium.org/234893003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 11:56:54 +00:00
yangguo@chromium.org
a3d68ca64d
Handlify GetProperty.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/233233004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20682 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 11:26:22 +00:00
yangguo@chromium.org
380ae9810e
Return MaybeHandle from Invoke.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/231883007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 10:41:09 +00:00
ulan@chromium.org
ff953ac055
Make maps in monomorphic IC stubs weak.
...
Maps in monomorphic Load, KeyedLoad, Store, KeyedStore, and CompareNil IC
stubs are treated as weak references by the marking visitor.
During generation of an IC stub with a weak map, the stub is appended to the
dependent code array of the map. When the map dies, all stubs in its dependent
code array are invalidated by setting embedded maps to undefined.
BUG=v8:2073
LOG=Y
TEST=cctest/test-heap/WeakMapInMonomorphic*IC
R=mstarzinger@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/188783003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 10:36:09 +00:00
rmcilroy@chromium.org
2754ab2689
Revert "ARM: Do not set FPSCR when converting to clamped uint8"
...
This reverts commit r20676.
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/233013005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20678 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 10:04:25 +00:00
rmcilroy@chromium.org
b61696dd95
ARM: Do not set FPSCR when converting to clamped uint8
...
Setting the FPSCR flags is expensive on some CPUs. Get rid of repeated
setting of the FPSCR by relying on the correct default flags being set
when doing uint8 clamping. Also use vcvt_u32_f64 instead of vcvt_s32_f64,
which enables removing the check against zero (vcvt_u32_f64 will clamp to
zero).
To be on the safe side, add asserts to check that the VFP rounding mode
flags are set to default as expected.
This increases performance of a hot loop repeatedly setting
Uint8ClampedArray values on some CPUs by as much as a factor of 12.
BUG=v8:3253
LOG=N
R=jacob.bramley@arm.com , rmcilroy@chromium.org , ulan@chromium.org
Review URL: https://codereview.chromium.org/230473005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 09:22:14 +00:00
yangguo@chromium.org
a640707213
Implement handlified String::Equals and Name::Equals.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/225823003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 07:27:25 +00:00
mvstanton@chromium.org
8aa93f2443
Bugfix: A TransitionArray can disappear during copy.
...
During handlification of TransitionArray code, an error was introduced
in TransitionArray::CopyInsert because after creating a copy of a
TransitionArray, it may be that the array disappears during GC
because it is modified during the marking of the owning map.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/228483005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 13:06:52 +00:00
verwaest@chromium.org
dcc142d547
Work towards unifying descriptor array handling.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/231283006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 11:59:10 +00:00
ishell@chromium.org
32735ae3a9
Object::GetElements() and friends maybehandlification.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/231103002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 09:20:11 +00:00