platform/upstream/v8.git
11 years agoPass FixedArrayBase in elements.cc.
verwaest@chromium.org [Thu, 29 Nov 2012 15:58:16 +0000 (15:58 +0000)]
Pass FixedArrayBase in elements.cc.

This avoids casting problems in case of empty_fixed_array as
FixedDoubleArray with size 0. This avoids prematurely shortcutting in
case of 0 all over the place, which in turn leads to errors.

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

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

11 years agoUse generic array functions to setup the boilerplate to avoid logic duplication.
verwaest@chromium.org [Thu, 29 Nov 2012 15:55:27 +0000 (15:55 +0000)]
Use generic array functions to setup the boilerplate to avoid logic duplication.

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

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

11 years agoRemove unused private member variables found by clang -Wunused-private-field
danno@chromium.org [Thu, 29 Nov 2012 15:13:49 +0000 (15:13 +0000)]
Remove unused private member variables found by clang -Wunused-private-field

Review URL: https://codereview.chromium.org/11414207
Patch from Adam Klein <adamk@chromium.org>.

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

11 years agoFix typo in FunctionTemplate::ReadOnlyPrototype.
jkummerow@chromium.org [Thu, 29 Nov 2012 14:53:44 +0000 (14:53 +0000)]
Fix typo in FunctionTemplate::ReadOnlyPrototype.

Contributed by Peter Varga <pvarga@inf.u-szeged.hu>

BUG=
TEST=

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

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

11 years agoActivate code aging by default.
svenpanne@chromium.org [Thu, 29 Nov 2012 14:31:38 +0000 (14:31 +0000)]
Activate code aging by default.

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

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

11 years agoMIPS: Also time external callbacks from generated code.
yangguo@chromium.org [Thu, 29 Nov 2012 14:04:27 +0000 (14:04 +0000)]
MIPS: Also time external callbacks from generated code.

Port r13078 (73f25483)

BUG=
TEST=

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

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

11 years agoMIPS: Faster implementation of Math.exp()
jkummerow@chromium.org [Thu, 29 Nov 2012 09:22:08 +0000 (09:22 +0000)]
MIPS: Faster implementation of Math.exp()

Port r13054 (636985d7)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11415192
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoMIPS: Fix register confusion in non-VFP3 BinaryOpStubs on ARM
jkummerow@chromium.org [Thu, 29 Nov 2012 09:14:52 +0000 (09:14 +0000)]
MIPS: Fix register confusion in non-VFP3 BinaryOpStubs on ARM

Port r12980 (13380d3b)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11308158
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoMIPS: DoNumberTagD performance improvement
jkummerow@chromium.org [Thu, 29 Nov 2012 09:12:31 +0000 (09:12 +0000)]
MIPS: DoNumberTagD performance improvement

Port r12711 (a8d45ac2)

Original commit message:
Allocate heap entry untagged and tag at end to avoid having to subtract off
the tag offset before storing the value.

BUG=
TEST=

Review URL: https://codereview.chromium.org/11280106
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoMIPS: ARM: Fast path for integer inputs to EmitVFPTruncate
jkummerow@chromium.org [Thu, 29 Nov 2012 09:09:39 +0000 (09:09 +0000)]
MIPS: ARM: Fast path for integer inputs to EmitVFPTruncate

Port r12676 (7d5e7e81)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11308134
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoMIPS: Only fill in holes if storing the number to the double array has succeeded.
verwaest@chromium.org [Thu, 29 Nov 2012 08:40:39 +0000 (08:40 +0000)]
MIPS: Only fill in holes if storing the number to the double array has succeeded.

Port r13067 (c822cffa)

BUG=
TEST=

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

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

11 years agoMIPS: Ensure we do not clobber the register holding the elements backing store.
verwaest@chromium.org [Thu, 29 Nov 2012 08:39:44 +0000 (08:39 +0000)]
MIPS: Ensure we do not clobber the register holding the elements backing store.

Port r13061 (83bb6fcc)

BUG=
TEST=

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

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

11 years agoMIPS: Ensure double arrays are filled with holes when extended from variations of...
verwaest@chromium.org [Thu, 29 Nov 2012 08:37:41 +0000 (08:37 +0000)]
MIPS: Ensure double arrays are filled with holes when extended from variations of empty arrays.

Port r13056 (9b2c1725)

BUG=
TEST=

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

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

11 years agoCopyPackedSmiToDoubleElements should fill the FixedDoubleArray with holes
verwaest@chromium.org [Thu, 29 Nov 2012 08:34:19 +0000 (08:34 +0000)]
CopyPackedSmiToDoubleElements should fill the FixedDoubleArray with holes

