platform/upstream/v8.git
10 years agoRemove high promotion mode.
hpayer@chromium.org [Mon, 26 May 2014 12:58:55 +0000 (12:58 +0000)]
Remove high promotion mode.

BUG=
R=mstarzinger@chromium.org

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

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

10 years agoMake 'name' property on functions configurable.
mstarzinger@chromium.org [Mon, 26 May 2014 11:42:56 +0000 (11:42 +0000)]
Make 'name' property on functions configurable.

R=rossberg@chromium.org
BUG=v8:3333
LOG=N

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

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

10 years agoActually fix the memory leak in debugger wrt promises.
yangguo@chromium.org [Mon, 26 May 2014 11:40:34 +0000 (11:40 +0000)]
Actually fix the memory leak in debugger wrt promises.

In the fuzz test the debugger is not actually loaded...

R=jkummerow@chromium.org

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

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

10 years agoReland 21482 - "Merge v8globals.h and globals.h"
jochen@chromium.org [Mon, 26 May 2014 11:28:08 +0000 (11:28 +0000)]
Reland 21482 - "Merge v8globals.h and globals.h"

> BUG=none
> R=mstarzinger@chromium.org
> LOG=n
>
> Review URL: https://codereview.chromium.org/293363006

BUG=none
TBR=mstarzinger@chromium.org
LOG=n

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

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

10 years agoFix memory leak caused by fuzzing.
yangguo@chromium.org [Mon, 26 May 2014 11:13:18 +0000 (11:13 +0000)]
Fix memory leak caused by fuzzing.

%DebugPromiseHandlePrologue expects to be followed up by %..Epilogue,
otherwise we get a leak.

R=jkummerow@chromium.org

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

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

10 years agoFix mem leaks in tests & ScriptCompiler::CompileUnbound.
marja@chromium.org [Mon, 26 May 2014 11:04:32 +0000 (11:04 +0000)]
Fix mem leaks in tests & ScriptCompiler::CompileUnbound.

- Leak in test-parsing/DontRegressPreParserDataSizes
- Leak in test-api/EventLogging
- Leak in ScriptCompiler::CompileUnbound which won't happen during normal
operation, but exposed by test-apöi/CompiledWithInvalidCachedData.

R=yangguo@chromium.org
BUG=

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

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

10 years agoAlways fully qualify the namespace to use in v8.h
jochen@chromium.org [Mon, 26 May 2014 09:36:13 +0000 (09:36 +0000)]
Always fully qualify the namespace to use in v8.h

Also, remove some unused methods.

BUG=none
R=dcarney@chromium.org
LOG=n

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

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

10 years agoRevert "Customized support for feedback on calls to Array." and follow-up fixes.
jkummerow@chromium.org [Mon, 26 May 2014 09:04:00 +0000 (09:04 +0000)]
Revert "Customized support for feedback on calls to Array." and follow-up fixes.

This reverts r21429, r21434, r21435, r21440, r21445.

BUG=chromium:377198
LOG=y
R=mvstanton@chromium.org

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

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

10 years agoRevert "Merge v8globals.h and globals.h"
verwaest@chromium.org [Mon, 26 May 2014 08:39:04 +0000 (08:39 +0000)]
Revert "Merge v8globals.h and globals.h"

Because of tree redness.

TBR=jochen@chromium.org

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

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

10 years agoMerge v8globals.h and globals.h
jochen@chromium.org [Mon, 26 May 2014 08:15:13 +0000 (08:15 +0000)]
Merge v8globals.h and globals.h

BUG=none
R=mstarzinger@chromium.org
LOG=n

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

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

10 years agoSkip write barriers in the fast case when setting up local context.
bmeurer@chromium.org [Mon, 26 May 2014 08:13:09 +0000 (08:13 +0000)]
Skip write barriers in the fast case when setting up local context.

The FastNewContextStub always allocates in new space, so we don't
need to update the write barrier when copying the parameters to
the newly allocated context.

R=hpayer@chromium.org

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

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

10 years agoMake let variables fresh in each iteration of a for-loop.
ulan@chromium.org [Mon, 26 May 2014 08:07:02 +0000 (08:07 +0000)]
Make let variables fresh in each iteration of a for-loop.

BUG=v8:2198
LOG=N
TEST=mjsunit/harmony/block-for
R=rossberg@chromium.org

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

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

10 years agoFix memory leak in the debugger.
yangguo@chromium.org [Mon, 26 May 2014 08:05:04 +0000 (08:05 +0000)]
Fix memory leak in the debugger.

R=jarin@chromium.org

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

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

