platform/upstream/v8.git
10 years agoSome code cleanup, esp. includes and copyright headers.
bmeurer@chromium.org [Thu, 24 Apr 2014 11:32:48 +0000 (11:32 +0000)]
Some code cleanup, esp. includes and copyright headers.

R=svenpanne@chromium.org

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

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

10 years agoConvert function.length to API-style accessor.
ulan@chromium.org [Thu, 24 Apr 2014 11:24:13 +0000 (11:24 +0000)]
Convert function.length to API-style accessor.

TEST=mjsunit/function-length-accessor
R=yangguo@chromium.org

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

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

10 years agoHarden more runtime functions.
jkummerow@chromium.org [Thu, 24 Apr 2014 11:11:30 +0000 (11:11 +0000)]
Harden more runtime functions.

R=dslomov@chromium.org, dslomov@google.com

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

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

10 years agoDictionary::AtPut() handlified.
ishell@chromium.org [Thu, 24 Apr 2014 10:47:13 +0000 (10:47 +0000)]
Dictionary::AtPut() handlified.

R=yangguo@chromium.org

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

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

10 years agoReland r20932: "*NumberDictionary::AtNumberPut() handlified."
ishell@chromium.org [Thu, 24 Apr 2014 10:39:50 +0000 (10:39 +0000)]
Reland r20932: "*NumberDictionary::AtNumberPut() handlified."

R=yangguo@chromium.org

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

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

10 years agoRevert "*NumberDictionary::AtNumberPut() handlified."
ishell@chromium.org [Thu, 24 Apr 2014 10:17:10 +0000 (10:17 +0000)]
Revert "*NumberDictionary::AtNumberPut() handlified."

This reverts commit r20932 for breaking Mac build.

TBR=yangguo@chromium.org

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

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

10 years ago*NumberDictionary::AtNumberPut() handlified.
ishell@chromium.org [Thu, 24 Apr 2014 09:59:44 +0000 (09:59 +0000)]
*NumberDictionary::AtNumberPut() handlified.

R=yangguo@chromium.org

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

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

10 years ago*NumberDictionary::AddNumberEntry() handlified.
ishell@chromium.org [Thu, 24 Apr 2014 09:49:06 +0000 (09:49 +0000)]
*NumberDictionary::AddNumberEntry() handlified.

R=yangguo@chromium.org

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

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

10 years agoMark test-cpu-profiler/SampleWhenFrameIsNotSetup as flaky.
ulan@chromium.org [Thu, 24 Apr 2014 09:23:38 +0000 (09:23 +0000)]
Mark test-cpu-profiler/SampleWhenFrameIsNotSetup as flaky.

BUG=v8:3287
LOG=N
R=bmeurer@chromium.org

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

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

10 years agoDon't move the object start of objects on non-swept pages.
hpayer@chromium.org [Thu, 24 Apr 2014 09:04:12 +0000 (09:04 +0000)]
Don't move the object start of objects on non-swept pages.

BUG=
R=mstarzinger@chromium.org

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

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

10 years agoARM64: small fixes for ArgumentAdaptorTrampoline after r20751.
ulan@chromium.org [Thu, 24 Apr 2014 09:02:48 +0000 (09:02 +0000)]
ARM64: small fixes for ArgumentAdaptorTrampoline after r20751.

BUG=
R=jacob.bramley@arm.com

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

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

10 years ago*NumberDictionary::Set() handlified.
ishell@chromium.org [Thu, 24 Apr 2014 08:55:31 +0000 (08:55 +0000)]
*NumberDictionary::Set() handlified.

R=yangguo@chromium.org

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

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

10 years agoConvert function.prototype to API-style accessor.
ulan@chromium.org [Thu, 24 Apr 2014 08:35:53 +0000 (08:35 +0000)]
Convert function.prototype to API-style accessor.

R=yangguo@chromium.org

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

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

10 years agoTiny cleanup.
ishell@chromium.org [Thu, 24 Apr 2014 08:35:04 +0000 (08:35 +0000)]
Tiny cleanup.

R=yangguo@chromium.org

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

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

10 years agoRe-enable field type tracking by default.
bmeurer@chromium.org [Thu, 24 Apr 2014 08:27:23 +0000 (08:27 +0000)]
Re-enable field type tracking by default.

