platform/upstream/v8.git
9 years agoImplement the `RegExp.prototype.flags` getter
mathiasb [Wed, 10 Dec 2014 20:41:00 +0000 (12:41 -0800)]
Implement the `RegExp.prototype.flags` getter

TEST=mjsunit/harmony
BUG=v8:3751
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25762}

9 years agoShip ES6 block scoping.
dslomov [Wed, 10 Dec 2014 20:39:21 +0000 (12:39 -0800)]
Ship ES6 block scoping.

R=rossberg@chromium.org
BUG=v8:2198
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#25761}

9 years agoUpdate strict mode function declaration tests before block scoping.
dslomov [Wed, 10 Dec 2014 20:09:32 +0000 (12:09 -0800)]
Update strict mode function declaration tests before block scoping.

R=arv@chromium.org,marja@chromium.org
BUG=v8:2198
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25760}

9 years agoOptimize Object.seal and Object.preventExtensions
adamk [Wed, 10 Dec 2014 20:02:48 +0000 (12:02 -0800)]
Optimize Object.seal and Object.preventExtensions

They both now run fast (due to utilizing transitions instead of always
creating new maps) and sealed or non-extensible objects can stay in
fast mode after transitioning.

This almost entirely reuses the code for transitioning objects
frozen by Object.freeze(), with the added benefit of freeing
up a bit on the map (we no longer keep track of frozen-ness,
as that bit wasn't used for anything interesting).

BUG=v8:3662,chromium:115960
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25759}

9 years agoCreate optimized inline versions of Map and Set initialization
adamk [Wed, 10 Dec 2014 18:47:24 +0000 (10:47 -0800)]
Create optimized inline versions of Map and Set initialization

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

Cr-Commit-Position: refs/heads/master@{#25758}

9 years agoEnsure class prototype objects have the right Map::constructor field
Adam Klein [Wed, 10 Dec 2014 18:25:41 +0000 (10:25 -0800)]
Ensure class prototype objects have the right Map::constructor field

The null constructor they had previously could be observed as crashes in
the V8 API's Object::CreationContext() method and in Object.observe.

BUG=v8:3750
LOG=n
R=arv@chromium.org, dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25757}

9 years agoRevert of Avoid number range holes in bitset types. (patchset #5 id:80001 of https...
jarin [Wed, 10 Dec 2014 18:25:14 +0000 (10:25 -0800)]
Revert of Avoid number range holes in bitset types. (patchset #5 id:80001 of https://codereview.chromium.org/759013003/)

Reason for revert:
For breaking the waterfall (run-json-stringify test).

Original issue's description:
> Avoid number range holes in bitset types.
>
> BUG=

TBR=rossberg@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25756}

9 years agoSkip slow webkit/array-iterate-backwards in arm64.debug/gc-stress mode.
ulan [Wed, 10 Dec 2014 16:57:21 +0000 (08:57 -0800)]
Skip slow webkit/array-iterate-backwards in arm64.debug/gc-stress mode.

BUG=
TBR=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25755}

9 years agoAvoid number range holes in bitset types.
jarin [Wed, 10 Dec 2014 16:39:02 +0000 (08:39 -0800)]
Avoid number range holes in bitset types.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25754}

9 years agoMake d8 default to standard location for external snapshots.
vogelheim [Wed, 10 Dec 2014 16:36:29 +0000 (08:36 -0800)]
Make d8 default to standard location for external snapshots.

This makes tests runnable with the external snapshot, and should be the
last step before enabling external snapshot on >=1 bots.

R=yangguo
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25753}

9 years agoFix mirror-script and debug-script tests when using external natives.
vogelheim [Wed, 10 Dec 2014 16:06:00 +0000 (08:06 -0800)]
Fix mirror-script and debug-script tests when using external natives.

R=yangguo
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25752}

9 years agoMake loop assignment analysis a separate phase.
mstarzinger [Wed, 10 Dec 2014 15:19:53 +0000 (07:19 -0800)]
Make loop assignment analysis a separate phase.

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25751}

9 years agoReland of "TransitionArray now uses <is_data_property, name, attributes> tuple as...
ishell [Wed, 10 Dec 2014 15:18:44 +0000 (07:18 -0800)]
Reland of "TransitionArray now uses <is_data_property, name, attributes> tuple as a key, which allows to have several entries for the same property name."

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