10 years agoSome progress on translating toolchain.gypi to gn
jochen@chromium.org [Mon, 26 May 2014 07:29:39 +0000 (07:29 +0000)]
Some progress on translating toolchain.gypi to gn

BUG=none
R=brettw@chromium.org
LOG=n

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

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

10 years agoFix leak in debug mirror cache.
yangguo@chromium.org [Mon, 26 May 2014 07:05:56 +0000 (07:05 +0000)]
Fix leak in debug mirror cache.

When fetching loaded scripts, mirror objects are created and cached.
If the cache is not cleared, it holds script objects alive.

This also fixes a minor issue with script unloading.

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

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

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

10 years agoLoadUint32() doesn't need a scratch register.
bmeurer@chromium.org [Mon, 26 May 2014 06:41:21 +0000 (06:41 +0000)]
LoadUint32() doesn't need a scratch register.

R=jarin@chromium.org

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

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

10 years agoMIPS: Fix r21470 “Reland r21442 Inobject slack tracking is done on a per-closure...
plind44@gmail.com [Fri, 23 May 2014 19:32:48 +0000 (19:32 +0000)]
MIPS: Fix r21470 “Reland r21442 Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."

BUG=
R=plind44@gmail.com

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

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

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

10 years agoMIPS: Reland r21442 "Inobject slack tracking is done on a per-closure basis instead...
plind44@gmail.com [Fri, 23 May 2014 18:05:40 +0000 (18:05 +0000)]
MIPS: Reland r21442 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."

Port r21457 (8db39a8)

Original commit message:
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.

BUG=
R=plind44@gmail.com

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

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

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

10 years agoIntroduce x87 port
danno@chromium.org [Fri, 23 May 2014 16:37:27 +0000 (16:37 +0000)]
Introduce x87 port

Support x87-only platform (ia32 without SSE)

R=danno@chromium.org

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

Patch from Weiliang Lin <weiliang.lin@intel.com>.

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

10 years agoAllow HPushArgument to handle more than one argument.
alexandre.rames@arm.com [Fri, 23 May 2014 14:06:42 +0000 (14:06 +0000)]
Allow HPushArgument to handle more than one argument.

R=ulan@chromium.org

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

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

10 years agoFix representation inference for mutable double boxes.
mstarzinger@chromium.org [Fri, 23 May 2014 14:02:08 +0000 (14:02 +0000)]
Fix representation inference for mutable double boxes.

R=jarin@chromium.org
BUG=v8:3307
TEST=mjsunit/regress/regress-3307
LOG=N

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

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

10 years agoCheck for cached transition to ExternalArray elements kind.
dslomov@chromium.org [Fri, 23 May 2014 14:01:17 +0000 (14:01 +0000)]
Check for cached transition to ExternalArray elements kind.

R=ishell@chromium.org, verwaest@chromium.org
BUG=v8:3337
LOG=Y

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

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

10 years agoProvide a helper to generate multiple Lithium instructions for one Hydrogen instruction.
alexandre.rames@arm.com [Fri, 23 May 2014 13:15:07 +0000 (13:15 +0000)]
Provide a helper to generate multiple Lithium instructions for one Hydrogen instruction.

R=jkummerow@chromium.org, ulan@chromium.org

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

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

10 years agoCleanup after inobject slack tracking improvement.
ishell@chromium.org [Fri, 23 May 2014 12:55:57 +0000 (12:55 +0000)]
Cleanup after inobject slack tracking improvement.

1) %SetExpectedNumberOfProperties() function removed.
2) Obsolete SharedFunctionInfo::BeforeVisitingPointers() removed.

R=mstarzinger@chromium.org

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

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

10 years agoSkip dead blocks/instructions in store elimination.
bmeurer@chromium.org [Fri, 23 May 2014 11:48:40 +0000 (11:48 +0000)]
Skip dead blocks/instructions in store elimination.

Also improve tracing.

R=ishell@chromium.org

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

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

10 years agoTiny steps towards a non-local 'Merge removable simulates' phase.
svenpanne@chromium.org [Fri, 23 May 2014 11:25:23 +0000 (11:25 +0000)]
Tiny steps towards a non-local 'Merge removable simulates' phase.

Distinguish copying/merging of the state. Better tracing.

R=bmeurer@chromium.org

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

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

10 years agoRevert "Make v8::TryCatch able to consume natively thrown exceptions (again)."
mstarzinger@chromium.org [Fri, 23 May 2014 11:12:25 +0000 (11:12 +0000)]
Revert "Make v8::TryCatch able to consume natively thrown exceptions (again)."

TBR=machenbach@chromium.org

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

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

