platform/upstream/v8.git
11 years agoFix silently failing branch merge script on Mac
danno@chromium.org [Wed, 26 Sep 2012 11:19:35 +0000 (11:19 +0000)]
Fix silently failing branch merge script on Mac

R=jkummerow@chromium.org

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

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

11 years agoAvoid wrong imul deopt on ia32 and x64 (fixes v8 bug 2339).
mmassi@chromium.org [Wed, 26 Sep 2012 09:57:30 +0000 (09:57 +0000)]
Avoid wrong imul deopt on ia32 and x64 (fixes v8 bug 2339).

BUG=v8:2339

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

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

11 years agoLowered kMaxVirtualRegisters (fixes v8 2139 and chrome 123822 and 128252).
mmassi@chromium.org [Wed, 26 Sep 2012 09:35:41 +0000 (09:35 +0000)]
Lowered kMaxVirtualRegisters (fixes v8 2139 and chrome 123822 and 128252).

BUG=128252

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

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

11 years agoPull more recent gyp.
jkummerow@chromium.org [Wed, 26 Sep 2012 09:12:45 +0000 (09:12 +0000)]
Pull more recent gyp.

This pulls in https://chromiumcodereview.appspot.com/10079030/
and https://chromiumcodereview.appspot.com/10876082/ among others,
which are needed for more *nix platforms support.

Review URL: https://codereview.chromium.org/10983022
Patch from PaweÅ‚ Hajdan Jr. <phajdan.jr@chromium.org>.

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

11 years agoMake Kraken fasta.
erik.corry@gmail.com [Wed, 26 Sep 2012 09:01:13 +0000 (09:01 +0000)]
Make Kraken fasta.
Review URL: https://chromiumcodereview.appspot.com/10978040

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

11 years agoRevert 12609 (Allow partial scanning of large arrays)
erik.corry@gmail.com [Wed, 26 Sep 2012 08:55:19 +0000 (08:55 +0000)]
Revert 12609 (Allow partial scanning of large arrays)
due to crashes in unbox-double-arrays.js test.
Review URL: https://chromiumcodereview.appspot.com/10996017

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

11 years agoAllow partial scanning of large arrays in order to avoid
erik.corry@gmail.com [Wed, 26 Sep 2012 08:33:15 +0000 (08:33 +0000)]
Allow partial scanning of large arrays in order to avoid
mark stack overflow.
Review URL: https://chromiumcodereview.appspot.com/10959011

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

11 years agoFix off-by-one error introduced in r12598.
yangguo@chromium.org [Tue, 25 Sep 2012 16:59:27 +0000 (16:59 +0000)]
Fix off-by-one error introduced in r12598.

R=verwaest@chromium.org
BUG=

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

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

11 years agoARM: Small optimisation of VFP immediate creation
danno@chromium.org [Tue, 25 Sep 2012 14:32:07 +0000 (14:32 +0000)]
ARM: Small optimisation of VFP immediate creation

Save an instruction in VFP immediate creation by passing a scratch register.

BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/10990024
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.

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

