platform/upstream/v8.git
12 years agoFix crash in d8 when external array ctor hits stack overflow
jkummerow@chromium.org [Tue, 13 Dec 2011 13:51:58 +0000 (13:51 +0000)]
Fix crash in d8 when external array ctor hits stack overflow

BUG=100859
TEST=mjsunit/regress/regress-crbug-100859

Review URL: http://codereview.chromium.org/8898021

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

12 years agoFix GCC 4.7 warnings, which are related to char being signed in GCC
vegorov@chromium.org [Tue, 13 Dec 2011 13:02:08 +0000 (13:02 +0000)]
Fix GCC 4.7 warnings, which are related to char being signed in GCC
("narrowing conversion ... inside { } is ill-formed in C++11").

* src/mksnapshot.cc: Cast "char" to "unsigned char" when outputting snapshot.
* test/cctest/test-regexp.cc: Use static_cast to uc16 as the char
literal is signed.

Review URL: http://codereview.chromium.org/8825003
Patch from Tobias Burnus <burnus@net-b.de>.

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

12 years agoAvoid using an invalid working directory in mjsunit/d8-os.
yangguo@chromium.org [Tue, 13 Dec 2011 12:57:33 +0000 (12:57 +0000)]
Avoid using an invalid working directory in mjsunit/d8-os.

This test deleted its working directory and then tried to run several
shell commands which caused a failure on nfs.

Changes:
-TEST_DIR is only removed at the very end of the test
-the working directory is changed to /tmp at the beginning so that
 every iteration (when running with --stress-opt) has a valid working directory

BUG=
TEST=

Review URL: http://codereview.chromium.org/8936004
Patch from Daniel Kalmar <kalmard@homejinni.com>.

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

12 years agoPrepare push to trunk. Now working on version 3.8.1.
ricow@chromium.org [Tue, 13 Dec 2011 07:56:16 +0000 (07:56 +0000)]
Prepare push to trunk. Now working on version 3.8.1.
Review URL: http://codereview.chromium.org/8912004

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

12 years agoRemove dead code and one static initializer that came with it.
fschneider@chromium.org [Mon, 12 Dec 2011 11:54:21 +0000 (11:54 +0000)]
Remove dead code and one static initializer that came with it.

BUG=1859
Review URL: http://codereview.chromium.org/8917004

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

12 years agoFix another corner case for DefineOwnProperty on arrays.
mstarzinger@chromium.org [Mon, 12 Dec 2011 10:20:46 +0000 (10:20 +0000)]
Fix another corner case for DefineOwnProperty on arrays.

R=rossberg@chromium.org
BUG=v8:1756
TEST=test262

Review URL: http://codereview.chromium.org/8890015

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

12 years agoMIPS: Hydrogen support for context allocated harmony bindings.
keuchel@chromium.org [Mon, 12 Dec 2011 08:48:39 +0000 (08:48 +0000)]
MIPS: Hydrogen support for context allocated harmony bindings.

Port r10220 (1dae466).

Original commit message:

This CL adds support for loading from and storing to context slots
belonging to harmony let or const bound variables. Checks for the
hole value are performed and the function is deoptimized if they fail.
The full-codegen generated code will take care of properly throwing
a reference error in these cases.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8897025
Patch from Daniel Kalmar <kalmard@homejinni.com>.

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

12 years agoMIPS: Port Math.pow inlining to ARM.
yangguo@chromium.org [Mon, 12 Dec 2011 08:26:42 +0000 (08:26 +0000)]
MIPS: Port Math.pow inlining to ARM.

Port r10210 (6b15398) and r10226 (cdc75a453).

BUG=
TEST=

Review URL: http://codereview.chromium.org/8896021
Patch from Daniel Kalmar <kalmard@homejinni.com>.

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

12 years agoEnable mips in the test wrapper for gyp.
yangguo@chromium.org [Mon, 12 Dec 2011 08:19:30 +0000 (08:19 +0000)]
Enable mips in the test wrapper for gyp.

Review URL: http://codereview.chromium.org/8919002

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

12 years agoMIPS: Reland 10216 - Optimize the equality check case of ICCompare stubs.
ricow@chromium.org [Mon, 12 Dec 2011 06:38:29 +0000 (06:38 +0000)]
MIPS: Reland 10216 -  Optimize the equality check case of ICCompare stubs.

Port r10219 (56686b).

Original commit message:

Now with arm and x64 support. Additionally, added default unreachable case to switch statement in CompareIC::TargetState to make win and mac compilers happy.

