platform/upstream/v8.git
11 years agoCheck that index and length are Smi in bounds check.
verwaest@chromium.org [Tue, 21 Aug 2012 16:46:25 +0000 (16:46 +0000)]
Check that index and length are Smi in bounds check.

BUG=chromium:142218
R=danno@chromium.org

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

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

11 years agoIntroduce DISABLE_ASAN macro to disable AddressSanitizer instrumentation for given...
vegorov@chromium.org [Tue, 21 Aug 2012 14:21:53 +0000 (14:21 +0000)]
Introduce DISABLE_ASAN macro to disable AddressSanitizer instrumentation for given functions.

Disable AddressSanitizer instrumentation for StackTracer::Trace.

R=danno@chromium.org
BUG=chromium:134722

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

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

11 years agoMIPS: Fix write barrier for StoreKeyedFastElements on ARM.
danno@chromium.org [Tue, 21 Aug 2012 11:33:49 +0000 (11:33 +0000)]
MIPS: Fix write barrier for StoreKeyedFastElements on ARM.

Port r12238 (300f3dac)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10828216
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoPrepare push to trunk. Now working on version 3.13.4.
yangguo@chromium.org [Tue, 21 Aug 2012 10:45:44 +0000 (10:45 +0000)]
Prepare push to trunk.  Now working on version 3.13.4.

R=ulan@chromium.org
BUG=

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

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