BUG=v8:2433

Review URL: https://chromiumcodereview.appspot.com/11280223
Patch from Adam Klein <adamk@chromium.org>.

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

11 years agoSimplify and fix code aging.
svenpanne@chromium.org [Thu, 29 Nov 2012 07:38:00 +0000 (07:38 +0000)]
Simplify and fix code aging.

Making the code size predictable is hard, and to make things even more
complicated, the start of a function can contain various stuff like calls to a
profiling hook, receiver adjustment or dynamic frame alignment. Instead of
tackling all these problems separately, we now simply record the offset where
patching should happen later in the Code object itself.

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

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

11 years agoRemove bogus assertion from idle notification.
mstarzinger@chromium.org [Wed, 28 Nov 2012 17:56:17 +0000 (17:56 +0000)]
Remove bogus assertion from idle notification.

Callbacks that run after garbage collection might fire a context dispose
notification and hence increse the counter before we actually reach this
position.

R=ulan@chromium.org

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

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

11 years agoImprove debug printing of non-strict arguments object.
mstarzinger@chromium.org [Wed, 28 Nov 2012 15:11:38 +0000 (15:11 +0000)]
Improve debug printing of non-strict arguments object.

R=verwaest@chromium.org

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

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

11 years agoAlso time external callbacks from generated code.
yangguo@chromium.org [Wed, 28 Nov 2012 15:11:21 +0000 (15:11 +0000)]
Also time external callbacks from generated code.

R=jkummerow@chromium.org
BUG=

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

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

11 years agoRelax restrictions on CONSTANT_FUNCTION descriptors in TransformPropertiesToFastFor.
vegorov@chromium.org [Wed, 28 Nov 2012 14:02:30 +0000 (14:02 +0000)]
Relax restrictions on CONSTANT_FUNCTION descriptors in TransformPropertiesToFastFor.

Since r10174 they are not required to be in new space.

R=danno@chromium.org
BUG=

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

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

11 years agoInclude more information in --prof log.
yangguo@chromium.org [Wed, 28 Nov 2012 11:01:10 +0000 (11:01 +0000)]
Include more information in --prof log.

Main changes:
- include timestamps in profile ticks
- include code kind in code create events
- time execution in external code
- changed plot-timer-events.js to show the code kind being executed

R=jkummerow@chromium.org
BUG=

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

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

11 years agoFixed pointer arithmetic in write barrier for large objects when marking progress...
hpayer@chromium.org [Wed, 28 Nov 2012 10:53:39 +0000 (10:53 +0000)]
Fixed pointer arithmetic in write barrier for large objects when marking progress bar is used.

BUG=

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

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

11 years agoAllow incremental marking when expose_gc is turned on.
hpayer@chromium.org [Wed, 28 Nov 2012 08:43:10 +0000 (08:43 +0000)]
Allow incremental marking when expose_gc is turned on.

BUG=

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

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

11 years agoMake ElementsAccessors more tolerant of varying backing store types
verwaest@chromium.org [Wed, 28 Nov 2012 08:41:45 +0000 (08:41 +0000)]
Make ElementsAccessors more tolerant of varying backing store types

This avoids bogus calls to Fixed*Array::cast() when FastElements-backed objects are empty (and thus backed by empty_fixed_array).

Review URL: https://chromiumcodereview.appspot.com/11299190
Patch from Adam Klein <adamk@chromium.org>.

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

11 years agoProperly handle-ify method calls to map() and GetLocalElementAccessorPair()
verwaest@chromium.org [Wed, 28 Nov 2012 08:35:46 +0000 (08:35 +0000)]
Properly handle-ify method calls to map() and GetLocalElementAccessorPair()

These are likely causing some of the flaky crashes in Object.observe code. I've reorganized some of the code to minimize the number of necessary calls to map() (by saving the result of map()->is_observed() in a local bool).

Also move down an unnecessarily early call to Uint32ToString when sending an element deletion notification.

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

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

11 years agoMove assertion about stopped marking up (again).
mstarzinger@chromium.org [Tue, 27 Nov 2012 17:03:12 +0000 (17:03 +0000)]
Move assertion about stopped marking up (again).

Weak persistent handle callbacks might trigger nested GCs that in turn
can cause marking to be restarted. The assertion needs to hold before
firing callbacks only.

R=ulan@chromium.org
TEST=cctest/test-api --stress-compaction

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

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