R=svenpanne@chromium.org

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

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

10 years agoRevert "Add tests for generator/debugger interaction"
bmeurer@chromium.org [Thu, 24 Apr 2014 08:26:16 +0000 (08:26 +0000)]
Revert "Add tests for generator/debugger interaction"

This reverts commit r20921 for breaking the ARM/ARM64 bots.

TBR=wingo@igalia.com

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

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

10 years agoMake DescriptorArray::IsMoreGeneralThan() and DescriptorArray::Merge() compatible...
bmeurer@chromium.org [Thu, 24 Apr 2014 08:07:14 +0000 (08:07 +0000)]
Make DescriptorArray::IsMoreGeneralThan() and DescriptorArray::Merge() compatible again.

BUG=365172
LOG=y
TEST=mjsunit/regress/regress-365172-[1-3]
R=svenpanne@chromium.org

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

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

10 years agoAdd tests for generator/debugger interaction
wingo@igalia.com [Thu, 24 Apr 2014 07:24:38 +0000 (07:24 +0000)]
Add tests for generator/debugger interaction

R=yangguo@chromium.org
BUG=

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

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

10 years agoTreat FOREIGN_TYPE as internal.
bmeurer@chromium.org [Thu, 24 Apr 2014 07:16:10 +0000 (07:16 +0000)]
Treat FOREIGN_TYPE as internal.

R=svenpanne@chromium.org

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

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

10 years agoCodeStubs contain their corresponding Isolate* now. (part 1)
svenpanne@chromium.org [Thu, 24 Apr 2014 06:25:42 +0000 (06:25 +0000)]
CodeStubs contain their corresponding Isolate* now. (part 1)

This is a purely mechanical change, adding an Isolate* to the CodeStub
constructor and a corresponding field plus a getter. A few methods in
CodeStub and its subclasses can be simplified now, but this is done in
a separate CL.

The underlying reason apart from simplicity is that deep down in the
call chain we need to detect if the serializer is active or not. This
information will be part of the Isolate, not a global variable with
funky synchronization primitives around it (which is fundamentally
wrong and the underlying cause for race conditions and a catch-22
during initialization).

BUG=359977
LOG=y
R=mstarzinger@chromium.org

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

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

10 years agoFix C++ type of Factory::NewFixedDoubleArray.
jarin@chromium.org [Thu, 24 Apr 2014 05:29:00 +0000 (05:29 +0000)]
Fix C++ type of Factory::NewFixedDoubleArray.

The change fixes the C++ type of Factory::NewFixedDoubleArray to
reflect the empty array case, where we return an empty
FixedArray (rather than FixedDoubleArray).

R=mvstanton@chromium.org
BUG=

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

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

10 years agoStringTable::LookupKey() and all callers handlified.
ishell@chromium.org [Wed, 23 Apr 2014 15:43:39 +0000 (15:43 +0000)]
StringTable::LookupKey() and all callers handlified.

R=yangguo@chromium.org

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

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

10 years agoClean up some uses of Failures and MaybeObjects.
yangguo@chromium.org [Wed, 23 Apr 2014 15:08:03 +0000 (15:08 +0000)]
Clean up some uses of Failures and MaybeObjects.

R=mstarzinger@chromium.org

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

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

10 years agoMove bug 3280 regression test to mjsunit/harmony
wingo@igalia.com [Wed, 23 Apr 2014 15:01:30 +0000 (15:01 +0000)]
Move bug 3280 regression test to mjsunit/harmony

R=yangguo@chromium.org
BUG=

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

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

10 years agoFix the Array.push simulate for non-effect context.
jarin@chromium.org [Wed, 23 Apr 2014 14:26:53 +0000 (14:26 +0000)]
Fix the Array.push simulate for non-effect context.

R=danno@google.com, danno@chromium.org
BUG=

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

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

10 years agoFix deoptimization problem with inlined Array.push()
danno@chromium.org [Wed, 23 Apr 2014 13:20:28 +0000 (13:20 +0000)]
Fix deoptimization problem with inlined Array.push()

R=jarin@chromium.org
LOG=N

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

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

10 years agoAllow Object.defineProperty to update value of an API accessor.
ulan@chromium.org [Wed, 23 Apr 2014 13:05:38 +0000 (13:05 +0000)]
Allow Object.defineProperty to update value of an API accessor.