11 years agoRevert r12346 (Introduce InternalProperty type and expose internal properties for...
yangguo@chromium.org [Tue, 21 Aug 2012 09:48:26 +0000 (09:48 +0000)]
Revert r12346 (Introduce InternalProperty type and expose internal properties for bound functions)

Original CL: https://chromiumcodereview.appspot.com/10834376

BUG=

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

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

11 years agoRevert r12258, r12300 and r12302 (global regexp).
yangguo@chromium.org [Tue, 21 Aug 2012 09:46:23 +0000 (09:46 +0000)]
Revert r12258, r12300 and r12302 (global regexp).

R=ulan@chromium.org
BUG=

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

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

11 years agoFix mjsunit/debug-script.js failure that occurs when running with the --isolates...
ulan@chromium.org [Tue, 21 Aug 2012 07:06:21 +0000 (07:06 +0000)]
Fix mjsunit/debug-script.js failure that occurs when running with the --isolates flag.

R=yangguo@chromium.org

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

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

11 years agoIntroduce InternalProperty type and expose internal properties for bound functions
peter.rybin@gmail.com [Mon, 20 Aug 2012 21:49:19 +0000 (21:49 +0000)]
Introduce InternalProperty type and expose internal properties for bound functions

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

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

11 years agoWhile allocating code objects, perform the incremental marking step before NULLing...
verwaest@chromium.org [Mon, 20 Aug 2012 14:44:26 +0000 (14:44 +0000)]
While allocating code objects, perform the incremental marking step before NULLing the new object. Otherwise the code cache cannot iterate the code space anymore, which is required to clear ICs.

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

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

11 years agoHandle native callbacks without getters.
svenpanne@chromium.org [Mon, 20 Aug 2012 14:32:32 +0000 (14:32 +0000)]
Handle native callbacks without getters.

TEST=cctest/test-api/SetterOnly,cctest/test-api/NoAccessors

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

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

11 years agoFix test failures introduced by r12342.
ulan@chromium.org [Mon, 20 Aug 2012 13:19:52 +0000 (13:19 +0000)]
Fix test failures introduced by r12342.

Add missing context disposed notifications in test-api.
Move send-idle-notification flag to d8 options so that it is available in d8
when v8 is build as a shared libarary.

R=yangguo@chromium.org

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

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

11 years agoFlush monomorphic ICs on context disposal instead of context exit.
ulan@chromium.org [Mon, 20 Aug 2012 12:09:03 +0000 (12:09 +0000)]
Flush monomorphic ICs on context disposal instead of context exit.

R=mstarzinger@chromium.org

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

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

11 years agoRename JSGlobalProxy::context to native_context,
rossberg@chromium.org [Mon, 20 Aug 2012 11:35:50 +0000 (11:35 +0000)]
Rename JSGlobalProxy::context to native_context,
for clarity and consistency with GlobalObject::native_context.

R=svenpanne@chromium.org
BUG=
TEST=

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

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

11 years agoPrepare push to trunk. Now working on version 3.13.3.
verwaest@chromium.org [Mon, 20 Aug 2012 09:17:58 +0000 (09:17 +0000)]
Prepare push to trunk.  Now working on version 3.13.3.

R=danno@chromium.org
BUG=

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

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

11 years agoFix typo in Add|RemoveGCPrologueCallback
yangguo@chromium.org [Mon, 20 Aug 2012 07:32:30 +0000 (07:32 +0000)]
Fix typo in Add|RemoveGCPrologueCallback

BUG=

Review URL: https://chromiumcodereview.appspot.com/10836234
Patch from Yang Gu <yang.gu@intel.com>.

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

11 years agoAdd input check to %DebugSetScriptSource.
yangguo@chromium.org [Fri, 17 Aug 2012 15:21:15 +0000 (15:21 +0000)]
Add input check to %DebugSetScriptSource.

R=verwaest@chromium.org
BUG=v8:2296

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

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

11 years agoRename Context::global to Context::global_object,
rossberg@chromium.org [Fri, 17 Aug 2012 12:59:00 +0000 (12:59 +0000)]
Rename Context::global to Context::global_object,
in preparation for global lexical scope.

R=mstarzinger@chromium.org
BUG=
TEST=

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

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

11 years agoDeoptimization support for accessors.
svenpanne@chromium.org [Fri, 17 Aug 2012 10:43:32 +0000 (10:43 +0000)]
Deoptimization support for accessors.

Highlights of this CL:

 * Introduced a new opcode in the deoptimizer for a setter stub frame.

 * Added a global setter stub for returning after deoptimizing a setter.

 * We do not need special deopt support for getters, although the getter stub creates an internal frame. The normal machinery works just right for this case, although we generate a stack that can never occur during normal fullcode execution. If this hurts us one day, we can parameterize and reuse the setter deopt machinery.

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

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

11 years agoRename "global context" to "native context",
rossberg@chromium.org [Fri, 17 Aug 2012 09:03:08 +0000 (09:03 +0000)]
Rename "global context" to "native context",
in anticipation of the upcoming lexical global scope.

Mostly automatised as:

for FILE in `egrep -ril "global[ _]?context" src test/cctest`
do
  echo $FILE
  sed "s/Global context/Native context/g" <$FILE >$FILE.0
  sed "s/global context/native context/g" <$FILE.0 >$FILE.1
  sed "s/global_context/native_context/g" <$FILE.1 >$FILE.2
  sed "s/GLOBAL_CONTEXT/NATIVE_CONTEXT/g" <$FILE.2 >$FILE.3
  sed "s/GlobalContext/NativeContext/g" <$FILE.3 >$FILE
  rm $FILE.[0-9]
done

R=mstarzinger@chromium.org
BUG=
TEST=

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

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

11 years agoPrepare push to trunk. Now working on version 3.13.2.
verwaest@chromium.org [Thu, 16 Aug 2012 15:39:37 +0000 (15:39 +0000)]
Prepare push to trunk.  Now working on version 3.13.2.

R=mstarzinger@chromium.org
BUG=

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

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

11 years agoShow map -> transition array -> descriptor array to the heap profiler.
verwaest@chromium.org [Thu, 16 Aug 2012 14:25:55 +0000 (14:25 +0000)]
Show map -> transition array -> descriptor array to the heap profiler.

BUG=chromium:142625

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

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

11 years agoForce eager compilation of some function literals.
mstarzinger@chromium.org [Thu, 16 Aug 2012 11:54:48 +0000 (11:54 +0000)]
Force eager compilation of some function literals.

In case a function literal is followed by parenthesis, we consider this
a hint that it will be called immediately. If we happen to have parsed
that function literal eagerly, we can also compile it eagerly.

R=ulan@chromium.org

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

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

11 years agoMIPS: Swapped transition array and descriptor array.
verwaest@chromium.org [Thu, 16 Aug 2012 11:42:02 +0000 (11:42 +0000)]
MIPS: Swapped transition array and descriptor array.

Port r12298 (7b39ef67)

Original commit message:
Now a map points to a transition array which contains the descriptor array. The descriptor array is now immutable. The next step is to share the descriptor array with all back-pointed maps as long as there is a single line of extension. Maps that require a descriptor array but don't need transitions will still need a pseudo-empty transition array to contain the descriptor array.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10827335
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoChange the maximum optimization count into a commandline flag.
svenpanne@chromium.org [Thu, 16 Aug 2012 11:40:03 +0000 (11:40 +0000)]
Change the maximum optimization count into a commandline flag.

This is needed for some unit tests, which otherwise do not test what people
think they do. ;-)

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

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

11 years agoFix accessor lookup in crankshaft.
svenpanne@chromium.org [Thu, 16 Aug 2012 10:35:39 +0000 (10:35 +0000)]
Fix accessor lookup in crankshaft.

Seeing monomorphic type feedback plus an AccessorPair does not necessarily imply
that the corresponding getter/setter is really there, so we have to check for
this explictly.

TEST=mjsunit/object-define-property

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

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

11 years agoMIPS: Check for function in %_CallFunction.
yangguo@chromium.org [Thu, 16 Aug 2012 09:46:04 +0000 (09:46 +0000)]
MIPS: Check for function in %_CallFunction.