11 years agoDisable stress for some unit test.
mstarzinger@chromium.org [Tue, 27 Nov 2012 15:30:12 +0000 (15:30 +0000)]
Disable stress for some unit test.

Some unit tests specifically test scavenges and forcing them to do
global GCs instead makes no sense. The GC stress builder triggers this.

R=yangguo@chromium.org
TEST=cctest/test-api --stress-compaction

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

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

11 years agoOnly fill in holes if storing the number to the double array has succeeded.
verwaest@chromium.org [Tue, 27 Nov 2012 13:27:15 +0000 (13:27 +0000)]
Only fill in holes if storing the number to the double array has succeeded.

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

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

11 years agoFix incremental marking to be off during heap snapshots.
mstarzinger@chromium.org [Tue, 27 Nov 2012 13:18:55 +0000 (13:18 +0000)]
Fix incremental marking to be off during heap snapshots.

The heap snapshot generator uses the UnreachableObjectsFilter which in
turn messes with marking bits. This requires incremental marking to be
turned off while the snapshot is being generated.

R=verwaest@chromium.org
TEST=cctest/test-heap-profiler --stress-compaction

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

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

11 years agoMake unit tests that fill new-space work under stress.
mstarzinger@chromium.org [Tue, 27 Nov 2012 12:52:51 +0000 (12:52 +0000)]
Make unit tests that fill new-space work under stress.

This makes sure that unit tests that try to fill up the new-space work
on the GC stress buildbots as well.

R=yangguo@chromium.org
TEST=cctest/test-heap --gc-interval=500 --stress-compaction

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

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

11 years agoAvoid double initialization of arrays.
verwaest@chromium.org [Tue, 27 Nov 2012 12:01:14 +0000 (12:01 +0000)]
Avoid double initialization of arrays.

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

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

11 years agoForward white to grey transition only if slot is before the progress bar of a given...
hpayer@chromium.org [Mon, 26 Nov 2012 16:16:49 +0000 (16:16 +0000)]
Forward white to grey transition only if slot is before the progress bar of a given object.

BUG=

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

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

11 years agoMIPS: Fix MIPS port of r13032 (25d0edd7).
mvstanton@chromium.org [Mon, 26 Nov 2012 16:14:49 +0000 (16:14 +0000)]
MIPS: Fix MIPS port of r13032 (25d0edd7).

This commit fixes a small typo in r13032 (25d0edd7).

BUG=
TEST=

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

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

11 years agoEnsure we do not clobber the register holding the elements backing store.
verwaest@chromium.org [Mon, 26 Nov 2012 15:58:27 +0000 (15:58 +0000)]
Ensure we do not clobber the register holding the elements backing store.

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

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

11 years agoRemove eager sweeping for lazy swept spaces. Try to find in SlowAllocateRaw a bounded...
hpayer@chromium.org [Mon, 26 Nov 2012 14:50:20 +0000 (14:50 +0000)]
Remove eager sweeping for lazy swept spaces. Try to find in SlowAllocateRaw a bounded number of times a big enough memory slot.

BUG=v8:2194

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

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

11 years agoPrepare push to trunk. Now working on version 3.15.7.
danno@chromium.org [Mon, 26 Nov 2012 14:49:57 +0000 (14:49 +0000)]
Prepare push to trunk.  Now working on version 3.15.7.

R=jkummerow@chromium.org

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

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

11 years agoEnsure double arrays are filled with holes when extended from variations of empty...
verwaest@chromium.org [Mon, 26 Nov 2012 14:29:21 +0000 (14:29 +0000)]
Ensure double arrays are filled with holes when extended from variations of empty arrays.

BUG=162085

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

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

11 years agoFix test262 expectations for fast implementation of Math.exp()
jkummerow@chromium.org [Mon, 26 Nov 2012 13:40:00 +0000 (13:40 +0000)]
Fix test262 expectations for fast implementation of Math.exp()

R=yangguo@chromium.org

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

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

11 years agoFaster implementation of Math.exp()
jkummerow@chromium.org [Mon, 26 Nov 2012 13:12:35 +0000 (13:12 +0000)]
Faster implementation of Math.exp()

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

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

11 years agoMake indexed intercepted methods enumerable by default.
rossberg@chromium.org [Mon, 26 Nov 2012 12:55:47 +0000 (12:55 +0000)]
Make indexed intercepted methods enumerable by default.

R=ulan@chromium.org
BUG=162606

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

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

11 years agoRemove unused heap debug utils code.
ulan@chromium.org [Mon, 26 Nov 2012 10:23:16 +0000 (10:23 +0000)]
Remove unused heap debug utils code.

