lrn@chromium.org [Wed, 26 Oct 2011 12:51:07 +0000 (12:51 +0000)]
Remove special-casing of calls to RegExp test and exec methods with no argument.
Matches new JSC behavior. Fix issue 75740.
BUG=75740
TEST=mjsunit/regexp-static
Review URL: http://codereview.chromium.org/
6677020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9804
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 26 Oct 2011 12:35:12 +0000 (12:35 +0000)]
Handlify CompileStoreCallback, CompileStoreInterceptor.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8390045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9803
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 26 Oct 2011 12:35:10 +0000 (12:35 +0000)]
MIPS: port Refactor and clean up array allocation across platforms.
Port r9747 (
dc33375)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8395030
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9802
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 26 Oct 2011 12:23:40 +0000 (12:23 +0000)]
Fix identity hash code function to respect flag.
The flag passed to JSObject::GetIdentityHash() was not respected so far
and an indentity hash code was generated even when the flag requested
not to do so. This could lead to a rare corner cases (for which a test
case was added) where a GC request would have been dropped.
R=rossberg@chromium.org
TEST=cctest/test-dictionary
Review URL: http://codereview.chromium.org/
8390047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9801
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 26 Oct 2011 11:34:11 +0000 (11:34 +0000)]
Fixing issue 1788.
BUG=v8:1788
Review URL: http://codereview.chromium.org/
8396037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9792
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 26 Oct 2011 10:45:24 +0000 (10:45 +0000)]
Handlify simple functions of [keyed] store stub compiler.
Handlified functions: CompileStoreField, CompileStoreGlobal, CompileStoreElement, CompileStorePolymorphic.
Based on
8375053.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8393003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9791
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 26 Oct 2011 10:41:52 +0000 (10:41 +0000)]
Fix Error.prototype.toString to be ES5 conform.
R=lrn@chromium.org
TEST=test262/15.11.4.4-8-1,mjsunit/error-tostring
Review URL: http://codereview.chromium.org/
8341021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9790
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 26 Oct 2011 10:31:06 +0000 (10:31 +0000)]
Fix bug in inlining call-as-function when inlining multiple levels deep.
This change fixes a off-by-one level error when dropping the
function from the environment. The function of the outermost
environment was not dropped.
BUG=v8:1785
TEST=test/mjsunit/compiler/regress-inline-callfunctionstub.js
Review URL: http://codereview.chromium.org/
8341019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9789
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 26 Oct 2011 09:58:32 +0000 (09:58 +0000)]
Handlify CompileLoadGlobal, CompileLoadElement, CompileLoadPolymorphic.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8375053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9788
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 26 Oct 2011 09:31:40 +0000 (09:31 +0000)]
Handle proxies in KeyedStoreIC::Store, instead of just ignoring them.
R=mstarzinger@chromium.org
BUG=v8:1543
TEST=
Review URL: http://codereview.chromium.org/
8391005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9787
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 26 Oct 2011 09:30:04 +0000 (09:30 +0000)]
MIPS: port Moved random generator state to global context.
Port r9753 (
28cd67f8)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8390032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9786
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 26 Oct 2011 09:21:36 +0000 (09:21 +0000)]
MIPS: port Handlify simple functions of [keyed] load stub compiler.
Port r9773 (
4cf7a453)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8390035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9785
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Wed, 26 Oct 2011 08:43:33 +0000 (08:43 +0000)]
MIPS: port Replace boolean indications of strict mode by an enum value.
Port r9746 (
804e4e4)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8390030
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9784
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Wed, 26 Oct 2011 08:42:15 +0000 (08:42 +0000)]
MIPS: port Block scoped const variables.
Port r9764 (
9b9689d5)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8390033
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9783
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 26 Oct 2011 08:32:37 +0000 (08:32 +0000)]
MIPS: port Handlify CallStubCompiler::CompileCallField.
Port r9769 (
db287698)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8394028
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9782
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 26 Oct 2011 08:17:24 +0000 (08:17 +0000)]
Land two MIPS changes.
Issue
8368021: MIPS: port Fix compilation on ARM and x64 broken by r9738
Issue
8378001: MIPS: port Avoid static initializers in assember-arm.h.
Review URL: http://codereview.chromium.org/
8341048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9781
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 26 Oct 2011 06:37:57 +0000 (06:37 +0000)]
Make the irregexp interpreter throw on stack overflow.
BUG=v8:904
Review URL: http://codereview.chromium.org/
8387027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9780
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 25 Oct 2011 16:11:53 +0000 (16:11 +0000)]
Temporarily skip failing test to make sure builders cycle green.
R=mstarzinger@chromium.org
Review URL: http://codereview.chromium.org/
8393005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9779
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 25 Oct 2011 15:39:55 +0000 (15:39 +0000)]
Take loop side-effects into account when collecting side-effects on the path between two blocks.
R=fschneider@chromium.org
BUG=100409
TEST=test/mjsunit/regress/regress-100409.js
Review URL: http://codereview.chromium.org/
8395002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9778
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Tue, 25 Oct 2011 14:14:56 +0000 (14:14 +0000)]
Implement Harmony sets and maps.
This implementation extends the internal ObjectHashTable to be able to
hold arbitrary objects (e.g. Smis, Strings, ...) as keys by applying
specialized hashing functions to primitive types. Equality of keys is
defined using the internal SameValue function.
R=rossberg@chromium.org
BUG=v8:1622
TEST=mjsunit/harmony/collections
Review URL: http://codereview.chromium.org/
8372027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9777
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 25 Oct 2011 13:43:19 +0000 (13:43 +0000)]
Print out line number and extension name when compilation of an extension fails. This fixes issue 305.
Review URL: http://codereview.chromium.org/
8332029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9776
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erikcorry [Tue, 25 Oct 2011 13:34:52 +0000 (13:34 +0000)]
Remove superfluous assert.
Review URL: http://codereview.chromium.org/
8332028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9775
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 13:27:46 +0000 (13:27 +0000)]
Move some heap verification code in under the --verify-heap flag to speed
up debug mode tests.
Review URL: http://codereview.chromium.org/
8381040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9774
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 25 Oct 2011 12:26:07 +0000 (12:26 +0000)]
Handlify simple functions of [keyed] load stub compiler.
Handlified functions: CompileLoadNonexistent, CompileLoadField,
CompileLoadConstant, CompileLoadArrayLength, CompileLoadStringLength,
CompileLoadFunctionPrototype.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8383033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9773
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 12:13:06 +0000 (12:13 +0000)]
Speed up debug mode GC.
Review URL: http://codereview.chromium.org/
8380038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9772
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 11:02:29 +0000 (11:02 +0000)]
Get back the performance lost in context creation in 9744.
Review URL: http://codereview.chromium.org/
8332026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9771
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 25 Oct 2011 09:30:52 +0000 (09:30 +0000)]
Fix presubmit error introduced by r9767.
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8383031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9770
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 25 Oct 2011 09:24:49 +0000 (09:24 +0000)]
Handlify CallStubCompiler::CompileCallField.
This function relies on a number of helpers for checking prototypes and
probing dictionaries. It is not possible to wrap these helpers to retry
after allocation failure in a safe way---the assembler has no way to undo
what it has already assembled.
These functions have all been duplicated with handle and raw versions. The
raw versions will eventually be removed completely.
R=ulan@chromium.org,vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8332003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9769
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 25 Oct 2011 09:07:09 +0000 (09:07 +0000)]
CompileArrayPushCall should not use context register as a scratch.
R=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/
8330026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9768
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 25 Oct 2011 09:06:07 +0000 (09:06 +0000)]
Provide fast-path for CHECK macro.
Makes debug build 20% faster.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8256011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9767
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 08:59:03 +0000 (08:59 +0000)]
Fix 9763 for real.
Review URL: http://codereview.chromium.org/
8382032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9766
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 08:42:38 +0000 (08:42 +0000)]
Fix 9763 after build bot failures.
Review URL: http://codereview.chromium.org/
8382031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9765
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Tue, 25 Oct 2011 08:33:08 +0000 (08:33 +0000)]
Block scoped const variables.
This implements block scoped 'const' declared variables in harmony mode. They
have a temporal dead zone semantics similar to 'let' bindings, i.e. accessing
uninitialized 'const' bindings in throws a ReferenceError.
As for 'let' bindings, the semantics of 'const' bindings in global scope is not
correctly implemented yet. Furthermore assignments to 'const's are silently
ignored. Another CL will introduce treatment of those assignments as early
errors.
Review URL: http://codereview.chromium.org/
7992005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9764
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 08:24:06 +0000 (08:24 +0000)]
Get the speed back in new context creation after it was tanked
in 9744.
Review URL: http://codereview.chromium.org/
8380035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9763
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 25 Oct 2011 08:23:56 +0000 (08:23 +0000)]
Add missing comment from last commit.
Review URL: http://codereview.chromium.org/
8383003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9762
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 24 Oct 2011 16:25:30 +0000 (16:25 +0000)]
Adapt to latest spec changes for Proxy.create[Function].
R=mstarzinger@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8271005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9761
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Mon, 24 Oct 2011 15:56:18 +0000 (15:56 +0000)]
Implement for-in loop for proxies.
Fix related corner case for Object.keys.
Remove obsolete GET_KEYS builtin.
R=ricow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8256015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9760
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 24 Oct 2011 15:06:20 +0000 (15:06 +0000)]
Handle COW-arrays correctly when converting smi->double fast elements.
TEST=mjsunit/elements-transition.js
Review URL: http://codereview.chromium.org/
8383002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9759
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 24 Oct 2011 13:53:08 +0000 (13:53 +0000)]
Fix bug in environment simulation after inlined call-as-function.
This change is based on my previous change enabling inlining calls-as-function
fixing the bugs related to deoptimization.
The function value on top of the environment was dropped too late in the old code.
As a result we could get a wrong value on top after deoptimization.
This change includes r9619. It was reverted because of test failures that are fixed
with this patch.
Review URL: http://codereview.chromium.org/
8360001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9758
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 24 Oct 2011 13:45:19 +0000 (13:45 +0000)]
Use handle lists in Map::FindTransitionedMap.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8373030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9757
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Mon, 24 Oct 2011 13:11:14 +0000 (13:11 +0000)]
Use handle lists instead of raw pointer lists in polymorphic code cache.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8368024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9756
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Mon, 24 Oct 2011 12:39:29 +0000 (12:39 +0000)]
Fix crash in partial snapshot test when running with no boot snapshot.
Review URL: http://codereview.chromium.org/
8381003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9755
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 24 Oct 2011 12:19:55 +0000 (12:19 +0000)]
Fix typo in type-name and reorder initialization order.
Remember, when coming back to an old CL, do check that it still works.
Review URL: http://codereview.chromium.org/
8351002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9754
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 24 Oct 2011 12:12:21 +0000 (12:12 +0000)]
Moved random generator state to global context.
Change Random to take global context, not isolate.
BUG=v8:864
Review URL: http://codereview.chromium.org/
8162014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9753
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Mon, 24 Oct 2011 12:07:35 +0000 (12:07 +0000)]
Remove one static initializer from disasm.
Review URL: http://codereview.chromium.org/
8381002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9752
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 24 Oct 2011 11:16:38 +0000 (11:16 +0000)]
Further improvements upon r9747.
Review URL: http://codereview.chromium.org/
8372028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9751
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 24 Oct 2011 10:55:00 +0000 (10:55 +0000)]
Handlify the remaining stub compiler functions for call ICs.
Handlify StubCompiler functions for CallIC and KeyedCallIC cases
Megamorphic, Arguments, DebugBreak, and DebugPrepareStepIn.
R=ulan@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8372029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9750
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 24 Oct 2011 09:33:11 +0000 (09:33 +0000)]
Handlify call cases for pre-monomorphic, normal, and miss.
These cases turn out to be easy. There is a lingering raw pointer
implementation of TryCompileCallMiss because it's need by some of the
unconverted call stubs.
R=ulan@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8366036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9749
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Mon, 24 Oct 2011 08:59:34 +0000 (08:59 +0000)]
Fix initialization of allocation timeout value.
The allocation timeout value should not be initialized to 0, that
triggers a collection at the first allocation which breaks assumptions
for some test cases.
R=ricow@chromium.org
TEST=cctest/test-heap/Iteration
Review URL: http://codereview.chromium.org/
8275032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9748
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Mon, 24 Oct 2011 07:55:50 +0000 (07:55 +0000)]
Refactor and clean up array allocation across platforms.
Review URL: http://codereview.chromium.org/
8359034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9747
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Mon, 24 Oct 2011 07:47:22 +0000 (07:47 +0000)]
Replace boolean indications of strict mode by an enum value.
Review URL: http://codereview.chromium.org/
8344082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9746
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Fri, 21 Oct 2011 18:40:36 +0000 (18:40 +0000)]
MIPS: Porting r9605 to arm (elements kind conversion in generated code).
Port r9690 (
857eacf)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8366031
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9745
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 21 Oct 2011 15:20:53 +0000 (15:20 +0000)]
Fix missing write barrier in deserialization. Issue 1783.
Review URL: http://codereview.chromium.org/
8352045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9744
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 21 Oct 2011 15:15:47 +0000 (15:15 +0000)]
MIPS: port Support array literals with FAST_DOUBLE_ELEMENTS ElementsKind.
Port r9698 (
cf0cc54f)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8363025
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9743
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 21 Oct 2011 13:05:37 +0000 (13:05 +0000)]
The detailed heap snapshot generator was slightly adjusted for tracking sliced strings.
BUG=v8:1779
TEST=cctest/test-heap-profiler/HeapSnapshotSlicedString
Review URL: http://codereview.chromium.org/
8362028
Patch from Ilya Tikhonovsky <loislo@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9742
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Fri, 21 Oct 2011 11:42:54 +0000 (11:42 +0000)]
Handlify KeyedIC::ComputeStub.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8356041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9741
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 21 Oct 2011 10:59:25 +0000 (10:59 +0000)]
MIPS: port RegExpMacroAssembler::CheckStackGuardState should update input string pointer...
... when it is moved or changed by GC.
Port r9697 (
d53382a)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8362024
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9740
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 21 Oct 2011 10:53:02 +0000 (10:53 +0000)]
Fix compilation on ARM and x64 broken by r9738
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8359026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9739
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 21 Oct 2011 10:37:56 +0000 (10:37 +0000)]
Avoid write-barriers when initializing newly created Code object.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8365029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9738
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 21 Oct 2011 10:33:50 +0000 (10:33 +0000)]
Disable incremental marking when GC extension is exposed.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8366001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9737
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 21 Oct 2011 10:33:12 +0000 (10:33 +0000)]
Fix CountLeadingZeros on non-ARMv5 hardware.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8361030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9736
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 21 Oct 2011 10:32:38 +0000 (10:32 +0000)]
Avoid incremental marking write-barrier when constructing descriptor arrays.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8360004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9735
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Fri, 21 Oct 2011 10:26:59 +0000 (10:26 +0000)]
Reapply r9673 "Scope tree serialization and ScopeIterator cleanup."
This also includes the two fixes from r9674 and r9675. Here's the diff
to the previous CL.
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -11133,17 +11133,26 @@ class ScopeIterator {
context_(Context::cast(frame->context())),
nested_scope_chain_(4) {
+ // Catch the case when the debugger stops in an internal function.
+ Handle<SharedFunctionInfo> shared_info(function_->shared());
+ if (shared_info->script() == isolate->heap()->undefined_value()) {
+ if (shared_info->scope_info()->HasContext()) Next();
+ return;
+ }
+
// Check whether we are in global code or function code. If there is a stack
// slot for .result then this function has been created for evaluating
// global code and it is not a real function.
// Checking for the existence of .result seems fragile, but the scope info
// saved with the code object does not otherwise have that information.
- int index = function_->shared()->scope_info()->
+ int index = shared_info->scope_info()->
StackSlotIndex(isolate_->heap()->result_symbol());
// Reparse the code and analyze the scopes.
ZoneScope zone_scope(isolate, DELETE_ON_EXIT);
- Handle<SharedFunctionInfo> shared_info(function_->shared());
Handle<Script> script(Script::cast(shared_info->script()));
Scope* scope;
if (index >= 0) {
Review URL: http://codereview.chromium.org/
8344046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9734
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 21 Oct 2011 10:19:16 +0000 (10:19 +0000)]
Handlify StubCompiler::CompileCallInitialize.
CallIC::GenerateInitialize and KeyedCallIC::GenerateInitialize are
verified safe for GC.
R=ulan@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8361028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9733
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 21 Oct 2011 09:55:25 +0000 (09:55 +0000)]
Avoid static initializers in assember-arm.h.
Patch by joth@chromium.org.
BUG=v8:1784
Review URL: http://codereview.chromium.org/
8367001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9732
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 21 Oct 2011 08:59:32 +0000 (08:59 +0000)]
MIPS: port Handlify the stub cache lookup and patching for CallIC and KeyedCallIC.
Port r9729 (
4aa1f5a6)
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8365026
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9731
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 20 Oct 2011 17:28:14 +0000 (17:28 +0000)]
Fix presubmit failure.
TBR=ulan@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8364004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9730
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 20 Oct 2011 17:08:53 +0000 (17:08 +0000)]
Handlify the stub cache lookup and patching for CallIC and KeyedCallIC.
R=ulan@chromium.org,vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8357010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9729
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Thu, 20 Oct 2011 16:39:26 +0000 (16:39 +0000)]
Reset failure flag before retrying stub compilation.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8365003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9728
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Thu, 20 Oct 2011 13:54:16 +0000 (13:54 +0000)]
Handlify upper layers of KeyedStoreIC.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8356039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9727
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 20 Oct 2011 13:47:14 +0000 (13:47 +0000)]
Fix the build on Mac.
Review URL: http://codereview.chromium.org/
8354037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9726
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 20 Oct 2011 12:55:31 +0000 (12:55 +0000)]
Improved printing of Simulate, LoadNamedFieldPolymorphic, LoadNamedGeneric, and StoreNamedField Hydrogen instructions a bit.
Review URL: http://codereview.chromium.org/
8352044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9725
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Thu, 20 Oct 2011 12:36:45 +0000 (12:36 +0000)]
Refactor elements kind conversion.
Review URL: http://codereview.chromium.org/
8355035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9724
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 20 Oct 2011 12:31:33 +0000 (12:31 +0000)]
Make builtin functions be skipped in stack traces.
Does include exposed builtin functions ("native functions").
Review URL: http://codereview.chromium.org/
8345039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9723
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Thu, 20 Oct 2011 12:27:10 +0000 (12:27 +0000)]
Shave 39% from snapshot size.
Review URL: http://codereview.chromium.org/
8344079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9722
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 20 Oct 2011 11:40:16 +0000 (11:40 +0000)]
Switch UnreachableObjectsFilter to use Marking instead of InstrusiveMarking.
GcSafeFindCodeForInnerPointer does not work with intrusive marking now and it is used when roots are iterated.
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/
8342037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9721
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 20 Oct 2011 10:26:45 +0000 (10:26 +0000)]
Speed up comparison with a constant.
Improve optimized code for comparison of an int32 against a constant, or comparison of two double constants. Contributed by m.m.capewell.
Original codereview is http://codereview.chromium.org/
7489045/.
This cl is just created in order to commit the change.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8352040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9718
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 20 Oct 2011 10:07:54 +0000 (10:07 +0000)]
Fix x64 and ARM builds.
TBR=jkummerow@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
8358001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9717
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 20 Oct 2011 09:56:18 +0000 (09:56 +0000)]
Make sure PrintElementsKind is compiled in release mode.
TBR=jkummerow@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
8357035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9716
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 20 Oct 2011 09:38:24 +0000 (09:38 +0000)]
Add flag to trace element kind transitions
Currently only traces transitions from generated ia32 code.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
8357004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9715
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Thu, 20 Oct 2011 09:35:47 +0000 (09:35 +0000)]
Handlify upper layers of KeyedLoadIC.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8352003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9714
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 20 Oct 2011 08:49:01 +0000 (08:49 +0000)]
ElementsKind transitioning support for keyed loads in Crankshaft
Review URL: http://codereview.chromium.org/
8352012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9713
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Thu, 20 Oct 2011 08:41:38 +0000 (08:41 +0000)]
Handle keyed stores after elements transition monomorphically if possible
Review URL: http://codereview.chromium.org/
8354003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9712
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Thu, 20 Oct 2011 07:55:30 +0000 (07:55 +0000)]
Make IsGenericDescriptor spec-conformant.
When the descriptor argument is undefined, the spec is very explicit about the
fact that we should return false (not true, like we did previously). I couldn't
come up with a test case for this, but the old code leaves a bad feeling about
corner cases, so better play safe.
Review URL: http://codereview.chromium.org/
8356004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9711
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 19 Oct 2011 15:34:32 +0000 (15:34 +0000)]
Adapt sputnik test expectations to last change.
The version of Sputnik which we test against uses the obsolete ES3
specification when it comes to Function.prototype.apply, ignore some
test cases that are supposed to fail according to ES5.
TBR=rossberg@chromium.org
TEST=sputnik
Review URL: http://codereview.chromium.org/
8355005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9710
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 19 Oct 2011 13:56:18 +0000 (13:56 +0000)]
Fix handling Function.apply for non-array arguments.
R=rossberg@chromium.org
TEST=mjsunit/apply,test262
Review URL: http://codereview.chromium.org/
8342034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9709
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 19 Oct 2011 13:47:53 +0000 (13:47 +0000)]
Temporarily skip asserts in test mjsunit/debug-step-3.js until issue is resolved
R=kmillikin@chromium.org
BUG=v8:1782
TEST=mjsunit/debug-step-3.js
Review URL: http://codereview.chromium.org//
8356001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9708
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 19 Oct 2011 13:44:29 +0000 (13:44 +0000)]
Fix Array.filter to use internal array for result.
In built-in code we use arrays for internal computations. This makes it
possible to affect the built-in code by putting getters or setters on
the array prototype chain. Using internal arrays prevents those issues.
Related to: http://code.google.com/p/v8/source/detail?r=7040
R=svenpanne@chromium.org
TEST=test262/15.4.4.20-9-b-6
Review URL: http://codereview.chromium.org/
8353006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9707
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Wed, 19 Oct 2011 13:29:37 +0000 (13:29 +0000)]
[[DefineOwnProperty]] should always return true/false (or throw an exception), never undefined.
Note that this is not an observable behavior, but following the principle of
least surprise, we should follow the spec. Additional (extremely tiny) bonus:
Some ICs see fewer values => better code.
Review URL: http://codereview.chromium.org/
8352004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9706
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 19 Oct 2011 12:44:50 +0000 (12:44 +0000)]
Adjust elements-kind.js expectation when --smi-only-arrays is off
TEST=mjsunit/elements-kind passes both with and without --smi-only-arrays flag
Review URL: http://codereview.chromium.org/
8356002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9705
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 19 Oct 2011 12:15:15 +0000 (12:15 +0000)]
Optimize fast element conversion in arm using batch store/loads.
Review URL: http://codereview.chromium.org/
8353002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9704
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
keuchel@chromium.org [Wed, 19 Oct 2011 12:15:02 +0000 (12:15 +0000)]
Revert 9673, 9674 and 9675 because of failing webkit tests.
This reverts commits
r9673: "Scope tree serialization and ScopeIterator cleanup."
r9674: "Use OS::SNPrintF instead of snprintf."
r9675: "Use int instead of size_t, StrLength instead of strlen."
Review URL: http://codereview.chromium.org/
8353003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9703
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 19 Oct 2011 12:10:18 +0000 (12:10 +0000)]
Introduce HTransitionElementsKind instruction.
TEST=mjsunit/elements-kind
Review URL: http://codereview.chromium.org/
8305001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9702
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 19 Oct 2011 12:04:16 +0000 (12:04 +0000)]
Handlify the runtime lookup of CallIC and KeyedCallIC.
R=ulan@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8345038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9701
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mstarzinger@chromium.org [Wed, 19 Oct 2011 11:44:38 +0000 (11:44 +0000)]
MIPS: port Fix evaluation order of GT and LTE operators.
Port r9641 (
2876c37)
Note that this port does not include crankshaft portions of this
commit. They have been included in today's update to
http://codereview.chromium.org/
7934002/
Also, this fixes a changed function prototype for:
void Deoptimizer::RevertStackCheckCodeAt()
BUG=
TEST=
Review URL: http://codereview.chromium.org/
8348028
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9700
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 19 Oct 2011 11:41:22 +0000 (11:41 +0000)]
Allow inlining of named function expressions containing ThisFunction reference.
Named function expression have an implicit local variable that
refers to the current function (ThisFunction). Before we only could inline
anonymous function expressions like:
A.prototype.foo = function() {}
as opposed to
A.prototype.foo = function foo() {}
This change enables inlining function of expressions like this.
Review URL: http://codereview.chromium.org/
8346032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9699
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 19 Oct 2011 11:36:55 +0000 (11:36 +0000)]
Support array literals with FAST_DOUBLE_ELEMENTS ElementsKind.
BUG=none
TEST=test/mjsunit/array-literal.js
Review URL: http://codereview.chromium.org/
8258015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9698
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 19 Oct 2011 11:01:02 +0000 (11:01 +0000)]
RegExpMacroAssembler::CheckStackGuardState should update input string pointer when it is moved or changed by GC.
If input string was cons-string it might undergo short-circuiting during GC. This does not change input start if underlying seq-string (first element of cons-string) does not move but this makes input-string pointer on the native regexp's frame invalid.
R=lrn@chromium.org
Review URL: http://codereview.chromium.org/
8343001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9697
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Wed, 19 Oct 2011 10:44:20 +0000 (10:44 +0000)]
Bugfix for r9690.
BUG=arm debug test of mjsunit/elements-transition segfaults
Review URL: http://codereview.chromium.org/
8342032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9696
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 19 Oct 2011 10:15:09 +0000 (10:15 +0000)]
Don't allow large object space to grow over the max oldspace limit (fixes issue 1717)
Review URL: http://codereview.chromium.org/
8345040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9695
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00