10 years agoSupport ES6 weak collections in heap profiler
yurys@chromium.org [Fri, 23 May 2014 11:05:22 +0000 (11:05 +0000)]
Support ES6 weak collections in heap profiler

BUG=chromium:376196
LOG=Y
R=alph@chromium.org, yangguo@chromium.org

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

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

10 years agoARM64 simulator fix for EXTR
rodolph.perfetta@arm.com [Fri, 23 May 2014 09:41:41 +0000 (09:41 +0000)]
ARM64 simulator fix for EXTR

Fixes extract when imms = 0 because a left shift of 64 is not valid.

R=rodolph.perfetta@arm.com, svenpanne@chromium.org

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

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

10 years agoAvoid dynamic initial map check when inlining call-new.
bmeurer@chromium.org [Fri, 23 May 2014 09:30:47 +0000 (09:30 +0000)]
Avoid dynamic initial map check when inlining call-new.

This improves check elimination and removes a load plus
a map check for every inlined call-new.

R=hpayer@chromium.org

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

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

10 years agoReland r21442 "Inobject slack tracking is done on a per-closure basis instead of...
ishell@chromium.org [Fri, 23 May 2014 08:52:05 +0000 (08:52 +0000)]
Reland r21442 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.

R=mstarzinger@chromium.org

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

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

10 years agoMake v8::TryCatch able to consume natively thrown exceptions (again).
mstarzinger@chromium.org [Fri, 23 May 2014 08:34:10 +0000 (08:34 +0000)]
Make v8::TryCatch able to consume natively thrown exceptions (again).

R=yangguo@chromium.org
BUG=chromium:362388
TEST=cctest/test-api/TryCatchNative
LOG=N

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

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

10 years agoDrop gitignore entry for now obsolete test262 archive
jochen@chromium.org [Fri, 23 May 2014 08:23:41 +0000 (08:23 +0000)]
Drop gitignore entry for now obsolete test262 archive

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

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

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

10 years agoFix compilation errors.
bmeurer@chromium.org [Fri, 23 May 2014 08:20:34 +0000 (08:20 +0000)]
Fix compilation errors.

TBR=hpayer@chromium.org

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

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

10 years agoIf map was deprecated, abort compilation and allow re-compilation.
bmeurer@chromium.org [Fri, 23 May 2014 08:13:12 +0000 (08:13 +0000)]
If map was deprecated, abort compilation and allow re-compilation.

Also print a message if either map became unstable or map was
deprecated, if --trace-opt is enabled.

R=hpayer@chromium.org

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

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

10 years agoUse the flow engine for HMergeRemovableSimulatesPhase.
svenpanne@chromium.org [Fri, 23 May 2014 07:48:22 +0000 (07:48 +0000)]
Use the flow engine for HMergeRemovableSimulatesPhase.

For now, this is a 1:1 reformulation of the block-local analysis, but
this will change.

R=bmeurer@chromium.org

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

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

10 years agoAdd a bunch of files in my checkout to .gitignore
jochen@chromium.org [Fri, 23 May 2014 07:35:30 +0000 (07:35 +0000)]
Add a bunch of files in my checkout to .gitignore

BUG=none
TBR=machenbach@chromium.org
LOG=n

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

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

10 years agoRemove dummy harmony-promises flag
jochen@chromium.org [Fri, 23 May 2014 07:16:29 +0000 (07:16 +0000)]
Remove dummy harmony-promises flag

BUG=none
LOG=n
R=rossberg@chromium.org

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

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

10 years agoRevert "Do away with variable length memcpy to Set/Get registers in simulator"
svenpanne@chromium.org [Fri, 23 May 2014 07:14:04 +0000 (07:14 +0000)]
Revert "Do away with variable length memcpy to Set/Get registers in simulator"

This reverts r21148, it broke tests in debug mode, e.g.
mjsunit/regress/regress-observe-map-cache or mjsunit/debug-stepout-scope-part5.

TBR=bmeurer@chromium.org

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

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

10 years agoDo away with variable length memcpy to Set/Get registers in simulator
svenpanne@chromium.org [Fri, 23 May 2014 06:35:00 +0000 (06:35 +0000)]
Do away with variable length memcpy to Set/Get registers in simulator

About a 32% boost.

Before - 5:31

Richards: 84.5
DeltaBlue: 128
Crypto: 65.3
RayTrace: 203
EarleyBoyer: 149
RegExp: 23.4
Splay: 121
NavierStokes: 98.9
----
Score (version 7): 93.8

After - 4:10

Richards: 107
DeltaBlue: 175
Crypto: 93.9
RayTrace: 258
EarleyBoyer: 186
RegExp: 32.7
Splay: 165
NavierStokes: 124
----
Score (version 7): 124