Port r12299 (f6372257)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10834317
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoExtend constructor inlining test case.
mstarzinger@chromium.org [Thu, 16 Aug 2012 09:13:25 +0000 (09:13 +0000)]
Extend constructor inlining test case.

This makes sure that deoptimization really happens in each hydrogen
context by not using binary operations but loads instead. This is
needed because we cannot clear BinaryOpICs explicitly.

R=svenpanne@chromium.org
TEST=mjsunit/compiler/inline-construct

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

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

11 years agoMIPS: Fix improved LoadICs for dictionaries with callbacks.
mstarzinger@chromium.org [Thu, 16 Aug 2012 09:10:10 +0000 (09:10 +0000)]
MIPS: Fix improved LoadICs for dictionaries with callbacks.

Port r12311 (f698ddd7)

Original commit message:
This fixes the positive lookup performed by these LoadICs, to use the
holder instead of the receiver to perfrom the lookup on. It also extends
this improvement to KeyedLoadICs. And it fixes a bug introduced for the
JavaScript getter case of a LoadIC.

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10823326
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoFix bug in compare IC. BUG=2291
erik.corry@gmail.com [Wed, 15 Aug 2012 15:08:42 +0000 (15:08 +0000)]
Fix bug in compare IC.  BUG=2291
Review URL: https://chromiumcodereview.appspot.com/10830334

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

11 years agoImproved constructor inlining unit tests.
svenpanne@chromium.org [Wed, 15 Aug 2012 09:39:13 +0000 (09:39 +0000)]
Improved constructor inlining unit tests.

Currently we inline functions with different contexts only on ia32, so we have
to move the helper functions for the various contexts to the top level. Further
more, "new Object()" seems to prevent inlining, too, so we us a simple object
literal.

Although things get consistently inlined now, something strange seems to happen
in test/effect contexts: The DEOPT output seems to contain too few frames, and
we don't get any DEOPT ouput after the first time for those contexts. This has
to be investigated...

TBR=mstarzinger@chromium.org

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

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

11 years agoFix improved LoadICs for dictionaries with callbacks.
mstarzinger@chromium.org [Tue, 14 Aug 2012 13:17:47 +0000 (13:17 +0000)]
Fix improved LoadICs for dictionaries with callbacks.

This fixes the positive lookup performed by these LoadICs, to use the
holder instead of the receiver to perfrom the lookup on. It also extends
this improvement to KeyedLoadICs. And it fixes a bug introduced for the
JavaScript getter case of a LoadIC.

R=erik.corry@gmail.com
BUG=chromium:142088
TEST=cctest/test-api/Regress142088,cctest/test-api/Regress137002b

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

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

11 years agoDo checks when receiving external string resources through the API.
yangguo@chromium.org [Tue, 14 Aug 2012 12:16:38 +0000 (12:16 +0000)]
Do checks when receiving external string resources through the API.

This is to find incorrect API usage.

R=ulan@chromium.org
BUG=140050

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

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

11 years agoEnsure capacity when adding parts in String.replace.
yangguo@chromium.org [Tue, 14 Aug 2012 11:33:12 +0000 (11:33 +0000)]
Ensure capacity when adding parts in String.replace.

R=ulan@chromium.org
BUG=v8:2289
TEST=regress-2289.js

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

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

11 years agoPrevent segfault on undefined inline runtime call.
yangguo@chromium.org [Tue, 14 Aug 2012 10:06:34 +0000 (10:06 +0000)]
Prevent segfault on undefined inline runtime call.

R=mstarzinger@chromium.org
BUG=v8:2286

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

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

11 years agoDisable array index dehoisting due to stability issues.
erik.corry@gmail.com [Tue, 14 Aug 2012 09:22:34 +0000 (09:22 +0000)]
Disable array index dehoisting due to stability issues.
Review URL: https://chromiumcodereview.appspot.com/10834303

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

11 years agoFix indexing bug in regexp, part 2.
yangguo@chromium.org [Mon, 13 Aug 2012 15:53:40 +0000 (15:53 +0000)]
Fix indexing bug in regexp, part 2.

The previous fix initialized the start index incorrectly.

BUG=

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

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

11 years agoRemove prototype of global builtins object.
mstarzinger@chromium.org [Mon, 13 Aug 2012 15:34:49 +0000 (15:34 +0000)]
Remove prototype of global builtins object.

R=yangguo@chromium.org
BUG=v8:2284
TEST=mjsunit/regress/regress-2284

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

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

11 years agoFix wrong indexing in global regexp.
yangguo@chromium.org [Mon, 13 Aug 2012 15:26:46 +0000 (15:26 +0000)]
Fix wrong indexing in global regexp.

R=ulan@chromium.org
BUG=142087

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

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

