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
jarin@chromium.org
014bf8b407
Revert "Fix Heap::IsHeapIterable."
...
This reverts commit r21387.
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/291193002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 14:03:38 +00:00
jarin@chromium.org
dd4c82bbb3
Fix Heap::IsHeapIterable.
...
We only consider heap iterable if the new space is empty (in addition to the exisiting old space check).
The change also moves the iterability forcing + allocation prevention gadgets to HeapIterator so that it is impossible to miss them when iterating the heap.
R=hpayer@chromium.org
BUG=373283
LOG=N
Review URL: https://codereview.chromium.org/285693006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21387 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 13:19:21 +00:00
bmeurer@chromium.org
a7e19c1a43
Revert "Refactor transitioning stores."
...
This reverts commit r21383 for breaking the Mozilla tests.
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/292993003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 13:03:25 +00:00
marja@chromium.org
2fee5a16ee
Parser: delay throwing errors.
...
This makes Parser a bit more independent of Isolate during the recursive descent
phase. That is necessary for making it possible to run Parser on a non-main
thread in the future.
Proof of concept CL for the the "Parser independent of Isolate" work is here:
https://codereview.chromium.org/231073002/
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/289373005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 12:22:04 +00:00
bmeurer@chromium.org
fd4da6bfe7
Get rid of HStoreNamedField::SkipWriteBarrier().
...
The write barrier elimination does the right thing now, so
we can get rid of this hack.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/296023002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21384 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 11:25:47 +00:00
bmeurer@chromium.org
b09989ec58
Refactor transitioning stores.
...
There's actually no need to have the transition as part of the HStoreNamedField instruction. In fact, it is cleaner and faster to generate a separate HStoreNamedField for the transition map. This will also help to eliminate map stores with store elimination, as well as reduce register pressure for transitioning stores on ia32.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/295743002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 11:06:23 +00:00
ishell@chromium.org
2a62cce170
Reland "v8::TryCatch now works correctly with ASAN's UseAfterReturn mode enabled."
...
BUG=chromium:369962
LOG=N
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/282783004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 10:13:46 +00:00
hpayer@chromium.org
2c6438bbfa
Print promotion rate and semi-space copy rate in --trace-gc-nvp.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/290133004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 09:53:18 +00:00
rmcilroy@chromium.org
63199d0bfe
Avoid flushing the icache unnecessarily when updating target addresses in code.
...
This CL updates RelocInfo update operations and set_target_address_at to enable
skipping of the icache flush if it going to be batched up later.
Code::CopyFrom and Code::Relocate are modified to avoid individual icache
flushes since the whole code area will be flushed after the reloc info is
updated.
These changes reduce a regression when enabling the OOL constant pool on Arm,
since this change can cause MovT/MovW instructions for relocatable targets
if the constant pool is full.
Scores for Mandreel latency on a Nexus 5:
- OOL CP disabled: 3533
- OOL CP enabled, without this CL: 1825
- OOL CP enabled, with change: 3015
R=rodolph.perfetta@arm.com , ulan@chromium.org
Review URL: https://codereview.chromium.org/284153004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 09:21:45 +00:00
rossberg@chromium.org
9d9fa6af31
Tighten HAS_PRIVATE to own properties
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/290373002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 09:13:26 +00:00
yangguo@chromium.org
cf49b6e3ca
Reland "Simplify debugger state."
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/299653002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 08:52:42 +00:00
bmeurer@chromium.org
c8ad96d703
Use HType::NonPrimitive() for array backing store allocations.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/291153003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 08:42:10 +00:00
vegorov@chromium.org
38f2d25a84
Ensure that interruptor callback registered through API is called outside of ExecutionAccess lock.
...
Such a coarse locking can cause a dead-lock when another thread is attempting to clear an interrupt while we are waiting in the interrupt callback.
Add test that verifies this API invariant.
BUG=chromium:374978
LOG=N
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/291123002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 08:24:51 +00:00
bmeurer@chromium.org
424877c773
Fix invalid condition in check elimination effects.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/292993002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 08:16:47 +00:00
hpayer@chromium.org
b2c9fcaa4c
Add allocation sites to scratchpad only if a significant amount of mementos was found.
...
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/284223007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 16:07:20 +00:00
plind44@gmail.com
13af2c0598
MIPS: Allow comparison in UINT32 mode.
...
Port r21355 (932c5de)
Original commit message:
Shamelessly based on parts of https://codereview.chromium.org/288853003/ . :-)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/296453003
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 15:30:23 +00:00
machenbach@chromium.org
1757706cb9
Sync change log file with trunk.
...
BUG=
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/291803005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 15:29:29 +00:00
dcarney@chromium.org
1b70812e7d
filter out .caller from other worlds
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/261103002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 13:45:45 +00:00
wingo@igalia.com
83576f2363
Fix GCMole warning when creating generator arguments poison pill
...
R=jkummerow@chromium.org
TBR=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/289323005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 12:31:36 +00:00
wingo@igalia.com
6382a25fa7
Poison .arguments and .caller for generator functions
...
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/270133003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 10:47:00 +00:00
jochen@chromium.org
34c2f56213
Update BUILD.gn and properly disable it on android
...
BUG=none
R=dcarney@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/294613002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 09:58:46 +00:00
bmeurer@chromium.org
890dc24758
Further improve old space allocation write barrier elimination.
...
Stores to old space allocations require no write barriers if the
object is the new space dominator and the value is not in new space.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/290173003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 09:48:35 +00:00
adamk@chromium.org
9de1ec5a78
Comment out %RunMicrotasks assert that triggers in mjsunit tests
...
TBR=dcarney@chromium.org
Review URL: https://codereview.chromium.org/290313004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 08:36:56 +00:00
machenbach@chromium.org
f737580c65
Let test driver export json results.
...
BUG=374134
LOG=n
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/285193009
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 08:36:53 +00:00
adamk@chromium.org
62e09a3534
Fix fuzzable JS function count after r21356
...
TBR=dcarney@chromium.org
Review URL: https://codereview.chromium.org/294523006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 08:19:54 +00:00
adamk@chromium.org
35b8b0b27a
Move microtask queueing logic from JavaScript to C++
...
This avoids the appearence of a leak due to storing a JSObject
as the microtask_state in the strong root list, and allows callers
to call Isolate::RunMicrotasks() without having any v8::Context
available (as at least Blink has interest in doing).
The queue is now a strong root, represented as a FixedArray of JSFunctions
(or empty_fixed_array, if it's empty); it doubles in size when it needs to grow.
The number of elements in the queue is stored in Isolate::pending_microtask_count().
LOG=Y
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/290633010
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 07:57:04 +00:00
svenpanne@chromium.org
ec23d0b815
Allow comparison in UINT32 mode.
...
Shamelessly based on parts of https://codereview.chromium.org/288853003/ . :-)
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/288383002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 07:47:09 +00:00
bmeurer@chromium.org
ba5763f3cb
Drop redundant FullCodeGenerator::prepared_bailout_ids_.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/294543002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 07:26:33 +00:00
bmeurer@chromium.org
f1f1ee9798
Perform block ordering in-place.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/295543002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 07:24:24 +00:00
bmeurer@chromium.org
ecadc63b60
Partial revert of "Next bunch of fixes for check elimination".
...
This reverts the part of r21154 that introduced the CHECK()s to verify
state of objects with stable maps during code generation. The CHECK()s
seem to trigger a non-critical hidden bug in the map stability
mechanism. We will re-add these CHECK()s once the bug is found and
fixed.
BUG=372173
LOG=y
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/287363002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 07:08:47 +00:00
svenpanne@chromium.org
7ac5dfbd3e
Revert "Simplify debugger state."
...
This reverts r21346, it broke the layout tests.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/292713002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 07:06:44 +00:00
danno@chromium.org
327c016af4
Fix performance regression in regular expressions after Array.push() optimizations
...
R=yangguo@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/281953002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 15:42:00 +00:00
yangguo@chromium.org
fe243379f8
Decouple CpuFeatures from serializer state.
...
Traditionally, we cross compile a snapshot iff the serializer is enabled.
This will change in the future.
Changes:
- CpuFeatures probing is done once per process, depending on whether we
cross compile.
- CpuFeatures are consolidated into the platform-independent assembler.h
as much as possible.
- FLAG_enable_<feature> will only be checked at probing time (already the
case for ARM).
- The serializer state is cached by the MacroAssembler.
- PlatformFeatureScope is no longer necessary.
- CPUFeature enum values no longer map to CPUID bit fields.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/285233010
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 15:18:24 +00:00
yangguo@chromium.org
2d1a75d608
Simplify debugger state.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/287873005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 14:58:03 +00:00
rmcilroy@chromium.org
5cfca21295
Fix MacroAssembler::Prologue for Arm when FLAG_out_off_line_constant_pool is enabled.
...
The prologue update in r21329 changed the scoping of the PredictableCodeSizeScope.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/284303003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 14:49:11 +00:00
rossberg@chromium.org
417610e24a
Stage ES6 symbols
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/286133002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 14:42:02 +00:00
jkummerow@chromium.org
8407277cc0
Harden builtins BuildResultFromMatchInfo and URIDecodeOctets
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/286203010
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 13:43:19 +00:00
jkummerow@chromium.org
5843a3359c
Add builtin detector to generate-runtime-tests.py
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/283403002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 13:23:32 +00:00
jkummerow@chromium.org
43c170eb44
Move check for existence of generated tests from run-tests.py to presubmit.py
...
Inspired by https://codereview.chromium.org/275143002#msg3
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/290023002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 13:18:13 +00:00
jkummerow@chromium.org
48c39e57b2
Expand C++ macros in tools/generate-runtime-tests.py to increase coverage
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/290513002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 13:16:08 +00:00
yangguo@chromium.org
75a7a3157f
Use %DebugGetProperty in debug mirror to check for Promise.
...
R=aandrey@chromium.org , amikhaylova@google.com
Review URL: https://codereview.chromium.org/283373003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 13:06:20 +00:00
yangguo@chromium.org
5c3c644cd3
Make plot shell script nicer.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/284283005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 13:04:45 +00:00
m.m.capewell@googlemail.com
ce8dab82f7
ARM64: Fix native cctest
...
CPUFeatures::Probe has been modified such that it can be called only once, but
the cctests make two calls in native builds: once in VM init, and once in each
test setup. This patch removes the call in the test setup.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/285273003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 12:09:42 +00:00
machenbach@chromium.org
04043b3352
Fix keyboard interrupt in test driver.
...
Drain the queues to prevent failures when queues are garbage collected. Fails when interrupting test262 otherwise.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/286973004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-15 15:01:27 +00:00
jkummerow@chromium.org
cede70c21b
Ensure that collection iterators' maps have constructors
...
This fixes JSObject::GetCreationContext() for such iterators.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/288233002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-15 14:13:59 +00:00
jkummerow@chromium.org
628bdf69df
Fix builtin/runtime name clashes generated by macros
...
Specifically: DataView{S,G}et* and a few more Math functions.
Also change indentation in typedarray.js for easier future builtins parsing.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/286073004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-15 13:03:14 +00:00
yangguo@chromium.org
773a7eda67
Adapt test expectations in webkit.
...
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/288163003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-15 12:46:32 +00:00
machenbach@chromium.org
1d0db84277
Fix deopt fuzzer after test runner changes.
...
Use the same keyboard interrupt logic as run-tests.
Close the perf database explicitly after one run, as it has two runs on the same architecture. Currently the first run closes on garbage collection, which might corrupt the second run.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/284203002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-15 12:40:40 +00:00
yangguo@chromium.org
7a5207803c
Refactor MacroAssembler::Prologue.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/288213002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-15 12:10:00 +00:00