yangguo@chromium.org [Wed, 5 Dec 2012 12:32:25 +0000 (12:32 +0000)]
Fix spec violations related to regexp.lastIndex
BUG=v8:2437, v8:2438
Review URL: https://chromiumcodereview.appspot.com/
11451005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13143
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 5 Dec 2012 12:03:57 +0000 (12:03 +0000)]
Make Object.observe on the global object functional
The approach in this change is to handle the unwrapping/wrapping of the global object transparently with respect to the JS implementation of Object.observe. An alternate approach would be to add a runtime method like %IsJSGlobalProxy and %UnwrapJSGlobalProxy, but it seems ugly to give JS (even implementation JS) access to the unwrapped global.
BUG=v8:2409
Review URL: https://codereview.chromium.org/
11414094
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13142
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 5 Dec 2012 11:47:45 +0000 (11:47 +0000)]
Object.observe: notify of __proto__ changes
BUG=v8:2409
Review URL: https://codereview.chromium.org/
11299260
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13141
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 5 Dec 2012 11:04:10 +0000 (11:04 +0000)]
Enable stub generation using Hydrogen/Lithium (again)
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure.
Committed: https://code.google.com/p/v8/source/detail?r=13105
Committed: https://code.google.com/p/v8/source/detail?r=13117
Review URL: https://codereview.chromium.org/
10701054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13140
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 5 Dec 2012 10:14:10 +0000 (10:14 +0000)]
Pass Isolate to MakeWeak(), IsWeak(), and AddObjectGroup().
BUG=
TEST=cctest/test-api/ApiObjectGroupsCycle
Review URL: https://codereview.chromium.org/
11360082
Patch from Kentaro Hara <haraken@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13139
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 5 Dec 2012 09:13:53 +0000 (09:13 +0000)]
Pass Isolate to Local<T>::New()
Our profiling revealed that Local<T>::New() is one of bottlenecks of DOM bindings.
BUG=
TEST=cctest/test-api/LocalHandle
Review URL: https://codereview.chromium.org/
11316331
Patch from Kentaro Hara <haraken@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13138
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Tue, 4 Dec 2012 17:17:55 +0000 (17:17 +0000)]
Introduce callback for resolving global object name while taking heap snapshot
Heap profiler currently gets "document" of global objects while taking snapshot (to later retrieve its "URL"). This is unsafe as there may be no current v8 context when the property is requested while corresponding property accessor may make some assumptions about the context stack during its invokation. Several crashes were reported due to this problem:
https://bugs.webkit.org/show_bug.cgi?id=103076
https://crbug.com/162121
https://crbug.com/132727
This patch adds a callback for resolving global object names and avoid the crashes.
Review URL: https://codereview.chromium.org/
11415203
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13137
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 4 Dec 2012 15:30:22 +0000 (15:30 +0000)]
Remove some dead code.
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11412322
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13136
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 4 Dec 2012 13:54:22 +0000 (13:54 +0000)]
Force inlining for hot interface functions.
Review URL: https://codereview.chromium.org/
11411355
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13135
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Tue, 4 Dec 2012 13:49:22 +0000 (13:49 +0000)]
Prepare push to trunk. Now working on version 3.15.9.
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11348378
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13132
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 4 Dec 2012 13:45:48 +0000 (13:45 +0000)]
Change deprecated semantics of function template signatures.
This changes how FunctionTemplate interprets a Signature that specifies
compatible receivers and arguments. Only the hidden prototype chain will
be considered when searching for compatible receivers. This prevents
JavaScript from modifying the inheritance relationship set up by the
embedder.
R=rossberg@chromium.org
BUG=v8:2268
TEST=cctest/test-api
Review URL: https://codereview.chromium.org/
11308197
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13131
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 4 Dec 2012 12:14:19 +0000 (12:14 +0000)]
Enforce stack allocation of TryCatch blocks.
R=svenpanne@chromium.org
BUG=v8:2166,chromium:152389
Review URL: https://codereview.chromium.org/
11411353
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13130
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 4 Dec 2012 10:45:59 +0000 (10:45 +0000)]
Fix external exceptions in external try-catch handlers.
This tries to propagate exceptions which are externally thrown into
external try-catch handlers before scheduling them. This also allows
embedders to nest external try-catch handlers.
This just relands r11834.
R=svenpanne@chromium.org
BUG=v8:2166
TEST=cctest/test-api/TryCatchNested
Review URL: https://codereview.chromium.org/
11299329
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13129
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 4 Dec 2012 10:23:43 +0000 (10:23 +0000)]
Unify object groups iteration in global handles.
This unifies the iteration logic of objects groups iteration in global
handles. The scavenger as well as mark-and-compact now rely on the same
underlying logic.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
11299248
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13128
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 4 Dec 2012 10:15:19 +0000 (10:15 +0000)]
Fix gcmole offenders.
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11419309
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13127
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 4 Dec 2012 09:51:52 +0000 (09:51 +0000)]
Remove bogus test and add check for OOM in TryCall.
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11412318
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13126
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 4 Dec 2012 08:58:59 +0000 (08:58 +0000)]
Remove extraneous forced rejuvenations in code aging
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
11421219
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13125
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 4 Dec 2012 08:16:24 +0000 (08:16 +0000)]
Deactive code aging due to regressions
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
11415282
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13124
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Mon, 3 Dec 2012 21:47:39 +0000 (21:47 +0000)]
Issue 2429, core implementation and the protocol change
Review URL: https://codereview.chromium.org/
11421100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13123
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Mon, 3 Dec 2012 20:29:29 +0000 (20:29 +0000)]
Issue 2399 part 1: In debugger allow modifying local variable values
Review URL: https://codereview.chromium.org/
11415042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13122
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 3 Dec 2012 17:57:17 +0000 (17:57 +0000)]
Fix null dereference after OOM.
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11414295
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13121
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 3 Dec 2012 17:16:51 +0000 (17:16 +0000)]
Revert 13117: "Enable stub generation using Hydrogen/Lithium (again)"
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
11415261
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13120
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 3 Dec 2012 16:48:17 +0000 (16:48 +0000)]
Optimize non-ASCII string splitting with single-character search pattern
Review URL: https://chromiumcodereview.appspot.com/
11299163
Patch from Ben Noordhuis <ben@c9.io>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13119
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 3 Dec 2012 16:23:30 +0000 (16:23 +0000)]
Fix JSON stringify.
R=verwaest@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11421200
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13118
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 3 Dec 2012 15:51:05 +0000 (15:51 +0000)]
Enable stub generation using Hydrogen/Lithium (again)
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure.
Committed: https://code.google.com/p/v8/source/detail?r=13105
Review URL: https://codereview.chromium.org/
10701054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13117
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 3 Dec 2012 14:31:11 +0000 (14:31 +0000)]
Correctly handle AdjustAmountOfExternalAllocatedMemory(0).
R=yangguo@chromium.org
BUG=v8:2440
Review URL: https://chromiumcodereview.appspot.com/
11412299
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13114
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 3 Dec 2012 13:40:37 +0000 (13:40 +0000)]
ARM: make MacroAssembler::LoadRoot emit exactly one instruction when in predictable code size scope.
BUG=v8:2439
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11280276
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13113
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 3 Dec 2012 13:39:21 +0000 (13:39 +0000)]
Activate incremental code flushing by default.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
11418288
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13112
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 3 Dec 2012 13:38:39 +0000 (13:38 +0000)]
Adapt code flushing tests to new code aging.
R=danno@chromium.org
TEST=cctest/test-heap/TestCodeFlushing
Review URL: https://codereview.chromium.org/
11434082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13111
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 3 Dec 2012 13:34:08 +0000 (13:34 +0000)]
When notifying observers of a truncated array, don't call getters on deleted element indices
BUG=v8:2409
Review URL: https://codereview.chromium.org/
11414177
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13110
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 30 Nov 2012 20:58:51 +0000 (20:58 +0000)]
ARM: fix a bug with saving lr register in GenerateSmiToDouble.
BUG=163197
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11419255
Patch from Ulan Degenbaev <ulan@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13107
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 30 Nov 2012 17:45:45 +0000 (17:45 +0000)]
Revert 13105: "Enable stub generation using Hydrogen/Lithium."
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
11414262
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13106
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 30 Nov 2012 17:31:30 +0000 (17:31 +0000)]
Enable stub generation using Hydrogen/Lithium.
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure.
Review URL: https://codereview.chromium.org/
10701054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13105
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 30 Nov 2012 10:26:21 +0000 (10:26 +0000)]
Revert "Perform CPU sampling by CPU sampling thread only iff processing thread is not running."
This reverts r12985.
Review URL: https://codereview.chromium.org/
11428103
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13104
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 30 Nov 2012 10:14:21 +0000 (10:14 +0000)]
Turn off optimization for Mac Debug builds
Review URL: https://codereview.chromium.org/
11414237
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13102
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 30 Nov 2012 10:11:44 +0000 (10:11 +0000)]
Prepare push to trunk. Now working on version 3.15.8.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
11280252
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13100
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 30 Nov 2012 09:42:20 +0000 (09:42 +0000)]
Revert "Allow incremental marking when expose_gc is turned on."
This reverts r13072 from bleeding edge.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
11316268
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13099
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 29 Nov 2012 15:58:16 +0000 (15:58 +0000)]
Pass FixedArrayBase in elements.cc.
This avoids casting problems in case of empty_fixed_array as
FixedDoubleArray with size 0. This avoids prematurely shortcutting in
case of 0 all over the place, which in turn leads to errors.
Review URL: https://chromiumcodereview.appspot.com/
11299226
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13098
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 29 Nov 2012 15:55:27 +0000 (15:55 +0000)]
Use generic array functions to setup the boilerplate to avoid logic duplication.
Review URL: https://chromiumcodereview.appspot.com/
11361281
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13097
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 29 Nov 2012 15:13:49 +0000 (15:13 +0000)]
Remove unused private member variables found by clang -Wunused-private-field
Review URL: https://codereview.chromium.org/
11414207
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13096
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 29 Nov 2012 14:53:44 +0000 (14:53 +0000)]
Fix typo in FunctionTemplate::ReadOnlyPrototype.
Contributed by Peter Varga <pvarga@inf.u-szeged.hu>
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11434031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13095
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 29 Nov 2012 14:31:38 +0000 (14:31 +0000)]
Activate code aging by default.
Review URL: https://codereview.chromium.org/
11411257
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13094
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 29 Nov 2012 14:04:27 +0000 (14:04 +0000)]
MIPS: Also time external callbacks from generated code.
Port r13078 (
73f25483)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
11316236
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13093
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 29 Nov 2012 09:22:08 +0000 (09:22 +0000)]
MIPS: Faster implementation of Math.exp()
Port r13054 (
636985d7)
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11415192
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13089
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 29 Nov 2012 09:14:52 +0000 (09:14 +0000)]
MIPS: Fix register confusion in non-VFP3 BinaryOpStubs on ARM
Port r12980 (
13380d3b)
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11308158
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13088
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 29 Nov 2012 09:12:31 +0000 (09:12 +0000)]
MIPS: DoNumberTagD performance improvement
Port r12711 (
a8d45ac2)
Original commit message:
Allocate heap entry untagged and tag at end to avoid having to subtract off
the tag offset before storing the value.
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11280106
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13087
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 29 Nov 2012 09:09:39 +0000 (09:09 +0000)]
MIPS: ARM: Fast path for integer inputs to EmitVFPTruncate
Port r12676 (
7d5e7e81)
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11308134
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13086
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 29 Nov 2012 08:40:39 +0000 (08:40 +0000)]
MIPS: Only fill in holes if storing the number to the double array has succeeded.
Port r13067 (
c822cffa)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
11428068
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13085
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 29 Nov 2012 08:39:44 +0000 (08:39 +0000)]
MIPS: Ensure we do not clobber the register holding the elements backing store.
Port r13061 (
83bb6fcc)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
11316235
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13084
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 29 Nov 2012 08:37:41 +0000 (08:37 +0000)]
MIPS: Ensure double arrays are filled with holes when extended from variations of empty arrays.
Port r13056 (
9b2c1725)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
11411253
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13083
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 29 Nov 2012 08:34:19 +0000 (08:34 +0000)]
CopyPackedSmiToDoubleElements should fill the FixedDoubleArray with holes
BUG=v8:2433
Review URL: https://chromiumcodereview.appspot.com/
11280223
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13082
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 29 Nov 2012 07:38:00 +0000 (07:38 +0000)]
Simplify and fix code aging.
Making the code size predictable is hard, and to make things even more
complicated, the start of a function can contain various stuff like calls to a
profiling hook, receiver adjustment or dynamic frame alignment. Instead of
tackling all these problems separately, we now simply record the offset where
patching should happen later in the Code object itself.
Review URL: https://codereview.chromium.org/
11316218
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13081
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 28 Nov 2012 17:56:17 +0000 (17:56 +0000)]
Remove bogus assertion from idle notification.
Callbacks that run after garbage collection might fire a context dispose
notification and hence increse the counter before we actually reach this
position.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
11280214
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13080
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 28 Nov 2012 15:11:38 +0000 (15:11 +0000)]
Improve debug printing of non-strict arguments object.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
11316219
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13079
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 28 Nov 2012 15:11:21 +0000 (15:11 +0000)]
Also time external callbacks from generated code.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11411224
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13078
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 28 Nov 2012 14:02:30 +0000 (14:02 +0000)]
Relax restrictions on CONSTANT_FUNCTION descriptors in TransformPropertiesToFastFor.
Since r10174 they are not required to be in new space.
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11418181
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13077
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 28 Nov 2012 11:01:10 +0000 (11:01 +0000)]
Include more information in --prof log.
Main changes:
- include timestamps in profile ticks
- include code kind in code create events
- time execution in external code
- changed plot-timer-events.js to show the code kind being executed
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11428025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13074
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 28 Nov 2012 10:53:39 +0000 (10:53 +0000)]
Fixed pointer arithmetic in write barrier for large objects when marking progress bar is used.
BUG=
Review URL: https://codereview.chromium.org/
11421123
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13073
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 28 Nov 2012 08:43:10 +0000 (08:43 +0000)]
Allow incremental marking when expose_gc is turned on.
BUG=
Review URL: https://codereview.chromium.org/
11299154
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13072
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 28 Nov 2012 08:41:45 +0000 (08:41 +0000)]
Make ElementsAccessors more tolerant of varying backing store types
This avoids bogus calls to Fixed*Array::cast() when FastElements-backed objects are empty (and thus backed by empty_fixed_array).
Review URL: https://chromiumcodereview.appspot.com/
11299190
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13071
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 28 Nov 2012 08:35:46 +0000 (08:35 +0000)]
Properly handle-ify method calls to map() and GetLocalElementAccessorPair()
These are likely causing some of the flaky crashes in Object.observe code. I've reorganized some of the code to minimize the number of necessary calls to map() (by saving the result of map()->is_observed() in a local bool).
Also move down an unnecessarily early call to Uint32ToString when sending an element deletion notification.
Review URL: https://chromiumcodereview.appspot.com/
11316202
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13070
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 27 Nov 2012 17:03:12 +0000 (17:03 +0000)]
Move assertion about stopped marking up (again).
Weak persistent handle callbacks might trigger nested GCs that in turn
can cause marking to be restarted. The assertion needs to hold before
firing callbacks only.
R=ulan@chromium.org
TEST=cctest/test-api --stress-compaction
Review URL: https://codereview.chromium.org/
11413188
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13069
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 27 Nov 2012 15:30:12 +0000 (15:30 +0000)]
Disable stress for some unit test.
Some unit tests specifically test scavenges and forcing them to do
global GCs instead makes no sense. The GC stress builder triggers this.
R=yangguo@chromium.org
TEST=cctest/test-api --stress-compaction
Review URL: https://codereview.chromium.org/
11421098
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13068
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 27 Nov 2012 13:27:15 +0000 (13:27 +0000)]
Only fill in holes if storing the number to the double array has succeeded.
Review URL: https://chromiumcodereview.appspot.com/
11299200
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13067
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 27 Nov 2012 13:18:55 +0000 (13:18 +0000)]
Fix incremental marking to be off during heap snapshots.
The heap snapshot generator uses the UnreachableObjectsFilter which in
turn messes with marking bits. This requires incremental marking to be
turned off while the snapshot is being generated.
R=verwaest@chromium.org
TEST=cctest/test-heap-profiler --stress-compaction
Review URL: https://codereview.chromium.org/
11413183
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13066
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 27 Nov 2012 12:52:51 +0000 (12:52 +0000)]
Make unit tests that fill new-space work under stress.
This makes sure that unit tests that try to fill up the new-space work
on the GC stress buildbots as well.
R=yangguo@chromium.org
TEST=cctest/test-heap --gc-interval=500 --stress-compaction
Review URL: https://codereview.chromium.org/
11416200
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13065
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 27 Nov 2012 12:01:14 +0000 (12:01 +0000)]
Avoid double initialization of arrays.
Review URL: https://chromiumcodereview.appspot.com/
11413179
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13064
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Mon, 26 Nov 2012 16:16:49 +0000 (16:16 +0000)]
Forward white to grey transition only if slot is before the progress bar of a given object.
BUG=
Review URL: https://codereview.chromium.org/
11415070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13063
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Mon, 26 Nov 2012 16:14:49 +0000 (16:14 +0000)]
MIPS: Fix MIPS port of r13032 (
25d0edd7).
This commit fixes a small typo in r13032 (
25d0edd7).
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11348205
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13062
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 26 Nov 2012 15:58:27 +0000 (15:58 +0000)]
Ensure we do not clobber the register holding the elements backing store.
Review URL: https://chromiumcodereview.appspot.com/
11316168
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13061
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Mon, 26 Nov 2012 14:50:20 +0000 (14:50 +0000)]
Remove eager sweeping for lazy swept spaces. Try to find in SlowAllocateRaw a bounded number of times a big enough memory slot.
BUG=v8:2194
Review URL: https://codereview.chromium.org/
11420036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13058
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 26 Nov 2012 14:49:57 +0000 (14:49 +0000)]
Prepare push to trunk. Now working on version 3.15.7.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
11316166
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13057
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 26 Nov 2012 14:29:21 +0000 (14:29 +0000)]
Ensure double arrays are filled with holes when extended from variations of empty arrays.
BUG=162085
Review URL: https://chromiumcodereview.appspot.com/
11414155
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13056
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 26 Nov 2012 13:40:00 +0000 (13:40 +0000)]
Fix test262 expectations for fast implementation of Math.exp()
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
11418153
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13055
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 26 Nov 2012 13:12:35 +0000 (13:12 +0000)]
Faster implementation of Math.exp()
Review URL: https://codereview.chromium.org/
11418149
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13054
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 26 Nov 2012 12:55:47 +0000 (12:55 +0000)]
Make indexed intercepted methods enumerable by default.
R=ulan@chromium.org
BUG=162606
Review URL: https://codereview.chromium.org/
11348222
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13053
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 26 Nov 2012 10:23:16 +0000 (10:23 +0000)]
Remove unused heap debug utils code.
This functionality is already implemented by PathTracer.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11412162
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13052
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 26 Nov 2012 08:56:59 +0000 (08:56 +0000)]
Also time other API functions calling into javascript.
And prevent crash when starting chromium without --single-process.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11411144
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13051
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 26 Nov 2012 08:47:48 +0000 (08:47 +0000)]
Fix valgrind warnings.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11418138
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13050
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Fri, 23 Nov 2012 15:47:58 +0000 (15:47 +0000)]
Censor .caller if it is a strict function instead of throwing.
For details, see:
http://www.mail-archive.com/es-discuss@mozilla.org/msg19322.html
https://bugs.ecmascript.org/show_bug.cgi?id=310
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11417140
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13049
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Fri, 23 Nov 2012 15:45:03 +0000 (15:45 +0000)]
Fix strict mode test case, so that it succeeds for the right reason.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11348196
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13048
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Fri, 23 Nov 2012 15:43:54 +0000 (15:43 +0000)]
Object.observe: Tests for __define{G,S}etter__.
R=adamk@chromium.org,rafaelw@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11348193
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13047
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Fri, 23 Nov 2012 15:39:25 +0000 (15:39 +0000)]
MIPS: Get rid of static module allocation, do it in code.
Port r13033 (
58c2efbb)
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11413146
Patch from palfia <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13046
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Fri, 23 Nov 2012 14:35:13 +0000 (14:35 +0000)]
Prepare push to trunk. Now working on version 3.15.6.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11308182
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13043
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 23 Nov 2012 13:23:39 +0000 (13:23 +0000)]
Force small array literals to have FAST_ELEMENTs
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
11414139
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13042
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 23 Nov 2012 12:32:24 +0000 (12:32 +0000)]
Fix JSON.stringify for objects with interceptor handlers.
BUG=161028
Review URL: https://chromiumcodereview.appspot.com/
11348209
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13041
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Fri, 23 Nov 2012 12:22:16 +0000 (12:22 +0000)]
Reset progress bar of object to 0 when RecordWrites changes object color to grey.
BUG=v8:2423
Review URL: https://codereview.chromium.org/
11308177
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13040
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Fri, 23 Nov 2012 10:53:03 +0000 (10:53 +0000)]
Revert r13025 and r13026 (they introduced a bug on arm and regressed octane crypto).
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11316151
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13039
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 22 Nov 2012 16:22:57 +0000 (16:22 +0000)]
- Initialize the result array with holes if we concat a double array into an object array, since it may cause a marking step while boxing a double.
- Ensure we go holey if we are concatting any holey array.
Review URL: https://chromiumcodereview.appspot.com/
11413142
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13038
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 22 Nov 2012 14:59:52 +0000 (14:59 +0000)]
PredictableCodeSizeScope checks the expected size now.
We still have some problems on ARM, so the size check currently
optional. Furthermore, we don't use PredictableCodeSizeScope at all
place where we should do it. Both issues are cleaned up in upcoming
CLs.
Review URL: https://codereview.chromium.org/
11348195
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13037
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 22 Nov 2012 13:04:11 +0000 (13:04 +0000)]
Add parallel recompilation time to histogram and plot execution pause times.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11412125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13036
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 22 Nov 2012 10:31:42 +0000 (10:31 +0000)]
Object.observe: More tests for accessor reconfiguration.
R=adamk@chromium.org,rafaelw@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11280118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13035
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 22 Nov 2012 10:28:29 +0000 (10:28 +0000)]
Moved buffer handling to AssemblerBase.
This removed a lot of copy-n-paste code and is very handy for some upcoming
changes (regarding predictable code size).
Review URL: https://codereview.chromium.org/
11416133
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13034
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 22 Nov 2012 10:25:22 +0000 (10:25 +0000)]
Get rid of static module allocation, do it in code.
Modules now have their own local scope, represented by their own context.
Module instance objects have an accessor for every export that forwards
access to the respective slot from the module's context. (Exports that are
modules themselves, however, are simple data properties.)
All modules have a _hosting_ scope/context, which (currently) is the
(innermost) enclosing global scope. To deal with recursion, nested modules
are hosted by the same scope as global ones.
For every (global or nested) module literal, the hosting context has an
internal slot that points directly to the respective module context. This
enables quick access to (statically resolved) module members by 2-dimensional
access through the hosting context. For example,
module A {
let x;
module B { let y; }
}
module C { let z; }
allocates contexts as follows:
[header| .A | .B | .C | A | C ] (global)
| | |
| | +-- [header| z ] (module)
| |
| +------- [header| y ] (module)
|
+------------ [header| x | B ] (module)
Here, .A, .B, .C are the internal slots pointing to the hosted module
contexts, whereas A, B, C hold the actual instance objects (note that every
module context also points to the respective instance object through its
extension slot in the header).
To deal with arbitrary recursion and aliases between modules,
they are created and initialized in several stages. Each stage applies to
all modules in the hosting global scope, including nested ones.
1. Allocate: for each module _literal_, allocate the module contexts and
respective instance object and wire them up. This happens in the
PushModuleContext runtime function, as generated by AllocateModules
(invoked by VisitDeclarations in the hosting scope).
2. Bind: for each module _declaration_ (i.e. literals as well as aliases),
assign the respective instance object to respective local variables. This
happens in VisitModuleDeclaration, and uses the instance objects created
in the previous stage.
For each module _literal_, this phase also constructs a module descriptor
for the next stage. This happens in VisitModuleLiteral.
3. Populate: invoke the DeclareModules runtime function to populate each
_instance_ object with accessors for it exports. This is generated by
DeclareModules (invoked by VisitDeclarations in the hosting scope again),
and uses the descriptors generated in the previous stage.
4. Initialize: execute the module bodies (and other code) in sequence. This
happens by the separate statements generated for module bodies. To reenter
the module scopes properly, the parser inserted ModuleStatements.
R=mstarzinger@chromium.org,svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11093074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13033
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Thu, 22 Nov 2012 10:19:05 +0000 (10:19 +0000)]
Add dehoisting to the string printout of hydrogen and lithium instructions.
This is nice when looking at hydrogen graphs, to see the real key offset.
R=mmassi@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11348176
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13032
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 22 Nov 2012 08:35:21 +0000 (08:35 +0000)]
Fix counters in d8.
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11416135
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13031
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 22 Nov 2012 07:58:59 +0000 (07:58 +0000)]
Reduced TLS accesses even further.
Thread the Isolate through FindCodeInCache, FindCodeInSpecialCache and
SetProperty. Reduced the number of TLS accesses while running the Octane
benchmark down to 19% compared to the beginning of the cleanups.
Review URL: https://codereview.chromium.org/
11411033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13030
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 22 Nov 2012 07:05:20 +0000 (07:05 +0000)]
Use slot instead of value in the write barrier to record write from code.
BUG=
Review URL: https://codereview.chromium.org/
11412096
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13029
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Wed, 21 Nov 2012 14:01:10 +0000 (14:01 +0000)]
Fix performance regression in DXT5Decoder.js.
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11412129
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13028
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 21 Nov 2012 12:50:49 +0000 (12:50 +0000)]
Object.observe: Unblacklist some tests involving indexed properties
These were erroneously disabled because they were expecting indexed properties to be of Number type when appearing as the "name" in change records. But the "name" property will always be a string. Fixed assertRecordsEqual() to enforce this in expectations.
BUG=v8:2409
Review URL: https://codereview.chromium.org/
11280105
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13027
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00