11 years agoCheck for function in %_CallFunction.
yangguo@chromium.org [Mon, 13 Aug 2012 12:11:26 +0000 (12:11 +0000)]
Check for function in %_CallFunction.

R=mstarzinger@chromium.org
BUG=v8:2285

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

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

11 years agoSwapped transition array and descriptor array.
verwaest@chromium.org [Mon, 13 Aug 2012 08:43:16 +0000 (08:43 +0000)]
Swapped transition array and descriptor array.

Now a map points to a transition array which contains the descriptor array. The descriptor array is now immutable. The next step is to share the descriptor array with all back-pointed maps as long as there is a single line of extension. Maps that require a descriptor array but don't need transitions will still need a pseudo-empty transition array to contain the descriptor array.

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

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

11 years agoFix array-iteration test case.
yangguo@chromium.org [Mon, 13 Aug 2012 08:32:17 +0000 (08:32 +0000)]
Fix array-iteration test case.

R=verwaest@chromium.org
BUG=v8:2282

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

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

11 years agoPrepare push to trunk. Now working on version 3.13.1.
mstarzinger@chromium.org [Fri, 10 Aug 2012 14:41:52 +0000 (14:41 +0000)]
Prepare push to trunk.  Now working on version 3.13.1.

R=ulan@chromium.org

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

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

11 years agoFix compile failure on Win64 introduced in r12291.
mstarzinger@chromium.org [Fri, 10 Aug 2012 14:21:46 +0000 (14:21 +0000)]
Fix compile failure on Win64 introduced in r12291.

R=ulan@chromium.org

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

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

11 years agoFix intermittent failure in ReleaseOverReservedPages on x64.
erik.corry@gmail.com [Fri, 10 Aug 2012 13:45:22 +0000 (13:45 +0000)]
Fix intermittent failure in ReleaseOverReservedPages on x64.
BUG=v8:2216
Review URL: https://chromiumcodereview.appspot.com/10828253

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

11 years agoAdd histograms for total allocated/live heap size, as well as allocated size and...
mstarzinger@chromium.org [Fri, 10 Aug 2012 13:09:31 +0000 (13:09 +0000)]
Add histograms for total allocated/live heap size, as well as allocated size and percentage of total for map and cell

BUG=none
TEST=none
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10854043
Patch from Jochen Eisinger <jochen@chromium.org>.

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

11 years agoMIPS: Improve load IC so it can call a native accessor even if the holder is in dicti...
erik.corry@gmail.com [Fri, 10 Aug 2012 12:28:12 +0000 (12:28 +0000)]
MIPS: Improve load IC so it can call a native accessor even if the holder is in dictionary mode. Add a flag to all maps to indicate whether they are used for dictionary (normalized) objects or fast mode objects.  This is a commit of https://chromiumcodereview.appspot.com/10826213/ for palfia. This is a port of r12264, https://chromiumcodereview.appspot.com/10831153

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

11 years agoAllow multiple lines of custom flags in javascript tests.
yangguo@chromium.org [Fri, 10 Aug 2012 12:26:33 +0000 (12:26 +0000)]
Allow multiple lines of custom flags in javascript tests.

R=ulan@chromium.org
BUG=

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

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

11 years agoRevert inadvertent commit of testing change to flag-definitions.h
erik.corry@gmail.com [Fri, 10 Aug 2012 12:26:21 +0000 (12:26 +0000)]
Revert inadvertent commit of testing change to flag-definitions.h

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

11 years agoFix the full compiler on ARM to always generate the same code
erik.corry@gmail.com [Fri, 10 Aug 2012 12:24:06 +0000 (12:24 +0000)]
Fix the full compiler on ARM to always generate the same code
regardless of the detected CPU.  This is a requirement for the
debugger and the deoptimizer, which both expect that code from
the snapshot (compiled without VFP and ARM7) should have the
same layout as code compiled later.

This is another change to make snapshots more robust with
arbitrary code.
Review URL: https://chromiumcodereview.appspot.com/10824235

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

11 years agoInline simple setter calls.
svenpanne@chromium.org [Fri, 10 Aug 2012 09:05:42 +0000 (09:05 +0000)]
Inline simple setter calls.

Currently only simple setter calls are handled (i.e. no calls in count
operations or compound assignments), and deoptimization in the setter is not
handled at all. Because of the latter, we temporarily hide this feature behind
the --inline-accessors flag, just like inlining getters.

We now use an enum everywhere we depend on the handling of a return value,
passing around several boolean would be more confusing.

Made VisitReturnStatement and the final parts of TryInline more similar, so
matching them visually is a bit easier now.

Simplified the signature of AddLeaveInlined, the target of the HGoto can simply
be retrieved from the function state.

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

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

11 years agoRemove obsolete SLOT_ADDR macro usages.
mstarzinger@chromium.org [Thu, 9 Aug 2012 12:25:03 +0000 (12:25 +0000)]
Remove obsolete SLOT_ADDR macro usages.

