erik.corry@gmail.com [Fri, 14 Sep 2012 11:48:31 +0000 (11:48 +0000)]
Fix compile errors on Win64.
Review URL: https://chromiumcodereview.appspot.com/
10913273
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12509
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 14 Sep 2012 11:46:01 +0000 (11:46 +0000)]
Consistently use named getters for Lithium operands on x64
Review URL: https://codereview.chromium.org/
10933087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12508
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 14 Sep 2012 11:43:46 +0000 (11:43 +0000)]
Replace r12503. Explicitly check toString() for exception in d8's print().
R=jkummerow@chromium.org
BUG=v8:2317
Review URL: https://chromiumcodereview.appspot.com/
10911305
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12507
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 14 Sep 2012 11:38:45 +0000 (11:38 +0000)]
Switch on code compaction on incremental GCs.
Review URL: https://chromiumcodereview.appspot.com/
10928203
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12506
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 14 Sep 2012 11:16:56 +0000 (11:16 +0000)]
Refactoring of snapshots. This simplifies and improves
the speed of deserializing code. The current startup
time improvement for V8 is around 6%, but code deserialization
is speeded up disproportionately, and we will soon have more
code in the snapshot.
* Removed support for deserializing into large object space.
The regular pages are 1Mbyte now and that is plenty. This
is a big simplification.
* Instead of reserving space for the snapshot we actually
allocate it now. This removes some special casing from
the memory management and simplifies deserialization since
we are just bumping a pointer rather than calling the
normal allocation routines during deserialization.
* Record in the snapshot how much we need to boot up and
allocate it instead of just assuming that allocations in
a new VM will always be linear.
* In the snapshot we always address an object as a negative
offset from the current allocation point. We used to
sometimes address from the start of the deserialized data,
but this is less useful now that we have good support for
roots and repetitions in the deserialization data.
* Code objects were previously deserialized (like other
objects) by alternating raw data (deserialized with memcpy)
and pointers (to external references, other objects, etc.).
Now we deserialize code objects with a single memcpy,
followed by a series of skips and pointers that partially
overwrite the code we memcopied out of the snapshot.
The skips are sometimes merged into the following
instruction in the deserialization data to reduce dispatch
time.
* Integers in the snapshot were stored in a variable length
format that gives a compact representation for small positive
integers. This is still the case, but the new encoding can
be decoded without branches or conditional instructions,
which is faster on a modern CPU.
Review URL: https://chromiumcodereview.appspot.com/
10918067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12505
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Fri, 14 Sep 2012 10:41:31 +0000 (10:41 +0000)]
Fix caching of optimized code for OSR.
This makes sure we do not share optimized code across closures that were
optimized using OSR (for a particular OSR entry AST id) even if caching
of optimized code kicks in.
R=danno@chromium.org
BUG=v8:2326
TEST=mjsunit/regress/regress-2326
Review URL: https://codereview.chromium.org/
10933088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12504
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 14 Sep 2012 08:13:57 +0000 (08:13 +0000)]
Not mask exception thrown by toString in String::UtfValue etc.
R=jkummerow@chromium.org
BUG=v8:2317
Review URL: https://chromiumcodereview.appspot.com/
10917236
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12503
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 14 Sep 2012 07:44:28 +0000 (07:44 +0000)]
Skip version 3.13.8 and fast-forward to 3.14.0
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
10907230
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12502
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 14 Sep 2012 07:41:55 +0000 (07:41 +0000)]
Replace VFP by VFP2 in common.gypi
This fixes an omission in cl
10818026.
Patch by Nathan Rajlich.
Review URL: https://chromiumcodereview.appspot.com/
10913256
Patch from Bert Belder <bertbelder@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12501
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 13 Sep 2012 16:48:31 +0000 (16:48 +0000)]
Directly set the value in the descriptors pointer to avoid checks.
This is the only place from where we are allowed to modify the value of
the descriptors pointer.
Review URL: https://chromiumcodereview.appspot.com/
10905266
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12500
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 13 Sep 2012 15:06:15 +0000 (15:06 +0000)]
Fix printf formatting in test-compiler.
R=jkummerow@chromium.org
BUG=v8:2319
Review URL: https://chromiumcodereview.appspot.com/
10928182
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12499
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 13 Sep 2012 14:36:51 +0000 (14:36 +0000)]
Clear the EnumLength fields of maps that lose their enumeration cache.
Review URL: https://chromiumcodereview.appspot.com/
10905262
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12498
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Thu, 13 Sep 2012 09:36:56 +0000 (09:36 +0000)]
Fix API check for length of external arrays.
R=jkummerow@chromium.org
BUG=chromium:148896
TEST=cctest/test-api/ExternalArrayLimits
Review URL: https://codereview.chromium.org/
10914257
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12495
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 13 Sep 2012 08:52:55 +0000 (08:52 +0000)]
Ensure correct enumeration indices in the dict
BUG=chromium:148376
Review URL: https://chromiumcodereview.appspot.com/
10908216
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12494
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Wed, 12 Sep 2012 17:00:25 +0000 (17:00 +0000)]
Fixed bounds check removal by restricting it to int32 indexes (and reenabled both ABCR and index dehoisting).
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
10905232
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12493
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 12 Sep 2012 16:43:57 +0000 (16:43 +0000)]
Sharing of descriptor arrays.
This CL adds multiple things:
Transition arrays do not directly point at their descriptor array anymore, but rather do so via an indirect pointer (a JSGlobalPropertyCell).
An ownership bit is added to maps indicating whether it owns its own descriptor array or not.
Maps owning a descriptor array can pass on ownership if a transition from that map is generated; but only if the descriptor array stays exactly the same; or if a descriptor is added.
Maps that don't have ownership get ownership back if their direct child to which ownership was passed is cleared in ClearNonLiveTransitions.
To detect which descriptors in an array are valid, each map knows its own NumberOfOwnDescriptors. Since the descriptors are sorted in order of addition, if we search and find a descriptor with index bigger than this number, it is not valid for the given map.
We currently still build up an enumeration cache (although this may disappear). The enumeration cache is always built for the entire descriptor array, even if not all descriptors are owned by the map. Once a descriptor array has an enumeration cache for a given map; this invariant will always be true, even if the descriptor array was extended. The extended array will inherit the enumeration cache from the smaller descriptor array. If a map with more descriptors needs an enumeration cache, it's EnumLength will still be set to invalid, so it will have to recompute the enumeration cache. This new cache will also be valid for smaller maps since they have their own enumlength; and use this to loop over the cache. If the EnumLength is still invalid, but there is already a cache present that is big enough; we just initialize the EnumLength field for the map.
When we apply ClearNonLiveTransitions and descriptor ownership is passed back to a parent map, the descriptor array is trimmed in-place and resorted. At the same time, the enumeration cache is trimmed in-place.
Only transition arrays contain descriptor arrays. If we transition to a map and pass ownership of the descriptor array along, the child map will not store the descriptor array it owns. Rather its parent will keep the pointer. So for every leaf-map, we find the descriptor array by following the back pointer, reading out the transition array, and fetching the descriptor array from the JSGlobalPropertyCell. If a map has a transition array, we fetch it from there. If a map has undefined as its back-pointer and has no transition array; it is considered to have an empty descriptor array.
When we modify properties, we cannot share the descriptor array. To accommodate this, the child map will get its own transition array; even if there are not necessarily any transitions leaving from the child map. This is necessary since it's the only way to store its own descriptor array.
Review URL: https://chromiumcodereview.appspot.com/
10909007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12492
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 12 Sep 2012 15:26:43 +0000 (15:26 +0000)]
Correctly initialize regexp global cache.
R=ulan@chromium.org
BUG=148378
Review URL: https://chromiumcodereview.appspot.com/
10905239
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12491
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 12 Sep 2012 14:11:37 +0000 (14:11 +0000)]
Fix compilation issue in r12489.
R=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10909190
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12490
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 12 Sep 2012 12:28:42 +0000 (12:28 +0000)]
Fix arguments object materialization during deopt.
This fixes materialization of arguments objects for strict mode functions during
deoptimization. We materialize arguments from the stack area where optimized
code pushes the arguments when entering the inlined environment. For adapted
invocations we use the arguments adaptor frame for materialization.
R=svenpanne@chromium.org
BUG=v8:2261
TEST=mjsunit/regress/regress-2261,mjsunit/compiler/inline-arguments
Review URL: https://chromiumcodereview.appspot.com/
10908194
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12489
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 12 Sep 2012 11:29:50 +0000 (11:29 +0000)]
Introduce new API to expose external string resource regardless of encoding.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10917211
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12488
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 12 Sep 2012 11:15:20 +0000 (11:15 +0000)]
Shorten code path in string allocation.
This was part of r12430 (http://codereview.chromium.org/
10857030/) which has been reverted.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10913220
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12487
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 12 Sep 2012 08:37:47 +0000 (08:37 +0000)]
Fixed CHECK failure in LCodeGen::DoWrapReceiver when --deopt-every-n-times flag is present
BUG=148389
Review URL: https://chromiumcodereview.appspot.com/
10914222
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12486
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 11 Sep 2012 14:16:56 +0000 (14:16 +0000)]
Fix edge case of extension with NULL as source string.
BUG=144649
Review URL: https://chromiumcodereview.appspot.com/
10914201
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12485
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmassi@chromium.org [Tue, 11 Sep 2012 14:14:32 +0000 (14:14 +0000)]
Fix array index dehoisting.
BUG=141395
TEST=
Review URL: https://chromiumcodereview.appspot.com/
10919214
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12484
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 11 Sep 2012 14:01:39 +0000 (14:01 +0000)]
Fix invariant so that we cannot record relocation slots for
white objects when compacting. Add flag for incremental code
compaction.
Review URL: https://chromiumcodereview.appspot.com/
10907174
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12483
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 11 Sep 2012 13:19:02 +0000 (13:19 +0000)]
Prepare push to trunk. Now working on version 3.13.8.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10911208
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12480
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 11 Sep 2012 12:43:17 +0000 (12:43 +0000)]
Fix TypeError message for Date builtins.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10928108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12479
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 11 Sep 2012 11:36:48 +0000 (11:36 +0000)]
Fix delta computation in DoDeferredInstanceOfKnownGlobal() for ARM.
BUG=v8:2314
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10908195
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12478
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Mon, 10 Sep 2012 23:17:04 +0000 (23:17 +0000)]
Introduce InternalProperty type and expose internal properties for bound functions
Committed: https://code.google.com/p/v8/source/detail?r=12346
Review URL: https://chromiumcodereview.appspot.com/
10834376
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12477
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 10 Sep 2012 13:38:21 +0000 (13:38 +0000)]
Add more checks for native callback results.
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10928083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12474
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 10 Sep 2012 11:05:17 +0000 (11:05 +0000)]
Fix deoptimizer for shared optimized code.
The deoptimizer searched the stack for activations of the same function to
determine whether to trigger lazy deopting. Since we share optimized code we
actually need to search for activations of the same code (but potentially
different functions).
R=jkummerow@chromium.org
BUG=chromium:147475
TEST=mjsunit/regress/regress-crbug-147475
Review URL: https://chromiumcodereview.appspot.com/
10917162
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12473
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 10 Sep 2012 09:24:17 +0000 (09:24 +0000)]
Enable/disable LiveEdit using the (C++) debug API.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10875072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12472
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 10 Sep 2012 08:35:26 +0000 (08:35 +0000)]
Add checks to runtime functions.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10915062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12471
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Fri, 7 Sep 2012 09:01:54 +0000 (09:01 +0000)]
Fixed deoptimization of inlined getters.
It is necessary to explicitly handle the internal frame lying between the caller
of the getter and the getter itself in the deoptimizer: When the getter is
inlined, leaving the internal frame restores the correct context.
BUG=http://crbug/134609
TEST=mjsunit/regress/regress-crbug-134609
Review URL: https://chromiumcodereview.appspot.com/
10910110
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12470
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Thu, 6 Sep 2012 15:01:20 +0000 (15:01 +0000)]
Add support for running low level profiler on Android.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10908122
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12469
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 6 Sep 2012 13:45:58 +0000 (13:45 +0000)]
Prepare push to trunk. Now working on version 3.13.7.
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10928026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12464
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 6 Sep 2012 11:05:40 +0000 (11:05 +0000)]
Loosen up code logging test that was sensitive to GC timing.
Review URL: https://chromiumcodereview.appspot.com/
10918096
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12463
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 5 Sep 2012 16:23:01 +0000 (16:23 +0000)]
Extend grokdump.py with [u]nassemble command
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10910091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12447
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 5 Sep 2012 16:08:13 +0000 (16:08 +0000)]
Check the return value of API calls on ia32 and x64.
This implies that the return value of native getters is checked. The nice part
is that one can even see the name of the property in question in the abort
output when the check failed.
Under some circumstances even the return value of interceptors gets checked, but
I'm not 100% sure about this, because the interceptor code is basically tuned to
death.
The change seems to have very low overhead, so it might be feasible to keep this
check enabled unconditionally.
Review URL: https://chromiumcodereview.appspot.com/
10918071
Patch from Sven Panne <svenpanne@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12446
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 5 Sep 2012 16:06:53 +0000 (16:06 +0000)]
Add empty-handle checks to API functions (#ifdef ENABLE_EXTRA_CHECKS)
Review URL: https://chromiumcodereview.appspot.com/
10917088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12445
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 5 Sep 2012 16:06:07 +0000 (16:06 +0000)]
Disable accessor inlining (due to broken deopts)
BUG=134609
Review URL: https://chromiumcodereview.appspot.com/
10908093
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12444
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Wed, 5 Sep 2012 12:30:49 +0000 (12:30 +0000)]
Push stacktrace and die if the receiver is of unknown type.
Review URL: https://chromiumcodereview.appspot.com/
10917086
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12443
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 5 Sep 2012 11:45:58 +0000 (11:45 +0000)]
Fix binding in new Function().
Review URL: https://chromiumcodereview.appspot.com/
10916114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12442
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 5 Sep 2012 09:29:15 +0000 (09:29 +0000)]
Fix missing colon in common.gypi
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10912092
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12441
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 5 Sep 2012 09:24:37 +0000 (09:24 +0000)]
Add build system infrastructure for ENABLE_EXTRA_CHECKS flag (not used yet)
Review URL: https://chromiumcodereview.appspot.com/
10905093
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12440
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 5 Sep 2012 08:19:49 +0000 (08:19 +0000)]
Fix some corner cases in skipping native methods using caller.
Review URL: https://chromiumcodereview.appspot.com/
10911063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12439
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 4 Sep 2012 12:23:22 +0000 (12:23 +0000)]
Revert r12430, r12432, r12433 (basic support for Latin1).
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10905075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12438
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 4 Sep 2012 09:54:36 +0000 (09:54 +0000)]
Fixed test expectation.
Review URL: https://chromiumcodereview.appspot.com/
10913062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12435
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 4 Sep 2012 09:35:43 +0000 (09:35 +0000)]
Support register as right operand in min/max support.
R=jkummerow@chromium.org
BUG=chromium:145961
TEST=mjsunit/regress/regress-crbug-145961.js
Review URL: https://chromiumcodereview.appspot.com/
10914072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12434
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 3 Sep 2012 15:50:24 +0000 (15:50 +0000)]
Fix more windows build warnings.
TBR=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10917065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12433
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 3 Sep 2012 15:40:00 +0000 (15:40 +0000)]
Fix windows compile errors introduced by r12430.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10907049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12432
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 3 Sep 2012 15:15:32 +0000 (15:15 +0000)]
Do not generate new enumeration indices for global objects.
Review URL: https://chromiumcodereview.appspot.com/
10911058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12431
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 3 Sep 2012 15:06:36 +0000 (15:06 +0000)]
Add basic support for Latin1 to the API.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10857030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12430
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 3 Sep 2012 15:05:08 +0000 (15:05 +0000)]
Use local variable for getter function in Error.stack
R=verwaest@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10911056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12429
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 3 Sep 2012 14:23:00 +0000 (14:23 +0000)]
Fix FindSharedFunctionInfoInScript to not optimize.
This prevents a corner case in FindSharedFunctionInfoInScript that would cause
functions to be optimized because an intermittent GC would clear the flag
indicating whether breakpoints are present. Above method was also moved into the
Debug class because it is only used by the debugger.
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10914065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12428
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 3 Sep 2012 13:27:17 +0000 (13:27 +0000)]
If we are trimming the whole array, just return the empty fixed array.
Review URL: https://chromiumcodereview.appspot.com/
10911054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12427
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 3 Sep 2012 12:31:24 +0000 (12:31 +0000)]
Optimize dictionary enum generation.
Review URL: https://chromiumcodereview.appspot.com/
10916076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12426
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 3 Sep 2012 11:27:09 +0000 (11:27 +0000)]
Fix android.gypi to provide correct include and library paths when using standalone Android toolchain.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10910062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12425
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 3 Sep 2012 08:37:47 +0000 (08:37 +0000)]
Directly use %ObjectKeys in json stringify.
BUG=2312
Review URL: https://chromiumcodereview.appspot.com/
10905059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12424
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 3 Sep 2012 06:36:19 +0000 (06:36 +0000)]
MIPS: First steps towards named Litihium operands.
Port r12383 (
881d7d4d)
Original commit message:
Accessing Lithium operands via position is fragile and makes it impossible to
statically find all uses of a given operand. This CL is a step towards cleaning
this up, more to come...
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
10911021
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12423
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 31 Aug 2012 18:12:25 +0000 (18:12 +0000)]
Only regenerate enumeration indices if properties were deleted.
This indicated by the NextEnumerationIndex diverging from the actual
NumberOfElements.
Review URL: https://chromiumcodereview.appspot.com/
10912049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12422
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 31 Aug 2012 17:10:44 +0000 (17:10 +0000)]
Clear descriptor pointer when normalizing properties.
Review URL: https://chromiumcodereview.appspot.com/
10909029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12421
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 31 Aug 2012 14:45:31 +0000 (14:45 +0000)]
Fix VS2005 build.
R=jkummerow@chromium.org
BUG=v8:2313
Review URL: https://chromiumcodereview.appspot.com/
10907029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12420
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Fri, 31 Aug 2012 13:31:09 +0000 (13:31 +0000)]
Add option to build using a standalone Android toolchain without Android NDK.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10908034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12419
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 31 Aug 2012 12:02:02 +0000 (12:02 +0000)]
Disable test that triggers known bug.
BUG=v8:2261
Review URL: https://chromiumcodereview.appspot.com/
10910029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12418
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Fri, 31 Aug 2012 09:50:27 +0000 (09:50 +0000)]
MIPS: Use a special EnumLength field to indicate number of valid enum cache values.
Port r12400 (
03ae62de)
Original commit message:
This is preparatory work for sharing Enum Caches.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
10914025
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12417
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 31 Aug 2012 09:28:01 +0000 (09:28 +0000)]
Cache results in SearchRegExpMultiple.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10837290
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12416
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Fri, 31 Aug 2012 09:12:31 +0000 (09:12 +0000)]
Activate fixed ES5 readonly semantics by default.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10912042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12415
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 30 Aug 2012 18:10:09 +0000 (18:10 +0000)]
Removed trailing whitespace.
Review URL: https://chromiumcodereview.appspot.com/
10916020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12414
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Thu, 30 Aug 2012 17:31:32 +0000 (17:31 +0000)]
Elements load depends on the type of the receiver.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10918005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12413
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 30 Aug 2012 16:43:58 +0000 (16:43 +0000)]
Add hardfp flag to the Makefile.
This flag passes -Dv8_use_arm_eabi_hardfloat=true to gyp.
This is needed for Linux distros that are experimenting
with hardfp.
BUG=none
Review URL: https://chromiumcodereview.appspot.com/
10889026
Patch from Paweł Hajdan Jr. <phajdan.jr@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12412
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 30 Aug 2012 06:45:45 +0000 (06:45 +0000)]
Fixed comment and simplified the related code a bit.
TBR=erik.corry@gmail.com
Review URL: https://chromiumcodereview.appspot.com/
10911003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12411
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
loislo@chromium.org [Wed, 29 Aug 2012 16:12:23 +0000 (16:12 +0000)]
Remove obsolete method declarations from HeapEntry class.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/
10892033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12410
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 29 Aug 2012 15:29:41 +0000 (15:29 +0000)]
Prepare push to trunk. Now working on version 3.13.6.
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10899032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12407
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 29 Aug 2012 15:23:48 +0000 (15:23 +0000)]
Revert r12379 (Add checks to external string API).
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10897027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12406
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 29 Aug 2012 09:33:14 +0000 (09:33 +0000)]
Slightly simplify declaration of node types.
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10886010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12405
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 29 Aug 2012 09:19:53 +0000 (09:19 +0000)]
Introduce some predicates over variable modes.
These should be handy when we add more declaration forms for Harmony.
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10897010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12404
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 29 Aug 2012 07:51:48 +0000 (07:51 +0000)]
Release stack trace data after firing Error.stack accessor.
BUG=v8:2308
Review URL: https://chromiumcodereview.appspot.com/
10886012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12403
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 29 Aug 2012 06:12:46 +0000 (06:12 +0000)]
Added IC support for native setters on the prototype chain.
Review URL: https://chromiumcodereview.appspot.com/
10873057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12402
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 28 Aug 2012 14:43:28 +0000 (14:43 +0000)]
Add a new API V8::SetJitCodeEventHandler to push code name and location to users such as profilers.
BUG=None
TEST=Included in CL.
Committed: https://code.google.com/p/v8/source/detail?r=12389
Review URL: https://chromiumcodereview.appspot.com/
10795074
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12401
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 28 Aug 2012 14:20:50 +0000 (14:20 +0000)]
Use a special EnumLength field to indicate number of valid enum cache values.
This is preparatory work for sharing Enum Caches.
Review URL: https://chromiumcodereview.appspot.com/
10824079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12400
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 28 Aug 2012 14:17:55 +0000 (14:17 +0000)]
Disable test that triggers known bug.
R=verwaest@chromium.org
BUG=v8:2261
Review URL: https://chromiumcodereview.appspot.com/
10896005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12399
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 28 Aug 2012 11:25:08 +0000 (11:25 +0000)]
Allocate block-scoped global bindings to global context.
- The global object has a reference to the current global scope chain.
Running a script adds to the chain if it contains global lexical declarations.
- Scripts are executed relative to a global, not a native context.
- Harmony let and const bindings are allocated to the innermost global context;
var and function still live on the global object.
(Lexical bindings are not reflected on the global object at all,
but that will probably change later using accessors, as for modules.)
- Compilation of scripts now needs a (global) context (previously only eval did).
- The global scope chain represents one logical scope, so collision tests take
the chain into account.
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10872084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12398
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 28 Aug 2012 10:49:23 +0000 (10:49 +0000)]
Index script compilation cache over context, too,
in preparation for global lexical scope.
R=ulan@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
10878007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12397
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 28 Aug 2012 09:37:41 +0000 (09:37 +0000)]
Reland regexp global optimizations.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10872010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12396
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 28 Aug 2012 09:03:07 +0000 (09:03 +0000)]
Prepare push to trunk. Now working on version 3.13.5.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10895004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12393
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 28 Aug 2012 07:39:45 +0000 (07:39 +0000)]
Disable array bounds checks elimination.
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10895002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12392
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 28 Aug 2012 07:18:06 +0000 (07:18 +0000)]
Print reason for disabling optimization. Kill --trace-bailout flag.
The reason for disabling optimization of a given function is carried around in
CompilationInfo. The new mechanism is general enough that --trace-opt now
subsumes everything --trace-bailout could print, so we nuked the latter flag.
Review URL: https://chromiumcodereview.appspot.com/
10868106
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12391
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 27 Aug 2012 19:47:02 +0000 (19:47 +0000)]
Revert "Add a new API V8::SetJitCodeEventHandler to push code name and location to users such as profilers."
This reverts commit r12389.
TBR=jkummerow@chromium.org, CC=siggi@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10870108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12390
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 27 Aug 2012 18:03:38 +0000 (18:03 +0000)]
Add a new API V8::SetJitCodeEventHandler to push code name and location to users such as profilers.
BUG=None
TEST=Included in CL.
Review URL: https://chromiumcodereview.appspot.com/
10795074
Patch from Sigurður Ásgeirsson <siggi@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12389
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 27 Aug 2012 16:08:27 +0000 (16:08 +0000)]
Revert r12342 "Flush monomorphic ICs on context disposal instead of context exit." because of canary channel crashes.
BUG=144230
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10868068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12388
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 27 Aug 2012 15:25:15 +0000 (15:25 +0000)]
Provide option to disable full DEBUG build on Android.
V8 full DEBUG is too slow on Android. Disable it when android_full_debug==0.
R=ulan
BUG=none
Review URL: https://chromiumcodereview.appspot.com/
10874062
Patch from Xianzhu Wang <wangxianzhu@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12387
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 27 Aug 2012 15:17:14 +0000 (15:17 +0000)]
Disallow updates to ic_with_type_info_count with negative values.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10883064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12386
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 27 Aug 2012 13:47:34 +0000 (13:47 +0000)]
Make order of addition the primary order of descriptor arrays.
The order by name is maintained as secondary order by using unused bits in the property details.
This is preliminary work towards sharing descriptors arrays.
The change allows us
- to get rid of the LastAdded bits in the map, binding it to the number of valid descriptors for the given map
- to avoid resorting by enumeration index to create the cache
- (maybe in the future, depending on performance) to get rid of the enumeration cache altogether.
Although generally the number_of_descriptors equals the NumberOfOwnDescriptors in the current version, this is preliminary work towards sharing descriptors, where maps may have more descriptors than are valid for the map.
Review URL: https://chromiumcodereview.appspot.com/
10879013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12385
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 27 Aug 2012 09:40:26 +0000 (09:40 +0000)]
Introduce global contexts to represent lexical global scope(s).
They are yet unused; actual allocation of global lexical bindings in these contexts is implemented in a separate follow-up CL.
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10876067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12384
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 27 Aug 2012 09:39:05 +0000 (09:39 +0000)]
First steps towards named Litihium operands.
Accessing Lithium operands via position is fragile and makes it impossible to
statically find all uses of a given operand. This CL is a step towards cleaning
this up, more to come...
Review URL: https://chromiumcodereview.appspot.com/
10878073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12383
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Mon, 27 Aug 2012 09:05:07 +0000 (09:05 +0000)]
Unbreak MIPS build.
TBR=vegorov@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
10868102
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12382
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Mon, 27 Aug 2012 08:49:00 +0000 (08:49 +0000)]
Remove unused method and add line breaks after each serialized edge
Review URL: https://chromiumcodereview.appspot.com/
10874063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12381
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 27 Aug 2012 07:29:36 +0000 (07:29 +0000)]
MIPS: Fix rounding in Uint8ClampedArray setter.
Port r12364 (
31e40def)
Original commit message:
According to Web IDL spec, we should round to
the nearest integer, choosing the even integer
if it lies halfway between two.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/
10870049
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12380
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 24 Aug 2012 13:01:52 +0000 (13:01 +0000)]
Add check to external string resource.
Extensions are a source of external strings where we don't perform check yet.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/
10878025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12379
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00