danno@chromium.org [Fri, 30 Nov 2012 17:31:30 +0000 (17:31 +0000)]
Enable stub generation using Hydrogen/Lithium.
This initial implementation generates only KeyedLoadICs using the new Hydrogen stub infrastructure.
Review URL: https://codereview.chromium.org/
10701054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13105
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 30 Nov 2012 10:26:21 +0000 (10:26 +0000)]
Revert "Perform CPU sampling by CPU sampling thread only iff processing thread is not running."
This reverts r12985.
Review URL: https://codereview.chromium.org/
11428103
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13104
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Fri, 30 Nov 2012 10:14:21 +0000 (10:14 +0000)]
Turn off optimization for Mac Debug builds
Review URL: https://codereview.chromium.org/
11414237
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13102
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 30 Nov 2012 10:11:44 +0000 (10:11 +0000)]
Prepare push to trunk. Now working on version 3.15.8.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
11280252
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13100
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 30 Nov 2012 09:42:20 +0000 (09:42 +0000)]
Revert "Allow incremental marking when expose_gc is turned on."
This reverts r13072 from bleeding edge.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
11316268
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13099
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 29 Nov 2012 15:58:16 +0000 (15:58 +0000)]
Pass FixedArrayBase in elements.cc.
This avoids casting problems in case of empty_fixed_array as
FixedDoubleArray with size 0. This avoids prematurely shortcutting in
case of 0 all over the place, which in turn leads to errors.
Review URL: https://chromiumcodereview.appspot.com/
11299226
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13098
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 29 Nov 2012 15:55:27 +0000 (15:55 +0000)]
Use generic array functions to setup the boilerplate to avoid logic duplication.
Review URL: https://chromiumcodereview.appspot.com/
11361281
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13097
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 29 Nov 2012 15:13:49 +0000 (15:13 +0000)]
Remove unused private member variables found by clang -Wunused-private-field
Review URL: https://codereview.chromium.org/
11414207
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13096
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 29 Nov 2012 14:53:44 +0000 (14:53 +0000)]
Fix typo in FunctionTemplate::ReadOnlyPrototype.
Contributed by Peter Varga <pvarga@inf.u-szeged.hu>
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11434031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13095
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 29 Nov 2012 14:31:38 +0000 (14:31 +0000)]
Activate code aging by default.
Review URL: https://codereview.chromium.org/
11411257
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13094
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 29 Nov 2012 14:04:27 +0000 (14:04 +0000)]
MIPS: Also time external callbacks from generated code.
Port r13078 (
73f25483)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
11316236
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13093
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 29 Nov 2012 09:22:08 +0000 (09:22 +0000)]
MIPS: Faster implementation of Math.exp()
Port r13054 (
636985d7)
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11415192
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13089
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 29 Nov 2012 09:14:52 +0000 (09:14 +0000)]
MIPS: Fix register confusion in non-VFP3 BinaryOpStubs on ARM
Port r12980 (
13380d3b)
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11308158
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13088
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 29 Nov 2012 09:12:31 +0000 (09:12 +0000)]
MIPS: DoNumberTagD performance improvement
Port r12711 (
a8d45ac2)
Original commit message:
Allocate heap entry untagged and tag at end to avoid having to subtract off
the tag offset before storing the value.
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11280106
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13087
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 29 Nov 2012 09:09:39 +0000 (09:09 +0000)]
MIPS: ARM: Fast path for integer inputs to EmitVFPTruncate
Port r12676 (
7d5e7e81)
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11308134
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13086
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 29 Nov 2012 08:40:39 +0000 (08:40 +0000)]
MIPS: Only fill in holes if storing the number to the double array has succeeded.
Port r13067 (
c822cffa)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
11428068
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13085
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 29 Nov 2012 08:39:44 +0000 (08:39 +0000)]
MIPS: Ensure we do not clobber the register holding the elements backing store.
Port r13061 (
83bb6fcc)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
11316235
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13084
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 29 Nov 2012 08:37:41 +0000 (08:37 +0000)]
MIPS: Ensure double arrays are filled with holes when extended from variations of empty arrays.
Port r13056 (
9b2c1725)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
11411253
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13083
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 29 Nov 2012 08:34:19 +0000 (08:34 +0000)]
CopyPackedSmiToDoubleElements should fill the FixedDoubleArray with holes
BUG=v8:2433
Review URL: https://chromiumcodereview.appspot.com/
11280223
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13082
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 29 Nov 2012 07:38:00 +0000 (07:38 +0000)]
Simplify and fix code aging.
Making the code size predictable is hard, and to make things even more
complicated, the start of a function can contain various stuff like calls to a
profiling hook, receiver adjustment or dynamic frame alignment. Instead of
tackling all these problems separately, we now simply record the offset where
patching should happen later in the Code object itself.
Review URL: https://codereview.chromium.org/
11316218
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13081
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 28 Nov 2012 17:56:17 +0000 (17:56 +0000)]
Remove bogus assertion from idle notification.
Callbacks that run after garbage collection might fire a context dispose
notification and hence increse the counter before we actually reach this
position.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
11280214
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13080
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 28 Nov 2012 15:11:38 +0000 (15:11 +0000)]
Improve debug printing of non-strict arguments object.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
11316219
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13079
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 28 Nov 2012 15:11:21 +0000 (15:11 +0000)]
Also time external callbacks from generated code.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11411224
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13078
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 28 Nov 2012 14:02:30 +0000 (14:02 +0000)]
Relax restrictions on CONSTANT_FUNCTION descriptors in TransformPropertiesToFastFor.
Since r10174 they are not required to be in new space.
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11418181
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13077
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 28 Nov 2012 11:01:10 +0000 (11:01 +0000)]
Include more information in --prof log.
Main changes:
- include timestamps in profile ticks
- include code kind in code create events
- time execution in external code
- changed plot-timer-events.js to show the code kind being executed
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11428025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13074
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 28 Nov 2012 10:53:39 +0000 (10:53 +0000)]
Fixed pointer arithmetic in write barrier for large objects when marking progress bar is used.
BUG=
Review URL: https://codereview.chromium.org/
11421123
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13073
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Wed, 28 Nov 2012 08:43:10 +0000 (08:43 +0000)]
Allow incremental marking when expose_gc is turned on.
BUG=
Review URL: https://codereview.chromium.org/
11299154
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13072
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 28 Nov 2012 08:41:45 +0000 (08:41 +0000)]
Make ElementsAccessors more tolerant of varying backing store types
This avoids bogus calls to Fixed*Array::cast() when FastElements-backed objects are empty (and thus backed by empty_fixed_array).
Review URL: https://chromiumcodereview.appspot.com/
11299190
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13071
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 28 Nov 2012 08:35:46 +0000 (08:35 +0000)]
Properly handle-ify method calls to map() and GetLocalElementAccessorPair()
These are likely causing some of the flaky crashes in Object.observe code. I've reorganized some of the code to minimize the number of necessary calls to map() (by saving the result of map()->is_observed() in a local bool).
Also move down an unnecessarily early call to Uint32ToString when sending an element deletion notification.
Review URL: https://chromiumcodereview.appspot.com/
11316202
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13070
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 27 Nov 2012 17:03:12 +0000 (17:03 +0000)]
Move assertion about stopped marking up (again).
Weak persistent handle callbacks might trigger nested GCs that in turn
can cause marking to be restarted. The assertion needs to hold before
firing callbacks only.
R=ulan@chromium.org
TEST=cctest/test-api --stress-compaction
Review URL: https://codereview.chromium.org/
11413188
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13069
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 27 Nov 2012 15:30:12 +0000 (15:30 +0000)]
Disable stress for some unit test.
Some unit tests specifically test scavenges and forcing them to do
global GCs instead makes no sense. The GC stress builder triggers this.
R=yangguo@chromium.org
TEST=cctest/test-api --stress-compaction
Review URL: https://codereview.chromium.org/
11421098
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13068
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 27 Nov 2012 13:27:15 +0000 (13:27 +0000)]
Only fill in holes if storing the number to the double array has succeeded.
Review URL: https://chromiumcodereview.appspot.com/
11299200
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13067
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 27 Nov 2012 13:18:55 +0000 (13:18 +0000)]
Fix incremental marking to be off during heap snapshots.
The heap snapshot generator uses the UnreachableObjectsFilter which in
turn messes with marking bits. This requires incremental marking to be
turned off while the snapshot is being generated.
R=verwaest@chromium.org
TEST=cctest/test-heap-profiler --stress-compaction
Review URL: https://codereview.chromium.org/
11413183
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13066
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 27 Nov 2012 12:52:51 +0000 (12:52 +0000)]
Make unit tests that fill new-space work under stress.
This makes sure that unit tests that try to fill up the new-space work
on the GC stress buildbots as well.
R=yangguo@chromium.org
TEST=cctest/test-heap --gc-interval=500 --stress-compaction
Review URL: https://codereview.chromium.org/
11416200
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13065
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 27 Nov 2012 12:01:14 +0000 (12:01 +0000)]
Avoid double initialization of arrays.
Review URL: https://chromiumcodereview.appspot.com/
11413179
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13064
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Mon, 26 Nov 2012 16:16:49 +0000 (16:16 +0000)]
Forward white to grey transition only if slot is before the progress bar of a given object.
BUG=
Review URL: https://codereview.chromium.org/
11415070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13063
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Mon, 26 Nov 2012 16:14:49 +0000 (16:14 +0000)]
MIPS: Fix MIPS port of r13032 (
25d0edd7).
This commit fixes a small typo in r13032 (
25d0edd7).
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11348205
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13062
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 26 Nov 2012 15:58:27 +0000 (15:58 +0000)]
Ensure we do not clobber the register holding the elements backing store.
Review URL: https://chromiumcodereview.appspot.com/
11316168
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13061
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Mon, 26 Nov 2012 14:50:20 +0000 (14:50 +0000)]
Remove eager sweeping for lazy swept spaces. Try to find in SlowAllocateRaw a bounded number of times a big enough memory slot.
BUG=v8:2194
Review URL: https://codereview.chromium.org/
11420036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13058
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 26 Nov 2012 14:49:57 +0000 (14:49 +0000)]
Prepare push to trunk. Now working on version 3.15.7.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
11316166
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13057
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 26 Nov 2012 14:29:21 +0000 (14:29 +0000)]
Ensure double arrays are filled with holes when extended from variations of empty arrays.
BUG=162085
Review URL: https://chromiumcodereview.appspot.com/
11414155
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13056
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 26 Nov 2012 13:40:00 +0000 (13:40 +0000)]
Fix test262 expectations for fast implementation of Math.exp()
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
11418153
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13055
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 26 Nov 2012 13:12:35 +0000 (13:12 +0000)]
Faster implementation of Math.exp()
Review URL: https://codereview.chromium.org/
11418149
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13054
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 26 Nov 2012 12:55:47 +0000 (12:55 +0000)]
Make indexed intercepted methods enumerable by default.
R=ulan@chromium.org
BUG=162606
Review URL: https://codereview.chromium.org/
11348222
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13053
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 26 Nov 2012 10:23:16 +0000 (10:23 +0000)]
Remove unused heap debug utils code.
This functionality is already implemented by PathTracer.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
11412162
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13052
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 26 Nov 2012 08:56:59 +0000 (08:56 +0000)]
Also time other API functions calling into javascript.
And prevent crash when starting chromium without --single-process.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11411144
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13051
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 26 Nov 2012 08:47:48 +0000 (08:47 +0000)]
Fix valgrind warnings.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11418138
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13050
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Fri, 23 Nov 2012 15:47:58 +0000 (15:47 +0000)]
Censor .caller if it is a strict function instead of throwing.
For details, see:
http://www.mail-archive.com/es-discuss@mozilla.org/msg19322.html
https://bugs.ecmascript.org/show_bug.cgi?id=310
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11417140
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13049
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Fri, 23 Nov 2012 15:45:03 +0000 (15:45 +0000)]
Fix strict mode test case, so that it succeeds for the right reason.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11348196
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13048
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Fri, 23 Nov 2012 15:43:54 +0000 (15:43 +0000)]
Object.observe: Tests for __define{G,S}etter__.
R=adamk@chromium.org,rafaelw@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11348193
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13047
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Fri, 23 Nov 2012 15:39:25 +0000 (15:39 +0000)]
MIPS: Get rid of static module allocation, do it in code.
Port r13033 (
58c2efbb)
BUG=
TEST=
Review URL: https://codereview.chromium.org/
11413146
Patch from palfia <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13046
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Fri, 23 Nov 2012 14:35:13 +0000 (14:35 +0000)]
Prepare push to trunk. Now working on version 3.15.6.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11308182
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13043
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 23 Nov 2012 13:23:39 +0000 (13:23 +0000)]
Force small array literals to have FAST_ELEMENTs
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
11414139
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13042
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 23 Nov 2012 12:32:24 +0000 (12:32 +0000)]
Fix JSON.stringify for objects with interceptor handlers.
BUG=161028
Review URL: https://chromiumcodereview.appspot.com/
11348209
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13041
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Fri, 23 Nov 2012 12:22:16 +0000 (12:22 +0000)]
Reset progress bar of object to 0 when RecordWrites changes object color to grey.
BUG=v8:2423
Review URL: https://codereview.chromium.org/
11308177
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13040
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Fri, 23 Nov 2012 10:53:03 +0000 (10:53 +0000)]
Revert r13025 and r13026 (they introduced a bug on arm and regressed octane crypto).
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11316151
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13039
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 22 Nov 2012 16:22:57 +0000 (16:22 +0000)]
- Initialize the result array with holes if we concat a double array into an object array, since it may cause a marking step while boxing a double.
- Ensure we go holey if we are concatting any holey array.
Review URL: https://chromiumcodereview.appspot.com/
11413142
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13038
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 22 Nov 2012 14:59:52 +0000 (14:59 +0000)]
PredictableCodeSizeScope checks the expected size now.
We still have some problems on ARM, so the size check currently
optional. Furthermore, we don't use PredictableCodeSizeScope at all
place where we should do it. Both issues are cleaned up in upcoming
CLs.
Review URL: https://codereview.chromium.org/
11348195
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13037
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 22 Nov 2012 13:04:11 +0000 (13:04 +0000)]
Add parallel recompilation time to histogram and plot execution pause times.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11412125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13036
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 22 Nov 2012 10:31:42 +0000 (10:31 +0000)]
Object.observe: More tests for accessor reconfiguration.
R=adamk@chromium.org,rafaelw@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11280118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13035
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 22 Nov 2012 10:28:29 +0000 (10:28 +0000)]
Moved buffer handling to AssemblerBase.
This removed a lot of copy-n-paste code and is very handy for some upcoming
changes (regarding predictable code size).
Review URL: https://codereview.chromium.org/
11416133
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13034
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Thu, 22 Nov 2012 10:25:22 +0000 (10:25 +0000)]
Get rid of static module allocation, do it in code.
Modules now have their own local scope, represented by their own context.
Module instance objects have an accessor for every export that forwards
access to the respective slot from the module's context. (Exports that are
modules themselves, however, are simple data properties.)
All modules have a _hosting_ scope/context, which (currently) is the
(innermost) enclosing global scope. To deal with recursion, nested modules
are hosted by the same scope as global ones.
For every (global or nested) module literal, the hosting context has an
internal slot that points directly to the respective module context. This
enables quick access to (statically resolved) module members by 2-dimensional
access through the hosting context. For example,
module A {
let x;
module B { let y; }
}
module C { let z; }
allocates contexts as follows:
[header| .A | .B | .C | A | C ] (global)
| | |
| | +-- [header| z ] (module)
| |
| +------- [header| y ] (module)
|
+------------ [header| x | B ] (module)
Here, .A, .B, .C are the internal slots pointing to the hosted module
contexts, whereas A, B, C hold the actual instance objects (note that every
module context also points to the respective instance object through its
extension slot in the header).
To deal with arbitrary recursion and aliases between modules,
they are created and initialized in several stages. Each stage applies to
all modules in the hosting global scope, including nested ones.
1. Allocate: for each module _literal_, allocate the module contexts and
respective instance object and wire them up. This happens in the
PushModuleContext runtime function, as generated by AllocateModules
(invoked by VisitDeclarations in the hosting scope).
2. Bind: for each module _declaration_ (i.e. literals as well as aliases),
assign the respective instance object to respective local variables. This
happens in VisitModuleDeclaration, and uses the instance objects created
in the previous stage.
For each module _literal_, this phase also constructs a module descriptor
for the next stage. This happens in VisitModuleLiteral.
3. Populate: invoke the DeclareModules runtime function to populate each
_instance_ object with accessors for it exports. This is generated by
DeclareModules (invoked by VisitDeclarations in the hosting scope again),
and uses the descriptors generated in the previous stage.
4. Initialize: execute the module bodies (and other code) in sequence. This
happens by the separate statements generated for module bodies. To reenter
the module scopes properly, the parser inserted ModuleStatements.
R=mstarzinger@chromium.org,svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11093074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13033
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Thu, 22 Nov 2012 10:19:05 +0000 (10:19 +0000)]
Add dehoisting to the string printout of hydrogen and lithium instructions.
This is nice when looking at hydrogen graphs, to see the real key offset.
R=mmassi@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11348176
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13032
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 22 Nov 2012 08:35:21 +0000 (08:35 +0000)]
Fix counters in d8.
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
11416135
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13031
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 22 Nov 2012 07:58:59 +0000 (07:58 +0000)]
Reduced TLS accesses even further.
Thread the Isolate through FindCodeInCache, FindCodeInSpecialCache and
SetProperty. Reduced the number of TLS accesses while running the Octane
benchmark down to 19% compared to the beginning of the cleanups.
Review URL: https://codereview.chromium.org/
11411033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13030
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
hpayer@chromium.org [Thu, 22 Nov 2012 07:05:20 +0000 (07:05 +0000)]
Use slot instead of value in the write barrier to record write from code.
BUG=
Review URL: https://codereview.chromium.org/
11412096
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13029
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Wed, 21 Nov 2012 14:01:10 +0000 (14:01 +0000)]
Fix performance regression in DXT5Decoder.js.
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
11412129
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13028
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 21 Nov 2012 12:50:49 +0000 (12:50 +0000)]
Object.observe: Unblacklist some tests involving indexed properties
These were erroneously disabled because they were expecting indexed properties to be of Number type when appearing as the "name" in change records. But the "name" property will always be a string. Fixed assertRecordsEqual() to enforce this in expectations.
BUG=v8:2409
Review URL: https://codereview.chromium.org/
11280105
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13027
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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