R=yangguo@chromium.org

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

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

11 years agoUse the correct oracle in TestContext::BuildBranch.
svenpanne@chromium.org [Thu, 9 Aug 2012 11:44:56 +0000 (11:44 +0000)]
Use the correct oracle in TestContext::BuildBranch.

When inlining is being done, it is crucial to use the correct type feedback
oracle with a given type feedback ID. To ensure this, TestContext now carries an
oracle which is associated with the context's condition, and these are both used
together in TestContext::BuildBranch.

Note that in VisitReturnStatement and TryInline we are currently lucky that the
oracles don't go out of sync in an observable way, but this will change when we
inline setters. Therefore, there is no separate test case...

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

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

11 years agoMIPS: Improve constant element index access code generation
yangguo@chromium.org [Thu, 9 Aug 2012 08:41:56 +0000 (08:41 +0000)]
MIPS: Improve constant element index access code generation

Port r12232 (588ccf83)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10825263
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoMIPS: Refactor Math.min/max to be a single HInstruction.
yangguo@chromium.org [Thu, 9 Aug 2012 08:28:52 +0000 (08:28 +0000)]
MIPS: Refactor Math.min/max to be a single HInstruction.

Port r12265 (7501dd73)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/10854053
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agotools/push-to-trunk.sh: Add a check whether grepping for the just-committed SVN revis...
jkummerow@chromium.org [Wed, 8 Aug 2012 14:57:10 +0000 (14:57 +0000)]
tools/push-to-trunk.sh: Add a check whether grepping for the just-committed SVN revision number succeeded.

R=yangguo@chromium.org

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

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

11 years agoFix Win64 compile error caused by r12272.
ulan@chromium.org [Wed, 8 Aug 2012 09:46:45 +0000 (09:46 +0000)]
Fix Win64 compile error caused by r12272.

R=mstarzinger@chromium.org

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

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

11 years agoTemporary skip failure on simulators due to r12270.
mstarzinger@chromium.org [Wed, 8 Aug 2012 09:19:55 +0000 (09:19 +0000)]
Temporary skip failure on simulators due to r12270.

R=ulan@chromium.org
TEST=test262/S13.2.1_A1_T1

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

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

11 years agoFix mozilla test expectations.
yangguo@chromium.org [Wed, 8 Aug 2012 08:44:29 +0000 (08:44 +0000)]
Fix mozilla test expectations.

R=svenpanne@chromium.org
BUG=

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

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

11 years agoFix parseInt's octal parsing behavior (ECMA-262 Annex E 15.1.2.2).
yangguo@chromium.org [Wed, 8 Aug 2012 07:44:17 +0000 (07:44 +0000)]
Fix parseInt's octal parsing behavior (ECMA-262 Annex E 15.1.2.2).

R=svenpanne@chromium.org
BUG=v8:1645
TEST=test262, parse-int-float.js

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

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

11 years agoAdd heap space sizes and external memory counter to V8 statistics extension.
ulan@chromium.org [Wed, 8 Aug 2012 07:37:07 +0000 (07:37 +0000)]
Add heap space sizes and external memory counter to V8 statistics extension.

R=yangguo@chromium.org

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

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

11 years agoAdd checks for interceptors to negative lookup code in Crankshaft.
erik.corry@gmail.com [Tue, 7 Aug 2012 14:48:19 +0000 (14:48 +0000)]
Add checks for interceptors to negative lookup code in Crankshaft.
BUG=140473
Review URL: https://chromiumcodereview.appspot.com/10837141

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

11 years agoForce eager compilation of parenthesized functions.
mstarzinger@chromium.org [Tue, 7 Aug 2012 14:47:36 +0000 (14:47 +0000)]
Force eager compilation of parenthesized functions.

This makes the compiler use eager compilation for function literals that
are parenthesized. We consider this to be a hint that the function will
be called immediatly and hence try to avoid parsing it twice. The parser
already respects this heuristic.

R=ulan@chromium.org

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

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

11 years agoAdd flag to trace the amount of external memory.
ulan@chromium.org [Tue, 7 Aug 2012 14:17:35 +0000 (14:17 +0000)]
Add flag to trace the amount of external memory.

R=yangguo@chromium.org

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

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

11 years agoUnify handling of bailout IDs for property loads.
svenpanne@chromium.org [Tue, 7 Aug 2012 14:06:25 +0000 (14:06 +0000)]
Unify handling of bailout IDs for property loads.

Renamed Property::ReturnId to Property::LoadId, which describes its use more
accurately. Compound assignments and CountOperations now consistently use
Property::LoadId() instead of their own CompoundLoadId/CountId.

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

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