This functionality is already implemented by PathTracer.

R=mstarzinger@chromium.org

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

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

11 years agoAlso time other API functions calling into javascript.
yangguo@chromium.org [Mon, 26 Nov 2012 08:56:59 +0000 (08:56 +0000)]
Also time other API functions calling into javascript.

And prevent crash when starting chromium without --single-process.

BUG=

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

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

11 years agoFix valgrind warnings.
yangguo@chromium.org [Mon, 26 Nov 2012 08:47:48 +0000 (08:47 +0000)]
Fix valgrind warnings.

BUG=

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

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

11 years agoCensor .caller if it is a strict function instead of throwing.
rossberg@chromium.org [Fri, 23 Nov 2012 15:47:58 +0000 (15:47 +0000)]
Censor .caller if it is a strict function instead of throwing.

For details, see:

http://www.mail-archive.com/es-discuss@mozilla.org/msg19322.html
https://bugs.ecmascript.org/show_bug.cgi?id=310

R=mstarzinger@chromium.org
BUG=

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

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

11 years agoFix strict mode test case, so that it succeeds for the right reason.
rossberg@chromium.org [Fri, 23 Nov 2012 15:45:03 +0000 (15:45 +0000)]
Fix strict mode test case, so that it succeeds for the right reason.

R=mstarzinger@chromium.org
BUG=

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

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

11 years agoObject.observe: Tests for __define{G,S}etter__.
rossberg@chromium.org [Fri, 23 Nov 2012 15:43:54 +0000 (15:43 +0000)]
Object.observe: Tests for __define{G,S}etter__.

R=adamk@chromium.org,rafaelw@chromium.org
BUG=

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

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

11 years agoMIPS: Get rid of static module allocation, do it in code.
rossberg@chromium.org [Fri, 23 Nov 2012 15:39:25 +0000 (15:39 +0000)]
MIPS: Get rid of static module allocation, do it in code.

Port r13033 (58c2efbb)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11413146
Patch from palfia <palfia@homejinni.com>.

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

11 years agoPrepare push to trunk. Now working on version 3.15.6.
ulan@chromium.org [Fri, 23 Nov 2012 14:35:13 +0000 (14:35 +0000)]
Prepare push to trunk.  Now working on version 3.15.6.

R=jkummerow@chromium.org
BUG=

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

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

11 years agoForce small array literals to have FAST_ELEMENTs
danno@chromium.org [Fri, 23 Nov 2012 13:23:39 +0000 (13:23 +0000)]
Force small array literals to have FAST_ELEMENTs

R=verwaest@chromium.org

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

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

11 years agoFix JSON.stringify for objects with interceptor handlers.
yangguo@chromium.org [Fri, 23 Nov 2012 12:32:24 +0000 (12:32 +0000)]
Fix JSON.stringify for objects with interceptor handlers.

BUG=161028

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

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

11 years agoReset progress bar of object to 0 when RecordWrites changes object color to grey.
hpayer@chromium.org [Fri, 23 Nov 2012 12:22:16 +0000 (12:22 +0000)]
Reset progress bar of object to 0 when RecordWrites changes object color to grey.

BUG=v8:2423

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

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

11 years agoRevert r13025 and r13026 (they introduced a bug on arm and regressed octane crypto).
mmassi@chromium.org [Fri, 23 Nov 2012 10:53:03 +0000 (10:53 +0000)]
Revert r13025 and r13026 (they introduced a bug on arm and regressed octane crypto).

BUG=

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

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

11 years ago- Initialize the result array with holes if we concat a double array into an object...
verwaest@chromium.org [Thu, 22 Nov 2012 16:22:57 +0000 (16:22 +0000)]
- Initialize the result array with holes if we concat a double array into an object array, since it may cause a marking step while boxing a double.
- Ensure we go holey if we are concatting any holey array.

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

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

11 years agoPredictableCodeSizeScope checks the expected size now.
svenpanne@chromium.org [Thu, 22 Nov 2012 14:59:52 +0000 (14:59 +0000)]
PredictableCodeSizeScope checks the expected size now.

We still have some problems on ARM, so the size check currently
optional. Furthermore, we don't use PredictableCodeSizeScope at all
place where we should do it. Both issues are cleaned up in upcoming
CLs.

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

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

11 years agoAdd parallel recompilation time to histogram and plot execution pause times.
yangguo@chromium.org [Thu, 22 Nov 2012 13:04:11 +0000 (13:04 +0000)]
Add parallel recompilation time to histogram and plot execution pause times.

BUG=

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

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

