platform/upstream/v8.git
9 years agoMap::TryUpdate() must be in sync with Map::Update().
ishell [Fri, 12 Jun 2015 12:36:36 +0000 (05:36 -0700)]
Map::TryUpdate() must be in sync with Map::Update().

This CL fixes elements kind transitions handling in Map::TryUpdate().

BUG=v8:4121
LOG=Y

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

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

9 years agoAdd script context with context-allocated "const this"
wingo [Fri, 12 Jun 2015 12:34:10 +0000 (05:34 -0700)]
Add script context with context-allocated "const this"

This is a reapplication of https://codereview.chromium.org/1173333004.

R=rossberg@chromium.org
LOG=N
BUG=498811

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

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

9 years ago[turbofan] Use appropriate type for NodeId.
bmeurer [Fri, 12 Jun 2015 12:03:03 +0000 (05:03 -0700)]
[turbofan] Use appropriate type for NodeId.

Up until now we used int32_t for NodeId, but that was not ideal because
negative values are invalid for NodeId and we use it as an array index
for example in the NodeMarker class, where C++ compilers on x64 have to
generate code that does proper sign extension for the indices, which is
completely unnecessary.

R=svenpanne@chromium.org

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

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

9 years agoRevert of Add script context with context-allocated "const this" (patchset #2 id...
wingo [Fri, 12 Jun 2015 11:53:03 +0000 (04:53 -0700)]
Revert of Add script context with context-allocated "const this" (patchset #2 id:20001 of https://codereview.chromium.org/1173333004/)

Reason for revert:
nosnap failure

Original issue's description:
> Add script context with context-allocated "const this"
>
> This is a reapplication of https://codereview.chromium.org/1179893002/.
>
> R=rossberg@chromium.org,mstarzinger@chromium.org
> LOG=N
> BUG=498811
>
> Committed: https://crrev.com/cfc764f4050edc74aef92daa4c39ccc113893968
> Cr-Commit-Position: refs/heads/master@{#28994}

TBR=mstarzinger@chromium.org,rossberg@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=498811

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

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

9 years agoMIPS64: Fix memory allocation when code range is used for LO space only.
dusan.milosavljevic [Fri, 12 Jun 2015 11:42:06 +0000 (04:42 -0700)]
MIPS64: Fix memory allocation when code range is used for LO space only.

Allocation must respect requested reserve size, not requested commit area size.

Additionally fix check failures in debug mode for mips64.
After CL: https://codereview.chromium.org/1147503002/
memory for large code objects is allocated from code range,
memory for regular code objects is allocated normally.

TEST=cctest/test-spaces/MemoryChunk
BUG=

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

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

9 years agoAdd script context with context-allocated "const this"
wingo [Fri, 12 Jun 2015 11:11:13 +0000 (04:11 -0700)]
Add script context with context-allocated "const this"

This is a reapplication of https://codereview.chromium.org/1179893002/.

R=rossberg@chromium.org,mstarzinger@chromium.org
LOG=N
BUG=498811

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

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

9 years ago[turbofan] Move RawMachineAssembler to unittests.
bmeurer [Fri, 12 Jun 2015 10:33:13 +0000 (03:33 -0700)]
[turbofan] Move RawMachineAssembler to unittests.

R=mstarzinger@chromium.org

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

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

9 years agoRevert of Add script context with context-allocated "const this" (patchset #7 id...
machenbach [Fri, 12 Jun 2015 10:07:22 +0000 (03:07 -0700)]
Revert of Add script context with context-allocated "const this" (patchset #7 id:120001 of https://codereview.chromium.org/1179893002/)

Reason for revert:
[Sheriff] Breaks gc mole:
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gcmole/builds/2435

Original issue's description:
> Add script context with context-allocated "const this"
>
> R=rossberg@chromium.org
> LOG=N
> BUG=498811
>
> Committed: https://crrev.com/fa32d461c16a053cc6d48d3fb326016bc2765765
> Cr-Commit-Position: refs/heads/master@{#28988}

TBR=rossberg@chromium.org,mstarzinger@chromium.org,wingo@igalia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=498811

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

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

9 years agoRevert of MIPS64: Enable shorten-64-to-32 warning. (patchset #12 id:240001 of https...
yangguo [Fri, 12 Jun 2015 09:58:23 +0000 (02:58 -0700)]
Revert of MIPS64: Enable shorten-64-to-32 warning. (patchset #12 id:240001 of https://codereview.chromium.org/1133163005/)

Reason for revert:
Compile failure: https://chromegw.corp.google.com/i/client.v8/builders/V8%20Mac64%20-%20debug/builds/3070/steps/compile/logs/stdio

Original issue's description:
> MIPS64: Enable shorten-64-to-32 warning.
>
> Port cdc43bc5fd02fff2905e2e28a79054d0d1eee3ea
>
> Original commit message:
> Enable clang's shorten-64-to-32 warning flag on ARM64, and fix the warnings
> that arise.
>
> BUG=
>
> Committed: https://crrev.com/9af578a7c83b58a0ce25345998d9287cbf2030cb
> Cr-Commit-Position: refs/heads/master@{#28990}

TBR=danno@chromium.org,martyn.capewell@arm.com,paul.lind@imgtec.com,akos.palfi@imgtec.com,dusan.milosavljevic@imgtec.com,jkummerow@chromium.org,machenbach@chromium.org,svenpanne@chromium.org,balazs.kilvady@imgtec.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

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

9 years agoMIPS64: Enable shorten-64-to-32 warning.
balazs.kilvady [Fri, 12 Jun 2015 09:39:54 +0000 (02:39 -0700)]
MIPS64: Enable shorten-64-to-32 warning.

Port cdc43bc5fd02fff2905e2e28a79054d0d1eee3ea

Original commit message:
Enable clang's shorten-64-to-32 warning flag on ARM64, and fix the warnings
that arise.

BUG=

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

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

9 years agoExternal snapshot: allow empty snapshot for external snapshot.
yangguo [Fri, 12 Jun 2015 09:36:58 +0000 (02:36 -0700)]
External snapshot: allow empty snapshot for external snapshot.

R=vogelheim@chromium.org

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

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

9 years agoAdd script context with context-allocated "const this"
wingo [Fri, 12 Jun 2015 09:35:50 +0000 (02:35 -0700)]
Add script context with context-allocated "const this"

R=rossberg@chromium.org
LOG=N
BUG=498811

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

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

9 years agoReland "Keep track of array buffers in new space separately"
jochen [Fri, 12 Jun 2015 09:34:38 +0000 (02:34 -0700)]
Reland "Keep track of array buffers in new space separately"

Original review https://codereview.chromium.org/1133773002/

BUG=v8:3996
TBR=hpayer@chromium.org
LOG=n

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

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

9 years agoWhitespace change to test infra clean-ups.
Michael Achenbach [Fri, 12 Jun 2015 09:25:38 +0000 (11:25 +0200)]
Whitespace change to test infra clean-ups.

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

9 years agoUpdate PrintStack signature in gdbinit
jochen [Fri, 12 Jun 2015 08:35:41 +0000 (01:35 -0700)]
Update PrintStack signature in gdbinit

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

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

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

9 years agoAdd support for walking stack frames from hydrogen stubs
jochen [Fri, 12 Jun 2015 08:27:51 +0000 (01:27 -0700)]
Add support for walking stack frames from hydrogen stubs

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

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

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

9 years ago[turbofan] Inline hot functions for NodeMarkerBase.
Benedikt Meurer [Fri, 12 Jun 2015 08:04:58 +0000 (10:04 +0200)]
[turbofan] Inline hot functions for NodeMarkerBase.

R=jarin@chromium.org

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

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

9 years agoWhitespace change to test infra clean-ups.
Michael Achenbach [Fri, 12 Jun 2015 07:20:06 +0000 (09:20 +0200)]
Whitespace change to test infra clean-ups.

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

9 years agoRevert of [es6] Bound function names (patchset #1 id:1 of https://codereview.chromium...
machenbach [Fri, 12 Jun 2015 06:49:33 +0000 (23:49 -0700)]
Revert of [es6] Bound function names (patchset #1 id:1 of https://codereview.chromium.org/1182513002/)

Reason for revert:
[Sheriff] Speculative revert for changing layout tests:
https://storage.googleapis.com/chromium-layout-test-archives/V8-Blink_Linux_32/379/layout-test-results/results.html

Exact blame assignment is not possible as our blink bots were in a bad state for a few builds.

Original issue's description:
> [es6] Bound function names
>
> https://people.mozilla.org/~jorendorff/es6-draft.html#sec-function.prototype.bind
>
> Bound functions should have a name based on the function that was
> bound.
>
> BUG=N
> LOG=N
> R=adamk   CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
>
> Committed: https://crrev.com/4e2a673881c55a13124dd62f2d05c8d9fe233cd3
> Cr-Commit-Position: refs/heads/master@{#28968}

TBR=adamk@chromium.org,arv@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=N

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

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

9 years ago[turbofan] Use RootIndexMap to speed up IsMaterializableFromRoot predicate.
bmeurer [Fri, 12 Jun 2015 06:30:56 +0000 (23:30 -0700)]
[turbofan] Use RootIndexMap to speed up IsMaterializableFromRoot predicate.

R=jarin@chromium.org

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

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

9 years agoRevert of Keep track of array buffers in new space separately (patchset #4 id:60001...
bmeurer [Fri, 12 Jun 2015 06:29:04 +0000 (23:29 -0700)]
Revert of Keep track of array buffers in new space separately (patchset #4 id:60001 of https://codereview.chromium.org/1133773002/)

Reason for revert:
GC stress unhappy

Original issue's description:
> Keep track of array buffers in new space separately
>
> BUG=v8:3996
> R=hpayer@chromium.org
> LOG=n
>
> Committed: https://crrev.com/506397d0a4241c19f5fab890e49e22d1d9b28bdc
> Cr-Commit-Position: refs/heads/master@{#28978}

TBR=hpayer@chromium.org,jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3996

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

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

9 years agoKeep track of array buffers in new space separately
jochen [Fri, 12 Jun 2015 05:35:24 +0000 (22:35 -0700)]
Keep track of array buffers in new space separately

BUG=v8:3996
R=hpayer@chromium.org
LOG=n

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

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

9 years agoReland [arm64][turbofan]: Handle any immediate shift.
jacob.bramley [Fri, 12 Jun 2015 05:03:01 +0000 (22:03 -0700)]
Reland [arm64][turbofan]: Handle any immediate shift.

With this patch, we can generate simple immediate-shift instructions for
immediates outside the range "0 <= imm < width". Several related
instruction selectors have also been updated accordingly.

Example of generated code:

    ---- Before ---         ---- After ----
    movz w0, #33            lsr w0, w1, #1
    lsr  w0, w1, w0

BUG=

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

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

9 years ago[turbofan] Prefer add/shift over madd on ARM64
martyn.capewell [Fri, 12 Jun 2015 05:00:59 +0000 (22:00 -0700)]
[turbofan] Prefer add/shift over madd on ARM64

Before selecting multiply-accumulate for a multiplication with add operation,
check that the multiply can't be reduced to add-with-shift. This prevents
simple multiplications by 3, 5, etc turning into register moves and madd
instructions.

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

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

9 years ago[turbofan] Fix throwing conversion inserted by JSTypedLowering.
mstarzinger [Fri, 12 Jun 2015 04:42:04 +0000 (21:42 -0700)]
[turbofan] Fix throwing conversion inserted by JSTypedLowering.

This fixes the graph wiring of implicit JSToNumber nodes inserted by
JSTypedLowering, to be correctly hooked into a surrounding exceptional
continuation.

R=bmeurer@chromium.org
TEST=mjsunit/compiler/try-binop,test262

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

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

9 years agoUpdate V8 DEPS.
v8-autoroll [Fri, 12 Jun 2015 03:27:11 +0000 (20:27 -0700)]
Update V8 DEPS.

Rolling v8/tools/clang to 8b3ed2cb2e2512fa1074043cea3ada1143b80f26

TBR=machenbach@chromium.org

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

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

9 years agoUse LookupIterator in GetOldValue
verwaest [Thu, 11 Jun 2015 23:02:32 +0000 (16:02 -0700)]
Use LookupIterator in GetOldValue

BUG=v8:4137
LOG=n

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

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

9 years agoAdd ToObject call in Array.prototype.sort
dehrenberg [Thu, 11 Jun 2015 21:43:08 +0000 (14:43 -0700)]
Add ToObject call in Array.prototype.sort

The spec says ToObject is called on the receiver, and this is
observable if you call sort on a primitive. This patch trivially
adds the call and a test.

BUG=v8:4125
R=adamk
LOG=Y

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

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

9 years ago[es6] Make sure we call add property when adding a new property
arv [Thu, 11 Jun 2015 21:24:31 +0000 (14:24 -0700)]
[es6] Make sure we call add property when adding a new property

When setting a property using `super.prop = val` we need to use
add property if we are adding a new property and not set property.

BUG=493566
LOG=N
R=verwaest@chromium.org, dslomov@chromium.org

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

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

9 years agoRemove ASSERT, this method can handle ExternalArrays just fine.
Toon Verwaest [Thu, 11 Jun 2015 20:46:26 +0000 (22:46 +0200)]
Remove ASSERT, this method can handle ExternalArrays just fine.

BUG=v8:4137
LOG=n
R=arv@chromium.org

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

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

9 years agoIn Array.of and Array.from, fall back to DefineOwnProperty
dehrenberg [Thu, 11 Jun 2015 20:40:54 +0000 (13:40 -0700)]
In Array.of and Array.from, fall back to DefineOwnProperty

%AddElement is not intended for objects which are not arrays, and
its behavior may go away with future refactorings. This patch gets
rid of it if the receiver of from or of is not the intrinsic Array
object.

Array.of and Array.from previously papered over failures in calling
[[DefineOwnProperty]] when setting array elements. This patch
makes them lead to exceptions, and adds tests to assert that
the appropriate exceptions are thrown.

BUG=v8:4168
R=adamk
CC=rossberg,verwaest
LOG=Y

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

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

9 years ago[es6] Bound function names
arv [Thu, 11 Jun 2015 20:36:37 +0000 (13:36 -0700)]
[es6] Bound function names

https://people.mozilla.org/~jorendorff/es6-draft.html#sec-function.prototype.bind

Bound functions should have a name based on the function that was
bound.

BUG=N
LOG=N
R=adamk   CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel

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

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

9 years agoReland of Use the LookupIterator in SetAccessor (patchset #1 id:1 of https://coderevi...
verwaest [Thu, 11 Jun 2015 20:20:46 +0000 (13:20 -0700)]
Reland of Use the LookupIterator in SetAccessor (patchset #1 id:1 of https://codereview.chromium.org/1175323004/)

Reason: Didn't break anything

Original issue's description:
> Revert of Use the LookupIterator in SetAccessor (patchset #2 id:20001 of https://codereview.chromium.org/1178673003/)
>
> Reason for revert:
> Blocks reverting of https://codereview.chromium.org/1175973002
>
> Original issue's description:
> > Use the LookupIterator in SetAccessor
> >
> > BUG=v8:4137
> > LOG=n
> >
> > Committed: https://crrev.com/f93276bfe093f576595c5dcac69cf8f9163915d9
> > Cr-Commit-Position: refs/heads/master@{#28955}
>
> TBR=jkummerow@chromium.org,verwaest@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:4137
>
> Committed: https://crrev.com/11dbd29de57b290ee8dac2a782a53f879beb416f
> Cr-Commit-Position: refs/heads/master@{#28956}

TBR=jkummerow@chromium.org,ishell@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4137

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

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

9 years agoRevert of Revert of Remove GetAttributes from the mix to avoid another virtual dispat...
verwaest [Thu, 11 Jun 2015 20:17:25 +0000 (13:17 -0700)]
Revert of Revert of Remove GetAttributes from the mix to avoid another virtual dispatch. (patchset #1 id:1 of https://codereview.chromium.org/1179933002/)

Reason for revert:
Reland, this didn't break anything.

Original issue's description:
> Revert of Remove GetAttributes from the mix to avoid another virtual dispatch. (patchset #2 id:40001 of https://codereview.chromium.org/1175973002/)
>
> Reason for revert:
> It broke webkit_unit_tests
>
> Original issue's description:
> > Remove GetAttributes from the mix to avoid another virtual dispatch.
> >
> > BUG=chromium:495949,v8:4137
> > LOG=n
> >
> > Committed: https://crrev.com/2269b8b5a696bf4eef13590093151bff624d4175
> > Cr-Commit-Position: refs/heads/master@{#28953}
>
> TBR=verwaest@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=chromium:495949,v8:4137
>
> Committed: https://crrev.com/ae639d2ad646237e2f413259a0f116845ef96440
> Cr-Commit-Position: refs/heads/master@{#28958}

TBR=ishell@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:495949,v8:4137

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

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

9 years agoRestore ExecutableAccessorInfoHandling for now
Toon Verwaest [Thu, 11 Jun 2015 20:14:46 +0000 (22:14 +0200)]
Restore ExecutableAccessorInfoHandling for now

BUG=v8:4137
LOG=n
R=ishell@chromium.org

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

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

9 years agoDecompiler improvements.
mtrofin [Thu, 11 Jun 2015 20:10:27 +0000 (13:10 -0700)]
Decompiler improvements.

The main motivation is simplifying profiling activities:

1) Use hex instead of decimal for offsets, just like perf does. This
affects --print-opt-code

2) When printing block information, indicate loop information: if
block is header, where the end is; if block is in a loop, where the
loop starts. This affects --code-comments.

Using --print-opt-code --code-comments, and cross-referencing with data
obtained from perf, one may now find the block a hotspot belongs to
without needing to do hex2dec/dec2hex conversions. Once found, loop info
is available locally, on the block.

BUG=

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

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

9 years agoUse LookupIterator for elements in the observed part of DefineAccessor
verwaest [Thu, 11 Jun 2015 20:09:19 +0000 (13:09 -0700)]
Use LookupIterator for elements in the observed part of DefineAccessor

BUG=v8:4137
LOG=n

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

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

9 years agoUse LookupIterator for elements in GetAccessor
verwaest [Thu, 11 Jun 2015 20:08:11 +0000 (13:08 -0700)]
Use LookupIterator for elements in GetAccessor

BUG=v8:4137
LOG=n

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

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

9 years agoBound functions should also have configurable length
arv [Thu, 11 Jun 2015 20:07:03 +0000 (13:07 -0700)]
Bound functions should also have configurable length

BUG=v8:4116
LOG=N
R=adamk@chromium.org

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

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

9 years agoPPC: smi test optimization
dstence [Thu, 11 Jun 2015 20:05:55 +0000 (13:05 -0700)]
PPC: smi test optimization

R=mbrandy@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

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

9 years agoReconfigure on the right holder, which might be a hidden object.
Toon Verwaest [Thu, 11 Jun 2015 18:51:48 +0000 (20:51 +0200)]
Reconfigure on the right holder, which might be a hidden object.

BUG=v8:4137
LOG=n
R=ishell@chromium.org

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

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

9 years agoRevert of Remove GetAttributes from the mix to avoid another virtual dispatch. (patch...
ishell [Thu, 11 Jun 2015 17:25:22 +0000 (10:25 -0700)]
Revert of Remove GetAttributes from the mix to avoid another virtual dispatch. (patchset #2 id:40001 of https://codereview.chromium.org/1175973002/)

Reason for revert:
It broke webkit_unit_tests

Original issue's description:
> Remove GetAttributes from the mix to avoid another virtual dispatch.
>
> BUG=chromium:495949,v8:4137
> LOG=n
>
> Committed: https://crrev.com/2269b8b5a696bf4eef13590093151bff624d4175
> Cr-Commit-Position: refs/heads/master@{#28953}

TBR=verwaest@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:495949,v8:4137

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

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

9 years agoRevert of Replace SetObjectProperty / DefineObjectProperty with less powerful alterna...
ishell [Thu, 11 Jun 2015 17:21:11 +0000 (10:21 -0700)]
Revert of Replace SetObjectProperty / DefineObjectProperty with less powerful alternatives where relevant. (patchset #3 id:40001 of https://codereview.chromium.org/1178503004/)

Reason for revert:
Blocks revert of https://codereview.chromium.org/1175973002

Original issue's description:
> Replace SetObjectProperty / DefineObjectProperty with less powerful alternatives where relevant.
>
> @yangguo: please look at the debugger part of the CL.
> @ishell: please look at the rest.
>
> Additionally:
> - Ensure the LookupIterator for named properties does not accidentally get indexes in.
> - Fix the return value for typed array assignments to be the incoming value.
>
> BUG=v8:4137
> LOG=n
>
> Committed: https://crrev.com/15aa811f8fe2708a757c3b53ca89db736aa8b222
> Cr-Commit-Position: refs/heads/master@{#28954}

TBR=yangguo@chromium.org,verwaest@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4137

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

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

9 years agoRevert of Use the LookupIterator in SetAccessor (patchset #2 id:20001 of https:/...
ishell [Thu, 11 Jun 2015 17:19:57 +0000 (10:19 -0700)]
Revert of Use the LookupIterator in SetAccessor (patchset #2 id:20001 of https://codereview.chromium.org/1178673003/)

Reason for revert:
Blocks reverting of https://codereview.chromium.org/1175973002

Original issue's description:
> Use the LookupIterator in SetAccessor
>
> BUG=v8:4137
> LOG=n
>
> Committed: https://crrev.com/f93276bfe093f576595c5dcac69cf8f9163915d9
> Cr-Commit-Position: refs/heads/master@{#28955}

TBR=jkummerow@chromium.org,verwaest@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4137

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

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

9 years agoUse the LookupIterator in SetAccessor
verwaest [Thu, 11 Jun 2015 17:03:50 +0000 (10:03 -0700)]
Use the LookupIterator in SetAccessor

BUG=v8:4137
LOG=n

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

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

9 years agoReplace SetObjectProperty / DefineObjectProperty with less powerful alternatives...
verwaest [Thu, 11 Jun 2015 16:37:35 +0000 (09:37 -0700)]
Replace SetObjectProperty / DefineObjectProperty with less powerful alternatives where relevant.

@yangguo: please look at the debugger part of the CL.
@ishell: please look at the rest.

Additionally:
- Ensure the LookupIterator for named properties does not accidentally get indexes in.
- Fix the return value for typed array assignments to be the incoming value.

BUG=v8:4137
LOG=n

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

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

9 years agoRemove GetAttributes from the mix to avoid another virtual dispatch.
verwaest [Thu, 11 Jun 2015 16:07:20 +0000 (09:07 -0700)]
Remove GetAttributes from the mix to avoid another virtual dispatch.

BUG=chromium:495949,v8:4137
LOG=n

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

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

9 years agoX87: [strong] Refactor ObjectStrength into a replacement for strong boolean args
cdai2 [Thu, 11 Jun 2015 16:00:39 +0000 (00:00 +0800)]
X87:  [strong] Refactor ObjectStrength into a replacement for strong boolean args

port dd8544495109804c632bfbcefc3c5c701e0a8c43 (r28839)

original commit message:

    Boolean "is_strong" parameters have begun to proliferate across areas where
    strong mode semantics are different. This CL repurposes the existing
    ObjectStrength enum as a replacement for them.

BUG=
R=weiliang.lin@intel.com

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

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

9 years agoX87: Vector ICs: ClassLiterals need to allocate a vector slot for home objects.
cdai2 [Thu, 11 Jun 2015 15:59:33 +0000 (23:59 +0800)]
X87: Vector ICs: ClassLiterals need to allocate a vector slot for home objects.

port b27016b78a7dd58dc682eed51500ba603b3e46b0 (r28827).

original commit message:

BUG=
R=weiliang.lin@intel.com

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

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

9 years agoX87: Vector ICs: debugger should save registers for vector store ics.
cdai2 [Thu, 11 Jun 2015 15:57:33 +0000 (23:57 +0800)]
X87: Vector ICs: debugger should save registers for vector store ics.

port bd32a9f711cb14c2b7c34512d43e78bd24960124 (r28825).

original commit message:

BUG=
R=weiliang.lin@intel.com

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

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

9 years agoX87: Refactor lexical home object binding.
cdai2 [Thu, 11 Jun 2015 15:54:09 +0000 (23:54 +0800)]
X87: Refactor lexical home object binding.

port 345fa142a9fca4b468417350ac26f61101d626e8 (r28802).

    port of r28769 overwrite some of r28802 so we port them again.

original commit message:

    Before this we had 3 super related lexical bindings that got injected
    into method bodies: .home_object, .this_function,  and new.target.
    With this change we get rid of the .home_object one in favor of using
    .this_function[home_object_symbol] which allows some simplifications
    throughout the code base.

BUG=
R=weiliang.lin@intel.com

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

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

9 years agoX87: [date] Refactor the %_DateField intrinsic to be optimizable.
cdai2 [Thu, 11 Jun 2015 15:51:34 +0000 (23:51 +0800)]
X87: [date] Refactor the %_DateField intrinsic to be optimizable.

port e4782a9b468258344d512a5f7dadbf1584928849 (r28782)

original commit message:

    Previously the %_DateField intrinsic would also check the object and
    throw an exception if you happen to pass something that is not a valid
    JSDate, which (a) violates our policy for instrinsics and (b) is hard to
    optimize in TurboFan (even Crankshaft has a hard time, but there we will
    never inline the relevant builtins, so it doesn't show up). The throwing
    part is now a separate intrinsics %_ThrowIfNotADate that throws an
    exception in full codegen and deoptimizes in Crankshaft, which means the
    code for the current use cases is roughly the same (modulo some register
    renamings/gap moves).

BUG=
R=weiliang.lin@intel.com

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

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

9 years agoFix GCMole issue
Toon Verwaest [Thu, 11 Jun 2015 15:41:08 +0000 (17:41 +0200)]
Fix GCMole issue

BUG=
R=ishell@chromium.org

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

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

9 years agoUse the LookupIterator for SetElement and friends
verwaest [Thu, 11 Jun 2015 15:07:00 +0000 (08:07 -0700)]
Use the LookupIterator for SetElement and friends

BUG=v8:4137
LOG=n

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

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

9 years ago[turbofan] Merge sar/shr into MulHigh on ARM64
martyn.capewell [Thu, 11 Jun 2015 14:49:59 +0000 (07:49 -0700)]
[turbofan] Merge sar/shr into MulHigh on ARM64

Merge a following arithmetic or logical right shift into the existing shift
of ARM64's Int32MulHigh or Uint32MulHigh code.

BUG=

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

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

9 years agoRevert of [arm64][turbofan]: Handle any immediate shift. (patchset #1 id:1 of https...
jacob.bramley [Thu, 11 Jun 2015 14:46:31 +0000 (07:46 -0700)]
Revert of [arm64][turbofan]: Handle any immediate shift. (patchset #1 id:1 of https://codereview.chromium.org/1179733004/)

Reason for revert:
Breaks InstructionSelectorTest.Word64ShrWithWord64AndWithImmediate on debug builds (but not optdebug builds). I'll investigate.

Original issue's description:
> [arm64][turbofan]: Handle any immediate shift.
>
> With this patch, we can generate simple immediate-shift instructions for
> immediates outside the range "0 <= imm < width". Several related
> instruction selectors have also been updated accordingly.
>
> Example of generated code:
>
>     ---- Before ---         ---- After ----
>     movz w0, #33            lsr w0, w1, #1
>     lsr  w0, w1, w0
>
> BUG=
>
> Committed: https://crrev.com/36d771bbfa4af5efcc1c1dcf5b234445cb7ee722
> Cr-Commit-Position: refs/heads/master@{#28943}

TBR=bmeurer@chromium.org,ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

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

9 years ago[arm64][turbofan]: Handle any immediate shift.
jacob.bramley [Thu, 11 Jun 2015 13:50:51 +0000 (06:50 -0700)]
[arm64][turbofan]: Handle any immediate shift.

With this patch, we can generate simple immediate-shift instructions for
immediates outside the range "0 <= imm < width". Several related
instruction selectors have also been updated accordingly.

Example of generated code:

    ---- Before ---         ---- After ----
    movz w0, #33            lsr w0, w1, #1
    lsr  w0, w1, w0

BUG=

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

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

9 years ago[turbofan] Materialize all from non-writable roots from root array.
bmeurer [Thu, 11 Jun 2015 12:42:42 +0000 (05:42 -0700)]
[turbofan] Materialize all from non-writable roots from root array.

R=jarin@chromium.org

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

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

9 years ago[test] Skip slow test.
machenbach [Thu, 11 Jun 2015 12:25:50 +0000 (05:25 -0700)]
[test] Skip slow test.

NOTRY=true

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

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

9 years ago[turbofan] Structure AccessBuilder interface a bit.
mstarzinger [Thu, 11 Jun 2015 12:21:55 +0000 (05:21 -0700)]
[turbofan] Structure AccessBuilder interface a bit.

R=bmeurer@chromium.org

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

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

9 years agoAlways print external time in --trace-gc to make it toolable.
hpayer [Thu, 11 Jun 2015 12:20:47 +0000 (05:20 -0700)]
Always print external time in --trace-gc to make it toolable.

BUG=

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

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

9 years agoAdd extras test for calling into runtime.
yangguo [Thu, 11 Jun 2015 12:19:40 +0000 (05:19 -0700)]
Add extras test for calling into runtime.

The alternative of passing an object template at context creation is
unfeasible because we need a context to instantiate the template.
At the time we create the context from snapshot or bootstrap from
scratch, we would already need that template instance, leading to a
chicken-and-egg problem.

This is an alternative that is simpler and less intrusive.

R=domenic@chromium.org, jochen@chromium.org

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

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

9 years ago[turbofan] Disable failing test262 tests after 84f208949b2e.
mstarzinger [Thu, 11 Jun 2015 12:17:59 +0000 (05:17 -0700)]
[turbofan] Disable failing test262 tests after 84f208949b2e.

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

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

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

9 years ago[test] Add random seed stress mode to test runner.
machenbach [Thu, 11 Jun 2015 11:42:32 +0000 (04:42 -0700)]
[test] Add random seed stress mode to test runner.

NOTRY=true

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

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

9 years ago[turbofan] Enable support for try-catch statements.
mstarzinger [Thu, 11 Jun 2015 10:50:42 +0000 (03:50 -0700)]
[turbofan] Enable support for try-catch statements.

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

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

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

9 years agoRevert of [heap] Unify the immortal immovable root detection mechanism. (patchset...
machenbach [Thu, 11 Jun 2015 10:49:35 +0000 (03:49 -0700)]
Revert of [heap] Unify the immortal immovable root detection mechanism. (patchset #3 id:40001 of https://codereview.chromium.org/1178853002/)

Reason for revert:
[Sheriff] tsan failures:
http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/4240

Original issue's description:
> [heap] Unify the immortal immovable root detection mechanism.
>
> Uniformly use the Heap::GetRootListIndex() and
> Heap::RootIsImmortalImmovable() methods to detect immortal immovable
> roots in the optimizing compilers.
>
> R=jarin@chromium.org
>
> Committed: https://crrev.com/84e83da99a72edc169367bf88588b1a2f10c2e08
> Cr-Commit-Position: refs/heads/master@{#28933}

TBR=jarin@chromium.org,bmeurer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

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

9 years ago[heap] Unify the immortal immovable root detection mechanism.
bmeurer [Thu, 11 Jun 2015 10:12:33 +0000 (03:12 -0700)]
[heap] Unify the immortal immovable root detection mechanism.

Uniformly use the Heap::GetRootListIndex() and
Heap::RootIsImmortalImmovable() methods to detect immortal immovable
roots in the optimizing compilers.

R=jarin@chromium.org

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

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

9 years agoRevert of Add CHECKs to verify that we never finalize stale copies of external string...
jochen [Thu, 11 Jun 2015 09:37:32 +0000 (02:37 -0700)]
Revert of Add CHECKs to verify that we never finalize stale copies of external strings (patchset #1 id:1 of https://codereview.chromium.org/1160253010/)

Reason for revert:
not needed anymore

Original issue's description:
> Add CHECKs to verify that we never finalize stale copies of external strings
>
> BUG=none
> R=ulan@chromium.org
> LOG=n
>
> Committed: https://crrev.com/ca2f8d811ca08783e38ce5dd42d38a6b6a7b876f
> Cr-Commit-Position: refs/heads/master@{#28811}

TBR=ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=none

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

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

9 years agoRevert of Revert of Revert of Promise assimilation fix. (patchset #1 id:1 of https...
machenbach [Thu, 11 Jun 2015 09:09:03 +0000 (02:09 -0700)]
Revert of Revert of Revert of Promise assimilation fix. (patchset #1 id:1 of https://codereview.chromium.org/1181533006/)

Reason for revert:
[Sheriff] Changes/breaks layout tests. Please land upstream needsmanualrebaseline requests first or fix the tests.

E.g.
http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Win/builds/400
One test fails, one times out. See e.g. expectations changes:
https://storage.googleapis.com/chromium-layout-test-archives/V8-Blink_Win/400/layout-test-results/inspector/sources/debugger-async/async-callstack-promises-diff.txt

On linux debug theses tests crash:
http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/346
https://storage.googleapis.com/chromium-layout-test-archives/V8-Blink_Linux_64__dbg_/346/layout-test-results/results.html

Original issue's description:
> Revert of Revert of Promise assimilation fix. (patchset #1 id:1 of https://codereview.chromium.org/1176163004/)
>
> Reason for revert:
> Test failures are bogus. Snapshot blob and natives blob are out of sync due to build being weird.
>
> Original issue's description:
> > Revert of Promise assimilation fix. (patchset #8 id:160001 of https://codereview.chromium.org/1098663002/)
> >
> > Reason for revert:
> > Test failures: https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux64/builds/3829
> >
> > Original issue's description:
> > > Promise assimilation fix.
> > >
> > > Let x be a fulfilled promise and y be another promise. |x.then(() => y)|
> > > should call |y.then|, but the current implementation calls PromiseChain.
> > > We can see the difference when we set a custom function to |y.then|.
> > >
> > > This CL fixes the spec violation, but as a result |then| is no longer
> > > a wrapper of |chain| and in some cases it does not work well with
> > > |accept| or |chain|. That is not a problem for ES6 promise users because
> > > ES6 promise doesn't have them.
> > >
> > > LOG=N
> > > BUG=477921
> > >
> > > Committed: https://crrev.com/2f57dff3ea0c45e1a61b334fda962460f89d71bc
> > > Cr-Commit-Position: refs/heads/master@{#28926}
> >
> > TBR=arv@chromium.org,caitpotter88@gmail.com,rossberg@chromium.org,yhirano@chromium.org
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=477921
> >
> > Committed: https://crrev.com/5bb75f514027f79303396dba823c2d78c6add83b
> > Cr-Commit-Position: refs/heads/master@{#28927}
>
> TBR=arv@chromium.org,caitpotter88@gmail.com,rossberg@chromium.org,yhirano@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=477921
>
> Committed: https://crrev.com/6f214bdd8bcdc76d48bd85c3bd897f0e2427ff95
> Cr-Commit-Position: refs/heads/master@{#28928}

TBR=arv@chromium.org,caitpotter88@gmail.com,rossberg@chromium.org,yhirano@chromium.org,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=477921

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

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

9 years agoWhitespace change to test infra change.
Michael Achenbach [Thu, 11 Jun 2015 08:57:31 +0000 (10:57 +0200)]
Whitespace change to test infra change.

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

9 years agoRevert of Re-land: Enable external startup by default on Linux. (patchset #3 id:40001...
vogelheim [Thu, 11 Jun 2015 08:32:22 +0000 (01:32 -0700)]
Revert of Re-land: Enable external startup by default on Linux. (patchset #3 id:40001 of https://codereview.chromium.org/1041683002/)

Reason for revert:
Revert, due to problems with stale build artefacts uncovered by this.

Details: https://code.google.com/p/v8/issues/detail?id=4171

Original issue's description:
> Re-land: Enable external startup by default on Linux.
>
> crrev.com/1016603004 should have fixed the issues that broke this last time.
>
> Notes:
> - The current functionality is meant to stay. If you prefer the old way,
>   just set v8_use_external_startup_data=0.
> - You might notice this if you call d8 via PATH. Either explicitly tell d8
>   where your external snapshot/built-ins are, or change the build options
>   as above.
> - This follows Chromium practice, that mostly uses this feature these days.
> - Other platforms to follow later.
>
> BUG=
>
> Committed: https://crrev.com/bb9c774c164c3552b67b4f1b60809852a44f2ecd
> Cr-Commit-Position: refs/heads/master@{#28858}

TBR=jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

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

9 years agoRevert of Revert of Promise assimilation fix. (patchset #1 id:1 of https://codereview...
yangguo [Thu, 11 Jun 2015 08:15:22 +0000 (01:15 -0700)]
Revert of Revert of Promise assimilation fix. (patchset #1 id:1 of https://codereview.chromium.org/1176163004/)

Reason for revert:
Test failures are bogus. Snapshot blob and natives blob are out of sync due to build being weird.

Original issue's description:
> Revert of Promise assimilation fix. (patchset #8 id:160001 of https://codereview.chromium.org/1098663002/)
>
> Reason for revert:
> Test failures: https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux64/builds/3829
>
> Original issue's description:
> > Promise assimilation fix.
> >
> > Let x be a fulfilled promise and y be another promise. |x.then(() => y)|
> > should call |y.then|, but the current implementation calls PromiseChain.
> > We can see the difference when we set a custom function to |y.then|.
> >
> > This CL fixes the spec violation, but as a result |then| is no longer
> > a wrapper of |chain| and in some cases it does not work well with
> > |accept| or |chain|. That is not a problem for ES6 promise users because
> > ES6 promise doesn't have them.
> >
> > LOG=N
> > BUG=477921
> >
> > Committed: https://crrev.com/2f57dff3ea0c45e1a61b334fda962460f89d71bc
> > Cr-Commit-Position: refs/heads/master@{#28926}
>
> TBR=arv@chromium.org,caitpotter88@gmail.com,rossberg@chromium.org,yhirano@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=477921
>
> Committed: https://crrev.com/5bb75f514027f79303396dba823c2d78c6add83b
> Cr-Commit-Position: refs/heads/master@{#28927}

TBR=arv@chromium.org,caitpotter88@gmail.com,rossberg@chromium.org,yhirano@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=477921

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

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

9 years agoRevert of Promise assimilation fix. (patchset #8 id:160001 of https://codereview...
yangguo [Thu, 11 Jun 2015 08:01:09 +0000 (01:01 -0700)]
Revert of Promise assimilation fix. (patchset #8 id:160001 of https://codereview.chromium.org/1098663002/)

Reason for revert:
Test failures: https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux64/builds/3829

Original issue's description:
> Promise assimilation fix.
>
> Let x be a fulfilled promise and y be another promise. |x.then(() => y)|
> should call |y.then|, but the current implementation calls PromiseChain.
> We can see the difference when we set a custom function to |y.then|.
>
> This CL fixes the spec violation, but as a result |then| is no longer
> a wrapper of |chain| and in some cases it does not work well with
> |accept| or |chain|. That is not a problem for ES6 promise users because
> ES6 promise doesn't have them.
>
> LOG=N
> BUG=477921
>
> Committed: https://crrev.com/2f57dff3ea0c45e1a61b334fda962460f89d71bc
> Cr-Commit-Position: refs/heads/master@{#28926}

TBR=arv@chromium.org,caitpotter88@gmail.com,rossberg@chromium.org,yhirano@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=477921

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

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

9 years agoPromise assimilation fix.
yhirano [Thu, 11 Jun 2015 07:42:37 +0000 (00:42 -0700)]
Promise assimilation fix.

Let x be a fulfilled promise and y be another promise. |x.then(() => y)|
should call |y.then|, but the current implementation calls PromiseChain.
We can see the difference when we set a custom function to |y.then|.

This CL fixes the spec violation, but as a result |then| is no longer
a wrapper of |chain| and in some cases it does not work well with
|accept| or |chain|. That is not a problem for ES6 promise users because
ES6 promise doesn't have them.

LOG=N
BUG=477921

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

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

9 years agoMake sure we do not start incremental marking in idle notification when incremental...
hpayer [Thu, 11 Jun 2015 07:41:31 +0000 (00:41 -0700)]
Make sure we do not start incremental marking in idle notification when incremental marking is turned off via flags.

BUG=chromium:498315
LOG=n

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

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

9 years agoPPC64: Adjust simulator stack safety margin.
mbrandy [Thu, 11 Jun 2015 07:07:37 +0000 (00:07 -0700)]
PPC64: Adjust simulator stack safety margin.

This fixes a failure in test/mjsunit/regress/regress-crbug-491062.js.

R=dstence@us.ibm.com, michael_dawson@ca.ibm.com, svenpanne@chromium.org
BUG=

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

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

9 years agoMake writing of frame translation platform independent.
jarin [Thu, 11 Jun 2015 06:09:07 +0000 (23:09 -0700)]
Make writing of frame translation platform independent.

BUG=
R=bmeurer@chromium.org

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

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

9 years ago[turbofan] Record the SharedFunctionInfo of ALL inlined functions.
bmeurer [Thu, 11 Jun 2015 05:23:06 +0000 (22:23 -0700)]
[turbofan] Record the SharedFunctionInfo of ALL inlined functions.

Previously we only recorded the SharedFunctionInfo of inlined functions
that had at least one (lazy) deopt point left at code generation time.

R=mstarzinger@chromium.org

Committed: https://chromium.googlesource.com/v8/v8/+/ffa0b4007cd7de0cfd6d37079ef360e3beeb5686

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

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

9 years ago[stl] Fix ZonePriorityQueue wrapper.
bmeurer [Thu, 11 Jun 2015 05:14:59 +0000 (22:14 -0700)]
[stl] Fix ZonePriorityQueue wrapper.

R=jarin@chromium.org

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

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

9 years agoRevert of [turbofan] Record the SharedFunctionInfo of ALL inlined functions. (patchse...
bmeurer [Thu, 11 Jun 2015 04:47:40 +0000 (21:47 -0700)]
Revert of [turbofan] Record the SharedFunctionInfo of ALL inlined functions. (patchset #2 id:20001 of https://codereview.chromium.org/1175953002/)

Reason for revert:
Breaks Windows debug.

Original issue's description:
> [turbofan] Record the SharedFunctionInfo of ALL inlined functions.
>
> Previously we only recorded the SharedFunctionInfo of inlined functions
> that had at least one (lazy) deopt point left at code generation time.
>
> R=mstarzinger@chromium.org
>
> Committed: https://chromium.googlesource.com/v8/v8/+/ffa0b4007cd7de0cfd6d37079ef360e3beeb5686

TBR=mstarzinger@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

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

9 years ago[turbofan] Record the SharedFunctionInfo of ALL inlined functions.
Benedikt Meurer [Thu, 11 Jun 2015 04:34:13 +0000 (06:34 +0200)]
[turbofan] Record the SharedFunctionInfo of ALL inlined functions.

Previously we only recorded the SharedFunctionInfo of inlined functions
that had at least one (lazy) deopt point left at code generation time.

R=mstarzinger@chromium.org

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

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

9 years ago[turbofan] Make IfException projections consume effects.
mstarzinger [Thu, 11 Jun 2015 04:21:56 +0000 (21:21 -0700)]
[turbofan] Make IfException projections consume effects.

This is needed in order to allow expansion of a throwing node into a
set of nodes that produce different effects for the successful and the
exceptional continuation.

R=bmeurer@chromium.org

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

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

9 years agoUpdate V8 DEPS.
v8-autoroll [Thu, 11 Jun 2015 03:28:01 +0000 (20:28 -0700)]
Update V8 DEPS.

Rolling v8/third_party/icu to a05f412f70489b77da0ddeb8baa31c68e3eff2c6

Rolling v8/tools/clang to 69fd1b485a2b24c872bfa4759342076751c9d490

TBR=machenbach@chromium.org

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

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

9 years ago[test] Skip all philip layout tests to fix OOM issue.
machenbach [Wed, 10 Jun 2015 20:39:35 +0000 (13:39 -0700)]
[test] Skip all philip layout tests to fix OOM issue.

BUG=chromium:498689
LOG=n
NOTRY=true
TBR=sergiyb@chromium.org

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

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

9 years ago[test] Speculatively skip some layout tests to fix OOM issue.
machenbach [Wed, 10 Jun 2015 20:10:25 +0000 (13:10 -0700)]
[test] Speculatively skip some layout tests to fix OOM issue.

BUG=chromium:498689
LOG=n
NOTRY=true
TBR=sergiyb@chromium.org

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

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

9 years ago[test] Speculatively skip layout test to fix OOM issue.
machenbach [Wed, 10 Jun 2015 18:43:55 +0000 (11:43 -0700)]
[test] Speculatively skip layout test to fix OOM issue.

BUG=chromium:498689
LOG=n
NOTRY=true
TBR=sergiyb@chromium.org

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

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

9 years agoMIPS: Skip test-heap/TestSizeOfRegExpCode
paul.lind [Wed, 10 Jun 2015 17:47:19 +0000 (10:47 -0700)]
MIPS: Skip test-heap/TestSizeOfRegExpCode

After https://codereview.chromium.org/1180433003 the code-size exceeeds
the limit for MIPS. We have some optimizations in place for MIPS64 that
will be ported back to MIPS, and will investigate other code-size
improvements so we can re-enable this test.

BUG=

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

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

9 years agoIncrease the chance of printing a useful error when bootstrapping fails
adamk [Wed, 10 Jun 2015 17:42:01 +0000 (10:42 -0700)]
Increase the chance of printing a useful error when bootstrapping fails

Two changes:
  - In ReportBootstrappingException, if all we have is a string, it seems
    better to print that than nothing.
  - In Factory::NewError, there's no use trying to call into the builtins if
    compilation of the builtins is causing the exception (this currently
    results in a cryptic segfault if we trigger, say, a ReferenceError when
    executing builtins script during bootstrapping).

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

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

9 years agoMake RawMachineAssemblerTest emitting CFG always have a dummy End block
weiliang.lin [Wed, 10 Jun 2015 17:37:31 +0000 (10:37 -0700)]
Make RawMachineAssemblerTest emitting CFG always have a dummy End block

Frame Elider requires a sane CFG which should have such dummy end block.

BUG=

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

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

9 years ago[test] Speculatively skip layout test to fix OOM issue.
machenbach [Wed, 10 Jun 2015 17:06:53 +0000 (10:06 -0700)]
[test] Speculatively skip layout test to fix OOM issue.

BUG=chromium:498689
LOG=n
NOTRY=true
TBR=sergiyb@chromium.org

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

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

9 years agoPPC: [deoptimizer] Basic support inlining based on SharedFunctionInfo.
mbrandy [Wed, 10 Jun 2015 16:14:37 +0000 (09:14 -0700)]
PPC: [deoptimizer] Basic support inlining based on SharedFunctionInfo.

Port cf21da7e485ac80b3071e477e5399a00ee2b365f

Original commit message:
Up until now we can only inline based on JSFunction, because of the way
the deoptimization works.  With this change we will be able to inline
based on the SharedFunctionInfo and materialize the JSFunction from a
literal or a stack slot when necessary.

R=bmeurer@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

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

9 years agoSupport rest parameters in arrow functions
wingo [Wed, 10 Jun 2015 16:11:25 +0000 (09:11 -0700)]
Support rest parameters in arrow functions

R=dslomov@chromium.org, rossberg@chromium.org
LOG=Y
BUG=v8:2700

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

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

9 years agoMIPS: Replace numeric_limits<>::lowest() in cctest-assembler*.cc
balazs.kilvady [Wed, 10 Jun 2015 15:45:07 +0000 (08:45 -0700)]
MIPS: Replace numeric_limits<>::lowest() in cctest-assembler*.cc

On Mac for the requested minimal version (10.5) only old stl (from gcc 4.2.1) can be used so unfortunately we can't use numeric_limits<>::lowest() which were added in 874c54e05e92e04590b1026b495108abfd6063b7

BUG=
TEST=cctest/test-assembler-mips64, cctest/test-assembler-mips

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

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

9 years ago[deoptimizer] Basic support inlining based on SharedFunctionInfo.
bmeurer [Wed, 10 Jun 2015 11:52:35 +0000 (04:52 -0700)]
[deoptimizer] Basic support inlining based on SharedFunctionInfo.

Up until now we can only inline based on JSFunction, because of the way
the deoptimization works.  With this change we will be able to inline
based on the SharedFunctionInfo and materialize the JSFunction from a
literal or a stack slot when necessary.

R=jarin@chromium.org

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

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

9 years agoDeserializer: flush code objects in large object space.
yangguo [Wed, 10 Jun 2015 11:24:29 +0000 (04:24 -0700)]
Deserializer: flush code objects in large object space.

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

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

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

9 years ago[test] Use generator to accelerate test runner startup.
machenbach [Wed, 10 Jun 2015 11:15:12 +0000 (04:15 -0700)]
[test] Use generator to accelerate test runner startup.

This saves >1s for mjsunit and >10s for test262.

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

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

9 years agoReland [test] Refactoring - Let runner handle test IDs.
machenbach [Wed, 10 Jun 2015 10:15:14 +0000 (03:15 -0700)]
Reland [test] Refactoring - Let runner handle test IDs.

Reason for revert:
All build problems had other reasons.

Original issue's description:
> Revert of [test] Refactoring - Let runner handle test IDs. (patchset #1 id:1 of https://codereview.chromium.org/1168303007/)
>
> Reason for revert:
> [Sheriff] Revert until the tree is in a better state.
>
> Original issue's description:
> > [test] Refactoring - Let runner handle test IDs.
> >
> > This prepares for properly rerunning tests. Currently when
> > tests are rerun, the same test object is reused. This
> > will be changed in a follow up.
> >
> > Committed: https://crrev.com/f41a81b8a513fc360c500c066b74f223bc9c0223
> > Cr-Commit-Position: refs/heads/master@{#28864}
>
> TBR=jkummerow@chromium.org,tandrii@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/f83444a5f24381ec9ccc28b1e18e1e9370415bb2
> Cr-Commit-Position: refs/heads/master@{#28891}

TBR=jkummerow@chromium.org,tandrii@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

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

9 years agoReland II of 'Optimize trivial regexp disjunctions' CL 1176453002
erikcorry [Wed, 10 Jun 2015 09:55:22 +0000 (02:55 -0700)]
Reland II of 'Optimize trivial regexp disjunctions' CL 1176453002

This change rewrites regexps like (ab|ac|z|ad|ae|af) into (a[b-f]|z).  We can only reorder disjunctions like this for case-dependent regexps.  For case-independent regexps, the disjunctions should be pre-sorted for best results.

R=yangguo@chromium.org
BUG=chromium:482998
LOG=n

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

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

9 years agoRevert of Revert of [test] Refactoring - Use subject/observer pattern for progress...
machenbach [Wed, 10 Jun 2015 09:42:24 +0000 (02:42 -0700)]
Revert of Revert of [test] Refactoring - Use subject/observer pattern for progress indicators. (patchset #1 id:1 of https://codereview.chromium.org/1163373005/)

Reason for revert:
All build problems had other causes.

Original issue's description:
> Revert of [test] Refactoring - Use subject/observer pattern for progress indicators. (patchset #3 id:40001 of https://codereview.chromium.org/1171943002/)
>
> Reason for revert:
> might break stuff
>
> Original issue's description:
> > [test] Refactoring - Use subject/observer pattern for progress indicators.
> >
> > This should prevent bugs caused by missing super calls in
> > overridden methods. The assumption is that methods of
> > different indicators are independent.
> >
> > Committed: https://crrev.com/fbe973ff1722a6158a5b2babce9c1a32d26a1d3b
> > Cr-Commit-Position: refs/heads/master@{#28866}
>
> TBR=jkummerow@chromium.org,tandrii@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/2a3962d9d2a7415378811f4d56522531332d5a3e
> Cr-Commit-Position: refs/heads/master@{#28869}

TBR=jkummerow@chromium.org,tandrii@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

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

9 years agoX87: [es6] Super call in arrows and eval
chunyang.dai [Wed, 10 Jun 2015 09:29:02 +0000 (02:29 -0700)]
X87: [es6] Super call in arrows and eval

port 4b8051a02ae9f765b7d803fc7986301abde36007 (r28769)

original commit message:

    This splits the SuperReference AST node into SuperPropertyReference and
    SuperCallReference. The super call reference node consists of three
    unresolved vars to this, new.target and this_function. These gets
    declared when the right function is entered and if it is in use. The
    variables gets assigned in FullCodeGenerator::Generate.

    This is a revert of the revert 88b1c9170a0293cbcc8bdaf57fbe12744b48d7e8

BUG=

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

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