This is needed for converting internal accessors to API accessors and can break blink tests.

BUG=
R=yangguo@chromium.org

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

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

10 years agoFix ToObject and Object.isSealed in four Array builtins.
mstarzinger@chromium.org [Wed, 23 Apr 2014 12:48:32 +0000 (12:48 +0000)]
Fix ToObject and Object.isSealed in four Array builtins.

R=mvstanton@chromium.org
TEST=mjsunit/regress/regress-builtinbust-6

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

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

10 years agoHarden DefineOrRedefineDataProperty.
ulan@chromium.org [Wed, 23 Apr 2014 12:28:50 +0000 (12:28 +0000)]
Harden DefineOrRedefineDataProperty.

R=jkummerow@chromium.org

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

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

10 years agoIntroduce .DEPS.git file to support full git checkouts
jochen@chromium.org [Wed, 23 Apr 2014 12:28:43 +0000 (12:28 +0000)]
Introduce .DEPS.git file to support full git checkouts

This is the result of running deps2git.py -d DEPS -o .DEPS.git -s -c /tmp

BUG=none
R=jkummerow@chromium.org, machenbach@chromium.org
LOG=n

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

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

10 years agoExtract common macros and start a base library
jochen@chromium.org [Wed, 23 Apr 2014 11:51:28 +0000 (11:51 +0000)]
Extract common macros and start a base library

BUG=v8:3015
R=svenpanne@chromium.org
LOG=n

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

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

10 years agoDisable field type tracking by default.
bmeurer@chromium.org [Wed, 23 Apr 2014 10:40:31 +0000 (10:40 +0000)]
Disable field type tracking by default.

BUG=365172
LOG=y
R=ulan@chromium.org

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

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

10 years agoFix tracking of computed fields when field type tracking is disabled.
bmeurer@chromium.org [Wed, 23 Apr 2014 09:41:28 +0000 (09:41 +0000)]
Fix tracking of computed fields when field type tracking is disabled.

R=svenpanne@chromium.org

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

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

10 years agoAvoid setting transitions in-place for cached maps when observed
jarin@chromium.org [Wed, 23 Apr 2014 09:21:24 +0000 (09:21 +0000)]
Avoid setting transitions in-place for cached maps when observed

R=verwaest@chromium.org
BUG=

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

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

10 years agoAvoid exposing compiler-allocated temporaries to the debugger
wingo@igalia.com [Wed, 23 Apr 2014 08:58:41 +0000 (08:58 +0000)]
Avoid exposing compiler-allocated temporaries to the debugger

R=yangguo@chromium.org
BUG=

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

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

10 years agoHandle boxed length in JSON stringify.
jarin@chromium.org [Wed, 23 Apr 2014 08:40:26 +0000 (08:40 +0000)]
Handle boxed length in JSON stringify.

Here is the test that used to fail in Smi::cast:

JSON.stringify(new Array(4000000000));

I am not adding the test because it takes huge amount of time before it
runs out of memory.

R=verwaest@chromium.org
BUG=

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

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

10 years agoSort functions in polymorphic calls based on overall profiling ticks and inlined...
bmeurer@chromium.org [Wed, 23 Apr 2014 07:07:54 +0000 (07:07 +0000)]
Sort functions in polymorphic calls based on overall profiling ticks and inlined AST size.

R=svenpanne@chromium.org

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

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

10 years agoMIPS: Return Object* instead of MaybeObject* from runtime calls.
palfia@homejinni.com [Tue, 22 Apr 2014 22:40:34 +0000 (22:40 +0000)]
MIPS: Return Object* instead of MaybeObject* from runtime calls.

Port r20888 (d6883d72)

BUG=
R=plind44@gmail.com

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

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

10 years agoFix issue with Map/SetIterator and types
adamk@chromium.org [Tue, 22 Apr 2014 18:14:46 +0000 (18:14 +0000)]
Fix issue with Map/SetIterator and types

BUG=v8:3281
LOG=N
R=jkummerow@chromium.org

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

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

10 years agoMIPS: Improve code generation for bounds checks.
plind44@gmail.com [Tue, 22 Apr 2014 16:56:42 +0000 (16:56 +0000)]
MIPS: Improve code generation for bounds checks.