11 years agoObject.observe: More tests for accessor reconfiguration.
rossberg@chromium.org [Thu, 22 Nov 2012 10:31:42 +0000 (10:31 +0000)]
Object.observe: More tests for accessor reconfiguration.

R=adamk@chromium.org,rafaelw@chromium.org
BUG=

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

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

11 years agoMoved buffer handling to AssemblerBase.
svenpanne@chromium.org [Thu, 22 Nov 2012 10:28:29 +0000 (10:28 +0000)]
Moved buffer handling to AssemblerBase.

This removed a lot of copy-n-paste code and is very handy for some upcoming
changes (regarding predictable code size).

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

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

11 years agoGet rid of static module allocation, do it in code.
rossberg@chromium.org [Thu, 22 Nov 2012 10:25:22 +0000 (10:25 +0000)]
Get rid of static module allocation, do it in code.

Modules now have their own local scope, represented by their own context.
Module instance objects have an accessor for every export that forwards
access to the respective slot from the module's context. (Exports that are
modules themselves, however, are simple data properties.)

All modules have a _hosting_ scope/context, which (currently) is the
(innermost) enclosing global scope. To deal with recursion, nested modules
are hosted by the same scope as global ones.

For every (global or nested) module literal, the hosting context has an
internal slot that points directly to the respective module context. This
enables quick access to (statically resolved) module members by 2-dimensional
access through the hosting context. For example,

  module A {
    let x;
    module B { let y; }
  }
  module C { let z; }

allocates contexts as follows:

[header| .A | .B | .C | A | C ]  (global)
          |    |    |
          |    |    +-- [header| z ]  (module)
          |    |
          |    +------- [header| y ]  (module)
          |
          +------------ [header| x | B ]  (module)

Here, .A, .B, .C are the internal slots pointing to the hosted module
contexts, whereas A, B, C hold the actual instance objects (note that every
module context also points to the respective instance object through its
extension slot in the header).

To deal with arbitrary recursion and aliases between modules,
they are created and initialized in several stages. Each stage applies to
all modules in the hosting global scope, including nested ones.

1. Allocate: for each module _literal_, allocate the module contexts and
   respective instance object and wire them up. This happens in the
   PushModuleContext runtime function, as generated by AllocateModules
   (invoked by VisitDeclarations in the hosting scope).

2. Bind: for each module _declaration_ (i.e. literals as well as aliases),
   assign the respective instance object to respective local variables. This
   happens in VisitModuleDeclaration, and uses the instance objects created
   in the previous stage.
   For each module _literal_, this phase also constructs a module descriptor
   for the next stage. This happens in VisitModuleLiteral.

3. Populate: invoke the DeclareModules runtime function to populate each
   _instance_ object with accessors for it exports. This is generated by
   DeclareModules (invoked by VisitDeclarations in the hosting scope again),
   and uses the descriptors generated in the previous stage.

4. Initialize: execute the module bodies (and other code) in sequence. This
   happens by the separate statements generated for module bodies. To reenter
   the module scopes properly, the parser inserted ModuleStatements.

R=mstarzinger@chromium.org,svenpanne@chromium.org
BUG=

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

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

11 years agoAdd dehoisting to the string printout of hydrogen and lithium instructions.
mvstanton@chromium.org [Thu, 22 Nov 2012 10:19:05 +0000 (10:19 +0000)]
Add dehoisting to the string printout of hydrogen and lithium instructions.
This is nice when looking at hydrogen graphs, to see the real key offset.

R=mmassi@chromium.org
BUG=

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

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

11 years agoFix counters in d8.
yangguo@chromium.org [Thu, 22 Nov 2012 08:35:21 +0000 (08:35 +0000)]
Fix counters in d8.

R=svenpanne@chromium.org
BUG=

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

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

11 years agoReduced TLS accesses even further.
svenpanne@chromium.org [Thu, 22 Nov 2012 07:58:59 +0000 (07:58 +0000)]
Reduced TLS accesses even further.

Thread the Isolate through FindCodeInCache, FindCodeInSpecialCache and
SetProperty. Reduced the number of TLS accesses while running the Octane
benchmark down to 19% compared to the beginning of the cleanups.

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

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

11 years agoUse slot instead of value in the write barrier to record write from code.
hpayer@chromium.org [Thu, 22 Nov 2012 07:05:20 +0000 (07:05 +0000)]
Use slot instead of value in the write barrier to record write from code.

BUG=

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

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

