platform/upstream/v8.git
11 years agoReport deoptimization error in release mode.
mstarzinger@chromium.org [Thu, 6 Dec 2012 12:43:05 +0000 (12:43 +0000)]
Report deoptimization error in release mode.

This makes sure that we crash and burn in release mode in cases where
the deoptimizer is unable to find the PC offset into unoptimized code
during deoptimization. So far this failure got swallowed in production.

R=ulan@chromium.org
BUG=chromium:159140

Review URL: https://codereview.chromium.org/11451033

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd StringBufferStream
yangguo@chromium.org [Thu, 6 Dec 2012 11:49:15 +0000 (11:49 +0000)]
Add StringBufferStream

add a class StringBufferStream which will replace
StringInputBuffer and SafeStringInputBuffer and requires no
ascii/two byte encoding scheme

R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11428106
Patch from Dan Carney <dcarney@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoTake instrumentation overhead into account when plotting.
yangguo@chromium.org [Wed, 5 Dec 2012 16:22:14 +0000 (16:22 +0000)]
Take instrumentation overhead into account when plotting.

R=jkummerow@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/11348298

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix isolate bug introduced by generated code stubs
danno@chromium.org [Wed, 5 Dec 2012 16:16:32 +0000 (16:16 +0000)]
Fix isolate bug introduced by generated code stubs

Review URL: https://codereview.chromium.org/11441013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoImprove array to string conversion.
yangguo@chromium.org [Wed, 5 Dec 2012 15:49:22 +0000 (15:49 +0000)]
Improve array to string conversion.

BUG=v8:2435

Review URL: https://chromiumcodereview.appspot.com/11348349

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix spec violations related to regexp.lastIndex
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

11 years agoMake Object.observe on the global object functional
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

11 years agoObject.observe: notify of __proto__ changes
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

11 years agoEnable stub generation using Hydrogen/Lithium (again)
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

11 years agoPass Isolate to MakeWeak(), IsWeak(), and AddObjectGroup().
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

11 years agoPass Isolate to Local<T>::New()
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

11 years agoIntroduce callback for resolving global object name while taking heap snapshot
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

11 years agoRemove some dead code.
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

11 years agoForce inlining for hot interface functions.
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

11 years agoPrepare push to trunk. Now working on version 3.15.9.
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

11 years agoChange deprecated semantics of function template signatures.
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

11 years agoEnforce stack allocation of TryCatch blocks.
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

11 years agoFix external exceptions in external try-catch handlers.
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

11 years agoUnify object groups iteration in global handles.
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

11 years agoFix gcmole offenders.
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

11 years agoRemove bogus test and add check for OOM in TryCall.
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

11 years agoRemove extraneous forced rejuvenations in code aging
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

11 years agoDeactive code aging due to regressions
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

11 years agoIssue 2429, core implementation and the protocol change
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

11 years agoIssue 2399 part 1: In debugger allow modifying local variable values
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

11 years agoFix null dereference after OOM.
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

11 years agoRevert 13117: "Enable stub generation using Hydrogen/Lithium (again)"
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

11 years agoOptimize non-ASCII string splitting with single-character search pattern
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

11 years agoFix JSON stringify.
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

11 years agoEnable stub generation using Hydrogen/Lithium (again)
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

11 years agoCorrectly handle AdjustAmountOfExternalAllocatedMemory(0).
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

11 years agoARM: make MacroAssembler::LoadRoot emit exactly one instruction when in predictable...
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

11 years agoActivate incremental code flushing by default.
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

11 years agoAdapt code flushing tests to new code aging.
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

11 years agoWhen notifying observers of a truncated array, don't call getters on deleted element...
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

11 years agoARM: fix a bug with saving lr register in GenerateSmiToDouble.
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

11 years agoRevert 13105: "Enable stub generation using Hydrogen/Lithium."
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

11 years agoEnable stub generation using Hydrogen/Lithium.
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

11 years agoRevert "Perform CPU sampling by CPU sampling thread only iff processing thread is...
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

11 years agoTurn off optimization for Mac Debug builds
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

11 years agoPrepare push to trunk. Now working on version 3.15.8.
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

11 years agoRevert "Allow incremental marking when expose_gc is turned on."
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