Cr-Commit-Position: refs/heads/master@{#25750}

9 years agoDisallow object/function templates when creating snapshots.
yangguo [Wed, 10 Dec 2014 14:55:51 +0000 (06:55 -0800)]
Disallow object/function templates when creating snapshots.

R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25749}

9 years agoConsistently use "use strict" where possible.
yangguo [Wed, 10 Dec 2014 14:40:54 +0000 (06:40 -0800)]
Consistently use "use strict" where possible.

R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25748}

9 years agoExtract non-IO part of mksnapshot into an API method.
yangguo [Wed, 10 Dec 2014 14:20:12 +0000 (06:20 -0800)]
Extract non-IO part of mksnapshot into an API method.

R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25747}

9 years agoMIPS: Fix after 'Reland remaining parts of 'Use weak cells in map checks in polymorph...
balazs.kilvady [Wed, 10 Dec 2014 13:13:53 +0000 (05:13 -0800)]
MIPS: Fix after 'Reland remaining parts of 'Use weak cells in map checks in polymorphic ICs''.

Fix d2e54925caa8b14988a46a912a8b061bf4c6cbf3

In 'MIPS: Change CmpWeakValue to a more MIPS like GetWeakValue.'
a25003cfa6eac88635c12b51ec6ad74fed0d91a1
we switched to use GetWeakValue.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25746}

9 years agoUse nobarrier load in store buffer duplicate removal to annotate harmless race.
hpayer [Wed, 10 Dec 2014 12:24:28 +0000 (04:24 -0800)]
Use nobarrier load in store buffer duplicate removal to annotate harmless race.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25745}

9 years agofix gcmole warning after r25737
dcarney [Wed, 10 Dec 2014 12:14:12 +0000 (04:14 -0800)]
fix gcmole warning after r25737

TBR=jkummerow@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25744}

9 years ago[turbofan] Fix cycles introduced by pushing ToNumbers into phis.
Benedikt Meurer [Wed, 10 Dec 2014 11:59:29 +0000 (12:59 +0100)]
[turbofan] Fix cycles introduced by pushing ToNumbers into phis.

TEST=cctest
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25743}

9 years ago[turbofan] update register allocator with auto, nullptr and ZoneVector
dcarney [Wed, 10 Dec 2014 11:48:28 +0000 (03:48 -0800)]
[turbofan] update register allocator with auto, nullptr and ZoneVector

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25742}

9 years agoReland "Use same blob format for internal and external snapshots."
yangguo [Wed, 10 Dec 2014 11:46:27 +0000 (03:46 -0800)]
Reland "Use same blob format for internal and external snapshots."

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

Cr-Commit-Position: refs/heads/master@{#25741}

9 years agoReland "[turbofan] Fix control reducer bug with NTLs."
titzer [Wed, 10 Dec 2014 11:45:20 +0000 (03:45 -0800)]
Reland "[turbofan] Fix control reducer bug with NTLs."

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25740}

9 years agoReland remaining parts of 'Use weak cells in map checks in polymorphic ICs'
ulan [Wed, 10 Dec 2014 10:57:30 +0000 (02:57 -0800)]
Reland remaining parts of 'Use weak cells in map checks in polymorphic ICs'

BUG=v8:3663
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25739}

9 years agoReland 'Do not embed constant functions in StoreTransition stub.'
ulan [Wed, 10 Dec 2014 10:28:41 +0000 (02:28 -0800)]
Reland 'Do not embed constant functions in StoreTransition stub.'

BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25738}

9 years agoExecutableAccessorInfo::clear_setter should set a null foreign pointer
dcarney [Wed, 10 Dec 2014 10:18:00 +0000 (02:18 -0800)]
ExecutableAccessorInfo::clear_setter should set a null foreign pointer

R=jkummerow@chromium.org
BUG=433458
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25737}

9 years ago[turbofan] delay inserting spill slots for parent ranges.
dcarney [Wed, 10 Dec 2014 09:45:49 +0000 (01:45 -0800)]
[turbofan] delay inserting spill slots for parent ranges.

R=jarin@chromium.org,

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25736}

9 years agoAdd Array.prototype.includes
d [Wed, 10 Dec 2014 08:58:04 +0000 (00:58 -0800)]
Add Array.prototype.includes