11 years agoFix performance regression in DXT5Decoder.js.
mvstanton@chromium.org [Wed, 21 Nov 2012 14:01:10 +0000 (14:01 +0000)]
Fix performance regression in DXT5Decoder.js.

R=svenpanne@chromium.org
BUG=

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

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

11 years agoObject.observe: Unblacklist some tests involving indexed properties
rossberg@chromium.org [Wed, 21 Nov 2012 12:50:49 +0000 (12:50 +0000)]
Object.observe: Unblacklist some tests involving indexed properties

These were erroneously disabled because they were expecting indexed properties to be of Number type when appearing as the "name" in change records. But the "name" property will always be a string. Fixed assertRecordsEqual() to enforce this in expectations.

BUG=v8:2409

Review URL: https://codereview.chromium.org/11280105
Patch from Adam Klein <adamk@chromium.org>.

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

11 years agoFix build (and fix brown paper bug as well...).
mmassi@chromium.org [Wed, 21 Nov 2012 12:17:18 +0000 (12:17 +0000)]
Fix build (and fix brown paper bug as well...).

BUG=

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

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

11 years agoUse the property load IC for accessing the array length.
mmassi@chromium.org [Wed, 21 Nov 2012 11:49:15 +0000 (11:49 +0000)]
Use the property load IC for accessing the array length.

BUG=

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

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

11 years agoEnable deprecations.
svenpanne@chromium.org [Wed, 21 Nov 2012 10:16:07 +0000 (10:16 +0000)]
Enable deprecations.

In addition, use a more common style in the preprocessor condition, making
e.g. '-DV8_ENABLE_DEPRECATIONS=0' do the expected thing. Removed a useles

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

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

11 years agoRename IsAsciiRepresentation
yangguo@chromium.org [Wed, 21 Nov 2012 10:01:05 +0000 (10:01 +0000)]
Rename IsAsciiRepresentation

This is a straight rename:

IsAsciiRepresentation -> IsOneByteRepresentation
IsAsciiRepresentationUnderneath -> IsOneByteRepresentationUnderneath
AllocateRawAsciiString -> AllocateRawOneByteString
AllocateStringFromAscii -> AllocateStringFromOneByte

R=yangguo@chromium.org,
BUG=

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

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

11 years agoMIPS: Support all fast elements kinds in the major array operations. Currently missin...
verwaest@chromium.org [Wed, 21 Nov 2012 09:54:53 +0000 (09:54 +0000)]
MIPS: Support all fast elements kinds in the major array operations. Currently missing support for unshift.

Port r12969 (b10320d7)

BUG=
TEST=

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

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

11 years agoMIPS: Make kAsciiDataHintTag have correct semantics for all both 1 and 2 byte string...
yangguo@chromium.org [Wed, 21 Nov 2012 09:41:34 +0000 (09:41 +0000)]
MIPS: Make kAsciiDataHintTag have correct semantics for all both 1 and 2 byte string types.

Port r12966 (ec963fe0)

BUG=
TEST=

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

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

11 years agoActually relax test expectations for known failing test.
yangguo@chromium.org [Wed, 21 Nov 2012 09:32:06 +0000 (09:32 +0000)]
Actually relax test expectations for known failing test.

This corrects r13011.

R=mstarzinger@chromium.org
BUG=

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

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

11 years agoFix corner case in x64 compare stubs.
jkummerow@chromium.org [Tue, 20 Nov 2012 15:57:10 +0000 (15:57 +0000)]
Fix corner case in x64 compare stubs.

BUG=v8:2416

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

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

11 years agoDrastically reduce the number of created strings in d8, 2nd attempt.
svenpanne@chromium.org [Tue, 20 Nov 2012 14:47:56 +0000 (14:47 +0000)]
Drastically reduce the number of created strings in d8, 2nd attempt.

This also reduces the number of TLS accesses, so it is a double-win. We have
230k less TLS accesses while running Octane now, so we are down to 23% now
compared to the start of these TLS-related CLs.

To get things right in the presence of multiple Isolates, we have to thread the
correct Isolate through several layers. This threading wasn't that bad after
all, it keeps one honest about the real depdencies. The only ugly thing is that
in ExternalArrayWeakCallback we have to conjure up the current Isolate from the
TLS, but this is a know API deficiency.

Introduced a tiny helper function for throwing on the way.

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

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

11 years agoEmit RSB for subtraction with constant lhs on ARM
ulan@chromium.org [Tue, 20 Nov 2012 14:46:16 +0000 (14:46 +0000)]
Emit RSB for subtraction with constant lhs on ARM

Instead of generating the following for "100 - x":

  mov r1, #100
  subs r0, r1, r0

