platform/upstream/v8.git
9 years ago[Release tools] Add instructions how to close the auto-roller.
hablich [Wed, 1 Jul 2015 09:37:02 +0000 (02:37 -0700)]
[Release tools] Add instructions how to close the auto-roller.

R=machenbach@chromium.org
BUG=494641
LOG=N
NOTRY=true

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

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

9 years agoRemove deprecated --flush-code-incrementally flag.
mstarzinger [Wed, 1 Jul 2015 08:46:14 +0000 (01:46 -0700)]
Remove deprecated --flush-code-incrementally flag.

R=hpayer@chromium.org

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

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

9 years agoMake context register implicit for CallInterfaceDescriptors
danno [Wed, 1 Jul 2015 08:45:05 +0000 (01:45 -0700)]
Make context register implicit for CallInterfaceDescriptors

Up until now the context register was listed explicitly in each stub's
CallInterfaceDescriptor. This was problematic, because it was listed
first in the list of register parameters--which is fine for Crankshaft,
which is more or less built to handle the context as the first
parameter-- but not ideal for TurboFan, which adds the context at
the end of all function parameters. Now the context register is no
longer in the register list and can be handled appropriately by both
compilers. Specifically, this allows the FunctionType specified for
each CallInterfaceDescriptor to exactly match the parameter register
list.

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

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

9 years ago[crankshaft] Remove adventurous operator< for Handle<Map>.
bmeurer [Wed, 1 Jul 2015 08:12:33 +0000 (01:12 -0700)]
[crankshaft] Remove adventurous operator< for Handle<Map>.

This operator< overload is rather dangerous for handles. And we don't
actually need a std::set in the chunk builder, since duplicates are
automatically eliminated later when the code dependencies are committed.

R=jarin@chromium.org

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

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

9 years agoDebugger: ensure that break points are set in code that contain debug break slots.
yangguo [Wed, 1 Jul 2015 08:01:14 +0000 (01:01 -0700)]
Debugger: ensure that break points are set in code that contain debug break slots.

We now consistently ignore native and extension scripts for debugging. Only native scripts and extension scripts can disallow lazy compilation. So we can make sure that break points are only set to code that are compiled with debug break slots.

R=mvstanton@chromium.org

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

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

9 years agoUpdate V8 DEPS.
v8-autoroll [Wed, 1 Jul 2015 03:26:34 +0000 (20:26 -0700)]
Update V8 DEPS.

Rolling v8/third_party/icu to 1b697da5c2c0112e2b70e7e75d3e3d985f464a8f

TBR=machenbach@chromium.org

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

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

9 years agoX87: Do not add extra argument for new.target.
chunyang.dai [Wed, 1 Jul 2015 01:57:19 +0000 (18:57 -0700)]
X87: Do not add extra argument for new.target.

port 8196c28a94f62dec026f2b564ba81d690a4ed593 (r29238).

original commit message:

  JSConstructStub for subclass constructors instead locates new.target in
  a known location on the stack.

BUG=

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

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

9 years agoX87: Clean up JSConstructStub.
chunyang.dai [Wed, 1 Jul 2015 01:52:01 +0000 (18:52 -0700)]
X87: Clean up JSConstructStub.

port 882055ff6a58f6b585575229f40f364e5f2a3ad0 (r29082).

   The original CL covers part of X87 port. This CL addes the missing changes.

original commit message:

  - fix truthfulness of comments
    - use InitializeFieldsWithFiller more consistently
    - use unsigned comparisons for pointers

    No change in functionality intended.

    Bonus: improve JavaScriptFrame::Print() for an enhanced debugging experience:

BUG=

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

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

9 years ago[es6] Ensure that for-in/of loops have a proper TDZ for their lexically-bound variables
adamk [Wed, 1 Jul 2015 00:27:15 +0000 (17:27 -0700)]
[es6] Ensure that for-in/of loops have a proper TDZ for their lexically-bound variables

The enumerable expression in a for-in/of loop is supposed to have a TDZ for any
lexically bound names in that loop (there can be more than one with destructuring).

This patch accomplishes this with an almost-correct desugaring. The only thing missing
is proper debugger support (the let declarations added by the desugaring, while invisible
to code due to shadowing, are visible to the debugger).

BUG=v8:4210
LOG=n

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

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

9 years agoAllow numeric literals to be checked for a decimal point.
bradnelson [Tue, 30 Jun 2015 21:12:12 +0000 (14:12 -0700)]
Allow numeric literals to be checked for a decimal point.

The asm.js spec decides the type of numeric literals in several places
based on if they contain a ".".
http://asmjs.org/spec/latest/

Adding methods so that AST Literals can be checked for containg a dot.

Adding a cctest that this information is available.

LOG=N
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-parsing
R=rossberg@chromium.org,titzer@chromium.org

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

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

9 years agod8 Worker test of SharedArrayBuffer transferring
binji [Tue, 30 Jun 2015 20:22:39 +0000 (13:22 -0700)]
d8 Worker test of SharedArrayBuffer transferring

BUG=chromium:497295
R=jarin@chromium.org
LOG=n

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

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