Requires adding a SameValueZero implementation.

LOG=Y
BUG=v8:3575
R=dslomov@chromium.org, arv@chromium.org
TEST=added to test262

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

Cr-Commit-Position: refs/heads/master@{#25735}

9 years agoRename shadowing `pos` variable in ParseTemplateLiteral()
caitpotter88 [Wed, 10 Dec 2014 08:56:56 +0000 (00:56 -0800)]
Rename shadowing `pos` variable in ParseTemplateLiteral()

LOG=N
R=dslomov@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25734}

9 years agoPass --noharmony-scoping to tests validating that we throw on 'const' in strict mode.
dslomov [Wed, 10 Dec 2014 08:55:45 +0000 (00:55 -0800)]
Pass --noharmony-scoping to tests validating that we throw on 'const' in strict mode.

R=marja@chromium.org
BUG=v8:2198
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25733}

9 years agoFix messages tests.
dslomov [Wed, 10 Dec 2014 08:54:36 +0000 (00:54 -0800)]
Fix messages tests.

Change tests so that message location is stable under --debug-code.

R=yangguo@chromium.org
BUG=v8:3744
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25732}

9 years ago[x64] Fix optimization for certain checked load/stores.
Benedikt Meurer [Wed, 10 Dec 2014 07:48:57 +0000 (08:48 +0100)]
[x64] Fix optimization for certain checked load/stores.

BUG=chromium:439743
LOG=y
TEST=mjsunit
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25731}

9 years agoRevert "[turbofan] Fix control reducer bug with NTLs."
Ben L. Titzer [Tue, 9 Dec 2014 16:28:07 +0000 (17:28 +0100)]
Revert "[turbofan] Fix control reducer bug with NTLs."

This reverts commit aeda76c5cfa9181fff5ed7140e726f96ec883cc3.

Reason: exposed other TurboFan bugs.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25730}

9 years agoRevert of Use same blob format for internal and external snapshots. (patchset #2...
machenbach [Tue, 9 Dec 2014 16:19:40 +0000 (08:19 -0800)]
Revert of Use same blob format for internal and external snapshots. (patchset #2 id:20001 of https://codereview.chromium.org/787033002/)

Reason for revert:
[sheriff] breaks http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/1293

Original issue's description:
> Use same blob format for internal and external snapshots.
>
> R=vogelheim@chromium.org

TBR=vogelheim@chromium.org,yangguo@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25729}

9 years agoRevert of Do not embed constant functions in StoreTransition stub. (patchset #3 id...
yangguo [Tue, 9 Dec 2014 16:09:39 +0000 (08:09 -0800)]
Revert of Do not embed constant functions in StoreTransition stub. (patchset #3 id:40001 of https://codereview.chromium.org/769733003/)

Reason for revert:
GC stress failure: http://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress%20-%201/builds/1038

Original issue's description:
> Do not embed constant functions in StoreTransition stub.
>
> BUG=v8:3629
> LOG=N

TBR=ishell@google.com,ishell@chromium.org,ulan@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3629

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

Cr-Commit-Position: refs/heads/master@{#25728}

9 years agoUse same blob format for internal and external snapshots.
yangguo [Tue, 9 Dec 2014 15:12:13 +0000 (07:12 -0800)]
Use same blob format for internal and external snapshots.

R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25727}

9 years agoDo not embed constant functions in StoreTransition stub.
ulan [Tue, 9 Dec 2014 15:11:04 +0000 (07:11 -0800)]
Do not embed constant functions in StoreTransition stub.

BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25726}

9 years ago[turbofan] Fix control reducer bug with NTLs.
titzer [Tue, 9 Dec 2014 15:09:52 +0000 (07:09 -0800)]
[turbofan] Fix control reducer bug with NTLs.

R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25725}

9 years agoFix a typo error.
chunyang.dai [Tue, 9 Dec 2014 15:08:45 +0000 (07:08 -0800)]
Fix a typo error.

This error is introduced by baafb8f92e29bf6da68e56251863707b683c67af.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25724}

9 years agoMake it possible to turn on OBJECT_PRINT without DEBUG
jochen [Tue, 9 Dec 2014 14:20:01 +0000 (06:20 -0800)]
Make it possible to turn on OBJECT_PRINT without DEBUG