this patch makes Crankshaft generate this:

  rsbs r0, r0, #100

thus saving a register and a mov.

BUG=

Review URL: https://chromiumcodereview.appspot.com/11308040
Patch from Hans Wennborg <hans@chromium.org>.

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

11 years agoObject.observe: Add test case covering most special cases.
rossberg@chromium.org [Tue, 20 Nov 2012 14:45:21 +0000 (14:45 +0000)]
Object.observe: Add test case covering most special cases.

Things not working yet are currently blacklisted in the test (see TODOs).

R=verwaest@chromium.org
BUG=

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

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

11 years agoMissing check for exception.
rossberg@chromium.org [Tue, 20 Nov 2012 14:41:20 +0000 (14:41 +0000)]
Missing check for exception.

R=mstarzinger@chromium.org
BUG=

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

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

11 years agoMIPS: Lattice-based representation inference, powered by left/right specific type...
jkummerow@chromium.org [Tue, 20 Nov 2012 14:11:53 +0000 (14:11 +0000)]
MIPS: Lattice-based representation inference, powered by left/right specific type feedback for BinaryOps and comparisons

Port r12961 (96c0e493)

BUG=
TEST=

Review URL: https://codereview.chromium.org/11280080
Patch from Akos Palfi <palfia@homejinni.com>.

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

11 years agoFix typo in condition when to log code objects during deserialization.
jkummerow@chromium.org [Tue, 20 Nov 2012 12:59:36 +0000 (12:59 +0000)]
Fix typo in condition when to log code objects during deserialization.

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

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

11 years agoFix and clean up treatment of hidden prototypes.
rossberg@chromium.org [Tue, 20 Nov 2012 12:32:29 +0000 (12:32 +0000)]
Fix and clean up treatment of hidden prototypes.

R=mstarzinger@chromium.org
BUG=

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

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

11 years agoRelax test expectations for known failing test.
yangguo@chromium.org [Tue, 20 Nov 2012 12:31:41 +0000 (12:31 +0000)]
Relax test expectations for known failing test.

BUG=

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

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

11 years agoMake test-dictionary work for GC stress builder.
mstarzinger@chromium.org [Tue, 20 Nov 2012 10:47:31 +0000 (10:47 +0000)]
Make test-dictionary work for GC stress builder.

R=yangguo@chromium.org
TEST=cctest/test-dictionary

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

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

11 years agoObject.observe/unobserve now return object
rossberg@chromium.org [Tue, 20 Nov 2012 10:38:14 +0000 (10:38 +0000)]
Object.observe/unobserve now return object

BUG=v8:2418

Review URL: https://codereview.chromium.org/11419078
Patch from Rafael Weinstein <rafaelw@chromium.org>.

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

11 years agoRe-adjust access failure log messages for %GetOwnProperty.
rossberg@chromium.org [Mon, 19 Nov 2012 17:59:11 +0000 (17:59 +0000)]
Re-adjust access failure log messages for %GetOwnProperty.

R=mstarzinger@chromium.org
BUG=

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

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

11 years agoEnable marking progress bar for large objects by default.
mstarzinger@chromium.org [Mon, 19 Nov 2012 17:23:58 +0000 (17:23 +0000)]
Enable marking progress bar for large objects by default.

R=hpayer@chromium.org

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

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

11 years agoForward transition objects to grey if they are referenced by a large object
hpayer@chromium.org [Mon, 19 Nov 2012 16:20:22 +0000 (16:20 +0000)]
Forward transition objects to grey if they are referenced by a large object

BUG=

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

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

11 years agoAlways check copy_size before getting accessor and trying to copy.
verwaest@chromium.org [Mon, 19 Nov 2012 15:31:38 +0000 (15:31 +0000)]
Always check copy_size before getting accessor and trying to copy.

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

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

11 years agoEnsure CopyElementsImpl is always executed so it fills in holes even if from_size...
verwaest@chromium.org [Mon, 19 Nov 2012 15:00:34 +0000 (15:00 +0000)]
Ensure CopyElementsImpl is always executed so it fills in holes even if from_size is 0. Allow FixedDoubleArray::cast to also support FixedArray with size 0.

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

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

11 years agoRevert "Drastically reduce the number of created strings in d8."
svenpanne@chromium.org [Mon, 19 Nov 2012 14:46:19 +0000 (14:46 +0000)]
Revert "Drastically reduce the number of created strings in d8."

This reverts commit 2fc4424b00296cc06d6f7eb4bf31ec9c3d6be68a.

