platform/upstream/v8.git
11 years agoFix printf formatting in test-compiler.
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

11 years agoClear the EnumLength fields of maps that lose their enumeration cache.
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

11 years agoFix API check for length of external arrays.
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

11 years agoEnsure correct enumeration indices in the dict
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

11 years agoFixed bounds check removal by restricting it to int32 indexes (and reenabled both...
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

11 years agoSharing of descriptor arrays.
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

11 years agoCorrectly initialize regexp global cache.
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

11 years agoFix compilation issue in r12489.
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

11 years agoFix arguments object materialization during deopt.
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

11 years agoIntroduce new API to expose external string resource regardless of encoding.
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

11 years agoShorten code path in string allocation.
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

11 years agoFixed CHECK failure in LCodeGen::DoWrapReceiver when --deopt-every-n-times flag is...
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

11 years agoFix edge case of extension with NULL as source string.
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

11 years agoFix array index dehoisting.
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

11 years agoFix invariant so that we cannot record relocation slots for
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

11 years agoPrepare push to trunk. Now working on version 3.13.8.
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

11 years agoFix TypeError message for Date builtins.
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

11 years agoFix delta computation in DoDeferredInstanceOfKnownGlobal() for ARM.
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

11 years agoIntroduce InternalProperty type and expose internal properties for bound functions
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

11 years agoAdd more checks for native callback results.
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

11 years agoFix deoptimizer for shared optimized code.
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

11 years agoEnable/disable LiveEdit using the (C++) debug API.
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

11 years agoAdd checks to runtime functions.
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

12 years agoFixed deoptimization of inlined getters.
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

12 years agoAdd support for running low level profiler on Android.
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

12 years agoPrepare push to trunk. Now working on version 3.13.7.
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

12 years agoLoosen up code logging test that was sensitive to GC timing.
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

12 years agoExtend grokdump.py with [u]nassemble command
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

12 years agoCheck the return value of API calls on ia32 and x64.
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

12 years agoAdd empty-handle checks to API functions (#ifdef ENABLE_EXTRA_CHECKS)
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

12 years agoDisable accessor inlining (due to broken deopts)
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

12 years agoPush stacktrace and die if the receiver is of unknown type.
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

12 years agoFix binding in new Function().
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

12 years agoFix missing colon in common.gypi
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

12 years agoAdd build system infrastructure for ENABLE_EXTRA_CHECKS flag (not used yet)
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

12 years agoFix some corner cases in skipping native methods using caller.
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

12 years agoRevert r12430, r12432, r12433 (basic support for Latin1).
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

12 years agoFixed test expectation.
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

12 years agoSupport register as right operand in min/max support.
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

12 years agoFix more windows build warnings.
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

12 years agoFix windows compile errors introduced by r12430.
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

12 years agoDo not generate new enumeration indices for global objects.
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

12 years agoAdd basic support for Latin1 to the API.
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

12 years agoUse local variable for getter function in Error.stack
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

12 years agoFix FindSharedFunctionInfoInScript to not optimize.
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

12 years agoIf we are trimming the whole array, just return the empty fixed array.
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

12 years agoOptimize dictionary enum generation.
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

12 years agoFix android.gypi to provide correct include and library paths when using standalone...
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

12 years agoDirectly use %ObjectKeys in json stringify.
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

12 years agoMIPS: First steps towards named Litihium operands.
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

12 years agoOnly regenerate enumeration indices if properties were deleted.
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

12 years agoClear descriptor pointer when normalizing properties.
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

12 years agoFix VS2005 build.
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

12 years agoAdd option to build using a standalone Android toolchain without Android NDK.
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

12 years agoDisable test that triggers known bug.
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

12 years agoMIPS: Use a special EnumLength field to indicate number of valid enum cache values.
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

12 years agoCache results in SearchRegExpMultiple.
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

12 years agoActivate fixed ES5 readonly semantics by default.
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

12 years agoRemoved trailing whitespace.
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

12 years agoElements load depends on the type of the receiver.
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

12 years agoAdd hardfp flag to the Makefile.
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

12 years agoFixed comment and simplified the related code a bit.
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

12 years agoRemove obsolete method declarations from HeapEntry class.
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

12 years agoPrepare push to trunk. Now working on version 3.13.6.
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

12 years agoRevert r12379 (Add checks to external string API).
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

12 years agoSlightly simplify declaration of node types.
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

12 years agoIntroduce some predicates over variable modes.
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

12 years agoRelease stack trace data after firing Error.stack accessor.
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

12 years agoAdded IC support for native setters on the prototype chain.
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

12 years agoAdd a new API V8::SetJitCodeEventHandler to push code name and location to users...
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

12 years agoUse a special EnumLength field to indicate number of valid enum cache values.
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

12 years agoDisable test that triggers known bug.
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

12 years agoAllocate block-scoped global bindings to global context.
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

12 years agoIndex script compilation cache over context, too,
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

12 years agoReland regexp global optimizations.
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

12 years agoPrepare push to trunk. Now working on version 3.13.5.
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

12 years agoDisable array bounds checks elimination.
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

12 years agoPrint reason for disabling optimization. Kill --trace-bailout flag.
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

12 years agoRevert "Add a new API V8::SetJitCodeEventHandler to push code name and location to...
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

12 years agoAdd a new API V8::SetJitCodeEventHandler to push code name and location to users...
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

12 years agoRevert r12342 "Flush monomorphic ICs on context disposal instead of context exit...
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

12 years agoProvide option to disable full DEBUG build on Android.
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

12 years agoDisallow updates to ic_with_type_info_count with negative values.
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

12 years agoMake order of addition the primary order of descriptor arrays.
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

12 years agoIntroduce global contexts to represent lexical global scope(s).
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

12 years agoFirst steps towards named Litihium operands.
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

12 years agoUnbreak MIPS build.
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

12 years agoRemove unused method and add line breaks after each serialized edge
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

12 years agoMIPS: Fix rounding in Uint8ClampedArray setter.
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

12 years agoAdd check to external string resource.
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

12 years agoMIPS: Check that index and length are Smi in bounds check.
verwaest@chromium.org [Fri, 24 Aug 2012 09:06:23 +0000 (09:06 +0000)]
MIPS: Check that index and length are Smi in bounds check.

Port r12362 (cd39337c)

BUG=
TEST=

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

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

12 years agoDisable speculative LICM when it may lead to unnecessary deopts
danno@chromium.org [Thu, 23 Aug 2012 21:08:58 +0000 (21:08 +0000)]
Disable speculative LICM when it may lead to unnecessary deopts

BUG=v8:2250
R=vegorov@chromium.org
TEST=tests/mjsunit/regress/regress-2250.js

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

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

12 years agoTest case for conflicting global declarations across multiple scripts.
rossberg@chromium.org [Thu, 23 Aug 2012 16:38:15 +0000 (16:38 +0000)]
Test case for conflicting global declarations across multiple scripts.

R=ulan@chromium.org
BUG=
TEST=

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

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

12 years agoFix DoDeferredNumberTagU to keep the value in xmm1 instead of xmm0 on x64.
vegorov@chromium.org [Thu, 23 Aug 2012 16:14:01 +0000 (16:14 +0000)]
Fix DoDeferredNumberTagU to keep the value in xmm1 instead of xmm0 on x64.

xmm0 is not saved across runtime call on x64 because MacroAssembler::EnterExitFrameEpilogue preserves only allocatable XMM registers unlike on ia32 where it preserves all registers.

Cleanup handling of shifts: SHR can deoptimize only when its a shift by 0, all other shift never deoptimize.

Fix type inference for i-to-t change instruction. On X64 this ensures that write-barrier is generated correctly.

R=danno@chromium.org

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

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

12 years agoFix typo in grokdump.
ulan@chromium.org [Thu, 23 Aug 2012 16:11:37 +0000 (16:11 +0000)]
Fix typo in grokdump.

R=verwaest@chromium.org

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

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

12 years agoFix semaphore on MacOS. This is a commit of https://chromiumcodereview.appspot.com...
erikcorry [Thu, 23 Aug 2012 11:15:06 +0000 (11:15 +0000)]
Fix semaphore on MacOS.  This is a commit of https://chromiumcodereview.appspot.com/10867009/ for Fedor Indutny

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

12 years agoMake the performance of the VM more predictable by not letting the hash seed
erik.corry@gmail.com [Thu, 23 Aug 2012 08:15:38 +0000 (08:15 +0000)]
Make the performance of the VM more predictable by not letting the hash seed
affect the order in which the local variables are processed in the compiler.
Review URL: https://chromiumcodereview.appspot.com/10870033

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

12 years agoWhen processing collected uint32 instructions skip those with non-Integer32 represent...
vegorov@chromium.org [Wed, 22 Aug 2012 19:00:02 +0000 (19:00 +0000)]
When processing collected uint32 instructions skip those with non-Integer32 representation.

R=danno@chromium.org
BUG=test262 S15.4.4.8_A2_T3.js

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

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

12 years agoFix order of conversions in ObjectToInt32 and ObjectToUint32 helpers.
vegorov@chromium.org [Wed, 22 Aug 2012 15:58:16 +0000 (15:58 +0000)]
Fix order of conversions in ObjectToInt32 and ObjectToUint32 helpers.

TBR=danno@chromium.org
BUG=

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

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

12 years agoAllow uint32 value on optimized frames if they are consumed by safe operations.
vegorov@chromium.org [Wed, 22 Aug 2012 15:44:17 +0000 (15:44 +0000)]
Allow uint32 value on optimized frames if they are consumed by safe operations.

Safe operations are those that either do not observe unsignedness or have special support for uint32 values:

- all binary bitwise operations: they perform ToInt32 on inputs;
- >> and << shifts: they perform ToInt32 on left hand side and ToUint32 on right hand side;
- >>> shift: it performs ToUint32 on both inputs;
- stores to integer external arrays (not pixel, float or double ones): these stores are "bitwise";
- HChange: special support added for conversions of uint32 values to double and tagged values;
- HSimulate: special support added for deoptimization with uint32 values in registers and stack slots;
- HPhi: phis that have only safe uses and only uint32 operands are uint32 themselves.

BUG=v8:2097
TEST=test/mjsunit/compiler/uint32.js

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

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