11 years agoAdjust GC tracing: add a flag to ignore scavenger traces and print total GC time...
ulan@chromium.org [Tue, 7 Aug 2012 08:19:11 +0000 (08:19 +0000)]
Adjust GC tracing: add a flag to ignore scavenger traces and print total GC time in verbose mode.

R=mstarzinger@chromium.org

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

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

11 years agoRefactor Math.min/max to be a single HInstruction.
jkummerow@chromium.org [Mon, 6 Aug 2012 14:28:27 +0000 (14:28 +0000)]
Refactor Math.min/max to be a single HInstruction.

That allows us to dynamically compute representations and insert appropriate HChange instructions.

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

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

11 years agoImprove load IC so it can call a native accessor even if the holder is
erik.corry@gmail.com [Mon, 6 Aug 2012 14:25:19 +0000 (14:25 +0000)]
Improve load IC so it can call a native accessor even if the holder is
in dictionary mode.  Add a flag to all maps to indicate whether they are
used for dictionary (normalized) objects or fast mode objects.
Review URL: https://chromiumcodereview.appspot.com/10831153

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

11 years agoIntroduced TypeFeedbackId and BailoutId types.
svenpanne@chromium.org [Mon, 6 Aug 2012 14:13:09 +0000 (14:13 +0000)]
Introduced TypeFeedbackId and BailoutId types.

This is a refactoring-only CL which improves the typing of IDs associated with
AST nodes. The interesting parts are in utils.h and ast.h, the rest of the CL
basically follows mechanically.

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

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

11 years agoMake AdjustAmountOfExternalAllocatedMemory() more robust.
ulan@chromium.org [Mon, 6 Aug 2012 13:49:13 +0000 (13:49 +0000)]
Make AdjustAmountOfExternalAllocatedMemory() more robust.

Do not crash if called from a thread without V8 isolate, reset the external
memory counters in case of overflow, bump the external allocation limit.

This will allow us to track typed array allocation and deallocation in WebKit.

BUG=v8:2022,122097,42342
R=jkummerow@chromium.org

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

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

11 years agoFix integer division truncation error.
mstarzinger@chromium.org [Mon, 6 Aug 2012 13:23:52 +0000 (13:23 +0000)]
Fix integer division truncation error.

Review URL: https://chromiumcodereview.appspot.com/10831148
Patch from Nico Weber <thakis@chromium.org>.

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

11 years agoFactor out SimulateIncrementalMarking in test-heap.
mstarzinger@chromium.org [Mon, 6 Aug 2012 11:04:40 +0000 (11:04 +0000)]
Factor out SimulateIncrementalMarking in test-heap.

R=ulan@chromium.org
TEST=cctest/test-heap

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

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

11 years agoMake incremental marking clear ICs.
mstarzinger@chromium.org [Mon, 6 Aug 2012 10:35:48 +0000 (10:35 +0000)]
Make incremental marking clear ICs.

This extends the existing clearing of ICs during GC to incremental
marking in order to prevent cross-context retention that would last
until the next non-incremental GC.

R=erik.corry@gmail.com
TEST=cctest/test-heap/IncrementalMarkingClears[Mono,Poly]morhpicIC

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

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

11 years agoTake advantage of batched results when matching global regexp.
yangguo@chromium.org [Mon, 6 Aug 2012 09:06:27 +0000 (09:06 +0000)]
Take advantage of batched results when matching global regexp.

BUG=
TEST=regexp-global.js

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

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

11 years agoAllow SetHiddenValue to accept empty value.
yangguo@chromium.org [Mon, 6 Aug 2012 07:55:05 +0000 (07:55 +0000)]
Allow SetHiddenValue to accept empty value.

R=mstarzinger@chromium.org
BUG=v8:2274

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

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

11 years agoFix crash bug when calling getV8Statistics().
yangguo@chromium.org [Fri, 3 Aug 2012 14:03:30 +0000 (14:03 +0000)]
Fix crash bug when calling getV8Statistics().

BUG=v8:2270

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

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

11 years agoFixed compound/count operations with getter-only accessor properties.
svenpanne@chromium.org [Fri, 3 Aug 2012 09:45:08 +0000 (09:45 +0000)]
Fixed compound/count operations with getter-only accessor properties.

The underlying problem is that for compound/count operations we use the *load*
type feedback for storing, too. For normal properties this doesn't matter, but
for accessor properties we should better use the *store* type feedback, which
would be available, too. This consistent feedback usage could be guaranteed if
we removed the heavy copy-n-paste in the crankshaft code generation for
compound/count operations and assignments/property loads.

To be on the safe side, we postpone this refactoring and do a quick and easily
mergeable fix.

BUG=140083
TEST=mjsunit/regress/regress-crbug-140083.js

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

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