BUG=none
R=machenbach@chromium.org
LOG=n
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#25723}

9 years ago[x86] Disable invalid checked load/store optimization.
Benedikt Meurer [Tue, 9 Dec 2014 14:16:16 +0000 (15:16 +0100)]
[x86] Disable invalid checked load/store optimization.

TEST=mjsunit/compiler/regress-lena
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25722}

9 years agoReally enable DEBUG code on android unless full debug is specified
jochen [Tue, 9 Dec 2014 11:32:29 +0000 (03:32 -0800)]
Really enable DEBUG code on android unless full debug is specified

R=machenbach@chromium.rg
LOG=n
BUG=none
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25721}

9 years agoAlso ignore NDEBUG for chromium code
jochen [Tue, 9 Dec 2014 10:57:16 +0000 (02:57 -0800)]
Also ignore NDEBUG for chromium code

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

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

Cr-Commit-Position: refs/heads/master@{#25720}

9 years agoTemporarily restore make dependencies
jochen [Tue, 9 Dec 2014 10:55:39 +0000 (02:55 -0800)]
Temporarily restore make dependencies

We will remove dependencies in about a week again.

BUG=none
R=machenbach@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25719}

9 years ago[turbofan] Turn JSToBoolean and JSUnaryNot into pure operators.
bmeurer [Tue, 9 Dec 2014 07:35:05 +0000 (23:35 -0800)]
[turbofan] Turn JSToBoolean and JSUnaryNot into pure operators.

Also fix the pushing of JSToBoolean into Phis and generalize it to
also include pushing into Selects.

TEST=cctest,unittests

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

Cr-Commit-Position: refs/heads/master@{#25718}

9 years agoMake --no-turbo-types work on all paths through the pipeline.
mstarzinger [Tue, 9 Dec 2014 04:47:49 +0000 (20:47 -0800)]
Make --no-turbo-types work on all paths through the pipeline.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25717}

9 years agoIgnore tests that fail on nosnap apparently for infa reasons.
Dmitry Lomov [Mon, 8 Dec 2014 18:41:04 +0000 (19:41 +0100)]
Ignore tests that fail on nosnap apparently for infa reasons.

TBR=arv@chromium.org
BUG=v8:3744
LOG=N
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25716}

9 years agoOptimize add/set/delete operations for string keys in Maps and Sets
adamk [Mon, 8 Dec 2014 18:03:28 +0000 (10:03 -0800)]
Optimize add/set/delete operations for string keys in Maps and Sets

This was previously landed in commit 8599f5f, but failed the
collections mjsunit test on ia32 with --deopt-every-n=1. The fixed
patch adds a ClearFlag(HValue::kCanOverflow) call after every
arithmetic operation, which should remove all the deopt points in these
intrinsics.

Ideally, it seems like there should be a way to verify that there are
no deopt points for these inline optimized functions, since there's
nothing to deopt to. But I don't currently know of such a thing.

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

Cr-Commit-Position: refs/heads/master@{#25715}

9 years agoBetter message location for 'super(...)' restriction error.
dslomov [Mon, 8 Dec 2014 15:54:55 +0000 (07:54 -0800)]
Better message location for 'super(...)' restriction error.

R=arv@chromium.org
BUG=v8:3330
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25714}

9 years agoupdate test case for "Disable neutering on embedded arraybuffers"
chunyang.dai [Mon, 8 Dec 2014 15:14:48 +0000 (07:14 -0800)]
update test case for "Disable neutering on embedded arraybuffers"

  This test case ( added by git: 4c7effe56e8dbe8e2df51bab967c8e1d251f3a66 ).
  should has different implementation for Turbofan and crankshaft.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25713}

9 years agoDo not reflect uninitialized 'let' and 'const' in scope mirrors.
dslomov [Mon, 8 Dec 2014 14:59:10 +0000 (06:59 -0800)]
Do not reflect uninitialized 'let' and 'const' in scope mirrors.

R=yangguo@chromium.org,aandrey@chromium.org
BUG=v8:3743
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25712}

9 years agoFix ARM64 build
Jochen Eisinger [Mon, 8 Dec 2014 13:04:02 +0000 (14:04 +0100)]
Fix ARM64 build