Reviewer guide:
This is an exact copy of 10216 except:
src/arm/*
src/x64/*
src/ic.cc (added default case to swith in CompareIC::TargetState)

BUG=
TEST=
Review URL: http://codereview.chromium.org/8896022

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

12 years agoFix regex regression in top-of-tree.
danno@chromium.org [Fri, 9 Dec 2011 15:04:41 +0000 (15:04 +0000)]
Fix regex regression in top-of-tree.

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

Review URL: http://codereview.chromium.org/8896001

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

12 years agoFixing bug introduced in r10210 that crashes v8 raytrace benchmark.
yangguo@chromium.org [Fri, 9 Dec 2011 12:11:56 +0000 (12:11 +0000)]
Fixing bug introduced in r10210 that crashes v8 raytrace benchmark.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8889047

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

12 years agoAvoid bailing out to runtime for short substrings.
yangguo@chromium.org [Fri, 9 Dec 2011 10:04:58 +0000 (10:04 +0000)]
Avoid bailing out to runtime for short substrings.

This significantly improves the speed for creating short substrings (less than 13 characters) from slices, flat cons strings and external strings.

TEST=string-external-cached.js, string-slices.js

Review URL: http://codereview.chromium.org/8889012

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

12 years agoHydrogen support for context allocated harmony bindings.
keuchel@chromium.org [Fri, 9 Dec 2011 09:50:30 +0000 (09:50 +0000)]
Hydrogen support for context allocated harmony bindings.

This CL adds support for loading from and storing to context slots
belonging to harmony let or const bound variables. Checks for the
hole value are performed and the function is deoptimized if they fail.
The full-codegen generated code will take care of properly throwing
a reference error in these cases.

TEST=mjsunit/harmony/block-let-crankshaft.js

Review URL: http://codereview.chromium.org/8820015

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

12 years agoReland 10216 - Optimize the equality check case of ICCompare stubs.
ricow@chromium.org [Fri, 9 Dec 2011 09:26:14 +0000 (09:26 +0000)]
Reland 10216 -  Optimize the equality check case of ICCompare stubs.

Now with arm and x64 support. Additionally, added default unreachable case to switch statement in CompareIC::TargetState to make win and mac compilers happy.

Reviewer guide:
This is an exact copy of 10216 except:
src/arm/*
src/x64/*
src/ic.cc (added default case to swith in CompareIC::TargetState)
Review URL: http://codereview.chromium.org/8872060

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

12 years agoSupport Smi->Double->HeapObject transitions in constructed Arrays.
danno@chromium.org [Fri, 9 Dec 2011 08:50:19 +0000 (08:50 +0000)]
Support Smi->Double->HeapObject transitions in constructed Arrays.

Also several bugs with Smi/double elements handling and make Ensure* routines more flexible.

BUG=none
TEST=test/mjsunit/array-construct-transition.js

Review URL: http://codereview.chromium.org/8820014

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

12 years agoRevert 10216 Optimize the equality check case of ICCompare stubs.
ricow@chromium.org [Thu, 8 Dec 2011 17:28:44 +0000 (17:28 +0000)]
Revert 10216 Optimize the equality check case of ICCompare stubs.

Missing arm and x64 implementations
Review URL: http://codereview.chromium.org/8883023

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

12 years agoOptimize the equality check case of ICCompare stubs.
ricow@chromium.org [Thu, 8 Dec 2011 17:17:21 +0000 (17:17 +0000)]
Optimize the equality check case of ICCompare stubs.

This includes specialcasing the generation when we know that the maps
of the two objects are the same. In addition, a new specialized
compare ic known objects cache is created.

The reason for the cache is that we need to have access to the stub
code from the roots; if we do not, the GC will collect the stub. In
this specialized case we use the map pointer as key in the cache, and
we always do a lookup before generating code. Actually hitting
something in the cache will happen very rarely, but we could
potentially overwrite an existing stub, which again will lead to the
GC collecting this old stub (even if it is referenced from other code
objects)
Review URL: http://codereview.chromium.org/8520006

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

12 years agoEnsure that non-optimized code objects are not flushed for inlined functions.
vegorov@chromium.org [Thu, 8 Dec 2011 16:07:07 +0000 (16:07 +0000)]
Ensure that non-optimized code objects are not flushed for inlined functions.

Collector was flushing them if optimized code was reachable only through the stack (not through the JSFunction object) which happens when you have a pending lazy deoptimization.

Also prevent v8::Script::New from leaking internal objects allocated by the compiler into outer HandleScope.

R=kmillikin@chromium.org
BUG=http://crbug.com/97116
TEST=test/mjsunit/regress/regress-97116.js

Review URL: http://codereview.chromium.org/8888011

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

12 years agoMIPS: Fixing MathPowHalf on ARM.
yangguo@chromium.org [Thu, 8 Dec 2011 14:36:36 +0000 (14:36 +0000)]
MIPS: Fixing MathPowHalf on ARM.

Port r10166 (b57f3f1a), r10167 (202eada9) and r10170 (5c5c96da).

BUG=
TEST=

Review URL: http://codereview.chromium.org/8822014
Patch from Daniel Kalmar <kalmard@homejinni.com>.

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

12 years agoPrepare push to trunk. Now working on version 3.8.1.
ricow@chromium.org [Thu, 8 Dec 2011 13:16:55 +0000 (13:16 +0000)]
Prepare push to trunk. Now working on version 3.8.1.
Review URL: http://codereview.chromium.org/8873016

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

12 years agoMIPS: Port to x64 and ARM and some refactoring of ia32.
fschneider@chromium.org [Thu, 8 Dec 2011 08:53:09 +0000 (08:53 +0000)]
MIPS: Port to x64 and ARM and some refactoring of ia32.

Port r10174 (a410586).

BUG=
TEST=
Review URL: http://codereview.chromium.org/8821024

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

12 years agoPort Math.pow inlining to ARM.
yangguo@chromium.org [Wed, 7 Dec 2011 16:55:00 +0000 (16:55 +0000)]
Port Math.pow inlining to ARM.

TEST=math-pow.js

Review URL: http://codereview.chromium.org/8840008

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

12 years agoTweaks on Math.pow (ia32 and x64).
yangguo@chromium.org [Wed, 7 Dec 2011 16:15:18 +0000 (16:15 +0000)]
Tweaks on Math.pow (ia32 and x64).

Review URL: http://codereview.chromium.org/8831008

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

12 years agoRelax test condition to make it less brittle.
ulan@chromium.org [Wed, 7 Dec 2011 16:08:09 +0000 (16:08 +0000)]
Relax test condition to make it less brittle.

BUG=
TEST=cctest/test-api/IdleNotificationWithHint

Review URL: http://codereview.chromium.org/8839007

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

12 years agoSync parser and preparser on do-while and return statements.
keuchel@chromium.org [Wed, 7 Dec 2011 16:03:29 +0000 (16:03 +0000)]
Sync parser and preparser on do-while and return statements.

This CL fixes the preparser to have the same liberal automatic semicolon
insertion behaviour as the parser. In the case of a return statement in
global code we throw a syntax error at runtime rather than an early error
due to compatibility with KJS. However that hack allowed the following
syntactically incorrect program in global code in the parser but not in
the preparser:
  if (false) return else {}
while the slightly saner version with the obligatory semicolon
  if (false) return; else {}
was disallowed in the parser, but the preparser allowed it. This CL also
fixes that issue.

BUG=v8:1856
TEST=cctest/test-parsing.cc

Review URL: http://codereview.chromium.org/8844002

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

12 years agoMIPS: Optimize Crankshaft array literal initialization from boilerplate.
danno@chromium.org [Wed, 7 Dec 2011 13:00:11 +0000 (13:00 +0000)]
MIPS: Optimize Crankshaft array literal initialization from boilerplate.

Port r10138 (730f5a7f)

Original commit message:

BUG=
TEST=

Review URL: http://codereview.chromium.org/8789012
Patch from Daniel Kalmar <kalmard@homejinni.com>.

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

12 years agoFix a bug with register use in optimized Math.round.
fschneider@chromium.org [Wed, 7 Dec 2011 10:13:46 +0000 (10:13 +0000)]
Fix a bug with register use in optimized Math.round.

We're not allowed to modify the input register and have to
use a temporary instead, otherwise the result of expressions
containing Math.round can be wrong.

BUG=106351
TEST=test/mjsunit/compiler/regress-106351.js
Review URL: http://codereview.chromium.org/8833007

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

12 years agoTweak to shorten generated code in Math.pow.
yangguo@chromium.org [Wed, 7 Dec 2011 09:44:31 +0000 (09:44 +0000)]
Tweak to shorten generated code in Math.pow.

Review URL: http://codereview.chromium.org/8834007

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

12 years agoRemove write barriers for cells on x64, ARM and MIPS.
erik.corry@gmail.com [Wed, 7 Dec 2011 08:49:06 +0000 (08:49 +0000)]
Remove write barriers for cells on x64, ARM and MIPS.
Review URL: http://codereview.chromium.org/8834005

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

12 years agoRescan cells at the end of mark-sweep. This means they don't need a
erik.corry@gmail.com [Wed, 7 Dec 2011 08:43:41 +0000 (08:43 +0000)]
Rescan cells at the end of mark-sweep.  This means they don't need a
write barrier.
Review URL: http://codereview.chromium.org/8816021

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

12 years agoMore removal of write barriers and a rename to a less scary name.
erik.corry@gmail.com [Wed, 7 Dec 2011 08:43:18 +0000 (08:43 +0000)]
More removal of write barriers and a rename to a less scary name.
Review URL: http://codereview.chromium.org/8816020

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

12 years agoPorting Math.pow changes to x64.
yangguo@chromium.org [Wed, 7 Dec 2011 08:34:27 +0000 (08:34 +0000)]
Porting Math.pow changes to x64.

TEST=math-pow.js, regress-397.js

Review URL: http://codereview.chromium.org/8821019

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

12 years agoFix nosnap build test failures.
danno@chromium.org [Tue, 6 Dec 2011 22:27:15 +0000 (22:27 +0000)]
Fix nosnap build test failures.

TBR=jkummerow@chromium.org
BUG=none
TEST=less waterfall redness

Review URL: http://codereview.chromium.org/8828004

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

12 years agoObligatory fix for Win64.
mikhail.naganov@gmail.com [Tue, 6 Dec 2011 22:08:46 +0000 (22:08 +0000)]
Obligatory fix for Win64.

BUG=v8:1832
TEST=none
TBR=vitalyr@chromium.org

Review URL: http://codereview.chromium.org/8771051

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

12 years agoReapply r10158: Distinguish weak references in heap snapshots, group GC roots.
mikhail.naganov@gmail.com [Tue, 6 Dec 2011 17:41:47 +0000 (17:41 +0000)]
Reapply r10158: Distinguish weak references in heap snapshots, group GC roots.

[Fixed the bug revealed by the Win32 bot]

Several changes to better organize snapshot data:

1. Provide information about weak references.
2. Group (GC roots) children.
3. Prettify debug snapshot printing.

BUG=v8:1832
TEST=cctest/test-heap-profiler/*Weak*
TBR=vitalyr@chromium.org

Initial CL: http://codereview.chromium.org/8716009

Review URL: http://codereview.chromium.org/8822019

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

12 years agoDon't track Smi->Double->Object element transitions for small undefined arrays.
danno@chromium.org [Tue, 6 Dec 2011 17:21:48 +0000 (17:21 +0000)]
Don't track Smi->Double->Object element transitions for small undefined arrays.

R=jkummerow@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/8816009

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

12 years agoRemove unnecessary use of raw pointers in hydrogen graph builder.
fschneider@chromium.org [Tue, 6 Dec 2011 15:31:01 +0000 (15:31 +0000)]
Remove unnecessary use of raw pointers in hydrogen graph builder.

This is potentially a source of bugs, if someone inserts some code
that causes allocation.
Review URL: http://codereview.chromium.org/8818015

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

12 years agoUse the old handler for low frequency idle notifications.
ulan@chromium.org [Tue, 6 Dec 2011 14:30:21 +0000 (14:30 +0000)]
Use the old handler for low frequency idle notifications.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8818005

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

12 years agoFix presubmit.
yangguo@chromium.org [Tue, 6 Dec 2011 13:30:22 +0000 (13:30 +0000)]
Fix presubmit.

Review URL: http://codereview.chromium.org/8821016

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

12 years agoFixing mozilla test failures regarding Math.pow.
yangguo@chromium.org [Tue, 6 Dec 2011 13:14:46 +0000 (13:14 +0000)]
Fixing mozilla test failures regarding Math.pow.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8820011

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

12 years agoHandle possible difference between function code and activated code on preparation...
sgjesse@chromium.org [Tue, 6 Dec 2011 13:09:05 +0000 (13:09 +0000)]
Handle possible difference between function code and activated code on preparation for break points

The full code activated for a function might not be the same code as
is currently the active full code for a function. There where some
asumptions in the debugger preparation for break points.

Unfortunately there is currently no regression test.

R=jkummerow@chromium.org

BUG=
TEST=

Review URL: http://codereview.chromium.org//8818010

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

12 years agoElide write barriers and remove some heap_object->GetHeap() calls on
erik.corry@gmail.com [Tue, 6 Dec 2011 13:00:40 +0000 (13:00 +0000)]
Elide write barriers and remove some heap_object->GetHeap() calls on
Smi write barriers.
Review URL: http://codereview.chromium.org/8822008

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

12 years agoPort to x64 and ARM and some refactoring of ia32.
fschneider@chromium.org [Tue, 6 Dec 2011 12:11:08 +0000 (12:11 +0000)]
Port to x64 and ARM and some refactoring of ia32.
Review URL: http://codereview.chromium.org/8111006

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

12 years agoThe memory size test makes no sense on the simulated platforms.
erik.corry@gmail.com [Tue, 6 Dec 2011 12:09:11 +0000 (12:09 +0000)]
The memory size test makes no sense on the simulated platforms.
Review URL: http://codereview.chromium.org/8818007

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

12 years agoRemove early NaN/Infinity check in MathPowStub.
yangguo@chromium.org [Tue, 6 Dec 2011 11:56:56 +0000 (11:56 +0000)]
Remove early NaN/Infinity check in MathPowStub.

Review URL: http://codereview.chromium.org/8817015

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

12 years agoHydrogen support for stack local harmony bindings in function scope.
keuchel@chromium.org [Tue, 6 Dec 2011 09:41:06 +0000 (09:41 +0000)]
Hydrogen support for stack local harmony bindings in function scope.

This is the first CL in a series that add support for the harmony scoping
features to crankshaft. This CL specifically adds support for stack
allocated 'let' and 'const' declared variables in function scopes.

TEST=mjsunit/harmony/block-let-crankshaft.js

Review URL: http://codereview.chromium.org/8806012

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

12 years agoFix presubmit.
yangguo@chromium.org [Tue, 6 Dec 2011 09:37:50 +0000 (09:37 +0000)]
Fix presubmit.

Review URL: http://codereview.chromium.org/8816010

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

12 years agoStop skipping regress-397.js
yangguo@chromium.org [Tue, 6 Dec 2011 09:20:55 +0000 (09:20 +0000)]
Stop skipping regress-397.js

BUG=
TEST=

Review URL: http://codereview.chromium.org/8804013

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

12 years agoSkip check for +/-0.5 in optimized Math.pow (ia32).
yangguo@chromium.org [Tue, 6 Dec 2011 09:20:28 +0000 (09:20 +0000)]
Skip check for +/-0.5 in optimized Math.pow (ia32).

Review URL: http://codereview.chromium.org/8820007

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

12 years agoFixing fix for MathPowHalf on ARM.
yangguo@chromium.org [Tue, 6 Dec 2011 09:20:00 +0000 (09:20 +0000)]
Fixing fix for MathPowHalf on ARM.

Review URL: http://codereview.chromium.org/8817012

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

12 years agoFixing MathPowHalf on ARM.
yangguo@chromium.org [Tue, 6 Dec 2011 08:28:12 +0000 (08:28 +0000)]
Fixing MathPowHalf on ARM.

BUG=v8:397
TEST=regress-397.js

Review URL: http://codereview.chromium.org/8800009

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

12 years agoImprove TraceIC logging
danno@chromium.org [Mon, 5 Dec 2011 21:54:45 +0000 (21:54 +0000)]
Improve TraceIC logging

Explicitly log generic stub transitions and the reason that they are happening.

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

Review URL: http://codereview.chromium.org/8803013

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

12 years agoRevert r10158 "Distinguish weak references in heap snapshots, group GC roots."
mikhail.naganov@gmail.com [Mon, 5 Dec 2011 17:21:55 +0000 (17:21 +0000)]
Revert r10158 "Distinguish weak references in heap snapshots, group GC roots."

Heap profiler tests fail on Win32, need to investigate.

This reverts commit b5374ebd92c11ac4aae16b4e31e54166d406e490.

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

12 years agoFixing MathPowHalf on x64.
yangguo@chromium.org [Mon, 5 Dec 2011 16:36:13 +0000 (16:36 +0000)]
Fixing MathPowHalf on x64.

BUG=v8:397
TEST=regress-397.js

Review URL: http://codereview.chromium.org/8805011

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

12 years agoDistinguish weak references in heap snapshots, group GC roots.
mikhail.naganov@gmail.com [Mon, 5 Dec 2011 16:35:57 +0000 (16:35 +0000)]
Distinguish weak references in heap snapshots, group GC roots.

Several changes to better organize snapshot data:

1. Provide information about weak references.
2. Group (GC roots) children.
3. Prettify debug snapshot printing.

BUG=v8:1832
TEST=cctest/test-heap-profiler/*Weak*

Review URL: http://codereview.chromium.org/8716009

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

12 years agoRefactor MathPowHalf on ia32.
yangguo@chromium.org [Mon, 5 Dec 2011 15:58:25 +0000 (15:58 +0000)]
Refactor MathPowHalf on ia32.

BUG=v8:397, v8:1848
TEST=regress-397.js

Review URL: http://codereview.chromium.org/8806010

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

12 years agoStatically check for assignments to const in harmony mode.
keuchel@chromium.org [Mon, 5 Dec 2011 14:43:28 +0000 (14:43 +0000)]
Statically check for assignments to const in harmony mode.

The ES.next draft rev 4 in section 11.13 reads:
It is a Syntax Error if the AssignmentExpression is contained in extended code
and the LeftHandSideExpression is an Identifier that does not statically resolve
to a declarative environment record binding or if the resolved binding is an
immutable binding.

This CL adds corresponding static checks for the immutable binding case.

TEST=mjsunit/harmony/block-const-assign

Review URL: http://codereview.chromium.org/8688007

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

12 years agoMIPS: updated test .status files based mostly on the ARM version.
mstarzinger@chromium.org [Mon, 5 Dec 2011 11:44:17 +0000 (11:44 +0000)]
MIPS: updated test .status files based mostly on the ARM version.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8572032
Patch from Gergely Kis <gergely@homejinni.com>.

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

12 years agoFixing Math.pow(NaN, -0.0) == 1 on Windows.
yangguo@chromium.org [Mon, 5 Dec 2011 09:54:15 +0000 (09:54 +0000)]
Fixing Math.pow(NaN, -0.0) == 1 on Windows.

Review URL: http://codereview.chromium.org/8804005

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

12 years agoFix special handling of DefineOwnProperty on arrays.
mstarzinger@chromium.org [Mon, 5 Dec 2011 09:53:43 +0000 (09:53 +0000)]
Fix special handling of DefineOwnProperty on arrays.

According to the ES5 spec the implementation of DefineOwnProperty() has
to special case handling of arrays. This implementation correctly
handles definitions of array index properties and redefinitions of the
length property.

R=svenpanne@chromium.org
BUG=v8:1756
TEST=test262

Review URL: http://codereview.chromium.org/8776045

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

12 years agoFix performance on the page cycler, which is not designed to test
erik.corry@gmail.com [Mon, 5 Dec 2011 08:58:12 +0000 (08:58 +0000)]
Fix performance on the page cycler, which is not designed to test
GC speed.
Review URL: http://codereview.chromium.org/8804004

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

12 years agoClean up multi byte nop support on x64 to more closely match IA32.
erik.corry@gmail.com [Mon, 5 Dec 2011 08:58:01 +0000 (08:58 +0000)]
Clean up multi byte nop support on x64 to more closely match IA32.
Fix missing instruction in disassembler.
Fix wrong disassembly of multi-byte NOP on x64
Add test of disassembler on 64 bit!
Review URL: http://codereview.chromium.org/8773039

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

12 years agoFixing windows build.
yangguo@chromium.org [Mon, 5 Dec 2011 07:57:44 +0000 (07:57 +0000)]
Fixing windows build.

"src\store-buffer.cc(72) : warning C4244: 'initializing' : conversion from 'intptr_t' to 'int', possible loss of data"

Review URL: http://codereview.chromium.org/8804003

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

12 years agoFix a bug with deoptimization from inside the default-clause of a switch-statement.
fschneider@chromium.org [Fri, 2 Dec 2011 15:15:23 +0000 (15:15 +0000)]
Fix a bug with deoptimization from inside the default-clause of a switch-statement.

When generating a string-switch we have to use the correct ast id when
there is a default clause present.
Review URL: http://codereview.chromium.org/8776048

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

12 years agoReduce minimum memory use on 64 bit to one page per semispace.
erik.corry@gmail.com [Fri, 2 Dec 2011 14:19:53 +0000 (14:19 +0000)]
Reduce minimum memory use on 64 bit to one page per semispace.
Review URL: http://codereview.chromium.org/8774045

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

12 years agoLet store buffer start out small for a 1Mbyte saving in boot
erik.corry@gmail.com [Fri, 2 Dec 2011 14:08:12 +0000 (14:08 +0000)]
Let store buffer start out small for a 1Mbyte saving in boot
memory use (2Mbyte on x64).
Review URL: http://codereview.chromium.org/8776032

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

12 years agoTemporarily disable regress-397 until fix has been ported to all platforms.
yangguo@chromium.org [Fri, 2 Dec 2011 13:42:51 +0000 (13:42 +0000)]
Temporarily disable regress-397 until fix has been ported to all platforms.

Review URL: http://codereview.chromium.org/8775051

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

12 years agoFix presubmit error.
danno@chromium.org [Fri, 2 Dec 2011 13:23:44 +0000 (13:23 +0000)]
Fix presubmit error.

TBR=sgjesse@chromium.org
BUG=none
TEST=none

Review URL: http://codereview.chromium.org/8770042

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

12 years agoQuickfix for DoMathPowHalf.
yangguo@chromium.org [Fri, 2 Dec 2011 13:16:49 +0000 (13:16 +0000)]
Quickfix for DoMathPowHalf.

TEST=regress-397.js

Review URL: http://codereview.chromium.org/8769037

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

12 years agoFix flaky debugger test
danno@chromium.org [Fri, 2 Dec 2011 13:05:51 +0000 (13:05 +0000)]
Fix flaky debugger test

TBR=sgjesse@chromium.org
BUG=none
TEST=test/cctest/test-debug.cc

Review URL: http://codereview.chromium.org/8773037

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

12 years agoOptimize Crankshaft array literal initialization from boilerplate.
danno@chromium.org [Fri, 2 Dec 2011 12:42:35 +0000 (12:42 +0000)]
Optimize Crankshaft array literal initialization from boilerplate.

BUG=none
TEST=test/mjsunit/array-literal-transitions.js

Review URL: http://codereview.chromium.org/8747009

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

12 years agoFix lint
erik.corry@gmail.com [Fri, 2 Dec 2011 10:05:20 +0000 (10:05 +0000)]
Fix lint
Review URL: http://codereview.chromium.org/8773033

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

12 years agoSupport multi-byte nop instructions as recommended by
erik.corry@gmail.com [Fri, 2 Dec 2011 10:01:50 +0000 (10:01 +0000)]
Support multi-byte nop instructions as recommended by
the optimization guides from AMD and Intel.
Review URL: http://codereview.chromium.org/8776033

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

12 years agoImplement Math.pow using FPU instructions and inline it in crankshaft (ia32).
yangguo@chromium.org [Fri, 2 Dec 2011 08:06:37 +0000 (08:06 +0000)]
Implement Math.pow using FPU instructions and inline it in crankshaft (ia32).

Review URL: http://codereview.chromium.org/8749002

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

12 years agoRevert r10118 from bleeding edge.
fschneider@chromium.org [Thu, 1 Dec 2011 16:57:54 +0000 (16:57 +0000)]
Revert r10118 from bleeding edge.

It causes several test failures which I need to investigate.
Review URL: http://codereview.chromium.org/8769008

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

12 years agoMIPS: Port array literal changes on ARM.
danno@chromium.org [Thu, 1 Dec 2011 14:40:13 +0000 (14:40 +0000)]
MIPS: Port array literal changes on ARM.

Port r10085 (1ef7d5eb2).

This patch also contains a fix for StoreArrayLiteralElementStub::Generate which is only used from this code.

Original commit message:
Includes general array boilerplate copier and re-introduction FAST_ELEMENT optimizations in full-codegen.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8743010
Patch from Daniel Kalmard <kalmard@homejinni.com>.

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

12 years agoMIPS: Implement crankshaft support for nested object literals.
mstarzinger@chromium.org [Thu, 1 Dec 2011 14:32:26 +0000 (14:32 +0000)]
MIPS: Implement crankshaft support for nested object literals.

Port r10061 (c648e1d1)

Original commit message:
This generates optimized code for deep-copying of nested object literal
boilerplates which are statically known. Most of the boilerplates have
already been generated at crankshaft time, so this optimization should
kick in for virtually every object literal. Only nested object literal
graphs up to a certain depth and containing up to a certain total number
of properties are considered for this optimization. This will prevent
explosion of code size due to large object literals (e.g. eval on JSON).
Improves splay performance because object literals are created often.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8745012
Patch from Daniel Kalmar <kalmard@homejinni.com>.

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

12 years agoInsert proper padding between lazy deoptimization points and safepoints.
fschneider@chromium.org [Thu, 1 Dec 2011 14:19:34 +0000 (14:19 +0000)]
Insert proper padding between lazy deoptimization points and safepoints.

On x64 we need 13 bytes for patching the call for lazy deopt. We have to
make sure that patching does not overwrite the code at the safepoint.

BUG=v8:1847
Review URL: http://codereview.chromium.org/8775009

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

12 years agoMIPS: Implement code stub for object literal creation.
mstarzinger@chromium.org [Thu, 1 Dec 2011 14:12:30 +0000 (14:12 +0000)]
MIPS: Implement code stub for object literal creation.

Port r10056 (ffa6eedd8).

Original commit message:
This just ports r10036 to the ARM codegenerator. Please see the original
revision for a detailed description.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8747011
Patch from Daniel Kalmar <kalmard@homejinni.com>.

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

12 years agoIntroduce a test of how much memory it takes to boot up V8.
erik.corry@gmail.com [Thu, 1 Dec 2011 12:32:38 +0000 (12:32 +0000)]
Introduce a test of how much memory it takes to boot up V8.
Linux only at the moment, since it uses /proc.  Shows that
there is room for improvement, espcially on 64 bit.
Review URL: http://codereview.chromium.org/8750001

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

12 years agoUse the old idle notification handler when context is disposed.
ulan@chromium.org [Thu, 1 Dec 2011 12:17:19 +0000 (12:17 +0000)]
Use the old idle notification handler when context is disposed.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8770003

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

12 years agoSimplify stack check instruction in Crankshaft.
fschneider@chromium.org [Thu, 1 Dec 2011 09:54:05 +0000 (09:54 +0000)]
Simplify stack check instruction in Crankshaft.

So far we had two types of stack checks: one used for function entries
and one used at loop back edges which uses a deferred code object to
avoid spilling of registers in the loop.

After refactoring lazy deoptimization the first stack check can also
use deferred code. This change removes the first type of stack check
instruction in Crankshaft and uses a deferred stack check in all
places.
Review URL: http://codereview.chromium.org/8775002

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

12 years agoMIPS: Add external strings support to regexp in generated code.
yangguo@chromium.org [Thu, 1 Dec 2011 08:39:22 +0000 (08:39 +0000)]
MIPS: Add external strings support to regexp in generated code.

Port r10070 (4d7e5a8a)

Original commit message:
TEST=test/mjsunit/string-external-cached.js

BUG=

Review URL: http://codereview.chromium.org/8744012
Patch from Daniel Kalmar <kalmard@homejinni.com>.

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

12 years agoMIPS: Porting r10023 and r10054 to arm (pointer cache for external strings).
yangguo@chromium.org [Thu, 1 Dec 2011 08:31:09 +0000 (08:31 +0000)]
MIPS: Porting r10023 and r10054 to arm (pointer cache for external strings).

Port r10059 (c32f98a9)

Original commit message:

BUG=
TEST=

Review URL: http://codereview.chromium.org/8746015
Patch from Daniel Kalmar <kalmard@homejinni.com>.

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

12 years agoPrepare push to trunk. Now working on version 3.8.0
svenpanne@chromium.org [Thu, 1 Dec 2011 08:14:30 +0000 (08:14 +0000)]
Prepare push to trunk.  Now working on version 3.8.0

R=danno@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/8770001

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

12 years agoIncrease tick interval for the android platform.
ricow@chromium.org [Thu, 1 Dec 2011 07:30:57 +0000 (07:30 +0000)]
Increase tick interval for the android platform.

The phones and tablets currently in use are much slower that desktop
and laptop machines for which the current heuristics have been tuned.
Review URL: http://codereview.chromium.org/8757017

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

12 years agoFix build with GCC 4.7, which fails with "narrowing conversion of 'id' from 'int...
keuchel@chromium.org [Wed, 30 Nov 2011 18:04:12 +0000 (18:04 +0000)]
Fix build with GCC 4.7, which fails with "narrowing conversion of 'id' from 'int' to 'unsigned int' inside { } is ill-formed in C++11"

Contributed by burnus@net-b.de

Review URL: http://codereview.chromium.org/8724003
Patch from Tobias Burnus <burnus@net-b.de>.

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

12 years agoFix a compiler error on Windows introduced by r10093
ulan@chromium.org [Wed, 30 Nov 2011 17:53:26 +0000 (17:53 +0000)]
Fix a compiler error on Windows introduced by r10093

BUG=
TEST=

Review URL: http://codereview.chromium.org/8749008

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

12 years agoFix compile errors on Windows and Mac introduced by r10093.
ulan@chromium.org [Wed, 30 Nov 2011 16:55:55 +0000 (16:55 +0000)]
Fix compile errors on Windows and Mac introduced by r10093.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8746021

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

12 years agoMIPS: Implement Math.tan in generated code.
yangguo@chromium.org [Wed, 30 Nov 2011 16:47:54 +0000 (16:47 +0000)]
MIPS: Implement Math.tan in generated code.

Port r10067 (593c1ea) and r10069 (87a06dc).

BUG=
TEST=

Review URL: http://codereview.chromium.org/8743009
Patch from Daniel Kalmar <kalmard@homejinni.com>.

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

12 years agoMIPS: Catch non-string subject in RegExpExecStub.
yangguo@chromium.org [Wed, 30 Nov 2011 16:36:00 +0000 (16:36 +0000)]
MIPS: Catch non-string subject in RegExpExecStub.

Port r10064 (9c6789a3)

Original commit message:
There is no test case to trigger any crash. This is only to guard against the case that the native function is called with unsafe arguments.

BUG=
TEST=

Review URL: http://codereview.chromium.org/8742012
Patch from Daniel Kalmar <kalmard@homejinni.com>.

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

12 years agoOnly make function literals in top-level object literals pretenured and constant...
fschneider@chromium.org [Wed, 30 Nov 2011 16:00:47 +0000 (16:00 +0000)]
Only make function literals in top-level object literals pretenured and constant function properties.

This change is a refinement of http://code.google.com/p/v8/source/detail?r=7283. Making all
function literals inside object literals constant function properties causes us to lose map
sharing. This hurts code where many object literals are created.

The idea is that top-level code is mostly executed once and functions inside top-level
object literals remain fast with this change.

BUG=v8:1795
Review URL: http://codereview.chromium.org/8746018

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

12 years agoFix a bug in the register allocator.
fschneider@chromium.org [Wed, 30 Nov 2011 14:14:49 +0000 (14:14 +0000)]
Fix a bug in the register allocator.

Avoid spilling a live range that has a register use at the next instruction.
The register use position has to be after the end of the next instruction so
that we don't end up trying to split a live range at the beginning.

BUG=105112
Review URL: http://codereview.chromium.org/8743011

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

12 years agoFix handling of recompiling code for optimized and inlined functions
sgjesse@chromium.org [Wed, 30 Nov 2011 11:48:35 +0000 (11:48 +0000)]
Fix handling of recompiling code for optimized and inlined functions

The debugger preparation did not take optimized functions - including
inlined function into account. This caused the full-code used for
deoptimization to be the "lazy compile" builtin which did not work and
caused V8 to crash.

R=yangguo@chromium.org

BUG=chromium:105375, v8:1782
TEST=test/mjsunit/debug-break-inline.js

Review URL: http://codereview.chromium.org//8728031

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

12 years agoStart incremental marking on idle notification.
ulan@chromium.org [Wed, 30 Nov 2011 11:13:36 +0000 (11:13 +0000)]
Start incremental marking on idle notification.

BUG=v8:1458
TEST=cctest/test-api/IdleNotification*

Review URL: http://codereview.chromium.org/8519002

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

12 years agoBe more willing to expand old space when evacuating new space at the end of
erik.corry@gmail.com [Wed, 30 Nov 2011 10:38:16 +0000 (10:38 +0000)]
Be more willing to expand old space when evacuating new space at the end of
a mark-sweep.  We have a soft limit on old space size, which is designed to
trigger an old-space collection when we hit it.  Unfortunately although the
soft limit had already triggered an old space collection, the soft limit was
preventing objects from new space from being promoted.  For every promotion
candidate we were checking 3 different ways to allocate in old space before
giving up and putting the object in the other semispace.  This change allows
the promoted objects to go to old space and also makes us more eager to
sweep a page before trying other ways to find space for an object.
Review URL: http://codereview.chromium.org/8748005

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

12 years agoElide write barrier.
erik.corry@gmail.com [Wed, 30 Nov 2011 09:33:03 +0000 (09:33 +0000)]
Elide write barrier.
Review URL: http://codereview.chromium.org/8659039

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

12 years agoPrepare push to trunk. Now working on version 3.7.12.
mstarzinger@chromium.org [Tue, 29 Nov 2011 14:21:47 +0000 (14:21 +0000)]
Prepare push to trunk.  Now working on version 3.7.12.

R=erik.corry@gmail.com

Review URL: http://codereview.chromium.org/8725032

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

12 years agoFix bug when generating padding to ensure space for lazy deoptimization.
fschneider@chromium.org [Tue, 29 Nov 2011 12:39:28 +0000 (12:39 +0000)]
Fix bug when generating padding to ensure space for lazy deoptimization.

BUG=v8:1846
Review URL: http://codereview.chromium.org/8725030

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