12 years agoMake test-heap resilient against --stress-compaction.
mstarzinger@chromium.org [Thu, 2 Aug 2012 14:20:38 +0000 (14:20 +0000)]
Make test-heap resilient against --stress-compaction.

R=ulan@chromium.org

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

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

12 years agoandroid: refine custom ucontext_t definitions.
svenpanne@chromium.org [Thu, 2 Aug 2012 10:03:21 +0000 (10:03 +0000)]
android: refine custom ucontext_t definitions.

This is a forward-compatible change to avoid type/naming
conflicts when the Android platform/NDK will update its
<signal.h> header to properly define 'struct sigcontext',
'mcontext_t' and 'ucontext_t'.

In particular:

  - Do not define 'struct sigcontext.h' to avoid
    conflicts with the C library definition (which
    is different, see below).

  - Only provide custom ucontext_t declarations if
    the Android <signal.h> doesn't provide it. This can
    be tested with a macro check (__BIONIC_HAVE_UCONTEXT_T)

+ Use 'gettid()' on Android since it is available (at all
  API levels).

See http://code.google.com/p/android/issues/detail?id=34784

Review URL: https://chromiumcodereview.appspot.com/10829122
Patch from David Turner <digit@chromium.org>.

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

12 years agoAndroid: increase default test timeout and skip time sensitive mjsunit/regress/regres...
ulan@chromium.org [Wed, 1 Aug 2012 13:06:08 +0000 (13:06 +0000)]
Android: increase default test timeout and skip time sensitive mjsunit/regress/regress-1969.

R=yangguo@chromium.org

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

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

12 years agoWhen specifying a new create histogram callback, reset all histograms so they recreat...
mstarzinger@chromium.org [Wed, 1 Aug 2012 12:51:24 +0000 (12:51 +0000)]
When specifying a new create histogram callback, reset all histograms so they recreate themselves on next use.

We only do this for histograms, and not for counters, as counters might be used directly from generated code

BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/10828113
Patch from Jochen Eisinger <jochen@chromium.org>.

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