R=jacob.bramley@arm.com, svenpanne@chromium.org

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

Patch from Fritz Koenig <frkoenig@google.com>.

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

10 years agoMIPS: Customized support for feedback on calls to Array.
plind44@gmail.com [Thu, 22 May 2014 17:33:07 +0000 (17:33 +0000)]
MIPS: Customized support for feedback on calls to Array.

Port r21429 (a88ba79)

Original commit message:
Gather transition feedback on array calls, and inline the Array
function call when it makes sense.

BUG=
R=plind44@gmail.com

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

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

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

10 years agoRevert "Reland r21346 "Inobject slack tracking is done on a per-closure basis instead...
ishell@chromium.org [Thu, 22 May 2014 17:13:28 +0000 (17:13 +0000)]
Revert "Reland r21346 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis.""

This reverts r21442.

TBR=jkummerow@chromium.org

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

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

10 years agoMIPS: Allow specifying base offset when constructing Keyed hydrogen instructions.
plind44@gmail.com [Thu, 22 May 2014 17:00:50 +0000 (17:00 +0000)]
MIPS: Allow specifying base offset when constructing Keyed hydrogen instructions.

Port r21426 (17e6338)

This is preparation for pending hydrogen stub work that needs to access memory using KeyedLoad/KeyedStore operations where the base offset used for the accesses are is the the default (e.g. the size of an FixedArray header for FixedArrays or zero for external arrays).

BUG=
R=plind44@gmail.com

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

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

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

10 years agoReland r21346 "Inobject slack tracking is done on a per-closure basis instead of...
ishell@chromium.org [Thu, 22 May 2014 16:22:23 +0000 (16:22 +0000)]
Reland r21346 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.

R=mstarzinger@chromium.org

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

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

10 years agoConsistently say 'own' property
rossberg@chromium.org [Thu, 22 May 2014 15:27:57 +0000 (15:27 +0000)]
Consistently say 'own' property

R=yangguo@chromium.org
BUG=

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

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

10 years agoClearTypeFeedbackInfo() assumed we have a context in the isolate.
mvstanton@chromium.org [Thu, 22 May 2014 15:11:11 +0000 (15:11 +0000)]
ClearTypeFeedbackInfo() assumed we have a context in the isolate.

Better, is to compare against the context for the JSFunction we are
currently looking at.

TBR=ulan@chromium.org

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

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

10 years agoHarden a few builtins
jkummerow@chromium.org [Thu, 22 May 2014 13:59:37 +0000 (13:59 +0000)]
Harden a few builtins

Introducing BUILTIN_ASSERT, builtins' equivalent of RUNTIME_ASSERT.

R=rossberg@chromium.org

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

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

10 years agoIf map became unstable, abort compilation and allow re-compilation.
hpayer@chromium.org [Thu, 22 May 2014 13:51:44 +0000 (13:51 +0000)]
If map became unstable, abort compilation and allow re-compilation.

BUG=
R=danno@google.com

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

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

10 years agoRevert "Inobject slack tracking is done on a per-closure basis instead of per-shared...
ishell@chromium.org [Thu, 22 May 2014 13:38:32 +0000 (13:38 +0000)]
Revert "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."

This reverts r21436.

TBR=jkummerow@chromium.org

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

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

10 years agoInobject slack tracking is done on a per-closure basis instead of per-shared info...
ishell@chromium.org [Thu, 22 May 2014 12:35:45 +0000 (12:35 +0000)]
Inobject slack tracking is done on a per-closure basis instead of per-shared info basis.
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.

R=mstarzinger@chromium.org

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

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

10 years agoGCMole evaluation order issue in CallIC::DoCustomHandler().
mvstanton@chromium.org [Thu, 22 May 2014 11:52:01 +0000 (11:52 +0000)]
GCMole evaluation order issue in CallIC::DoCustomHandler().

R=jarin@chromium.org

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

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

10 years agoClearTypeFeedbackInfo(): context may not be initialized.
mvstanton@chromium.org [Thu, 22 May 2014 11:32:30 +0000 (11:32 +0000)]
ClearTypeFeedbackInfo(): context may not be initialized.

SharedFunctionInfo::ClearTypeFeedbackInfo() wants to compare feedback
to the array JSFunction, but it's called at times when the context
isn't fully initialized. Be cautious about this check.

R=ulan@chromium.org

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

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

10 years agoAdd support for ES6 Symbol in heap profiler
yurys@chromium.org [Thu, 22 May 2014 11:26:48 +0000 (11:26 +0000)]
Add support for ES6 Symbol in heap profiler

Heap profiler will create a node with name Symbol and type kSymbol.