Port r20872 (0e79653)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoARM64: Move sign-extension to load instructions.
Jacob.Bramley@arm.com [Tue, 22 Apr 2014 15:57:04 +0000 (15:57 +0000)]
ARM64: Move sign-extension to load instructions.

The SXTW extend mode is usually free when used in a load or store
operand, but it can slightly increase the latency of an arithmetic
instruction. This patch optimises some address calculations accordingly:
  - PrepareKeyedExternalArrayOperand.
  - BuildSeqStringOperand.
  - DoStringCharFromCode.

BUG=
R=ulan@chromium.org

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

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

10 years agoUse MaybeHandles in Compiler to indicate failure instead of a null Handle.
mvstanton@chromium.org [Tue, 22 Apr 2014 14:55:47 +0000 (14:55 +0000)]
Use MaybeHandles in Compiler to indicate failure instead of a null Handle.

R=yangguo@chromium.org

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

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

10 years agoInsert HSimulate immediately after Crankshaft-inlined push.
danno@chromium.org [Tue, 22 Apr 2014 12:55:40 +0000 (12:55 +0000)]
Insert HSimulate immediately after Crankshaft-inlined push.

R=jarin@chromium.org
LOG=N

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

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

10 years agoReturn Object* instead of MaybeObject* from runtime calls.
yangguo@chromium.org [Tue, 22 Apr 2014 12:50:58 +0000 (12:50 +0000)]
Return Object* instead of MaybeObject* from runtime calls.

R=jkummerow@chromium.org

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

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

10 years agoCache maps for externalized typed array objects.
dslomov@chromium.org [Tue, 22 Apr 2014 12:24:28 +0000 (12:24 +0000)]
Cache maps for externalized typed array objects.

After this, the maps do not garbage-collect, and typed array
constructors do not deopt.

R=ulan@chromium.org
BUG=363855
LOG=N

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

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

10 years agoContext-allocate all parameters in generators
wingo@igalia.com [Tue, 22 Apr 2014 11:34:16 +0000 (11:34 +0000)]
Context-allocate all parameters in generators

Generator function scopes have forced context allocation.  Ensure that
all variables in such scopes get context allocation -- even unused
variables.

This fixes an assertion when reifying generator scopes in the debugger.

R=yangguo@chromium.org
LOG=Y
BUG=v8:3280

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

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

10 years agoDo not avoid flattening cons string when creating a string slice.
yangguo@chromium.org [Tue, 22 Apr 2014 11:19:27 +0000 (11:19 +0000)]
Do not avoid flattening cons string when creating a string slice.

R=ulan@chromium.org
BUG=364656
LOG=N

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

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

10 years agoHBranch should also print its expected input types.
bmeurer@chromium.org [Tue, 22 Apr 2014 11:00:27 +0000 (11:00 +0000)]
HBranch should also print its expected input types.

R=svenpanne@chromium.org

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

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

10 years agoOptimize numeric comparison with known successors.
bmeurer@chromium.org [Tue, 22 Apr 2014 10:49:28 +0000 (10:49 +0000)]
Optimize numeric comparison with known successors.

R=svenpanne@chromium.org

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

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

10 years agoRevert "Simplify v8/Isolate teardown."
svenpanne@chromium.org [Tue, 22 Apr 2014 10:45:43 +0000 (10:45 +0000)]
Revert "Simplify v8/Isolate teardown."

This reverts commit r20876, it broke non-snapshot tests.

TBR=bmeurer@chromium.org

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

10 years agoBumped the boot-up memory-limit, part 2.
svenpanne@chromium.org [Tue, 22 Apr 2014 09:40:18 +0000 (09:40 +0000)]
Bumped the boot-up memory-limit, part 2.

Basically a follow-up to r20851

TBR=jarin@chromium.org

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

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

10 years agoJSObject::DeepCopy and other functions returned an empty handle to
mvstanton@chromium.org [Tue, 22 Apr 2014 09:32:42 +0000 (09:32 +0000)]
JSObject::DeepCopy and other functions returned an empty handle to
indicate an exception. All usages but one changed to return
MaybeHandles, and to use macros around the call.

The remaining work is in Compiler::GetUnoptimizedCode(), and when
that is turned into a MaybeHandle, then the macros dealing with
null handle returns can be eliminated.