12 years agoFix the 137002 fix (Don't generate ICs for accessors on slow
erik.corry@gmail.com [Wed, 1 Aug 2012 12:35:33 +0000 (12:35 +0000)]
Fix the 137002 fix (Don't generate ICs for accessors on slow
case objects).  We should be testing the holder for dictionary
mode, not the receiver.
Review URL: https://chromiumcodereview.appspot.com/10827113

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

12 years agoRefactor marking to share embedded pointer visitor.
mstarzinger@chromium.org [Wed, 1 Aug 2012 11:29:48 +0000 (11:29 +0000)]
Refactor marking to share embedded pointer visitor.

R=ulan@chromium.org

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

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

12 years agoMake incremental marking clear type feedback cells.
mstarzinger@chromium.org [Wed, 1 Aug 2012 11:24:14 +0000 (11:24 +0000)]
Make incremental marking clear type feedback cells.

This extends the existing clearing of type feedback cells during GC to
incremental marking in order to prevent cross-context retention that
would last until the next non-incremental GC.

R=erik.corry@gmail.com
TEST=cctest/test-heap/IncrementalMarkingClearsTypeFeedbackCells

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

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

12 years agoPrepare push to trunk. Now working on version 3.13.0.
jkummerow@chromium.org [Wed, 1 Aug 2012 11:10:32 +0000 (11:10 +0000)]
Prepare push to trunk.  Now working on version 3.13.0.

R=yangguo@chromium.org

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

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

12 years agoDon't leak inobject space when transforming to fast properties without descriptors.
verwaest@chromium.org [Wed, 1 Aug 2012 10:50:26 +0000 (10:50 +0000)]
Don't leak inobject space when transforming to fast properties without descriptors.

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

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

12 years agoMake test-serialize resilient against --gc-interval.
mstarzinger@chromium.org [Wed, 1 Aug 2012 09:43:05 +0000 (09:43 +0000)]
Make test-serialize resilient against --gc-interval.

R=erik.corry@gmail.com
TEST=cctest/test-serialize (--gc-interval=100)

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

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

12 years agoFix full code generator to not use --debug-code if it is in
erik.corry@gmail.com [Tue, 31 Jul 2012 14:59:32 +0000 (14:59 +0000)]
Fix full code generator to not use --debug-code if it is in
mksnapshot or a VM that is booted from a snapshot.  --debug-code
can still have an effect on stub and optimized code and it still
works on the full code generator when running without snapshots.

The deoptimizer generates full-code-generator code and relies on it having
the same layout as last time.  This means that the code the full code
generator makes for the snapshot should be the same as the code it makes
later.  This change makes the full code generator create more consistent
code between mksnapshot time and run time.

This is a bug fix and a step towards making the snapshot code more robust.
Review URL: https://chromiumcodereview.appspot.com/10834085

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

12 years agoFix write barrier for StoreKeyedFastElements on ARM
danno@chromium.org [Tue, 31 Jul 2012 14:31:19 +0000 (14:31 +0000)]
Fix write barrier for StoreKeyedFastElements on ARM

R=mstarzinger@chromium.org

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

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

12 years agoSpeed up quicksort test to avoid timeouts on simulators.
erik.corry@gmail.com [Tue, 31 Jul 2012 13:36:24 +0000 (13:36 +0000)]
Speed up quicksort test to avoid timeouts on simulators.
Review URL: https://chromiumcodereview.appspot.com/10830093

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

12 years agoUse architecture-specific alignment for hashing in Descriptor lookup cache.
verwaest@chromium.org [Tue, 31 Jul 2012 12:33:28 +0000 (12:33 +0000)]
Use architecture-specific alignment for hashing in Descriptor lookup cache.

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

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

12 years agoFix build for disassembler=on and objectprint=off.
mstarzinger@chromium.org [Tue, 31 Jul 2012 09:53:39 +0000 (09:53 +0000)]
Fix build for disassembler=on and objectprint=off.

R=jkummerow@chromium.org

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

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

12 years agoFix bogus AbortIfNotZeroExtended on x64 for bounds checks
danno@chromium.org [Tue, 31 Jul 2012 09:47:43 +0000 (09:47 +0000)]
Fix bogus AbortIfNotZeroExtended on x64 for bounds checks

R=mmassi@chromium.org

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

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

12 years agoFix deserializer to understand direct pointers from code to cell payloads.
erik.corry@gmail.com [Tue, 31 Jul 2012 09:25:23 +0000 (09:25 +0000)]
Fix deserializer to understand direct pointers from code to cell payloads.

The deoptimizer generates full-code-generator code and relies on it having
the same layout as last time.  This means that the code the full code
generator makes for the snapshot should be the same as the code it makes
later.  This change makes the full code generator create more consistent
code between mksnapshot time and run time.

This is a bug fix and a step towards making the snapshot code more robust.
Review URL: https://chromiumcodereview.appspot.com/10824084

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

12 years agoImprove constant element index access code generation
danno@chromium.org [Tue, 31 Jul 2012 08:44:51 +0000 (08:44 +0000)]
Improve constant element index access code generation

R=jkummerow@chromium.org

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

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

12 years agoFix regression test on x64.
yangguo@chromium.org [Mon, 30 Jul 2012 13:48:52 +0000 (13:48 +0000)]
Fix regression test on x64.

R=verwaest@chromium.org
BUG=
TEST=

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

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

12 years agoLimit initial size of hidden properties and store identity hashes inline.
yangguo@chromium.org [Mon, 30 Jul 2012 13:09:09 +0000 (13:09 +0000)]
Limit initial size of hidden properties and store identity hashes inline.

BUG=v8:2211
TEST=test-heap/Regress2211

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

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

12 years agoMake AlwaysAllocateScope imply DisallowAllocationFailure.
mstarzinger@chromium.org [Mon, 30 Jul 2012 13:07:29 +0000 (13:07 +0000)]
Make AlwaysAllocateScope imply DisallowAllocationFailure.

R=erik.corry@gmail.com
TEST=cctest/test-api,cctest/test-heap (--gc-interval=100)

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

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

12 years agoR=yangguo@chromium.org,svenpanne@chromium.org
yangguo@chromium.org [Mon, 30 Jul 2012 13:04:10 +0000 (13:04 +0000)]
R=yangguo@chromium.org,svenpanne@chromium.org
x64 BinaryOpStub::GenerateSmiCode use wrong registers in one code path.

e.g. d8 --trace_ic
var dd = new Float64Array(2);
dd[1] = 1;
(function fn() {
  for (var i = 0; i < 1000; i++)
  dd[0] = 2 / dd[1];
})();
It keeps falling into runtime call and patching.

No regression test, because I don't how to test it.

Review URL: https://chromiumcodereview.appspot.com/10834064
Patch from Zheng Liu <shdwthr@gmail.com>.

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

12 years agoPrepare push to trunk. Now working on version 3.12.19.
ulan@chromium.org [Mon, 30 Jul 2012 13:00:52 +0000 (13:00 +0000)]
Prepare push to trunk.  Now working on version 3.12.19.

R=jkummerow@chromium.org

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

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

12 years agoImplement verification of context separation.
mstarzinger@chromium.org [Mon, 30 Jul 2012 10:47:04 +0000 (10:47 +0000)]
Implement verification of context separation.

This adds the --verify-global-context-separation flag which can be used
to verify that no code object embeds pointers to more than one global
context after a full GC. It uses an object visitor that just performs
shallow traversal of the object graph spanned by one code object, and
breaks at points where application objects are encountered. So it will
not trip on cross-context leaks introduced by the application itself.

R=verwaest@chromium.org

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

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