BUG=chromium:376194
LOG=Y
R=loislo@chromium.org, yangguo@chromium.org

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

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

10 years agoRevert "Make v8::TryCatch able to consume natively thrown exceptions"
mstarzinger@chromium.org [Thu, 22 May 2014 11:16:05 +0000 (11:16 +0000)]
Revert "Make v8::TryCatch able to consume natively thrown exceptions"

R=jkummerow@chromium.org

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

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

10 years agoAttempt no. 3 to fix Heap::IsHeapIterable and HeapIterator.
jarin@chromium.org [Thu, 22 May 2014 11:13:37 +0000 (11:13 +0000)]
Attempt no. 3 to fix Heap::IsHeapIterable and HeapIterator.

Now we remember new space's top pointer after the last GC to find out if there was a new space allocation since the last GC.

Unfortunately, this not completely safe - the debugger has a callback hook (that can call to JS) at the end of the GC epilogue that can in theory allocate and possibly make the heap non-iterable. We can only hope this does not happen.

BUG=373283
R=hpayer@chromium.org
LOG=N

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

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

10 years agoMake serializer non-static.
yangguo@chromium.org [Thu, 22 May 2014 09:36:20 +0000 (09:36 +0000)]
Make serializer non-static.

R=svenpanne@chromium.org

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

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

10 years agoCustomized support for feedback on calls to Array.
mvstanton@chromium.org [Thu, 22 May 2014 09:30:02 +0000 (09:30 +0000)]
Customized support for feedback on calls to Array.

Gather transition feedback on array calls, and inline the Array
function call when it makes sense.

R=danno@chromium.org

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

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

10 years agoRevert "Rename target-specific binaries built for host."
jkummerow@chromium.org [Thu, 22 May 2014 09:04:24 +0000 (09:04 +0000)]
Revert "Rename target-specific binaries built for host."

The Android build system support for gyp has been fixed to handle
target-dependent host binaries correctly without requiring them to
include the target architecture in the name. Remove the suffixes to make
referring to these targets simpler again.

This reverts r14209.

BUG=
R=jkummerow@chromium.org

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

Patch from Richard Coles <torne@chromium.org>.

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

10 years agoMake v8::TryCatch able to consume natively thrown exceptions.
mstarzinger@chromium.org [Thu, 22 May 2014 08:46:01 +0000 (08:46 +0000)]
Make v8::TryCatch able to consume natively thrown exceptions.

R=yangguo@chromium.org, haraken@chromium.org
BUG=chromium:362388
TEST=cctest/test-api/TryCatchNative
LOG=N

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

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

10 years agoAllow specifying base offset when constructing Keyed hydrogen instructions
danno@chromium.org [Thu, 22 May 2014 08:37:50 +0000 (08:37 +0000)]
Allow specifying base offset when constructing Keyed hydrogen instructions

This is preparation for pending hydrogen stub work that needs to access memory using KeyedLoad/KeyedStore operations where the base offset used for the accesses are is the the default (e.g. the size of an FixedArray header for FixedArrays or zero for external arrays).

R=mvstanton@chromium.org

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

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

10 years agoIncrease external allocation limit.
hpayer@chromium.org [Thu, 22 May 2014 08:37:20 +0000 (08:37 +0000)]
Increase external allocation limit.

BUG=
R=mstarzinger@chromium.org

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

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

10 years agoRemove usage of Locker/Unlocker where possible.
yangguo@chromium.org [Thu, 22 May 2014 08:11:10 +0000 (08:11 +0000)]
Remove usage of Locker/Unlocker where possible.

This is possible because we removed DebuggerAgent.

R=svenpanne@chromium.org

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

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

10 years agoFix Array.prototype.push and Array.prototype.unshift for read-only length.
ulan@chromium.org [Thu, 22 May 2014 08:09:57 +0000 (08:09 +0000)]
Fix Array.prototype.push and Array.prototype.unshift for read-only length.

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

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

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

10 years agoRemove check for SAHF support in ia32.
yangguo@chromium.org [Thu, 22 May 2014 08:04:17 +0000 (08:04 +0000)]
Remove check for SAHF support in ia32.

On ia32, SAHF is guaranteed. It's only necessary to probe for it on x64.

R=svenpanne@chromium.org
BUG=376087
LOG=N

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

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

10 years agoRemove special debug ExternalReferences.
yangguo@chromium.org [Thu, 22 May 2014 07:57:33 +0000 (07:57 +0000)]
Remove special debug ExternalReferences.

R=ulan@chromium.org

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

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

10 years agoDon't replace initializing smi stores during store elimination.
bmeurer@chromium.org [Thu, 22 May 2014 07:40:07 +0000 (07:40 +0000)]
Don't replace initializing smi stores during store elimination.