R=yangguo@chromium.org

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

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

10 years agoSimplify v8/Isolate teardown.
svenpanne@chromium.org [Tue, 22 Apr 2014 09:24:56 +0000 (09:24 +0000)]
Simplify v8/Isolate teardown.

This implies that one better has a v8::V8::Initialize when v8::V8::Dispose is used.

BUG=359977
LOG=y
R=jochen@chromium.org

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

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

10 years agoCons string maps must be marked as unstable.
bmeurer@chromium.org [Tue, 22 Apr 2014 08:49:46 +0000 (08:49 +0000)]
Cons string maps must be marked as unstable.

R=verwaest@chromium.org

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

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

10 years agoMake sure to clear any previously collected field maps.
bmeurer@chromium.org [Tue, 22 Apr 2014 08:34:44 +0000 (08:34 +0000)]
Make sure to clear any previously collected field maps.

TEST=http://www.chaostoperfection.com/
R=svenpanne@chromium.org

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

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

10 years agoSet code on the SharedFunctionInfo before creating the function.
verwaest@chromium.org [Tue, 22 Apr 2014 08:30:09 +0000 (08:30 +0000)]
Set code on the SharedFunctionInfo before creating the function.

BUG=
R=ishell@chromium.org

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

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

10 years agoImprove code generation for bounds checks.
bmeurer@chromium.org [Tue, 22 Apr 2014 08:28:14 +0000 (08:28 +0000)]
Improve code generation for bounds checks.

R=svenpanne@chromium.org

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

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

10 years agoIntroduce exception object and remove some uses of MaybeObject::IsFailure().
yangguo@chromium.org [Tue, 22 Apr 2014 07:33:20 +0000 (07:33 +0000)]
Introduce exception object and remove some uses of MaybeObject::IsFailure().

R=bmeurer@chromium.org

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

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

10 years agoFix field type handling in load elimination.
bmeurer@chromium.org [Tue, 22 Apr 2014 07:24:05 +0000 (07:24 +0000)]
Fix field type handling in load elimination.

Drive-by-fix: map_set() must return a pointer to the UniqueSet
instead of a copy.

R=svenpanne@chromium.org

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

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

10 years agoFix interpreted-regexp test.
yangguo@chromium.org [Tue, 22 Apr 2014 06:54:16 +0000 (06:54 +0000)]
Fix interpreted-regexp test.

TBR=ishell@chromium.org

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

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

10 years agoSwitch CPU profile start/stop markers to monotonic time.
alph@chromium.org [Sat, 19 Apr 2014 14:33:18 +0000 (14:33 +0000)]
Switch CPU profile start/stop markers to monotonic time.

LOG=N
BUG=363976
R=bmeurer@chromium.org, yurys@chromium.org

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

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

10 years agoReturn int64_t instead of intptr_t for RootRegisterDelta and support x32 as well.
haitao.feng@intel.com [Thu, 17 Apr 2014 23:25:02 +0000 (23:25 +0000)]
Return int64_t instead of intptr_t for RootRegisterDelta and support x32 as well.

R=verwaest@chromium.org

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

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

10 years agoUpdate CheckBothSmi, CheckInteger32ValidSmiValue, CheckUInteger32ValidSmiValue, SmiAd...
haitao.feng@intel.com [Thu, 17 Apr 2014 23:17:08 +0000 (23:17 +0000)]
Update CheckBothSmi, CheckInteger32ValidSmiValue, CheckUInteger32ValidSmiValue, SmiAddConstant, SmiNot, AddSmiField and Test to support x32 port.

R=verwaest@chromium.org

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

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

10 years agoMIPS: Serializer enable/disable flags need thread safety.
palfia@homejinni.com [Thu, 17 Apr 2014 20:06:50 +0000 (20:06 +0000)]
MIPS: Serializer enable/disable flags need thread safety.

Port r20855 (ac70e129)

BUG=
R=plind44@gmail.com

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

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

10 years agoFix breakage on V8 Linux - nosse2
adamk@chromium.org [Thu, 17 Apr 2014 19:39:48 +0000 (19:39 +0000)]
Fix breakage on V8 Linux - nosse2

This was introduced by https://code.google.com/p/v8/source/detail?r=20857

R=adamk@chromium.org
TBR=mstarzinger@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

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