The android toolchain for L now has a proper version (21)

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

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

Cr-Commit-Position: refs/heads/master@{#25711}

9 years agoUpdate all DEPS to match chromium's DEPS at edb488e
jochen [Mon, 8 Dec 2014 12:27:21 +0000 (04:27 -0800)]
Update all DEPS to match chromium's DEPS at edb488e

Also remove the now disfunctinal 'builddeps' and 'dependencies' targets

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

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

Cr-Commit-Position: refs/heads/master@{#25710}

9 years agoSilence --trace-turbo a bit and behave graceful in sandbox.
mstarzinger [Mon, 8 Dec 2014 12:26:14 +0000 (04:26 -0800)]
Silence --trace-turbo a bit and behave graceful in sandbox.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25709}

9 years agoHandle invalid parser cache gracefully (move invalid cache handling to embedder).
marja [Mon, 8 Dec 2014 11:47:44 +0000 (03:47 -0800)]
Handle invalid parser cache gracefully (move invalid cache handling to embedder).

Blink already has code for handling invalid cached data. The attached test
ensures that cached data is gracefully rejected if it cannot be used.

This also unifies parser cache and code cache handling.

R=yangguo@chromium.org
BUG=439889
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25708}

9 years ago[turbofan] Remove obsolete pure flag.
Benedikt Meurer [Mon, 8 Dec 2014 11:25:35 +0000 (12:25 +0100)]
[turbofan] Remove obsolete pure flag.

Use the Operator::kPure flag instead, which determines whether the JS
operator has effect/control edges.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25707}

9 years agoTemporarily skip test-mark-compact/MarkCompactCollector.
ulan [Mon, 8 Dec 2014 11:05:48 +0000 (03:05 -0800)]
Temporarily skip test-mark-compact/MarkCompactCollector.

BUG=v8:3742
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25706}

9 years agoFix typo in r25689 (Refactor Map::ConstructionCount.)
ulan [Mon, 8 Dec 2014 10:46:12 +0000 (02:46 -0800)]
Fix typo in r25689 (Refactor Map::ConstructionCount.)

BUG=chromium:439868
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25705}

9 years ago[turbofan] reuse spill slots for phis
dcarney [Mon, 8 Dec 2014 10:45:03 +0000 (02:45 -0800)]
[turbofan] reuse spill slots for phis

R=jarin@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25704}

9 years agoClear cached line ends array when serializing script object.
yangguo [Mon, 8 Dec 2014 10:23:03 +0000 (02:23 -0800)]
Clear cached line ends array when serializing script object.

R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25703}

9 years agoFix compilation with verify heap on in release mode
Jochen Eisinger [Mon, 8 Dec 2014 09:52:44 +0000 (10:52 +0100)]
Fix compilation with verify heap on in release mode

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

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

Cr-Commit-Position: refs/heads/master@{#25702}

9 years agoTurn on DCHECKs and other debugging code if dcheck_always_on is 1
jochen [Mon, 8 Dec 2014 09:26:04 +0000 (01:26 -0800)]
Turn on DCHECKs and other debugging code if dcheck_always_on is 1

When compiling with the macro DCHECK_ALWAYS_ON defined, DCHECKs and
supporting code gets compiled and enabled.

This increases test coverage for chromium release buildbots

BUG=v8:3731
R=jkummerow@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25701}

9 years agoCorrect clean up in android perf runner.
machenbach [Mon, 8 Dec 2014 09:10:38 +0000 (01:10 -0800)]
Correct clean up in android perf runner.

BUG=chromium:374740
LOG=n
TEST=python -m unittest run_perf_test
NOTRY=true
TBR=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25700}

9 years agoMake cpplint happy.
Benedikt Meurer [Mon, 8 Dec 2014 08:53:07 +0000 (09:53 +0100)]
Make cpplint happy.

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25699}

9 years ago[turbofan] Improve typing of JSToNumber.
Benedikt Meurer [Mon, 8 Dec 2014 08:28:10 +0000 (09:28 +0100)]
[turbofan] Improve typing of JSToNumber.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25698}

9 years agoAdd myself to OWNERS
adamk [Mon, 8 Dec 2014 05:46:34 +0000 (21:46 -0800)]
Add myself to OWNERS

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