9 years agoRevert of [test262-es6] Update to 2011-06-29 (patchset #1 id:1 of https://codereview...
machenbach [Tue, 30 Jun 2015 20:15:43 +0000 (13:15 -0700)]
Revert of [test262-es6] Update to 2011-06-29 (patchset #1 id:1 of https://codereview.chromium.org/1220793005/)

Reason for revert:
[Sheriff] Runner has some infra failures:
http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/4020/steps/Test262-es6%20-%20no%20variants/logs/stdio

Original issue's description:
> [test262-es6] Update to 2011-06-29
>
> This includes one harness fix but introduces a few new failures. No
> new bugs exposed though.
>
> BUG=N
> LOG=N
> R=littledan@chromium.org, adamk@chromium.org
>
> Committed: https://crrev.com/2e877628803f238dd33c3409413cd7778e36a2b6
> Cr-Commit-Position: refs/heads/master@{#29392}

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

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

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

9 years ago[test262-es6] Update to 2011-06-29
arv [Tue, 30 Jun 2015 18:58:21 +0000 (11:58 -0700)]
[test262-es6] Update to 2011-06-29

This includes one harness fix but introduces a few new failures. No
new bugs exposed though.

BUG=N
LOG=N
R=littledan@chromium.org, adamk@chromium.org

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

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

9 years agoPPC: Fix constant pool overflow access in Get/SetRelocatedValue.
mbrandy [Tue, 30 Jun 2015 18:57:13 +0000 (11:57 -0700)]
PPC: Fix constant pool overflow access in Get/SetRelocatedValue.

This resolves the mirror-object test failure.

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

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

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

9 years agoRevert of [strong] Add tests for loading from proxy, super, with access checks (patch...
machenbach [Tue, 30 Jun 2015 18:42:38 +0000 (11:42 -0700)]
Revert of [strong] Add tests for loading from proxy, super, with access checks (patchset #4 id:80001 of https://codereview.chromium.org/1193633003/)

Reason for revert:
[Sheriff] Breaks gc stress:
http://build.chromium.org/p/client.v8/builders/V8%20GC%20Stress%20-%202/builds/3968

Original issue's description:
> [strong] Add tests for loading from proxy, super, with access checks
>
> Followup for https://codereview.chromium.org/1168093002/
>
> These seem to already function correctly without the need for further runtime
> changes.
>
> There will be a final follow-up for interceptors.
>
> BUG=v8:3956
> LOG=N
>
> Committed: https://crrev.com/ea4e568363f48955e7de6b538e559132e9899c86
> Cr-Commit-Position: refs/heads/master@{#29389}

TBR=rossberg@chromium.org,conradw@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3956

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

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

9 years ago[strong] Add tests for loading from proxy, super, with access checks
conradw [Tue, 30 Jun 2015 17:13:08 +0000 (10:13 -0700)]
[strong] Add tests for loading from proxy, super, with access checks

Followup for https://codereview.chromium.org/1168093002/

These seem to already function correctly without the need for further runtime
changes.

There will be a final follow-up for interceptors.

BUG=v8:3956
LOG=N

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

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

9 years agoFix cluster-fuzz found regression in d8 Workers
binji [Tue, 30 Jun 2015 16:48:58 +0000 (09:48 -0700)]
Fix cluster-fuzz found regression in d8 Workers

v8::Internal::List will DCHECK when indexing out of the array, even if just to
get the address, and the value is never used. So this construct will fail:

    memcpy(p, &data[0], length);

When data is empty and length is 0.

BUG=chromium:505778
R=mstarzinger@chromium.org
LOG=n

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

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

9 years agoFix bug when optimized code map is evicted.
mstarzinger [Tue, 30 Jun 2015 16:47:04 +0000 (09:47 -0700)]
Fix bug when optimized code map is evicted.

This makes sure that both, the shared function info and it's optimized
code map get revisited when the code map is evicted from the flusher.

R=hpayer@chromium.org
TEST=mjsunit/debug-set-variable-value

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

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

9 years agoDisable zapping of code space.
hpayer [Tue, 30 Jun 2015 16:28:59 +0000 (09:28 -0700)]
Disable zapping of code space.

BUG=

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

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

9 years agoUse correct LookupIterator in CallSite::GetMethodName.
yangguo [Tue, 30 Jun 2015 16:27:49 +0000 (09:27 -0700)]
Use correct LookupIterator in CallSite::GetMethodName.

R=verwaest@chromium.org
BUG=chromium:505370
LOG=N

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

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

9 years ago[strong] Implement strong property access semantics
conradw [Tue, 30 Jun 2015 15:24:27 +0000 (08:24 -0700)]
[strong] Implement strong property access semantics

Revert "Revert relanded strong property access CL"

Regression issues should be solved. Initial patchset is the original, subsequent patchsets are the fixing modifications.

This reverts commit 4ac7be56568f0ac71e7bf10e8bec33c33893e5b5.

BUG=v8:3956
LOG=N

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

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

9 years agoRevert of Let GC select the collector when the external memory allocation limit is...
jochen [Tue, 30 Jun 2015 15:14:36 +0000 (08:14 -0700)]
Revert of Let GC select the collector when the external memory allocation limit is reached (patchset #1 id:1 of https://codereview.chromium.org/1201993002/)

Reason for revert:
results in a scavenge storm if scavenge doesn't free enough memory

Original issue's description:
> Let GC select the collector when the external memory allocation limit is reached
>
> BUG=none
> R=hpayer@chromium.org
> LOG=n
>
> Committed: https://crrev.com/93d6216099b60e95bc816bcc913f8f841ee795b6
> Cr-Commit-Position: refs/heads/master@{#29235}

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

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

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

9 years agoPPC: Clean up copy args loop in Generate_JSConstructStubHelper.
mbrandy [Tue, 30 Jun 2015 14:31:01 +0000 (07:31 -0700)]
PPC: Clean up copy args loop in Generate_JSConstructStubHelper.

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

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

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

9 years ago[strong] Implement strong mode semantics for the count operation.
conradw [Tue, 30 Jun 2015 14:21:51 +0000 (07:21 -0700)]
[strong] Implement strong mode semantics for the count operation.

Also fixes a crankshaft bug with strong implicit conversions.

It turns out that the implicit conversion of oddball values
is smushed into so many places in crankshaft that it would
have been pretty invasive surgery to make everything fall
out naturally.

BUG=v8:3956
LOG=N

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

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

9 years ago[turbofan] Move MulHigh asr onto add on ARM64
martyn.capewell [Tue, 30 Jun 2015 13:40:00 +0000 (06:40 -0700)]
[turbofan] Move MulHigh asr onto add on ARM64

Move the arithmetic shift from Int32MulHigh to a following Int32Add on ARM64.
This graph is commonly generated on reduction of signed integer division.

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

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

9 years agoDirectly remove slot buffer entries in deoptimized code objects.
hpayer [Tue, 30 Jun 2015 13:32:02 +0000 (06:32 -0700)]
Directly remove slot buffer entries in deoptimized code objects.

BUG=

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

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

9 years ago[turbofan] Add CalleeSavedFPRegisters to CallDescriptor.
akos.palfi [Tue, 30 Jun 2015 13:22:36 +0000 (06:22 -0700)]
[turbofan] Add CalleeSavedFPRegisters to CallDescriptor.

This change makes possible to save and restore the FP registers
in the Prologue and Return parts for the CallAddress kind functions.

TEST=test-simplified-lowering/RunNumberDivide_2_TruncatingToUint32,
     test-simplified-lowering/RunNumberMultiply_TruncatingToUint32

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

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

9 years agoRegister array buffer right after writing it into the object
jochen [Tue, 30 Jun 2015 12:40:37 +0000 (05:40 -0700)]
Register array buffer right after writing it into the object

BUG=chromium:504875
R=hpayer@chromium.org
LOG=n

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

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

9 years ago[turbofan] Disallow cross native context inlining.
bmeurer [Tue, 30 Jun 2015 11:38:19 +0000 (04:38 -0700)]
[turbofan] Disallow cross native context inlining.

R=jarin@chromium.org

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

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

9 years agoRemoving hablich from auto CC of x87
hablich [Tue, 30 Jun 2015 11:29:51 +0000 (04:29 -0700)]
Removing hablich from auto CC of x87

R=machenbach@chromium.org
BUG=v8:4135
NOTRY=true
LOG=N

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

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

9 years ago[turbofan] Disable recursive inlining for now.
bmeurer [Tue, 30 Jun 2015 11:05:03 +0000 (04:05 -0700)]
[turbofan] Disable recursive inlining for now.

The deoptimizer (and probably various other places) cannot deal properly
with recursive function inlining, so we disallow it in TurboFan as well.
We might want to reconsider that decision at some point in the future.

R=jarin@chromium.org

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

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

9 years agoRemove outdated ban on lazy compilation due to scope chain.
yangguo [Tue, 30 Jun 2015 11:01:23 +0000 (04:01 -0700)]
Remove outdated ban on lazy compilation due to scope chain.

R=ulan@chromium.org

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

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

9 years agoFix clobbered register when setting this_function variable.
mstarzinger [Tue, 30 Jun 2015 10:38:59 +0000 (03:38 -0700)]
Fix clobbered register when setting this_function variable.

Reland of https://crrev.com/bf2bbc8ba508ccd21edf3c08d2e4192c4764ae91

R=bmeurer@chromium.org
TEST=mjsunit/regress/regress-crbug-498022
BUG=chromium:498022
LOG=N

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

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

9 years agoVector ICs: Changes to the IC system to support vector-based stores.
mvstanton [Tue, 30 Jun 2015 09:51:43 +0000 (02:51 -0700)]
Vector ICs: Changes to the IC system to support vector-based stores.

BUG=

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

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

9 years agoDebugger: allow recompiling toplevel code for debugging.
yangguo [Tue, 30 Jun 2015 09:43:40 +0000 (02:43 -0700)]
Debugger: allow recompiling toplevel code for debugging.

R=mvstanton@chromium.org
BUG=v8:4132
LOG=N

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

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

9 years agoA couple of other "stack overflow" vs. "has_pending_exception()" issues in debugger...
ishell [Tue, 30 Jun 2015 08:30:07 +0000 (01:30 -0700)]
A couple of other "stack overflow" vs. "has_pending_exception()" issues in debugger fixed.

BUG=chromium:505007
LOG=N

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

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

9 years agoFix Android ARM build error.
jarin [Tue, 30 Jun 2015 08:24:44 +0000 (01:24 -0700)]
Fix Android ARM build error.

Also removed some unused classes.

BUG=

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

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

9 years agoIncrease code space allowance for first page size.
yangguo [Tue, 30 Jun 2015 07:48:23 +0000 (00:48 -0700)]
Increase code space allowance for first page size.

This has become necessary as we have more experimental natives
that run after deserializing from the snapshot.

R=hpayer@chromium.org
BUG=v8:4200
LOG=N

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

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

9 years ago[turbofan] Remove explicit context specialization from inlining.
bmeurer [Tue, 30 Jun 2015 07:37:21 +0000 (00:37 -0700)]
[turbofan] Remove explicit context specialization from inlining.

Ideally inliner itself should not deal with context specialization at
all, since this is all handled in the pipeline instead (actually
inlining already runs together with context specialization), and the
inlining logic should not care about the specialization mode.

R=jarin@chromium.org

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

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

9 years ago[turbofan] Remove unused constructor function matching from typer.
bmeurer [Tue, 30 Jun 2015 07:36:16 +0000 (00:36 -0700)]
[turbofan] Remove unused constructor function matching from typer.

This optimization never triggers currently, and is inherently native
context dependent for no real reason (for example it will not properly
detect those constructors in the case of cross native context inlining),
plus it is slow and awkward.  In case we really need this functionality
at some point, we should find a way to make it work with the builtin
function id mechanism that is already in place to match other builtins.

R=jarin@chromium.org,rossberg@chromium.org

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

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

9 years ago[turbofan] Return constant type for functions with unknown parameter count.
bmeurer [Tue, 30 Jun 2015 07:35:07 +0000 (00:35 -0700)]
[turbofan] Return constant type for functions with unknown parameter count.

R=jarin@chromium.org

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

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

9 years agoDebugger: rename variables to avoid shadowing.
yangguo [Tue, 30 Jun 2015 07:08:02 +0000 (00:08 -0700)]
Debugger: rename variables to avoid shadowing.

TBR=brucedawson@chromium.org

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

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

9 years ago[turbofan] Fix exit control flow in TryCatchBuilder.
mstarzinger [Tue, 30 Jun 2015 03:23:30 +0000 (20:23 -0700)]
[turbofan] Fix exit control flow in TryCatchBuilder.

This makes sure that the exit control flow that merges the try-block
with the catch-block after a try-catch-statement creates a new merge
node in cases where it has to. Otherwise dangling phi nodes might have
the wrong number of value inputs.

R=bmeurer@chromium.org
TEST=mjsunit/regress/regress-crbug-505354
BUG=chromium:505354
LOG=N

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

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

9 years agoMark SizeOfFirstPageIsLargeEnough failing on mips64
littledan [Tue, 30 Jun 2015 00:44:43 +0000 (17:44 -0700)]
Mark SizeOfFirstPageIsLargeEnough failing on mips64

The failure was been triggered by turning on --harmony-arrays,
maybe because code size was increased or code was added later
in the bootstrap process. Because it doesn't look like a bug
in anything guarded by --harmony-arrays directly, I'd suggest
shipping the flag and disabling the test on the architectures
where it's been observed to fail. It's already disabled on arm64
and this patch disables it on mips64 as well.

BUG=v8:4200
LOG=N
R=adamk

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

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

9 years agoPPC: [es6] Make new.target work in functions
mbrandy [Mon, 29 Jun 2015 21:31:08 +0000 (14:31 -0700)]
PPC: [es6] Make new.target work in functions

Port 7a63bf77eb7610afdc1a968f7660781e5160ba8d

Original commit message:
This makes new.target work in [[Call]] and [[Construct]] of ordinary
functions.

We achieve this by introducing a new construct stub for functions that
uses the new.target variable. The construct stub pushes the original
constructor just above the receiver in the construct frame.

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

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

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

9 years ago[es6] Reenable new.target + Reflect.construct tests
arv [Mon, 29 Jun 2015 19:12:01 +0000 (12:12 -0700)]
[es6] Reenable new.target + Reflect.construct tests

BUG=v8:3887
LOG=N
R=caitpotter88@gmail.com, adamk@chromium.org

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

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

9 years ago[es6] Make new.target work in functions
arv [Mon, 29 Jun 2015 18:29:20 +0000 (11:29 -0700)]
[es6] Make new.target work in functions

This makes new.target work in [[Call]] and [[Construct]] of ordinary
functions.

We achieve this by introducing a new construct stub for functions that
uses the new.target variable. The construct stub pushes the original
constructor just above the receiver in the construct frame.

BUG=v8:3887
LOG=N
R=adamk@chromium.org, dslomov@chromium.org

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

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

9 years ago[es6] Make sure we do not invoke setter when calling Promise.all
arv [Mon, 29 Jun 2015 18:14:29 +0000 (11:14 -0700)]
[es6] Make sure we do not invoke setter when calling Promise.all

We were calling the setter for Object.prototype.promise if it existed
when calling PromiseAll.

BUG=v9:4232
LOG=N
R=rossberg@chromium.org, adamk@chromium.org

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

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

9 years agoMIPS: skip embenchen/zlib test.
paul.lind [Mon, 29 Jun 2015 17:25:03 +0000 (10:25 -0700)]
MIPS: skip embenchen/zlib test.

zlib is broken for mips after 35eb3a0260d349cb4201fed66ff62a438962bd47.

We're still working on a fix. Skip test for now, so the bots cycle green.

BUG=

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

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

9 years agoEnsure mjsunit tests use dashes not underscores in flags directives.
oth [Mon, 29 Jun 2015 17:08:00 +0000 (10:08 -0700)]
Ensure mjsunit tests use dashes not underscores in flags directives.

BUG=chromium:505228
LOG=Y

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

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

9 years agoParse eagerly inside block scopes.
yangguo [Mon, 29 Jun 2015 16:16:05 +0000 (09:16 -0700)]
Parse eagerly inside block scopes.

Only this way we can precisely determine how to allocate let variables
inside the scope.

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

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

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

9 years agoMIPS: Update cctest status file for mips[be].
dusan.milosavljevic [Mon, 29 Jun 2015 16:11:07 +0000 (09:11 -0700)]
MIPS: Update cctest status file for mips[be].

Enable skipped test-api/RequestInterruptTestWith* after:
https://codereview.chromium.org/1220443002/

TEST=
BUG=

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

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

9 years ago[turbofan] Greedy allocator refactoring.
mtrofin [Mon, 29 Jun 2015 15:56:26 +0000 (08:56 -0700)]
[turbofan] Greedy allocator refactoring.

Separated core greedy allocator concepts, exposing the APIs we would want to continue working with. In particular, this change completely reworks CoalescedLiveRanges to reflect the fact that we expect more than one possible conflict, scrapping the initial design of the structure. Since this is a critical part of the design, this change may be thought of as a full rewrite of the algorithm.

Reduced all heuristics to just 2 essential ones: split "somewhere", which we'll still need when all other heuristics fail; and spill.

Introduced a simple primitive for splitting - at GapPosition::START. The goal is to use such primitives to quickly and reliably author heuristics.

I expected this primitive to "just work" for any arbitrary instruction index within a live range - e.g. its middle. That's not the case, it seems to upset execution in certain scenarios. Restricting to either before/after use positions seems to work. I'm still investigating what the source of failures is in the case of "arbitrary instruction in the range" case.

I intended to document the rationale and prove the soundness of always using START for splits, but I will postpone to after this last remaining issue is resolved.

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

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

9 years agoFix cluster-fuzz found regression in d8 Workers.
binji [Mon, 29 Jun 2015 15:53:08 +0000 (08:53 -0700)]
Fix cluster-fuzz found regression in d8 Workers.

This one occurs when Function.prototype.toString is overridden to return a
non-string.

BUG=chromium:504729
R=mstarzinger@chromium.org
LOG=n

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

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

9 years agoFix cluster-fuzz found regression in d8 Workers.
binji [Mon, 29 Jun 2015 15:48:24 +0000 (08:48 -0700)]
Fix cluster-fuzz found regression in d8 Workers.

Dumb typo introduced in refs/heads/master@{#29306}. I thought I was turning on
report_exceptions in Shell::ExecuteString, but instead I turned on print_result
(which assumes an interactive debugger and a HandleScope for the
utility_context_).

BUG=chromium:504727,chromium:504728
R=mstarzinger@chromium.org
LOG=n

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

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

9 years ago[android] Remove legacy architecture configs from perf runner.
machenbach [Mon, 29 Jun 2015 15:07:15 +0000 (08:07 -0700)]
[android] Remove legacy architecture configs from perf runner.

The android_* configs were never real v8 target
architectures, only make targets. This doesn't make sense
with ninja anymore.

BUG=chromium:502176
LOG=n
NOTRY=true

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

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

9 years agoAvoid allocations during ArrayBuffer initialization.
ishell [Mon, 29 Jun 2015 14:29:42 +0000 (07:29 -0700)]
Avoid allocations during ArrayBuffer initialization.

BUG=chromium:505367
LOG=N

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

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

9 years agoAssertion failure when using --log-regexp
Djordje.Pesic [Mon, 29 Jun 2015 13:53:59 +0000 (06:53 -0700)]
Assertion failure when using --log-regexp

RegExpCompileEvent acquieres mutex from Log class during MessageBuilder creation. LogRegExpSource, called from RegExpCompileEvent creates another MessageBuilder object which also acquires the same mutex. This mutex is not recursive, so during second acquirement, assertion fail is happening. Solution: LogRegExpSource should use the same MessageBuilder object as RegExpCompileEvent.

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

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

9 years agoFix flag convention in handle count tests and comment.
oth [Mon, 29 Jun 2015 13:40:42 +0000 (06:40 -0700)]
Fix flag convention in handle count tests and comment.

BUG=505228
LOG=Y

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

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

9 years agoRevert of Use third_party clang on Mac. (patchset #4 id:60001 of https://codereview...
machenbach [Mon, 29 Jun 2015 13:06:25 +0000 (06:06 -0700)]
Revert of Use third_party clang on Mac. (patchset #4 id:60001 of https://codereview.chromium.org/1200833013/)

Reason for revert:
[Sheriff] Breaks mac on the main waterfall (though not on the tryserver):
http://build.chromium.org/p/client.v8/builders/V8%20Mac64/builds/3925

Original issue's description:
> Use third_party clang on Mac.
>
> BUG=
>
> Committed: https://crrev.com/57b20413294940476ab2b2e71ed0802aaf8c223f
> Cr-Commit-Position: refs/heads/master@{#29343}

TBR=danno@chromium.org,jkummerow@chromium.org,paul.lind@imgtec.com,akos.palfi@imgtec.com,balazs.kilvady@imgtec.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

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

9 years agoWhitespace change to test android ninja/goma switch.
Michael Achenbach [Mon, 29 Jun 2015 12:53:51 +0000 (14:53 +0200)]
Whitespace change to test android ninja/goma switch.

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

9 years agoUse third_party clang on Mac.
balazs.kilvady [Mon, 29 Jun 2015 12:27:53 +0000 (05:27 -0700)]
Use third_party clang on Mac.

BUG=

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

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

9 years agoUsing "defined" in macro causes undefined behavior.
bmeurer [Mon, 29 Jun 2015 11:47:50 +0000 (04:47 -0700)]
Using "defined" in macro causes undefined behavior.

R=svenpanne@chromium.org

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

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

9 years ago[android] Configure building android with ninja and clang.
machenbach [Mon, 29 Jun 2015 10:47:20 +0000 (03:47 -0700)]
[android] Configure building android with ninja and clang.

Make clang dir absolute to avoid differences between ninja
and make gyp generator.

BUG=chromium:502176
LOG=n

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

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

9 years ago[turbofan] Add typing rules for the typeof operator.
bmeurer [Mon, 29 Jun 2015 08:08:17 +0000 (01:08 -0700)]
[turbofan] Add typing rules for the typeof operator.

R=jarin@chromium.org

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

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

9 years agoMeaningful name for builtins in JitCodeEvent API.
ben [Mon, 29 Jun 2015 07:36:48 +0000 (00:36 -0700)]
Meaningful name for builtins in JitCodeEvent API.

Report builtins by name (e.g. "Builtin:ArgumentsAdaptorTrampoline")
instead of labeling everything "Builtin:A builtin from the snapshot".

BUG=

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

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

9 years agoFix gn build deps.
machenbach [Sat, 27 Jun 2015 19:39:42 +0000 (12:39 -0700)]
Fix gn build deps.

Fix c/p error from https://codereview.chromium.org/1217483002/

TBR=jochen@chromium.org

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

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

9 years ago[destructuring] Re-index materialized literals in arrow function parameters.
dslomov [Fri, 26 Jun 2015 21:39:43 +0000 (14:39 -0700)]
[destructuring] Re-index materialized literals in arrow function parameters.

R=wingo@igalia.com
BUG=v8:811
LOG=N

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

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

9 years ago[es6] Remove harmony-classes flag
arv [Fri, 26 Jun 2015 21:16:42 +0000 (14:16 -0700)]
[es6] Remove harmony-classes flag

Move class tests to es6 directory

BUG=v8:3330
LOG=N
R=adamk

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

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

9 years agoPPC: VectorICs: Lithium support for vector-based stores.
mbrandy [Fri, 26 Jun 2015 19:50:52 +0000 (12:50 -0700)]
PPC: VectorICs: Lithium support for vector-based stores.

Port 8a3cf4ecef1fce76137270845604292bdbdadcd4

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

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

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

9 years ago[es6] Remove harmony-object-literal flag
arv [Fri, 26 Jun 2015 19:49:43 +0000 (12:49 -0700)]
[es6] Remove harmony-object-literal flag

And move tests to es6 directory

BUG=v8:3516
LOG=N
R=adamk@chromium.org, rossberg@chromium.org

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

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

9 years agoPPC: [turbofan] Canonicalize return sequence for JSFunctions.
mbrandy [Fri, 26 Jun 2015 19:48:32 +0000 (12:48 -0700)]
PPC: [turbofan] Canonicalize return sequence for JSFunctions.

Port 2b9112a578f66fc976557aededf3e203f48c395e

Original commit message:
This optimization is already implemented in fullcodegen, and
basically makes sure that we do not unecessarily blow up the
code with duplicated return sequences everywhere.

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

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

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

9 years agotest262-es6: Add entry for asi test
Erik Arvidsson [Fri, 26 Jun 2015 19:33:11 +0000 (15:33 -0400)]
test262-es6: Add entry for asi test

The test language/asi/S7.9_A5.7_T1 is failing intermittently.

BUG=v8:4253
LOG=N
TBR=adamk

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

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

9 years agoMIPS: Fix unpredictable random failures after direct api function call.
dusan.milosavljevic [Fri, 26 Jun 2015 16:54:01 +0000 (09:54 -0700)]
MIPS: Fix unpredictable random failures after direct api function call.

The use of jalr ra is unpredictable if instruction in branch delay slot
is in next page.

This finally fixes random failures in JS debugger and InteruptRequest tests.

TEST=mjsunit/debug-*,
     cctest/test-api/RequestInterruptTestWithNativeAccessor
BUG=

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

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

9 years agoPut getter functions on Script line-endings objects
erikcorry [Fri, 26 Jun 2015 14:58:51 +0000 (07:58 -0700)]
Put getter functions on Script line-endings objects

This is a step towards having Blink no longer look directly at the
line endings array.  That prevented https://codereview.chromium.org/1137683003/
from landing.  Next step, after the roll, will be using these
functions in Blink.
R=jochen@chromium.org
BUG=

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

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

9 years agoClassify all test262-es6 failures
arv [Fri, 26 Jun 2015 14:39:24 +0000 (07:39 -0700)]
Classify all test262-es6 failures

File bugs for all failing tests in test262-es6.

There are still some old "needs investigation" failures that I didn't
investigate.

BUG=N
LOG=N
R=littledan@chromium.org, adamk@chromium.org

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

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

9 years agoFix missing source dependencies.
machenbach [Fri, 26 Jun 2015 14:24:42 +0000 (07:24 -0700)]
Fix missing source dependencies.

BUG=

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

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

9 years agoDebugger: use list to find shared function info in a script.
yangguo [Fri, 26 Jun 2015 13:53:26 +0000 (06:53 -0700)]
Debugger: use list to find shared function info in a script.

Now that we keep tabs on shared function infos from a script, we can speed up finding shared function infos for debugging. However, in case we have to compile a function that cannot be lazily compiled without context, we fall back to the slow heap iteration.

R=mstarzinger@chromium.org
BUG=v8:4132,v8:4052
LOG=N

Committed: https://crrev.com/cfe89a71a332ef9ed481c8210bc3ad6d2822034b
Cr-Commit-Position: refs/heads/master@{#29296}

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

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

9 years agoMark function info as compiled after EnsureDeoptimizationSupport.
yangguo [Fri, 26 Jun 2015 13:16:57 +0000 (06:16 -0700)]
Mark function info as compiled after EnsureDeoptimizationSupport.

Note that prior to having canonical shared function infos, this has
been a source of duplicate shared function infos.

R=bmeurer@chromium.org
BUG=chromium:504787
LOG=N

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

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

9 years agoDefault-enable external startup snapshot for more types of builds.
vogelheim [Fri, 26 Jun 2015 12:45:23 +0000 (05:45 -0700)]
Default-enable external startup snapshot for more types of builds.

BUG=

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

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

9 years ago[turbofan] Also update the BranchHint when merging a BooleanNot.
bmeurer [Fri, 26 Jun 2015 12:08:11 +0000 (05:08 -0700)]
[turbofan] Also update the BranchHint when merging a BooleanNot.

R=svenpanne@chromium.org

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

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

9 years agoReland [android] Migrate more configs to gyp.
machenbach [Fri, 26 Jun 2015 12:03:54 +0000 (05:03 -0700)]
Reland [android] Migrate more configs to gyp.

This reverts commit e93e4dad632a019c6a863c7dd43491b607d6d096.

BUG=chromium:502176
LOG=n
NOTRY=true
TBR=ulan@chromium.org, jochen@chromium.org

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

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

9 years agoReland 'Additional HandleScopes to limit Handle consumption.'
oth [Fri, 26 Jun 2015 10:58:09 +0000 (03:58 -0700)]
Reland 'Additional HandleScopes to limit Handle consumption.'

v8 builds with --no-snap were hitting handle limits compiling natives for handle count unit tests that run with --check_handle_count. Patch now has higher handle limits (~4k more than required for failing natives compilation).

Original issue: https://codereview.chromium.org/1185633002/

Original issue's description:
    > Additional HandleScopes to limit Handle consumption.
    >
    > erikcorry@chromium.org suggested digging into v8 handle usage. Found potential scopes in ast.cc and runtime-literals.cc and added tests.
    >
    > The runtime-literals.cc change reduces peak handles in imaging-darkroom.js from 1,282,610 to 428,218. The ast.cc change reduces the peak handles in string-t
agcloud.js from 80,738 to 8,176.
    >
    > No significant handle count issues found with major websites, but substantial savings on some benchmarks and demos:
    >
    > Kraken's imaging-darkroom.js down from 1,282,610 to 428,218 due to runtime-literals.cc scope.
    > SunSpider's string-tagcloud.js down from 80,738 to 8.176 due to ast.cc
    >
    > http://www.flohofwoe.net/demos/dragons_asmjs.html (738,906 -> 478,296)
    > http://www.flohofwoe.net/demos/instancing_asmjs.html (737,884 -> 477,274)
    > https://dl.dropboxusercontent.com/u/16662598/Ports/DOSBox-web/doom.html?engine=dosbox-growth.js (1,724,114 -> 1,087,408)
    > https://kripken.github.io/ammo.js/examples/new/ammo.html (175,784 -> 142,058)
    >
    > BUG=
    >
    > Committed: https://crrev.com/3a4c7538839186aa38910c66c986abb563f4ccd2
    > Cr-Commit-Position: refs/heads/master@{#29155}

BUG=

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

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

9 years ago[turbofan] Enable sharing of context-independent code.
mstarzinger [Fri, 26 Jun 2015 10:56:22 +0000 (03:56 -0700)]
[turbofan] Enable sharing of context-independent code.

R=bmeurer@chromium.org

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

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

9 years agoRevert of Re-land new insertion write barrier. (patchset #1 id:1 of https://coderevie...
hpayer [Fri, 26 Jun 2015 10:52:46 +0000 (03:52 -0700)]
Revert of Re-land new insertion write barrier. (patchset #1 id:1 of https://codereview.chromium.org/1211513002/)

Reason for revert:
Still crashing in the wild.

Original issue's description:
> Re-land new insertion write barrier.
>
> BUG=
>
> Committed: https://crrev.com/6e6af7e7c70050cdd5ce56cdbaee3b6e8a7caa89
> Cr-Commit-Position: refs/heads/master@{#29258}

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

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

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

9 years agoRevert of Reland [android] Migrate more configs to gyp. (patchset #2 id:20001 of...
machenbach [Fri, 26 Jun 2015 10:39:09 +0000 (03:39 -0700)]
Revert of Reland [android] Migrate more configs to gyp. (patchset #2 id:20001 of https://codereview.chromium.org/1210393003/)

Reason for revert:
[Sheriff] Fails runhooks.

Original issue's description:
> Reland [android] Migrate more configs to gyp.
>
> This reverts commit 3e8892b589f16454d4f592e2ed3f6d4ddf0a0bc6.
>
> BUG=chromium:502176
> LOG=n
> NOTRY=true
> TBR=ulan@chromium.org, jochen@chromium.org
>
> Committed: https://crrev.com/c0d70e43c4cbe2a09c8f1bd55fe2be03cd9ba041
> Cr-Commit-Position: refs/heads/master@{#29317}

TBR=ulan@chromium.org,jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:502176

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

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

9 years ago[tools] Add a tool to show potentially missing source deps.
machenbach [Fri, 26 Jun 2015 10:35:12 +0000 (03:35 -0700)]
[tools] Add a tool to show potentially missing source deps.

NOTRY=true

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

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

9 years agoReland [android] Migrate more configs to gyp.
machenbach [Fri, 26 Jun 2015 10:33:23 +0000 (03:33 -0700)]
Reland [android] Migrate more configs to gyp.

This reverts commit 3e8892b589f16454d4f592e2ed3f6d4ddf0a0bc6.

BUG=chromium:502176
LOG=n
NOTRY=true
TBR=ulan@chromium.org, jochen@chromium.org

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

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

9 years agoRevert of [android] Migrate more configs to gyp. (patchset #4 id:60001 of https:...
bmeurer [Fri, 26 Jun 2015 10:02:16 +0000 (03:02 -0700)]
Revert of [android] Migrate more configs to gyp. (patchset #4 id:60001 of https://codereview.chromium.org/1207693004/)

Reason for revert:
Breaks arm64 bots.

Original issue's description:
> [android] Migrate more configs to gyp.
>
> BUG=chromium:502176
> LOG=n
>
> Committed: https://crrev.com/174869573e42c999da1489c264b9c4602b98ba31
> Cr-Commit-Position: refs/heads/master@{#29314}

TBR=jochen@chromium.org,ulan@chromium.org,dusan.milosavljevic@imgtec.com,machenbach@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:502176

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

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

9 years ago[turbofan] Canonicalize return sequence for JSFunctions.
bmeurer [Fri, 26 Jun 2015 09:34:32 +0000 (02:34 -0700)]
[turbofan] Canonicalize return sequence for JSFunctions.

This optimization is already implemented in fullcodegen, and
basically makes sure that we do not unecessarily blow up the
code with duplicated return sequences everywhere.

R=danno@chromium.org

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

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

9 years ago[android] Migrate more configs to gyp.
machenbach [Fri, 26 Jun 2015 09:19:11 +0000 (02:19 -0700)]
[android] Migrate more configs to gyp.

BUG=chromium:502176
LOG=n

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

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

9 years ago[turbofan] Implement sharing of context-independent code.
mstarzinger [Fri, 26 Jun 2015 09:07:30 +0000 (02:07 -0700)]
[turbofan] Implement sharing of context-independent code.

This allows context-independent code generated by TurboFan to be cached
in the optimized code map and reused across native contexts. Note that
currently this cache is still flushed at GC time.

R=bmeurer@chromium.org,mvstanton@chromium.org
TEST=cctest/test-compiler/OptimizedCodeSharing

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

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

9 years agoRevert of Debugger: use list to find shared function info in a script. (patchset...
machenbach [Fri, 26 Jun 2015 08:22:00 +0000 (01:22 -0700)]
Revert of Debugger: use list to find shared function info in a script. (patchset #2 id:20001 of https://codereview.chromium.org/1206573004/)

Reason for revert:
[Sheriff] Breaks layout tests:
http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/682

Original issue's description:
> Debugger: use list to find shared function info in a script.
>
> Now that we keep tabs on shared function infos from a script, we can speed up finding shared function infos for debugging. However, in case we have to compile a function that cannot be lazily compiled without context, we fall back to the slow heap iteration.
>
> R=mstarzinger@chromium.org
> BUG=v8:4132,v8:4052
> LOG=N
>
> Committed: https://crrev.com/cfe89a71a332ef9ed481c8210bc3ad6d2822034b
> Cr-Commit-Position: refs/heads/master@{#29296}

TBR=mstarzinger@chromium.org,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4132,v8:4052

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

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

9 years ago[turbofan] Add support for pushing returns into merges.
bmeurer [Fri, 26 Jun 2015 08:20:53 +0000 (01:20 -0700)]
[turbofan] Add support for pushing returns into merges.

This will enable tail call optimization even across inlining. Plus it
might enable some other interesting optimizations as well. In order to
avoid blowing up the generated code, we can still canonicalize the
epilogue in the CodeGenerator, similar to what fullcodegen does.

R=jarin@chromium.org

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

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

9 years agoVectorICs: Lithium support for vector-based stores.
mvstanton [Fri, 26 Jun 2015 07:53:21 +0000 (00:53 -0700)]
VectorICs: Lithium support for vector-based stores.

BUG=

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

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

9 years ago[turbofan] Use proper eager deopts for %_ThrowNotDateError().
bmeurer [Fri, 26 Jun 2015 05:56:00 +0000 (22:56 -0700)]
[turbofan] Use proper eager deopts for %_ThrowNotDateError().

R=jarin@chromium.org

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

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

9 years agoSerializer: commit new internalized strings after deserialization.
yangguo [Thu, 25 Jun 2015 19:04:21 +0000 (12:04 -0700)]
Serializer: commit new internalized strings after deserialization.

Reserving space for deserialization can cause GC, which
can evict entries from the string table. Having more deleted
entries now, StringTable::EnsureCapacity could cause a GC
later during deserialization even when we actually still
have enough capacity.

Instead, we now keep new internalized strings in a separate list
and commit them to the string table at the end.

R=ulan@chromium.org
BUG=chromium:502085
LOG=N

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

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

9 years agoPPC64: Fix "[ic] Record call counts for monomorphic calls made with an IC."
mbrandy [Thu, 25 Jun 2015 19:03:11 +0000 (12:03 -0700)]
PPC64: Fix "[ic] Record call counts for monomorphic calls made with an IC."

StoreP to a tagged object pointer requires a scratch register.

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

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

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

9 years agoFix cluster-fuzz regression when getting message from Worker
binji [Thu, 25 Jun 2015 18:01:11 +0000 (11:01 -0700)]
Fix cluster-fuzz regression when getting message from Worker

The issue is that Worker.prototype.terminate was deleting the C++ Worker
object, and then Worker.prototype.getMessage was trying to read messages from
the queue.

The simplest solution is to keep workers in a zombie state when they have been
terminated. They won't be reaped until Shell::CleanupWorkers is called.

I've also fixed some threading issues with Workers:

* Workers can be created by another Worker, so the Shell::workers_ variable
must be protected by a mutex.

* An individual Worker can typically only be accessed by the isolate that
created it, but the main thread can always terminate it, so the Worker::state_
must be accessed in a thread-safe way.

BUG=chromium:504136
R=jochen@chromium.org
LOG=n

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

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

9 years agoMIPS: [turbofan] Fix implementation of Float64Min.
balazs.kilvady [Thu, 25 Jun 2015 17:59:43 +0000 (10:59 -0700)]
MIPS: [turbofan] Fix implementation of Float64Min.

Port d783b763629526a1ec57a9f14caa61d0166efac7

Original commit message:
ARM64's `fmin` and `fmax` instructions don't have the same behaviour as
TurboFan's Float(32|64)(Min|Max) functions.

BUG=4206
LOG=N

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

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