R=ishell@chromium.org

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

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

10 years agoReland "Prevent liveedit on or under generators with open activations"
yangguo@chromium.org [Thu, 22 May 2014 07:32:59 +0000 (07:32 +0000)]
Reland "Prevent liveedit on or under generators with open activations"

The change relative to the previous CL is a logic change in
DropActivationsInActiveThreadImpl.  The previous CL skipped the matcher
unless the frame was a JS frame; this was correct for
MultipleFunctionTarget but not for SingleFrameTarget.

I have not been able to reproduce the original failures on either
architecture (ia32 or x64; stack frame dropping is unsupported on other
architectures).

R=yangguo@chromium.org
LOG=N
TEST=mjsunit/harmony/generators-debug-liveedit.js
BUG=

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

Patch from Andy Wingo <wingo@igalia.com>.

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

10 years agoIntroduce a separate event for CodeDeopt
alph@chromium.org [Thu, 22 May 2014 05:36:27 +0000 (05:36 +0000)]
Introduce a separate event for CodeDeopt

The reuse of CodeCreateEvent for deopt events caused a CodeCreateEvent
fired twice for a code object. When the event was processed for the first
time it seized the no-fp-ranges from code object, so the second event
had no ranges info leaving code entry without them.
As a result when a cpu profile sample falls into the region it missed the
2nd stack frame.

LOG=N
BUG=
R=bmeurer@chromium.org, loislo@chromium.org

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

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

10 years agoTransitioning stores change maps.
bmeurer@chromium.org [Thu, 22 May 2014 05:33:37 +0000 (05:33 +0000)]
Transitioning stores change maps.

R=jarin@chromium.org

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

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

10 years agoImplement Mirror object for Symbols.
yangguo@chromium.org [Wed, 21 May 2014 15:13:50 +0000 (15:13 +0000)]
Implement Mirror object for Symbols.

R=rossberg@chromium.org, yurys@chromium.org
BUG=v8:3290
LOG=Y

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

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

10 years agoMove promises recorded for debugging to thread local data.
yangguo@chromium.org [Wed, 21 May 2014 15:00:32 +0000 (15:00 +0000)]
Move promises recorded for debugging to thread local data.

R=rossberg@chromium.org

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

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

10 years agoRevert "Increase external allocation limit."
hpayer@chromium.org [Wed, 21 May 2014 12:58:06 +0000 (12:58 +0000)]
Revert "Increase external allocation limit."

BUG=

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

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

10 years agoIncrease external allocation limit.
hpayer@chromium.org [Wed, 21 May 2014 12:43:05 +0000 (12:43 +0000)]
Increase external allocation limit.

BUG=
R=mstarzinger@chromium.org

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

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

10 years agoReorder checks in Runtime_TypedArrayInitialize*
jkummerow@chromium.org [Wed, 21 May 2014 12:36:37 +0000 (12:36 +0000)]
Reorder checks in Runtime_TypedArrayInitialize*

All checks must be performed before any side effects, so we get atomic transactions

BUG=chromium:374443
LOG=n
R=dslomov@chromium.org

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

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

10 years agoFix OrderedHashSet::Remove caller in debug-only code after r21408
adamk@chromium.org [Wed, 21 May 2014 12:31:31 +0000 (12:31 +0000)]
Fix OrderedHashSet::Remove caller in debug-only code after r21408

TBR=mstarzinger@chromium.org

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

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

10 years agoTeach OrderedHashSet::Remove to report whether it actually removed anything
adamk@chromium.org [Wed, 21 May 2014 12:16:47 +0000 (12:16 +0000)]
Teach OrderedHashSet::Remove to report whether it actually removed anything

This avoids an unnecessary runtime call from Set.prototype.delete().

R=mstarzinger@chromium.org

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

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

10 years agoComment out not yet used flags from BUILD.gn
jochen@chromium.org [Wed, 21 May 2014 11:57:33 +0000 (11:57 +0000)]
Comment out not yet used flags from BUILD.gn

gn started to complain about unused variables

BUG=none
R=dcarney@chromium.org
LOG=n

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

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

10 years agoRevert "Fix Heap::IsHeapIterable." (again)
jarin@chromium.org [Wed, 21 May 2014 09:49:18 +0000 (09:49 +0000)]
Revert "Fix Heap::IsHeapIterable." (again)

This reverts commit r21397.

TBR=hpayer@chromium.org

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

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

10 years agoAllow debugger to step into Map and Set forEach callbacks
adamk@chromium.org [Wed, 21 May 2014 09:25:50 +0000 (09:25 +0000)]
Allow debugger to step into Map and Set forEach callbacks

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

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

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