Cr-Commit-Position: refs/heads/master@{#25697}

9 years agoRevert of Optimize add/set/delete operations for string keys in Maps and Sets (patchs...
adamk [Fri, 5 Dec 2014 22:25:00 +0000 (14:25 -0800)]
Revert of Optimize add/set/delete operations for string keys in Maps and Sets (patchset #1 id:1 of https://codereview.chromium.org/777663003/)

Reason for revert:
Deopt fuzzer reports that something's still broken, reverting until
I can create a minimal repro.

Original issue's description:
> Optimize add/set/delete operations for string keys in Maps and Sets
>
> This was previously landed in commit 66e2f60, but failed the
> collections mjsunit test with --deopt-every-n=1 due to a typo
> in the shrinking code. This patch corrects and simplifies the
> shrinking logic, and the tests now pass.
>
> R=dslomov@chromium.org
>
> Committed: https://chromium.googlesource.com/v8/v8/+/8599f5f047b4400f7f61de9e449b2246c9aad471

TBR=dslomov@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25696}

9 years agoOptimize add/set/delete operations for string keys in Maps and Sets
Adam Klein [Fri, 5 Dec 2014 21:03:50 +0000 (13:03 -0800)]
Optimize add/set/delete operations for string keys in Maps and Sets

This was previously landed in commit 66e2f60, but failed the
collections mjsunit test with --deopt-every-n=1 due to a typo
in the shrinking code. This patch corrects and simplifies the
shrinking logic, and the tests now pass.

R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25695}

9 years agoOptimize GetPrototype
arv [Fri, 5 Dec 2014 20:36:39 +0000 (12:36 -0800)]
Optimize GetPrototype

This introduces Hydrogen for %_GetPrototype. The code falls back on
runtime if the object needs access checks or if its prototype is a
hidden prototype.

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

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

Cr-Commit-Position: refs/heads/master@{#25694}

9 years agoMIPS64: Fix port of Refactor Map::ConstructionCount.
paul.lind [Fri, 5 Dec 2014 19:30:47 +0000 (11:30 -0800)]
MIPS64: Fix port of Refactor Map::ConstructionCount.

Port 35ff259b6344eed116936372f6861181c6afe922.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25693}

9 years agoMIPS: Refactor Map::ConstructionCount.
balazs.kilvady [Fri, 5 Dec 2014 17:49:29 +0000 (09:49 -0800)]
MIPS: Refactor Map::ConstructionCount.

Port 35ff259b6344eed116936372f6861181c6afe922

Original commit message:
This combines Map::DoneInobjectSlackTracking and Map::ConstructionCount into one more generic 4-bit counter.

Counter values from 15 down to 8 are used for in-object slack tracking, values from 7 down to 0 are free to be used for a new counter when in-object slack tracking is inactive

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25692}

9 years agoGN: Enable embedder to decide whether or not the external V8 snapshot is enabled.
baixo [Fri, 5 Dec 2014 17:22:40 +0000 (09:22 -0800)]
GN: Enable embedder to decide whether or not the external V8 snapshot is enabled.

BUG=421063

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

Cr-Commit-Position: refs/heads/master@{#25691}

9 years agoMake sure that individual shipping features can be disabled.
dslomov [Fri, 5 Dec 2014 15:35:32 +0000 (07:35 -0800)]
Make sure that individual shipping features can be disabled.

R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25690}

9 years agoRefactor Map::ConstructionCount.
ulan [Fri, 5 Dec 2014 15:28:09 +0000 (07:28 -0800)]
Refactor Map::ConstructionCount.

This combines Map::DoneInobjectSlackTracking and Map::ConstructionCount into one more generic 4-bit counter.

Counter values from 15 down to 8 are used for in-object slack tracking, values from 7 down to 0 are free to be used for a new counter when in-object slack tracking is inactive.

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

Cr-Commit-Position: refs/heads/master@{#25689}

9 years agonew api for adding indexed interceptors
dcarney [Fri, 5 Dec 2014 15:21:21 +0000 (07:21 -0800)]
new api for adding indexed interceptors

R=svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25688}

9 years agoFix %GetWeakSetValues to work correctly with GC.
ulan [Fri, 5 Dec 2014 13:26:55 +0000 (05:26 -0800)]
Fix %GetWeakSetValues to work correctly with GC.