10 years agoES6: Add support for Map/Set forEach
adamk@chromium.org [Thu, 17 Apr 2014 17:45:32 +0000 (17:45 +0000)]
ES6: Add support for Map/Set forEach

This implements MapIterator and SetIterator which matches
the same constructs in the ES6 spec. However, these 2
iterators are not exposed to user code yet. They are only
used internally to implement Map.prototype.forEach and
Set.prototype.forEach.

Each iterator has a reference to the OrderedHashTable where
it directly accesses the hash table's entries.

The OrderedHashTable has a reference to the newest iterator
and each iterator has a reference to the next and previous
iterator, effectively creating a double linked list.

When the OrderedHashTable is mutated (or replaced) all the
iterators are updated.

When the iterator iterates passed the end of the data table
it closes itself. Closed iterators no longer have a
reference to the OrderedHashTable and they are removed from
the double linked list. In the case of Map/Set forEach, we
manually call Close on the iterator in case an exception was
thrown so that the iterator never reached the end.

At this point the OrderedHashTable keeps all the non finished
iterators alive but since the only thing we currently expose
is forEach there are no unfinished iterators outside a forEach
call. Once we expose the iterators to user code we will need
to make the references from the OrderedHashTable to the
iterators weak and have some mechanism to close an iterator
when it is garbage collected.

BUG=1793, 2323
LOG=Y
R=adamk@chromium.org
TBR=mstarzinger@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

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

10 years agoMake Heap::AllocateRaw*String private.
mstarzinger@chromium.org [Thu, 17 Apr 2014 14:58:03 +0000 (14:58 +0000)]
Make Heap::AllocateRaw*String private.

R=yangguo@chromium.org

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

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

10 years agoSerializer enable/disable flags need thread safety.
mvstanton@chromium.org [Thu, 17 Apr 2014 14:45:06 +0000 (14:45 +0000)]
Serializer enable/disable flags need thread safety.

BUG=
R=hpayer@chromium.org, svenpanne@chromium.org

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

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

10 years agoThis should make the NaCl build jobs green again.
jarin@chromium.org [Thu, 17 Apr 2014 14:22:20 +0000 (14:22 +0000)]
This should make the NaCl build jobs green again.

BUG=
R=hpayer@chromium.org, jkummerow@chromium.org

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

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

10 years agoInitialize elements pointer in BuildCloneShallowArray when allocation folding is...
hpayer@chromium.org [Thu, 17 Apr 2014 14:20:26 +0000 (14:20 +0000)]
Initialize elements pointer in BuildCloneShallowArray when allocation folding is turned off for arrays with lenght larger than zero.

BUG=
R=mvstanton@chromium.org

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

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

10 years agoHandlify PolymorphicCodeCache.
dslomov@chromium.org [Thu, 17 Apr 2014 13:59:57 +0000 (13:59 +0000)]
Handlify PolymorphicCodeCache.

R=yangguo@chromium.org, yannguo@chromium.org

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

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

10 years agoBump up the boot-up memory limit.
jarin@chromium.org [Thu, 17 Apr 2014 13:58:51 +0000 (13:58 +0000)]
Bump up the boot-up memory limit.

... to compansate for the extre memory consumed by r20840
("Select function map based on prototype and shared function info.")

R=yangguo@chromium.org
BUG=

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

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

10 years agoChange IS_UNDEFINED to perform value comparison instead on typeof check.
dslomov@chromium.org [Thu, 17 Apr 2014 13:55:03 +0000 (13:55 +0000)]
Change IS_UNDEFINED to perform value comparison instead on typeof check.

This makes our builtins immune to bug v8:3264.

R=rossberg@chromium.org

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

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

10 years agoMake Heap::AllocateRaw private.
mstarzinger@chromium.org [Thu, 17 Apr 2014 13:53:06 +0000 (13:53 +0000)]
Make Heap::AllocateRaw private.

R=yangguo@chromium.org

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

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

10 years agoFix for a Mac build issue after r20846.
ishell@chromium.org [Thu, 17 Apr 2014 13:45:13 +0000 (13:45 +0000)]
Fix for a Mac build issue after r20846.

R=yangguo@chromium.org

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

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