11 years agox64 and ARM: Fix issue 2346 (order of operations in keyed store
erik.corry@gmail.com [Tue, 25 Sep 2012 13:35:42 +0000 (13:35 +0000)]
x64 and ARM: Fix issue 2346 (order of operations in keyed store
on arrays) and turn get-own-property-descriptor.js test into
a regression test.
Review URL: https://chromiumcodereview.appspot.com/10985017

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

11 years agoFix 2346: Generic KeyedStoreIC doesn't change length and element_kind atomically
danno@chromium.org [Tue, 25 Sep 2012 09:55:44 +0000 (09:55 +0000)]
Fix 2346: Generic KeyedStoreIC doesn't change length and element_kind atomically

R=erik.corry@gmail.com
BUG=v8:2346

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

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

11 years agoBump number of allowed variables per scope to 65535, to address GWT.
rossberg@chromium.org [Mon, 24 Sep 2012 16:22:17 +0000 (16:22 +0000)]
Bump number of allowed variables per scope to 65535, to address GWT.

R=jkummerow@chromium.org
BUG=151625

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

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

11 years agoFix failures caused by r12598.
yangguo@chromium.org [Mon, 24 Sep 2012 15:03:09 +0000 (15:03 +0000)]
Fix failures caused by r12598.

R=verwaest@chromium.org
BUG=

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

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

11 years agoFast path for symbol lookup in JSON.parse.
yangguo@chromium.org [Mon, 24 Sep 2012 14:23:46 +0000 (14:23 +0000)]
Fast path for symbol lookup in JSON.parse.

R=verwaest@chromium.org
BUG=

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

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

11 years agoImprove --trace-gc-verbose to show sum of all spaces.
mstarzinger@chromium.org [Mon, 24 Sep 2012 13:03:11 +0000 (13:03 +0000)]
Improve --trace-gc-verbose to show sum of all spaces.

R=ulan@chromium.org

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

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

11 years agoSplit test/mjsunit/debug-stepout-scope into smaller chunks
jkummerow@chromium.org [Mon, 24 Sep 2012 11:18:29 +0000 (11:18 +0000)]
Split test/mjsunit/debug-stepout-scope into smaller chunks

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

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

11 years agoDelete test/mjsunit/regress-1969.
jkummerow@chromium.org [Mon, 24 Sep 2012 10:48:14 +0000 (10:48 +0000)]
Delete test/mjsunit/regress-1969.

It was flaky, and its usefulness was doubtful.

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

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

11 years agoRemove trailing whitespace
jkummerow@chromium.org [Mon, 24 Sep 2012 10:44:04 +0000 (10:44 +0000)]
Remove trailing whitespace

R=mstarzinger@chromium.org

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

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

11 years agoSpeed up test/mjsunit/compiler/regress-or
jkummerow@chromium.org [Mon, 24 Sep 2012 10:08:01 +0000 (10:08 +0000)]
Speed up test/mjsunit/compiler/regress-or

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

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

11 years agoSpeed up test/mjsunit/compiler/regress-gvn
jkummerow@chromium.org [Mon, 24 Sep 2012 10:07:09 +0000 (10:07 +0000)]
Speed up test/mjsunit/compiler/regress-gvn

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

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

11 years agoSplit test/mjsunit/numops-fuzz into smaller chunks
jkummerow@chromium.org [Mon, 24 Sep 2012 10:06:06 +0000 (10:06 +0000)]
Split test/mjsunit/numops-fuzz into smaller chunks

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

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

11 years agoSplit test/mjsunit/mul-exhaustive into smaller chunks
jkummerow@chromium.org [Mon, 24 Sep 2012 10:04:58 +0000 (10:04 +0000)]
Split test/mjsunit/mul-exhaustive into smaller chunks

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

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

11 years agoSplit test/mjsunit/fuzz-natives into smaller chunks
jkummerow@chromium.org [Mon, 24 Sep 2012 10:03:49 +0000 (10:03 +0000)]
Split test/mjsunit/fuzz-natives into smaller chunks

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

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

11 years agoSplit test/mjsunit/math-floor into smaller chunks
jkummerow@chromium.org [Mon, 24 Sep 2012 10:02:44 +0000 (10:02 +0000)]
Split test/mjsunit/math-floor into smaller chunks

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

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

11 years agoSpeed up test/mjsunit/greedy.js
jkummerow@chromium.org [Mon, 24 Sep 2012 10:01:35 +0000 (10:01 +0000)]
Speed up test/mjsunit/greedy.js

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

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

11 years agoSpeed up test/mjsunit/debug-multiple-breakpoints
jkummerow@chromium.org [Mon, 24 Sep 2012 10:00:25 +0000 (10:00 +0000)]
Speed up test/mjsunit/debug-multiple-breakpoints

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

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

11 years agoSpeed up test/mjsunit/d8-os by reducing sleep times
jkummerow@chromium.org [Mon, 24 Sep 2012 09:57:16 +0000 (09:57 +0000)]
Speed up test/mjsunit/d8-os by reducing sleep times

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

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

11 years agoSpeed up test/mjsunit/regress/regress-crbug-119926
jkummerow@chromium.org [Mon, 24 Sep 2012 09:56:11 +0000 (09:56 +0000)]
Speed up test/mjsunit/regress/regress-crbug-119926

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

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

11 years agoFirst commit of new tools/run-tests.py
jkummerow@chromium.org [Mon, 24 Sep 2012 09:38:46 +0000 (09:38 +0000)]
First commit of new tools/run-tests.py

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

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

11 years agoThis issue is for landing patch by vsevik: http://codereview.chromium.org/10966011/
yurys@chromium.org [Fri, 21 Sep 2012 08:09:34 +0000 (08:09 +0000)]
This issue is for landing patch by vsevik: codereview.chromium.org/10966011/

SourceURL comments for scripts having a name.

sourceURL comment is now preferred script name for all scripts except
for those with non zero start position (e.g. inline scripts in HTML).

BUG=v8:2342
Review URL: https://codereview.chromium.org/10959038

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

11 years agoFix CNLT for enum indices.
verwaest@chromium.org [Thu, 20 Sep 2012 15:18:00 +0000 (15:18 +0000)]
Fix CNLT for enum indices.

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

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

11 years agoDeopt on storing undefined into double elements.
verwaest@chromium.org [Thu, 20 Sep 2012 13:41:00 +0000 (13:41 +0000)]
Deopt on storing undefined into double elements.

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

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

11 years agoPrepare push to trunk. Now working on version 3.14.1.
ulan@chromium.org [Thu, 20 Sep 2012 12:09:06 +0000 (12:09 +0000)]
Prepare push to trunk.  Now working on version 3.14.1.

R=jkummerow@chromium.org

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

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

11 years agoRevert r12530 "Tentatively reenable previous failing test."
ulan@chromium.org [Thu, 20 Sep 2012 11:28:33 +0000 (11:28 +0000)]
Revert r12530 "Tentatively reenable previous failing test."

BUG=v8:2341
R=jkummerow@chromium.org

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

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

11 years agoFix missing slot recodring during clearing of CallICs.
mstarzinger@chromium.org [Thu, 20 Sep 2012 10:45:38 +0000 (10:45 +0000)]
Fix missing slot recodring during clearing of CallICs.

This fixes a rare corner case that was caused by missing recording of
relocation slots when the uninitialized CallIC stub happenes to land on
an evacuation candidate and the IC is cleared via the shared function.

R=ulan@chromium.org
BUG=chromium:144230
TEST=cctest/test-heap/Regression144230

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

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

11 years agoFix LBoundsCheck on x64 to handle (stack slot + constant) correctly
jkummerow@chromium.org [Thu, 20 Sep 2012 09:56:24 +0000 (09:56 +0000)]
Fix LBoundsCheck on x64 to handle (stack slot + constant) correctly

BUG=150729

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

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

11 years agoMove regress-2286.js where it belongs
jkummerow@chromium.org [Thu, 20 Sep 2012 09:55:19 +0000 (09:55 +0000)]
Move regress-2286.js where it belongs

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

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

11 years agoWait for resolving conflicts in merge-to-branch script.
ulan@chromium.org [Thu, 20 Sep 2012 08:02:17 +0000 (08:02 +0000)]
Wait for resolving conflicts in merge-to-branch script.

R=jkummerow@chromium.org

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

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

11 years agoMIPS: Sharing of descriptor arrays.
verwaest@chromium.org [Wed, 19 Sep 2012 14:29:27 +0000 (14:29 +0000)]
MIPS: Sharing of descriptor arrays.

Port r12492 (479be376)

Original commit message:
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.

BUG=
TEST=

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

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

11 years agoFixed minus zero test (fixes v8:2133).
mmassi@chromium.org [Wed, 19 Sep 2012 12:48:49 +0000 (12:48 +0000)]
Fixed minus zero test (fixes v8:2133).

BUG=v8:2133

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

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

11 years agoFix setting array length to zero for slow elements.
mstarzinger@chromium.org [Wed, 19 Sep 2012 11:52:33 +0000 (11:52 +0000)]
Fix setting array length to zero for slow elements.

R=verwaest@chromium.org
BUG=chromium:146910
TEST=mjsunit/regress/regress-crbug-146910

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

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

11 years agoRemove whitespace
verwaest@chromium.org [Wed, 19 Sep 2012 11:09:07 +0000 (11:09 +0000)]
Remove whitespace

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

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

11 years agoUse NumberOfOwnDescriptors/EnumLength for counting properties on fast objects.
verwaest@chromium.org [Wed, 19 Sep 2012 10:06:02 +0000 (10:06 +0000)]
Use NumberOfOwnDescriptors/EnumLength for counting properties on fast objects.

Also split CNLT into small functions.

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

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

11 years agoReduce space usage of simple transitions and descriptors holders.
verwaest@chromium.org [Wed, 19 Sep 2012 09:54:10 +0000 (09:54 +0000)]
Reduce space usage of simple transitions and descriptors holders.

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

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

11 years agoFix lost arguments dropping in HLeaveInlined.
mstarzinger@chromium.org [Wed, 19 Sep 2012 08:13:46 +0000 (08:13 +0000)]
Fix lost arguments dropping in HLeaveInlined.

This fixes HleaveInlined to correctly drop pushed arguments on all code
paths and addresses a corner case where the arguments stack height
mismatched at an OSR entry point.

R=jkummerow@chromium.org
BUG=chromium:150545
TEST=mjsunit/regress/regress-crbug-150545

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

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

11 years agoClear EnumIndices as well on CNLT.
verwaest@chromium.org [Wed, 19 Sep 2012 08:08:02 +0000 (08:08 +0000)]
Clear EnumIndices as well on CNLT.

BUG=

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

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

11 years agoMIPS: Do not go to slow mode and back to fast in initializer blocks.
verwaest@chromium.org [Tue, 18 Sep 2012 13:52:18 +0000 (13:52 +0000)]
MIPS: Do not go to slow mode and back to fast in initializer blocks.

Port r12534 (4acfb92e)

BUG=
TEST=

Committed: https://code.google.com/p/v8/source/detail?r=12539

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

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

11 years agoRevert due to invalid description / CL combination.
verwaest@chromium.org [Tue, 18 Sep 2012 13:51:01 +0000 (13:51 +0000)]
Revert due to invalid description / CL combination.

Revert "MIPS: Do not go to slow mode and back to fast in initializer blocks."

This reverts commit 9b05931ec130e831f7496aed6f7ae32e8f2da934.

BUG=

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

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

11 years agoMIPS: Do not go to slow mode and back to fast in initializer blocks.
verwaest@chromium.org [Tue, 18 Sep 2012 13:40:24 +0000 (13:40 +0000)]
MIPS: Do not go to slow mode and back to fast in initializer blocks.

Port r12534 (4acfb92e)

BUG=
TEST=

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

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

11 years agoPreallocate space in descriptor arrays.
verwaest@chromium.org [Tue, 18 Sep 2012 13:25:12 +0000 (13:25 +0000)]
Preallocate space in descriptor arrays.

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

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

11 years agoFix printing of HCallKnownGlobal.
mstarzinger@chromium.org [Tue, 18 Sep 2012 11:06:05 +0000 (11:06 +0000)]
Fix printing of HCallKnownGlobal.

R=jkummerow@chromium.org

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

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

11 years agoImprove the assembly code for power function with integer exponential on x64
yangguo@chromium.org [Tue, 18 Sep 2012 08:04:31 +0000 (08:04 +0000)]
Improve the assembly code for power function with integer exponential on x64

The change removes one unused multiply and reschedules
the shift, multiply and jump instructions to reduce
stall. Experiment shows it improve about 20% performance
on x64 for exponetials from about 100 to 2000.

Review URL: https://chromiumcodereview.appspot.com/10939013
Patch from Xi Qian <xi.qian@intel.com>.

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

11 years agoDo not go to slow mode and back to fast in initializer blocks.
verwaest@chromium.org [Mon, 17 Sep 2012 17:18:27 +0000 (17:18 +0000)]
Do not go to slow mode and back to fast in initializer blocks.

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

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

11 years agoAdd jsfunfuzz to gitignore file.
mstarzinger@chromium.org [Mon, 17 Sep 2012 14:50:51 +0000 (14:50 +0000)]
Add jsfunfuzz to gitignore file.

R=jkummerow@chromium.org

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

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

11 years agoFix casting error for receiver of interceptors.
mstarzinger@chromium.org [Mon, 17 Sep 2012 14:39:10 +0000 (14:39 +0000)]
Fix casting error for receiver of interceptors.

This fixes a casting error that occured when the receiver of a missed
or uninitialized CallIC is a Smi and there is an interceptor installed
on the prototype chain.

R=yangguo@chromium.org
BUG=chromium:149912
TEST=cctest/test-api/Regress149912

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

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

11 years agoTentatively reenable previous failing test.
yangguo@chromium.org [Mon, 17 Sep 2012 14:19:11 +0000 (14:19 +0000)]
Tentatively reenable previous failing test.

R=mstarzinger@chromium.org
BUG=v8:2261

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

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

11 years agoChange regress-2318 to trigger more quickly and reliably.
yangguo@chromium.org [Mon, 17 Sep 2012 13:21:59 +0000 (13:21 +0000)]
Change regress-2318 to trigger more quickly and reliably.

BUG=v8:2336

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

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

11 years agoFix misplaced assert in heap.cc.
erik.corry@gmail.com [Mon, 17 Sep 2012 11:38:24 +0000 (11:38 +0000)]
Fix misplaced assert in heap.cc.
Bug=2336
Review URL: https://chromiumcodereview.appspot.com/10911334

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

11 years agoConsistently use named getters for Lithium operands on ARM.
svenpanne@chromium.org [Mon, 17 Sep 2012 10:54:26 +0000 (10:54 +0000)]
Consistently use named getters for Lithium operands on ARM.

Removed a dead Lithium instruction on the way.

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

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

11 years agoIntegrate map marking into static marking visitor.
mstarzinger@chromium.org [Mon, 17 Sep 2012 10:04:39 +0000 (10:04 +0000)]
Integrate map marking into static marking visitor.

This refactors the specialized marking of map contents to be done by the
static marking visitor shared between full and incremental marking. This
also fixes an issue where some maps weren't accounted for in the object
stats tracker. But more importantly, it simplifies the code base.

R=verwaest@chromium.org

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

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

11 years agoThrow a more descriptive exception when blocking 'eval' via CSP.
ulan@chromium.org [Mon, 17 Sep 2012 09:58:22 +0000 (09:58 +0000)]
Throw a more descriptive exception when blocking 'eval' via CSP.

BUG=140191

R=svenpanne@chromium.org,mkwst@chromium.org

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

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

11 years agoFix build on OpenBSD/i386.
yangguo@chromium.org [Mon, 17 Sep 2012 07:56:15 +0000 (07:56 +0000)]
Fix build on OpenBSD/i386.

BUG=v8:1445

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

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

11 years agoImprove the assembly code for power function with integer exponential.
yangguo@chromium.org [Mon, 17 Sep 2012 07:45:54 +0000 (07:45 +0000)]
Improve the assembly code for power function with integer exponential.

The change removes one unused multiply and reschedules
the shift, multiply and jump instructions to reduce
stall. Experiment shows it improve about 20% performance
on x86 for exponetials from about 100 to 2000.

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

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

11 years agoLet the embedder store arbitrary Values via Context::SetData
danno@chromium.org [Fri, 14 Sep 2012 16:13:23 +0000 (16:13 +0000)]
Let the embedder store arbitrary Values via Context::SetData

In WebKit, we would like to store a void* to a data structure that contains
lots of exciting per-context data. The current API restricts us to storing only
Strings, which is less useful.

I've also cleaned up the implementation of GetData to be less convoluted.

Review URL: https://codereview.chromium.org/10907189
Patch from Adam Barth <abarth@chromium.org>.

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

11 years agoMoving the WhitenessWitness back to DescriptorArray.
verwaest@chromium.org [Fri, 14 Sep 2012 15:10:31 +0000 (15:10 +0000)]
Moving the WhitenessWitness back to DescriptorArray.

TransitionArrays never allocate while being created.

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

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

11 years agoFix debugger's eval when close to stack overflow.
yangguo@chromium.org [Fri, 14 Sep 2012 13:40:32 +0000 (13:40 +0000)]
Fix debugger's eval when close to stack overflow.

R=verwaest@chromium.org
BUG=v8:2318

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

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

11 years agoOnly count the descriptor array if it's owned by the map.
verwaest@chromium.org [Fri, 14 Sep 2012 13:37:41 +0000 (13:37 +0000)]
Only count the descriptor array if it's owned by the map.

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

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

11 years agoAdd checks to live edit.
yangguo@chromium.org [Fri, 14 Sep 2012 13:31:11 +0000 (13:31 +0000)]
Add checks to live edit.

BUG=v8:2297

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

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

11 years agoFix test failures on nosnap builder.
erik.corry@gmail.com [Fri, 14 Sep 2012 13:19:42 +0000 (13:19 +0000)]
Fix test failures on nosnap builder.
Review URL: https://chromiumcodereview.appspot.com/10915277

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

11 years agoCNLT with descriptors but no valid enum fields has to clear the EnumCache.
verwaest@chromium.org [Fri, 14 Sep 2012 13:15:43 +0000 (13:15 +0000)]
CNLT with descriptors but no valid enum fields has to clear the EnumCache.

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

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

11 years agoMicrooptimization to regexps.
erik.corry@gmail.com [Fri, 14 Sep 2012 12:01:12 +0000 (12:01 +0000)]
Microoptimization to regexps.
Review URL: https://chromiumcodereview.appspot.com/10917260

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

11 years agoConsistently use named getters for Lithium operands on ia32.
svenpanne@chromium.org [Fri, 14 Sep 2012 11:55:49 +0000 (11:55 +0000)]
Consistently use named getters for Lithium operands on ia32.

With this CL we clearly distinguish two different views on Lithium
instructions: For register allocation, the actual instruction/operand
is irrelevant, so it has only an iterator/indexed view on the
instruction operands. All other places, most importantly code
generation, use named getters for the operands now, making it easy to
see where each one is used.

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

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

11 years agoFix compile errors on Win64.
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

11 years agoConsistently use named getters for Lithium operands on x64
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

11 years agoReplace r12503. Explicitly check toString() for exception in d8's print().
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

11 years agoSwitch on code compaction on incremental GCs.
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

11 years agoRefactoring of snapshots. This simplifies and improves
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

11 years agoFix caching of optimized code for OSR.
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

11 years agoNot mask exception thrown by toString in String::UtfValue etc.
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

11 years agoSkip version 3.13.8 and fast-forward to 3.14.0
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

11 years agoReplace VFP by VFP2 in common.gypi
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

11 years agoDirectly set the value in the descriptors pointer to avoid checks.
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

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