This fixes mjsunit/es6/mirror-collections failure in arm64 gc-stress bot.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25687}

9 years agoAllow eval in detached contexts
verwaest [Fri, 5 Dec 2014 13:24:58 +0000 (05:24 -0800)]
Allow eval in detached contexts

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25686}

9 years ago[turbofan] disable neutering on embedded arraybuffers
dcarney [Fri, 5 Dec 2014 13:07:51 +0000 (05:07 -0800)]
[turbofan] disable neutering on embedded arraybuffers

R=titzer@chromium.org,

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25685}

9 years agoFix the order of context binding/simulate insertion for BlockContexts.
dslomov [Fri, 5 Dec 2014 13:06:45 +0000 (05:06 -0800)]
Fix the order of context binding/simulate insertion for BlockContexts.

R=jarin@chromium.org
BUG=v8:3741
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25684}

9 years ago[turbofan] Fix Corrections tankage on x64.
danno [Fri, 5 Dec 2014 13:05:38 +0000 (05:05 -0800)]
[turbofan] Fix Corrections tankage on x64.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25683}

9 years agoSwitch two ZoneLists to ZoneVector in register allocator.
mstarzinger [Fri, 5 Dec 2014 13:04:29 +0000 (05:04 -0800)]
Switch two ZoneLists to ZoneVector in register allocator.

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25682}

9 years agoReland "Encode reservation meta data in the snapshot blob."
yangguo [Fri, 5 Dec 2014 13:03:10 +0000 (05:03 -0800)]
Reland "Encode reservation meta data in the snapshot blob."

CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_dbg,v8_linux_nosnap_rel

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

Cr-Commit-Position: refs/heads/master@{#25681}

9 years agoCleanup deoptimizer relocation slot preparation.
mstarzinger [Fri, 5 Dec 2014 13:01:58 +0000 (05:01 -0800)]
Cleanup deoptimizer relocation slot preparation.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25680}

9 years agoWhen generating code for ia32, make sure that there is enough reloc space
jochen [Fri, 5 Dec 2014 11:15:20 +0000 (03:15 -0800)]
When generating code for ia32, make sure that there is enough reloc space

Compare with LCodeGen::FinishCode

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

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

Cr-Commit-Position: refs/heads/master@{#25679}

9 years agoFinally drop outdated misleading runtime.js comment.
mstarzinger [Fri, 5 Dec 2014 11:01:29 +0000 (03:01 -0800)]
Finally drop outdated misleading runtime.js comment.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25678}

9 years ago[turbofan] Use "leal" in even more situations
danno [Fri, 5 Dec 2014 10:54:27 +0000 (02:54 -0800)]
[turbofan] Use "leal" in even more situations

Achieve more than parity with modes currently handled on ia32 in preparation for
porting the entire mechanism to ia32, including supporting mul of constants 3,
5 and 9 with "leal" instructions.

TEST=unittests

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

Cr-Commit-Position: refs/heads/master@{#25677}

9 years ago[x86] Slow case of TruncateDoubleToI shouldn't be inline.
Benedikt Meurer [Fri, 5 Dec 2014 09:29:27 +0000 (10:29 +0100)]
[x86] Slow case of TruncateDoubleToI shouldn't be inline.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25676}

9 years agoTeach the test runner whether it's running on a trybot or not
jochen [Fri, 5 Dec 2014 09:09:13 +0000 (01:09 -0800)]
Teach the test runner whether it's running on a trybot or not

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

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

Cr-Commit-Position: refs/heads/master@{#25675}

9 years agoUse merged JSTest config for performance tests.
machenbach [Fri, 5 Dec 2014 08:43:12 +0000 (00:43 -0800)]
Use merged JSTest config for performance tests.

The new config is now used for perf measurements. The old
ones are deleted to avoid redundancy.

This also ports https://codereview.chromium.org/754523004 to the new config file.

BUG=chromium:374740
LOG=n
TBR=ulan@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25674}

9 years ago[turbofan] Redundant load elimination.
Benedikt Meurer [Fri, 5 Dec 2014 07:59:04 +0000 (08:59 +0100)]
[turbofan] Redundant load elimination.

This is an initial version of redundant load elimination, currently
limited to LoadField operators, and implemented by walking the effect
chain.

TEST=unittests
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25673}