10 years agoMIPS: Track up to 5 stable maps as field type.
plind44@gmail.com [Thu, 17 Apr 2014 13:37:28 +0000 (13:37 +0000)]
MIPS: Track up to 5 stable maps as field type.

Port r20831 (f91f993)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoHeap::AllocateStringFromOneByte() and major part of its callers handlified.
ishell@chromium.org [Thu, 17 Apr 2014 13:27:02 +0000 (13:27 +0000)]
Heap::AllocateStringFromOneByte() and major part of its callers handlified.

R=yangguo@chromium.org

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

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

10 years agoAllocate filler objects in the factory.
yangguo@chromium.org [Thu, 17 Apr 2014 13:15:22 +0000 (13:15 +0000)]
Allocate filler objects in the factory.

R=mstarzinger@chromium.org

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

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

10 years agoCleanups in runtime.cc
yangguo@chromium.org [Thu, 17 Apr 2014 13:05:28 +0000 (13:05 +0000)]
Cleanups in runtime.cc

R=jkummerow@chromium.org

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

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

10 years agoInitialize elements pointer in BuildCloneShallowArray when allocation folding is...
hpayer@chromium.org [Thu, 17 Apr 2014 11:58:48 +0000 (11:58 +0000)]
Initialize elements pointer in BuildCloneShallowArray when allocation folding is turned off.

BUG=
R=mvstanton@chromium.org

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

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

10 years agoAlways pass in code to NewFunctionWithoutPrototype
verwaest@chromium.org [Thu, 17 Apr 2014 11:57:32 +0000 (11:57 +0000)]
Always pass in code to NewFunctionWithoutPrototype

BUG=
R=ishell@chromium.org

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

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

10 years agoExtend GCMole to also cover cctest files.
mstarzinger@chromium.org [Thu, 17 Apr 2014 11:57:08 +0000 (11:57 +0000)]
Extend GCMole to also cover cctest files.

R=rossberg@chromium.org

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

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

10 years agoSelect function map based on prototype and shared function info.
verwaest@chromium.org [Thu, 17 Apr 2014 11:50:22 +0000 (11:50 +0000)]
Select function map based on prototype and shared function info.

BUG=
R=ishell@chromium.org

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

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

10 years agoRemove hand-written assembly ArrayPush stubs
danno@chromium.org [Thu, 17 Apr 2014 11:37:59 +0000 (11:37 +0000)]
Remove hand-written assembly ArrayPush stubs

R=mstarzinger@chromium.org, verwaest@chromium.org

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

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

10 years agoX64: fix arguments adaptor stack check after r20751.
ulan@chromium.org [Thu, 17 Apr 2014 11:30:25 +0000 (11:30 +0000)]
X64: fix arguments adaptor stack check after r20751.

BUG=
R=haitao.feng@intel.com

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

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

10 years agoGrow old generation slower on low-memory devices.
hpayer@chromium.org [Thu, 17 Apr 2014 11:27:45 +0000 (11:27 +0000)]
Grow old generation slower on low-memory devices.

BUG=
R=mstarzinger@chromium.org, rmcilroy@chromium.org

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

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

10 years agoHarden runtime functions
jkummerow@chromium.org [Thu, 17 Apr 2014 09:55:53 +0000 (09:55 +0000)]
Harden runtime functions

Part 1 of many.

R=dslomov@chromium.org

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

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

10 years agoFix handlification bug in test
rossberg@chromium.org [Thu, 17 Apr 2014 09:30:41 +0000 (09:30 +0000)]
Fix handlification bug in test

R=bmeurer@chromium.org, mstarzinger@chromium.org
BUG=

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

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

10 years agoTiny Parser fix: init identifiers.
marja@chromium.org [Thu, 17 Apr 2014 09:23:04 +0000 (09:23 +0000)]
Tiny Parser fix: init identifiers.

This bug went unnoticed because PreParserIdentifier and Handle<String> have
default ctors which create a null identifier, but this it not true for all
possible identifier types (especially pointers).

R=ulan@chromium.org
BUG=

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

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

10 years agoHandlify function.prototype accessor.
ulan@chromium.org [Thu, 17 Apr 2014 09:12:19 +0000 (09:12 +0000)]
Handlify function.prototype accessor.

BUG=
R=yangguo@chromium.org

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

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