Even symbols shouldn't be shared across Isolates. The CL has to be reworked to
use a (Isolate,C-string)->v8-symbol mapping. Slowly approaching Chrome... :-/

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

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

11 years agoFix --hydrogen-stats.
yangguo@chromium.org [Mon, 19 Nov 2012 14:20:57 +0000 (14:20 +0000)]
Fix --hydrogen-stats.

Timing happens in a scope.  Since crankshaft has been chopped up into three methods, this approach is wrong.

BUG=

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

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

11 years agoFix clang build: remove unused static function
mstarzinger@chromium.org [Mon, 19 Nov 2012 09:46:58 +0000 (09:46 +0000)]
Fix clang build: remove unused static function

The last call to GetOwnPropertyImplementation() was removed in r12990.

Review URL: https://codereview.chromium.org/11411038
Patch from Adam Klein <adamk@chromium.org>.

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

11 years agoFix sequence point bug.
rossberg@chromium.org [Mon, 19 Nov 2012 09:43:56 +0000 (09:43 +0000)]
Fix sequence point bug.

R=mstarzinger@chromium.org
BUG=

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

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

11 years agoPrepare push to trunk. Now working on version 3.15.5.
yangguo@chromium.org [Fri, 16 Nov 2012 14:41:06 +0000 (14:41 +0000)]
Prepare push to trunk.  Now working on version 3.15.5.

R=jkummerow@chromium.org
BUG=

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

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

11 years agoFix test failures.
yangguo@chromium.org [Fri, 16 Nov 2012 14:24:19 +0000 (14:24 +0000)]
Fix test failures.

R=jkummerow@chromium.org
BUG=

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

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

11 years agoDrastically reduce the number of created strings in d8.
svenpanne@chromium.org [Fri, 16 Nov 2012 13:30:43 +0000 (13:30 +0000)]
Drastically reduce the number of created strings in d8.

This also reduces the number of TLS accesses, so it is a double-win. We have
230k less TLS accesses while running Octane now, so we are down to 23% now
compared to the start of these TLS-related CLs.

Introduced a tiny helper function for throwing on the way.

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

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

11 years agoClean-up refactoring to eliminate GetLocalElementKind.
rossberg@chromium.org [Fri, 16 Nov 2012 13:28:34 +0000 (13:28 +0000)]
Clean-up refactoring to eliminate GetLocalElementKind.

Eliminates substantial amounts of fragile code duplication and special casing.

Also fixes "a".propertyIsEnumerable(0) to correctly return true.

R=mstarzinger@chromium.org
BUG=

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

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

11 years agoFix Array.prototype.join evaluation order.
mstarzinger@chromium.org [Fri, 16 Nov 2012 12:45:23 +0000 (12:45 +0000)]
Fix Array.prototype.join evaluation order.

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

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

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

11 years agoFix test failures.
yangguo@chromium.org [Fri, 16 Nov 2012 11:58:21 +0000 (11:58 +0000)]
Fix test failures.

R=jkummerow@chromium.org
BUG=

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

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

11 years agoMake PrototypeTransitionClearing work with GC interval.
mstarzinger@chromium.org [Fri, 16 Nov 2012 11:39:32 +0000 (11:39 +0000)]
Make PrototypeTransitionClearing work with GC interval.

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

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

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

11 years agoIntroduce helper functions to test parallel recompilation.
yangguo@chromium.org [Fri, 16 Nov 2012 10:57:50 +0000 (10:57 +0000)]
Introduce helper functions to test parallel recompilation.

BUG=

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

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

11 years agoPerform CPU sampling by CPU sampling thread only iff processing thread is not running.
jkummerow@chromium.org [Fri, 16 Nov 2012 10:38:10 +0000 (10:38 +0000)]
Perform CPU sampling by CPU sampling thread only iff processing thread is not running.

- perform CPU profiler sampling in the sampler thread as we used to;
- skip sampling in the sampling thread if processing thread is running;
- only install SIGPROF handler when CPU profiling is enabled.

BUG=v8:2364

Review URL: https://codereview.chromium.org/11231002
Patch from Sergey Rogulenko <rogulenko@google.com> and Andrey Kosyakov <caseq@chromium.org>.

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

11 years agoDisable InstanceOfStubWriteBarrier in some cases.
mstarzinger@chromium.org [Fri, 16 Nov 2012 10:33:57 +0000 (10:33 +0000)]
Disable InstanceOfStubWriteBarrier in some cases.

This disables the above regression test when run with forced marking
deque overflows (which is implicitly enabled by --stress-compaction).

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

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

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