10 years agoStop using urllib.urlretrieve() directly.
jkummerow@chromium.org [Wed, 21 May 2014 09:25:05 +0000 (09:25 +0000)]
Stop using urllib.urlretrieve() directly.

Using urllib for SSL connections when behind a proxy is known to be
broken, so apply the same fix from depot_tools r149742 and use a wrapper
around urllib2 instead.

R=jkummerow@chromium.org
TEST=run test262 behind corporate proxy

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

Patch from Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>.

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

10 years agoFix ArrayShift hydrogen support
jkummerow@chromium.org [Wed, 21 May 2014 08:51:29 +0000 (08:51 +0000)]
Fix ArrayShift hydrogen support

BUG=chromium:374838
LOG=y
R=bmeurer@chromium.org

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

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

10 years agoUse SameValueZero for Map and Set
adamk@chromium.org [Wed, 21 May 2014 08:47:02 +0000 (08:47 +0000)]
Use SameValueZero for Map and Set

Instead of normalizing the keys we use SameValueZero for the actual
comparison.

BUG=v8:1622
LOG=Y
R=mstarzinger@chromium.org

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

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

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

10 years agoArray Iterator next should check for own property
adamk@chromium.org [Wed, 21 May 2014 08:05:11 +0000 (08:05 +0000)]
Array Iterator next should check for own property

Since we are using private symbols for the internal slots we need to
check for a local property.

BUG=None
LOG=Y
R=rossberg@chromium.org

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

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

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

10 years agoFix UnboundScript::GetScriptName and GetLineNumber.
marja@chromium.org [Wed, 21 May 2014 07:32:32 +0000 (07:32 +0000)]
Fix UnboundScript::GetScriptName and GetLineNumber.

Probably broken since r19925 (mine).

R=dcarney@chromium.org
BUG=

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

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

10 years agoReland "Fix Heap::IsHeapIterable."
jarin@chromium.org [Wed, 21 May 2014 06:44:38 +0000 (06:44 +0000)]
Reland "Fix Heap::IsHeapIterable."

This relands r21388 (+ handlification of an offending function).

BUG=373283
LOG=N
R=hpayer@chromium.org

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

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

10 years agoDisable ArrayShift hydrogen support
jkummerow@chromium.org [Tue, 20 May 2014 17:12:18 +0000 (17:12 +0000)]
Disable ArrayShift hydrogen support

BUG=chromium:374838
LOG=y
R=mstarzinger@chromium.org

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

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

10 years agoRemove unused thread locals from debugger.
yangguo@chromium.org [Tue, 20 May 2014 15:20:02 +0000 (15:20 +0000)]
Remove unused thread locals from debugger.

R=ulan@chromium.org

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

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

10 years agoMIPS: Avoid flushing the icache unnecessarily when updating target addresses in code.
plind44@gmail.com [Tue, 20 May 2014 14:49:05 +0000 (14:49 +0000)]
MIPS: Avoid flushing the icache unnecessarily when updating target addresses in code.

Port r21380 (ef20a0a)

Original commit message:
This CL updates RelocInfo update operations and set_target_address_at to enable
skipping of the icache flush if it going to be batched up later.
Code::CopyFrom and Code::Relocate are modified to avoid individual icache
flushes since the whole code area will be flushed after the reloc info is
updated.

These changes reduce a regression when enabling the OOL constant pool on Arm,
since this change can cause MovT/MovW instructions for relocatable targets
if the constant pool is full.

Scores for Mandreel latency on a Nexus 5:
- OOL CP disabled: 3533
- OOL CP enabled, without this CL: 1825
- OOL CP enabled, with change: 3015

BUG=
R=plind44@gmail.com

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

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

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

10 years agoES6 Map/Set iterators/forEach improvements
adamk@chromium.org [Tue, 20 May 2014 14:22:05 +0000 (14:22 +0000)]
ES6 Map/Set iterators/forEach improvements

This changes how Map/Set interacts with its iterators. When the
underlying table is rehashed or cleared, we create a new table (like
before) but we add a reference from the old table to the new table. We
also add an array describing how to transition the iterator from the
old table to the new table.

When Next is called on the iterator it checks if there is a newer table
that it should transition to. If there is, it updates the index based
on the previously recorded changes and finally changes itself to point
at the new table.

With these changes Map/Set no longer keeps the iterators alive. Also,
as before, the iterators keep the underlying table(s) alive but not the
actual Map/Set.

BUG=v8:1793
LOG=Y
R=mstarzinger@chromium.org, rossberg@chromium.org

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

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

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