9 years agoUpdate V8 DEPS.
v8-autoroll [Fri, 5 Dec 2014 04:27:41 +0000 (20:27 -0800)]
Update V8 DEPS.

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25672}

9 years agoMIPS: Fixed environment handling for LFlooringDivI.
paul.lind [Thu, 4 Dec 2014 23:50:26 +0000 (15:50 -0800)]
MIPS: Fixed environment handling for LFlooringDivI.

Port c16b8f6cbbe295abf3fab2f6b9f4a4632db4cf6b

TEST=mjsunit/regress/regress-437765
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25671}

9 years agoRevert of Optimize add/set/delete operations for string keys in Maps and Sets (patchs...
adamk [Thu, 4 Dec 2014 21:37:10 +0000 (13:37 -0800)]
Revert of Optimize add/set/delete operations for string keys in Maps and Sets (patchset #5 id:70001 of https://codereview.chromium.org/773993002/)

Reason for revert:
Caused test failures in mjsunit/es6/collections with --deopt-every-n-times=1

Original issue's description:
> Optimize add/set/delete operations for string keys in Maps and Sets

TBR=dslomov@chromium.org,arv@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25670}

9 years agoAdd js-perf-test for ES6 class default constructor
arv [Thu, 4 Dec 2014 20:12:03 +0000 (12:12 -0800)]
Add js-perf-test for ES6 class default constructor

BUG=v8:3330
LOG=N
TBR=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25669}

9 years agoOptimize add/set/delete operations for string keys in Maps and Sets
adamk [Thu, 4 Dec 2014 20:07:41 +0000 (12:07 -0800)]
Optimize add/set/delete operations for string keys in Maps and Sets

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

Cr-Commit-Position: refs/heads/master@{#25668}

9 years agoMake template scan related function take a template<bool> parameter
arv [Thu, 4 Dec 2014 19:24:18 +0000 (11:24 -0800)]
Make template scan related function take a template<bool> parameter

This is for performance. Having to do the test in every Advance was too
expensive.

BUG=438991, v8:3230
LOG=N
R=dslomov@chromium.org, marja

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

Cr-Commit-Position: refs/heads/master@{#25667}

9 years agoCleanup: Remove NativesCollection<.>::*Raw* methods.
vogelheim [Thu, 4 Dec 2014 18:51:15 +0000 (10:51 -0800)]
Cleanup: Remove NativesCollection<.>::*Raw* methods.

These methods for used for compressed libraries, where GetSource* functions
contained the compressed sources and [GS]etRawSource* the uncompressed
sources. This is dead code since the API no longer supports compression.

(If you need/want compressed sources, use the external startup data and
 compress/uncompress on the Embedder's side.)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25666}

9 years agoOptimize testing for an index's existence in packed Arrays
adamk [Thu, 4 Dec 2014 18:46:33 +0000 (10:46 -0800)]
Optimize testing for an index's existence in packed Arrays

This patch introduces a new inline runtime function,
%_HasFastPackedElements(), and uses it both in the implementation
of the 'in' operator and in the array builtins to speed
up testing for the existence of an index in an array.

In testing with the microbenchmark on the attached bug,
for example, the runtime goes from 326ms to 66ms.

A reviewer might ask whether the HAS_INDEX macro is worthwhile,
and I tried the same example without it, which pushed the
microbenchmark up to 157ms. So it seems it's worth it to
avoid the function call to IN() if we know we're dealing
with arrays and numbers.

BUG=v8:3701
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25665}

9 years agoMIPS; Improve checked load/store operators for constant offset and length.
Dusan Milosavljevic [Thu, 4 Dec 2014 17:27:26 +0000 (18:27 +0100)]
MIPS; Improve checked load/store operators for constant offset and length.

TEST=
BUG=
R=balazs.kilvady@imgtec.com, paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25664}

9 years agoExplicitly track whether incremental marking was activated
jochen [Thu, 4 Dec 2014 16:44:20 +0000 (08:44 -0800)]
Explicitly track whether incremental marking was activated

In the gc-tracer, we check whether we're marking to figure out which
part of the mark compact we're in. If we aborted incremental marking for
whatever reason, the check fails and we might later run into trouble

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

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

Cr-Commit-Position: refs/heads/master@{#25663}