11 years agoPass FixedArrayBase in elements.cc.
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

11 years agoUse generic array functions to setup the boilerplate to avoid logic duplication.
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

11 years agoRemove unused private member variables found by clang -Wunused-private-field
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

11 years agoFix typo in FunctionTemplate::ReadOnlyPrototype.
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

11 years agoActivate code aging by default.
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

11 years agoMIPS: Also time external callbacks from generated code.
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

11 years agoMIPS: Faster implementation of Math.exp()
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

11 years agoMIPS: Fix register confusion in non-VFP3 BinaryOpStubs on ARM
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

11 years agoMIPS: DoNumberTagD performance improvement
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

11 years agoMIPS: ARM: Fast path for integer inputs to EmitVFPTruncate
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

11 years agoMIPS: Only fill in holes if storing the number to the double array has succeeded.
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

11 years agoMIPS: Ensure we do not clobber the register holding the elements backing store.
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

11 years agoMIPS: Ensure double arrays are filled with holes when extended from variations of...
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

11 years agoCopyPackedSmiToDoubleElements should fill the FixedDoubleArray with holes
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

11 years agoSimplify and fix code aging.
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

11 years agoRemove bogus assertion from idle notification.
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

11 years agoImprove debug printing of non-strict arguments object.
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

11 years agoAlso time external callbacks from generated code.
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

11 years agoRelax restrictions on CONSTANT_FUNCTION descriptors in TransformPropertiesToFastFor.
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

11 years agoInclude more information in --prof log.
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

11 years agoFixed pointer arithmetic in write barrier for large objects when marking progress...
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

11 years agoAllow incremental marking when expose_gc is turned on.
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

11 years agoMake ElementsAccessors more tolerant of varying backing store types
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

11 years agoProperly handle-ify method calls to map() and GetLocalElementAccessorPair()
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

11 years agoMove assertion about stopped marking up (again).
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

11 years agoDisable stress for some unit test.
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

11 years agoOnly fill in holes if storing the number to the double array has succeeded.
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

11 years agoFix incremental marking to be off during heap snapshots.
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

11 years agoMake unit tests that fill new-space work under stress.
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

11 years agoAvoid double initialization of arrays.
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

11 years agoForward white to grey transition only if slot is before the progress bar of a given...
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

11 years agoMIPS: Fix MIPS port of r13032 (25d0edd7).
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

11 years agoEnsure we do not clobber the register holding the elements backing store.
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

11 years agoRemove eager sweeping for lazy swept spaces. Try to find in SlowAllocateRaw a bounded...
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

11 years agoPrepare push to trunk. Now working on version 3.15.7.
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

11 years agoEnsure double arrays are filled with holes when extended from variations of empty...
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

11 years agoFix test262 expectations for fast implementation of Math.exp()
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

11 years agoFaster implementation of Math.exp()
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

11 years agoMake indexed intercepted methods enumerable by default.
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

11 years agoRemove unused heap debug utils code.
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

11 years agoAlso time other API functions calling into javascript.
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

11 years agoFix valgrind warnings.
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

11 years agoCensor .caller if it is a strict function instead of throwing.
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

11 years agoFix strict mode test case, so that it succeeds for the right reason.
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

11 years agoObject.observe: Tests for __define{G,S}etter__.
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

11 years agoMIPS: Get rid of static module allocation, do it in code.
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

11 years agoPrepare push to trunk. Now working on version 3.15.6.
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

11 years agoForce small array literals to have FAST_ELEMENTs
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

11 years agoFix JSON.stringify for objects with interceptor handlers.
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

11 years agoReset progress bar of object to 0 when RecordWrites changes object color to grey.
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

11 years agoRevert r13025 and r13026 (they introduced a bug on arm and regressed octane crypto).
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

11 years ago- Initialize the result array with holes if we concat a double array into an object...
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

11 years agoPredictableCodeSizeScope checks the expected size now.
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

11 years agoAdd parallel recompilation time to histogram and plot execution pause times.
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

11 years agoObject.observe: More tests for accessor reconfiguration.
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

11 years agoMoved buffer handling to AssemblerBase.
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

11 years agoGet rid of static module allocation, do it in code.
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

11 years agoAdd dehoisting to the string printout of hydrogen and lithium instructions.
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