10 years agoSome MaybeHandles related cleanups.
yangguo@chromium.org [Thu, 17 Apr 2014 08:33:18 +0000 (08:33 +0000)]
Some MaybeHandles related cleanups.

R=mvstanton@chromium.org

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

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

10 years agoTrack up to 5 stable maps as field type.
bmeurer@chromium.org [Thu, 17 Apr 2014 08:22:22 +0000 (08:22 +0000)]
Track up to 5 stable maps as field type.

R=svenpanne@chromium.org

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

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

10 years agoRemove uses of MaybeObject in runtime.cc.
yangguo@chromium.org [Thu, 17 Apr 2014 05:41:58 +0000 (05:41 +0000)]
Remove uses of MaybeObject in runtime.cc.

R=ulan@chromium.org

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

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

10 years agoAdjust memory limits.
palfia@homejinni.com [Wed, 16 Apr 2014 21:57:48 +0000 (21:57 +0000)]
Adjust memory limits.

- Introduce new constant: kBootCodeSizeMultiplier to handle the code size differences across the platforms.

- Increase memory limits due to larger code size on MIPS.

BUG=
R=danno@chromium.org, plind44@gmail.com

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

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

10 years agoRevert "ES6: Add support for Map/Set forEach"
adamk@chromium.org [Wed, 16 Apr 2014 21:19:25 +0000 (21:19 +0000)]
Revert "ES6: Add support for Map/Set forEach"

This reverts https://code.google.com/p/v8/source/detail?r=20823

It broke Windows builds. Will need to find a Windows try bot to figure
out why.

TBR=mstarzinger@chromium.org,arv@chromium.org

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

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

10 years agoES6: Add support for Map/Set forEach
adamk@chromium.org [Wed, 16 Apr 2014 21:12:27 +0000 (21:12 +0000)]
ES6: Add support for Map/Set forEach

This implements MapIterator and SetIterator which matches
the same constructs in the ES6 spec. However, these 2
iterators are not exposed to user code yet. They are only
used internally to implement Map.prototype.forEach and
Set.prototype.forEach.

Each iterator has a reference to the OrderedHashTable where
it directly accesses the hash table's entries.

The OrderedHashTable has a reference to the newest iterator
and each iterator has a reference to the next and previous
iterator, effectively creating a double linked list.

When the OrderedHashTable is mutated (or replaced) all the
iterators are updated.

When the iterator iterates passed the end of the data table
it closes itself. Closed iterators no longer have a
reference to the OrderedHashTable and they are removed from
the double linked list. In the case of Map/Set forEach, we
manually call Close on the iterator in case an exception was
thrown so that the iterator never reached the end.

At this point the OrderedHashTable keeps all the non finished
iterators alive but since the only thing we currently expose
is forEach there are no unfinished iterators outside a forEach
call. Once we expose the iterators to user code we will need
to make the references from the OrderedHashTable to the
iterators weak and have some mechanism to close an iterator
when it is garbage collected.

BUG=1793,2323
LOG=Y
TBR=mstarzinger@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

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

10 years agoMIPS: Implement structural function and array types
plind44@gmail.com [Wed, 16 Apr 2014 19:02:58 +0000 (19:02 +0000)]
MIPS: Implement structural function and array types

Port r20817 (e7a84c1)

Original commit message:
Just wanted to add two constructors to a datatype, how ugly can it get?

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

10 years agoCallers of Heap::AllocateStringFromOneByte() and Heap::AllocateStringFromUtf8() handl...
ishell@chromium.org [Wed, 16 Apr 2014 18:28:03 +0000 (18:28 +0000)]
Callers of Heap::AllocateStringFromOneByte() and Heap::AllocateStringFromUtf8() handlified.

R=yangguo@chromium.org

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

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

10 years agoHandlify HashTable and Dictionary growing.
dslomov@chromium.org [Wed, 16 Apr 2014 18:17:20 +0000 (18:17 +0000)]
Handlify HashTable and Dictionary growing.

R=ishell@chromium.org

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

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

10 years agoImplement structural function and array types
rossberg@chromium.org [Wed, 16 Apr 2014 16:36:27 +0000 (16:36 +0000)]
Implement structural function and array types

Just wanted to add two constructors to a datatype, how ugly can it get?

R=bmeurer@chromium.org, jarin@chromium.org
BUG=

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

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

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

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

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