10 years agoRevert "Fix Heap::IsHeapIterable."
jarin@chromium.org [Tue, 20 May 2014 14:03:38 +0000 (14:03 +0000)]
Revert "Fix Heap::IsHeapIterable."

This reverts commit r21387.

TBR=hpayer@chromium.org

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

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

10 years agoFix Heap::IsHeapIterable.
jarin@chromium.org [Tue, 20 May 2014 13:19:21 +0000 (13:19 +0000)]
Fix Heap::IsHeapIterable.

We only consider heap iterable if the new space is empty (in addition to the exisiting old space check).

The change also moves the iterability forcing + allocation prevention gadgets to HeapIterator so that it is impossible to miss them when iterating the heap.

R=hpayer@chromium.org
BUG=373283
LOG=N

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

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

10 years agoRevert "Refactor transitioning stores."
bmeurer@chromium.org [Tue, 20 May 2014 13:03:25 +0000 (13:03 +0000)]
Revert "Refactor transitioning stores."

This reverts commit r21383 for breaking the Mozilla tests.

TBR=hpayer@chromium.org

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

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

10 years agoParser: delay throwing errors.
marja@chromium.org [Tue, 20 May 2014 12:22:04 +0000 (12:22 +0000)]
Parser: delay throwing errors.

This makes Parser a bit more independent of Isolate during the recursive descent
phase. That is necessary for making it possible to run Parser on a non-main
thread in the future.

Proof of concept CL for the the "Parser independent of Isolate" work is here:
https://codereview.chromium.org/231073002/

BUG=
R=rossberg@chromium.org

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

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

10 years agoGet rid of HStoreNamedField::SkipWriteBarrier().
bmeurer@chromium.org [Tue, 20 May 2014 11:25:47 +0000 (11:25 +0000)]
Get rid of HStoreNamedField::SkipWriteBarrier().

The write barrier elimination does the right thing now, so
we can get rid of this hack.

R=mvstanton@chromium.org

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

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

10 years agoRefactor transitioning stores.
bmeurer@chromium.org [Tue, 20 May 2014 11:06:23 +0000 (11:06 +0000)]
Refactor transitioning stores.

There's actually no need to have the transition as part of the HStoreNamedField instruction. In fact, it is cleaner and faster to generate a separate HStoreNamedField for the transition map. This will also help to eliminate map stores with store elimination, as well as reduce register pressure for transitioning stores on ia32.

R=hpayer@chromium.org

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

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

10 years agoReland "v8::TryCatch now works correctly with ASAN's UseAfterReturn mode enabled."
ishell@chromium.org [Tue, 20 May 2014 10:13:46 +0000 (10:13 +0000)]
Reland "v8::TryCatch now works correctly with ASAN's UseAfterReturn mode enabled."

BUG=chromium:369962
LOG=N
R=jkummerow@chromium.org

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

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

10 years agoPrint promotion rate and semi-space copy rate in --trace-gc-nvp.
hpayer@chromium.org [Tue, 20 May 2014 09:53:18 +0000 (09:53 +0000)]
Print promotion rate and semi-space copy rate in --trace-gc-nvp.

BUG=
R=mstarzinger@chromium.org

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

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

10 years agoAvoid flushing the icache unnecessarily when updating target addresses in code.
rmcilroy@chromium.org [Tue, 20 May 2014 09:21:45 +0000 (09:21 +0000)]
Avoid flushing the icache unnecessarily when updating target addresses in code.

This CL updates RelocInfo update operations and set_target_address_at to enable
skipping of the icache flush if it going to be batched up later.
Code::CopyFrom and Code::Relocate are modified to avoid individual icache
flushes since the whole code area will be flushed after the reloc info is
updated.

These changes reduce a regression when enabling the OOL constant pool on Arm,
since this change can cause MovT/MovW instructions for relocatable targets
if the constant pool is full.

Scores for Mandreel latency on a Nexus 5:
 - OOL CP disabled: 3533
 - OOL CP enabled, without this CL: 1825
 - OOL CP enabled, with change: 3015

R=rodolph.perfetta@arm.com, ulan@chromium.org

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

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

10 years agoTighten HAS_PRIVATE to own properties
rossberg@chromium.org [Tue, 20 May 2014 09:13:26 +0000 (09:13 +0000)]
Tighten HAS_PRIVATE to own properties

R=mstarzinger@chromium.org
BUG=

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

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

10 years agoReland "Simplify debugger state."
yangguo@chromium.org [Tue, 20 May 2014 08:52:42 +0000 (08:52 +0000)]
Reland "Simplify debugger state."

R=ulan@chromium.org

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

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