platform/upstream/v8.git
9 years agoMIPS64: Improve '[strong] Check arity of functions'
akos.palfi [Mon, 11 May 2015 23:07:43 +0000 (16:07 -0700)]
MIPS64: Improve '[strong] Check arity of functions'

Port 3226e980200035f37c86fef4b11fb307e17764a2

BUG=

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

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

9 years ago[es6] stage Object.assign() / --harmony-object
caitpotter88 [Mon, 11 May 2015 22:53:41 +0000 (15:53 -0700)]
[es6] stage Object.assign() / --harmony-object

BUG=v8:4007
LOG=N
R=

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

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

9 years agoPPC: [strong] Check arity of functions
mbrandy [Mon, 11 May 2015 19:08:49 +0000 (12:08 -0700)]
PPC: [strong] Check arity of functions

Port 3226e980200035f37c86fef4b11fb307e17764a2

Original commit message:
In strong mode it is an error to call a function with too few
arguments.

This is enforced inside the ArgumentsAdaptorTrampoline.

This does not yet handle rest parameters

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

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

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

9 years agoMIPS: Fix Add a MathFloor stub generated with TurboFan.
paul.lind [Mon, 11 May 2015 18:49:54 +0000 (11:49 -0700)]
MIPS: Fix Add a MathFloor stub generated with TurboFan.

Port abc35080b33cc31e47b9913e64ac99ec687c6b65

BUG=

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

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

9 years ago[strong] Check arity of functions
arv [Mon, 11 May 2015 17:20:43 +0000 (10:20 -0700)]
[strong] Check arity of functions

In strong mode it is an error to call a function with too few
arguments.

This is enforced inside the ArgumentsAdaptorTrampoline.

This does not yet handle rest parameters

BUG=v8:3956
LOG=N
R=rossberg@chromium.org, dslomov@chromium.org

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

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

9 years ago[destructuring] Implement basic binding destructuring infrastructure
dslomov [Mon, 11 May 2015 16:28:28 +0000 (09:28 -0700)]
[destructuring] Implement basic binding destructuring infrastructure

This patch:
  - Refactors Parser::ParseVariableDeclarations
  - Introduces Parser::PatternMatcher class
  - Implements matching a single variable pattern
  - Implements rudimentary matching against object literal pattern
    as a proof of concept

R=arv@chromium.org,rossberg@chromium.org
BUG=v8:811
LOG=N

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

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

9 years agoAdd a bailout id just before every variable load in fullcode.
titzer [Mon, 11 May 2015 15:56:07 +0000 (08:56 -0700)]
Add a bailout id just before every variable load in fullcode.

R=jarin@chromium.org
BUG=

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

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

9 years agoRemove Scope::scope_uses_this_ flag
wingo [Mon, 11 May 2015 15:42:19 +0000 (08:42 -0700)]
Remove Scope::scope_uses_this_ flag

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

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

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

9 years agoPPC: Resolve references to "this" the same way as normal variables
mbrandy [Mon, 11 May 2015 14:34:31 +0000 (07:34 -0700)]
PPC: Resolve references to "this" the same way as normal variables

Port bd56d279b612f92d2d1d25f92d32fe7f42a455ca

Original commit message:
Make the parser handle references to "this" as unresolved variables, so the
same logic as for the rest of function parameters is used for the receiver.
Minor additions to the code generation handle copying the receiver to the
context, along with the rest of the function parameters.

Based on work by Adrian Perez de Castro <aperez@igalia.com>.

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

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

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

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

9 years agoPPC: Add a MathFloor stub generated with TurboFan
mbrandy [Mon, 11 May 2015 14:33:27 +0000 (07:33 -0700)]
PPC: Add a MathFloor stub generated with TurboFan

Port abc35080b33cc31e47b9913e64ac99ec687c6b65

Original commit message:
This stub will be used as the basis of a Math.floor-specific CallIC to
detect and track calls to floor that return -0.

Along the way:
- Create a TurboFanCodeStub super class from which the StringLength and
MathRound TF stubs derive.
- Fix the ugly hack that passes the first stub parameter as the "this"
pointer in the the TF-compiled JS function.
- Fix bugs in the ia32/x64 disassembler.

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

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

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

9 years agoResolve references to "this" the same way as normal variables
wingo [Mon, 11 May 2015 11:49:48 +0000 (04:49 -0700)]
Resolve references to "this" the same way as normal variables

Make the parser handle references to "this" as unresolved variables, so the
same logic as for the rest of function parameters is used for the receiver.
Minor additions to the code generation handle copying the receiver to the
context, along with the rest of the function parameters.

Based on work by Adrian Perez de Castro <aperez@igalia.com>.

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

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

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

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

9 years agoAdd a MathFloor stub generated with TurboFan
danno [Mon, 11 May 2015 11:45:02 +0000 (04:45 -0700)]
Add a MathFloor stub generated with TurboFan

This stub will be used as the basis of a Math.floor-specific CallIC to
detect and track calls to floor that return -0.

Along the way:
- Create a TurboFanCodeStub super class from which the StringLength and
MathRound TF stubs derive.
- Fix the ugly hack that passes the first stub parameter as the "this"
pointer in the the TF-compiled JS function.
- Fix bugs in the ia32/x64 disassembler.

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

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

9 years agoAdd %GetUndetectable() test intrinsic and add tests for undetectables.
titzer [Mon, 11 May 2015 11:28:50 +0000 (04:28 -0700)]
Add %GetUndetectable() test intrinsic and add tests for undetectables.

R=verwaest@chromium.org
BUG=

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

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

9 years agoFix more -Werror=sign-compare bugs with GCC 4.9.2
wingo [Mon, 11 May 2015 11:07:12 +0000 (04:07 -0700)]
Fix more -Werror=sign-compare bugs with GCC 4.9.2

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

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

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

9 years ago[test] Skip Slimming Paint layout tests.
machenbach [Mon, 11 May 2015 11:03:50 +0000 (04:03 -0700)]
[test] Skip Slimming Paint layout tests.

Also make the expectation lint check happy.

TBR=jochen@chromium.org
NOTRY=true

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

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

9 years agoPostpone counters triggered during GC, and use a HandleScope when calling back.
erikcorry [Mon, 11 May 2015 10:57:55 +0000 (03:57 -0700)]
Postpone counters triggered during GC, and use a HandleScope when calling back.

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

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

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

9 years ago[test-runner] Improve test execution without tmp files for output.
machenbach [Mon, 11 May 2015 09:26:37 +0000 (02:26 -0700)]
[test-runner] Improve test execution without tmp files for output.

BUG=chromium:485932
LOG=n

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

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

9 years agoFix build after revert at 28332.
yangguo [Mon, 11 May 2015 08:50:38 +0000 (01:50 -0700)]
Fix build after revert at 28332.

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

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

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

9 years agoRevert of Add the concept of a V8 extras exports object (patchset #5 id:80001 of...
machenbach [Mon, 11 May 2015 08:20:02 +0000 (01:20 -0700)]
Revert of Add the concept of a V8 extras exports object (patchset #5 id:80001 of https://codereview.chromium.org/1128113006/)

Reason for revert:
[Sheriff] Causes gc stress failures:
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20gc%20stress/builds/2167

Original issue's description:
> Add the concept of a V8 extras exports object
>
> Exposed to the extras as extrasExports (on the builtins object), on
> which they can put things that should be accessible from C++. Exposed
> to C++ through the V8 API as v8::Context::GetExtrasExportsObject().
>
> Adding a test (in test-api.cc) required adding a simple extra,
> test-extra.js, which we build into the standalone builds.
>
> R=yangguo@chromium.org, jochen@chromium.org
> BUG=
>
> Committed: https://crrev.com/ad547cea05f3e02c67243b682e933fc53ac763d9
> Cr-Commit-Position: refs/heads/master@{#28317}

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

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

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

9 years agoCall builtin code wrapped in functions from the bootstrapper.
yangguo [Mon, 11 May 2015 08:14:54 +0000 (01:14 -0700)]
Call builtin code wrapped in functions from the bootstrapper.

For the moment, we only pass the global object (the one we are setting up).
A few smaller changes were necessary to avoid failures in
test-object-observe/DontLeakContextOnObserve. Otherwise the global object
would be retained by being context allocated, leading to test failure.

R=jkummerow@chromium.org

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

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

9 years ago[turbofan] Extract frame-states.h from common-operator.h
titzer [Mon, 11 May 2015 08:03:03 +0000 (01:03 -0700)]
[turbofan] Extract frame-states.h from common-operator.h

R=jarin@chromium.org
BUG=

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

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

9 years agoUpdate V8 DEPS.
v8-autoroll [Mon, 11 May 2015 03:39:29 +0000 (20:39 -0700)]
Update V8 DEPS.

Rolling v8/tools/clang to 5bab78c6ced45a71a8e095a09697ca80492e57e1

TBR=machenbach@chromium.org

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

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

9 years agoUpdate V8 DEPS.
v8-autoroll [Sun, 10 May 2015 03:38:05 +0000 (20:38 -0700)]
Update V8 DEPS.

Rolling v8/tools/clang to 72b418e60c4529a7b160cead01b099de6ea8445f

TBR=machenbach@chromium.org

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

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

9 years agoLet Runtime_GrowArrayElements accept non-Smi numbers as |key|.
jkummerow [Sat, 9 May 2015 10:30:44 +0000 (03:30 -0700)]
Let Runtime_GrowArrayElements accept non-Smi numbers as |key|.

BUG=chromium:485410
LOG=y
R=mvstanton@chromium.org,danno@chromium.org

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

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

9 years agoOnly double align in PagedSpace::AllocateRawDoubleAligned when allocation succeeded.
hpayer [Sat, 9 May 2015 10:29:33 +0000 (03:29 -0700)]
Only double align in PagedSpace::AllocateRawDoubleAligned when allocation succeeded.

BUG=chromium:486003
LOG=n

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

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

9 years agoMake one copy for all TypedArray methods
dehrenberg [Sat, 9 May 2015 01:20:01 +0000 (18:20 -0700)]
Make one copy for all TypedArray methods

This is the first step of converting TypedArrays to the proper
proto chain. There is one copy for each of the Harmony TypedArray
methods, rather than a version for each TypedArray type. This
form prevents accidentally baking in knowledge about a particular
array type into the method definition.

R=adamk@chromium.org, arv@chromium.org, caitpotter88@gmail.com, dslomov@chromium.org, jochen@chromium.org
BUG=v8:4085
LOG=Y

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

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

9 years agoWhitespace CL to test master split.
Michael Achenbach [Fri, 8 May 2015 21:32:05 +0000 (23:32 +0200)]
Whitespace CL to test master split.

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

9 years ago[turbofan] Fix handling of OsrLoopEntry in ControlReducer::ConnectNTL()
titzer [Fri, 8 May 2015 15:44:27 +0000 (08:44 -0700)]
[turbofan] Fix handling of OsrLoopEntry in ControlReducer::ConnectNTL()

R=jarin@chromium.org
LOG=Y
BUG=chromium:485908

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

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

9 years agoIf marking deque allocation fails, try to make do with a smaller one
erikcorry [Fri, 8 May 2015 15:12:44 +0000 (08:12 -0700)]
If marking deque allocation fails, try to make do with a smaller one

R=hpayer@chromium.org
BUG=

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

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

9 years agoGive ComputeCapacityForSerialization a minimum capacity
adamk [Fri, 8 May 2015 15:03:35 +0000 (08:03 -0700)]
Give ComputeCapacityForSerialization a minimum capacity

This avoids DCHECK failures when passing 0 as the at_least_space_for
argument to HashTableBase::New (allowing converting code from non-serialized
to serialized without changing callsites).

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

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

9 years agoRemove explicit double alignment from allocation helper functions.
hpayer [Fri, 8 May 2015 14:11:47 +0000 (07:11 -0700)]
Remove explicit double alignment from allocation helper functions.

BUG=

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

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

9 years agoAdd support for on-heap typed arrays to HLoadKeyed::InferRange
jochen [Fri, 8 May 2015 13:30:55 +0000 (06:30 -0700)]
Add support for on-heap typed arrays to HLoadKeyed::InferRange

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

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

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

9 years ago[turbofan] Use sbfx in ARM64 instruction selector
martyn.capewell [Fri, 8 May 2015 12:51:42 +0000 (05:51 -0700)]
[turbofan] Use sbfx in ARM64 instruction selector

Select sbfx for ((x << k) >> k) in ARM64 instruction selector, and similarly
for ubfx. This is a more generic version of the previous sxtb/h selector.

BUG=

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

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

9 years agoAdd the concept of a V8 extras exports object
domenic [Fri, 8 May 2015 12:06:35 +0000 (05:06 -0700)]
Add the concept of a V8 extras exports object

Exposed to the extras as extrasExports (on the builtins object), on
which they can put things that should be accessible from C++. Exposed
to C++ through the V8 API as v8::Context::GetExtrasExportsObject().

Adding a test (in test-api.cc) required adding a simple extra,
test-extra.js, which we build into the standalone builds.

R=yangguo@chromium.org, jochen@chromium.org
BUG=

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

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

9 years ago[clusterfuzz] Length 0 is perfectly fine for BitVector.
bmeurer [Fri, 8 May 2015 12:01:46 +0000 (05:01 -0700)]
[clusterfuzz] Length 0 is perfectly fine for BitVector.

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

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

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

9 years agoMIPS [turbofan]: Improve fpu branch assembling for unordered conditions.
dusan.milosavljevic [Fri, 8 May 2015 09:42:42 +0000 (02:42 -0700)]
MIPS [turbofan]: Improve fpu branch assembling for unordered conditions.

TEST=
BUG=

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

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

9 years ago[turbofan] Don't try to push JSToNumber into phis early.
bmeurer [Fri, 8 May 2015 09:34:54 +0000 (02:34 -0700)]
[turbofan] Don't try to push JSToNumber into phis early.

This should not be done during typed lowering, but should be part of a
dedicated truncation/conversion analysis.

R=jarin@chromium.org

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

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

9 years agoInitialize sub-array literals first before pointing to it.
hpayer [Fri, 8 May 2015 09:24:29 +0000 (02:24 -0700)]
Initialize sub-array literals first before pointing to it.

BUG=484544
LOG=n

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

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

9 years agoTurboFan: commit dependencies only on update of the opt. code list.
mvstanton [Fri, 8 May 2015 09:13:09 +0000 (02:13 -0700)]
TurboFan: commit dependencies only on update of the opt. code list.

TurboFan compilation was committing dependencies long before the
optimized function made it's way into the optimized code list for
the native context. The problem is that once the code pointer is out
there in dependency arrays, it is eligible for deopt. But the deopt
logic needs the code to be in the optimized code list to fully do it's
job.

BUG=
R=jarin@chromium.org

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

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

9 years agoRe-land: Make V8 extras a separate type of native
domenic [Fri, 8 May 2015 08:44:47 +0000 (01:44 -0700)]
Re-land: Make V8 extras a separate type of native

Instead of making them an extra option that gets passed in and compiled
at the end of the natives file for a given run of js2c, we now make them a
separate run of js2c with a separate natives file output.

This natives file output is then compiled in the bootstrapper. It is not part
of the snapshot (yet), but instead is treated similar to the experimental
natives, just without any of the complexity that comes from tieing the
behavior to flags. We also don't need counterparts to
InitializeExperimentalGlobal and InstallExperimentalNativeFunctions (yet?).

This fixes the issue with https://codereview.chromium.org/1129743003 by making
the dummy file that is generated for snapshots with no extras (or no experimental
features) nonempty.

R=yangguo@chromium.org, jochen@chromium.org
BUG=

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

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

9 years ago[turbofan] Float32Abs and Float64Abs are supported by all backends.
bmeurer [Fri, 8 May 2015 08:24:59 +0000 (01:24 -0700)]
[turbofan] Float32Abs and Float64Abs are supported by all backends.

The Float32Abs and Float64Abs operators are supported by all TurboFan
backends, so we no longer need the flags for them.

R=jarin@chromium.org

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

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

9 years agoRevert of Allow loading holes from holey smi arrays (patchset #2 id:20001 of https...
verwaest [Fri, 8 May 2015 07:28:55 +0000 (00:28 -0700)]
Revert of Allow loading holes from holey smi arrays (patchset #2 id:20001 of https://codereview.chromium.org/1134483002/)

Reason for revert:
Shouldn't unconditionally load holes since it tanks performance. I'll change it in a follow-up to only do it if the IC ever saw it happen.

Original issue's description:
> Allow loading holes from holey smi arrays
>
> BUG=
>
> Committed: https://crrev.com/eab5bb5390fab79d063f29398377c6d181963dde
> Cr-Commit-Position: refs/heads/master@{#28298}

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

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

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

9 years ago[turbofan] Don't embed backing store of neutered array buffer.
bmeurer [Fri, 8 May 2015 05:53:44 +0000 (22:53 -0700)]
[turbofan] Don't embed backing store of neutered array buffer.

R=jochen@chromium.org

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

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

9 years agoRevert of X87: Resolve references to "this" the same way as normal variables
chunyang.dai [Fri, 8 May 2015 03:57:27 +0000 (20:57 -0700)]
Revert of X87: Resolve references to "this" the same way as normal variables

Reason for revert:

   original commit was reverted.

   This reverts commit c3529ce50158546e2f2c25ee888e7e0170a488f1.

   original issues's description:

   > X87: Resolve references to "this" the same way as normal variables
   >
   > port 06a792b7cc2db33ffce7244c044a9c05afbb6116 (r28263).
   >
   > original commit message:
   >
   >  Make the parser handle references to "this" as unresolved variables, so the
   >  same logic as for the rest of function parameters is used for the receiver.
   >  Minor additions to the code generation handle copying the receiver to the
   >  context, along with the rest of the function parameters.
   >
   >  Based on work by Adrian Perez de Castro <aperez@igalia.com>

BUG=

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

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

9 years agoUpdate V8 DEPS.
v8-autoroll [Fri, 8 May 2015 03:28:22 +0000 (20:28 -0700)]
Update V8 DEPS.

Rolling v8/buildtools to b0ede9c89f9d5fbe5387d961ad4c0ec665b6c821

Rolling v8/tools/clang to bda3bddc01a91a513ec245ed1079b31cf5d7ded3

TBR=machenbach@chromium.org

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

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

9 years agoRevert of PPC: Resolve references to "this" the same way as normal variables (patchse...
mbrandy [Thu, 7 May 2015 22:15:38 +0000 (15:15 -0700)]
Revert of PPC: Resolve references to "this" the same way as normal variables (patchset #1 id:1 of https://codereview.chromium.org/1129803003/)

Reason for revert:
Original commit was reverted.

Original issue's description:
> PPC: Resolve references to "this" the same way as normal variables
>
> Port 18619d355192e2699203d12d9ebb9caea107b693
>
> Original commit message:
> Make the parser handle references to "this" as unresolved variables, so the
> same logic as for the rest of function parameters is used for the receiver.
> Minor additions to the code generation handle copying the receiver to the
> context, along with the rest of the function parameters.
>
> Based on work by Adrian Perez de Castro <aperez@igalia.com>.
>
> R=wingo@igalia.com, dstence@us.ibm.com,  michael_dawson@ca.ibm.com
> BUG=
>
> Committed: https://crrev.com/e0ec097b2f49c4c99a2e9490f4b1a09e02abfd4d
> Cr-Commit-Position: refs/heads/master@{#28272}

TBR=dstence@us.ibm.com,michael_dawson@ca.ibm.com,wingo@igalia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

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

9 years agoFix the build with snapshot=external
domenic [Thu, 7 May 2015 18:17:57 +0000 (11:17 -0700)]
Fix the build with snapshot=external

R=jochen@chromium.org
BUG=

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

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

9 years agoMIPS: Fix Assembler::dd(Label*) implementation.
balazs.kilvady [Thu, 7 May 2015 17:21:23 +0000 (10:21 -0700)]
MIPS: Fix Assembler::dd(Label*) implementation.

BUG=
TEST=mjsunit/asm/embenchen/lua_binarytrees

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

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

9 years agoOnly print elements of a typed array if the buffer wasn't neutered
jochen [Thu, 7 May 2015 15:55:23 +0000 (08:55 -0700)]
Only print elements of a typed array if the buffer wasn't neutered

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

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

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

9 years agoTypedArray.prototype.every method
dehrenberg [Thu, 7 May 2015 15:54:16 +0000 (08:54 -0700)]
TypedArray.prototype.every method

BUG=v8:3578
LOG=Y
R=adamk@chromium.org, dslomov@chromium.org, svenpanne@chromium.org

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

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

9 years agoAdd mode to reduce memory usage in idle notification.
ulan [Thu, 7 May 2015 14:41:53 +0000 (07:41 -0700)]
Add mode to reduce memory usage in idle notification.

While the mutator is active, the idle time handler optimizes for latency by doing only incremental steps and scavenges.

When the mutator becomes inactive, the idle time handler forces few incremental GCs to reclaim memory and then stops until mutator is active again.

BUG=460090
LOG=N

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

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

9 years agoRevert of Make V8 extras a separate type of native (patchset #4 id:60001 of https...
domenic [Thu, 7 May 2015 14:26:38 +0000 (07:26 -0700)]
Revert of Make V8 extras a separate type of native (patchset #4 id:60001 of https://codereview.chromium.org/1129743003/)

Reason for revert:
https://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/2745

Original issue's description:
> Make V8 extras a separate type of native
>
> Instead of making them an extra option that gets passed in and compiled
> at the end of the natives file for a given run of js2c, we now make them a
> separate run of js2c with a separate natives file output.
>
> This natives file output is then compiled in the bootstrapper. It is not part
> of the snapshot (yet), but instead is treated similar to the experimental
> natives, just without any of the complexity that comes from tieing the
> behavior to flags. We also don't add counterparts to
> InitializeExperimentalGlobal and InstallExperimentalNativeFunctions, yet.
>
> R=yangguo@chromium.org, jochen@chromium.org
> BUG=
>
> Committed: https://crrev.com/c93aff4ac63ad9ffb6318e750335208de32b7902
> Cr-Commit-Position: refs/heads/master@{#28296}

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

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

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

9 years agoAllow loading holes from holey smi arrays
verwaest [Thu, 7 May 2015 14:01:56 +0000 (07:01 -0700)]
Allow loading holes from holey smi arrays

BUG=

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

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

9 years agoDo not sample memory histograms in short idle notifications.
ulan [Thu, 7 May 2015 12:50:59 +0000 (05:50 -0700)]
Do not sample memory histograms in short idle notifications.

BUG=chromium:485472
LOG=NO
TBR=jochen@chromium.org

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

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

9 years agoMake V8 extras a separate type of native
domenic [Thu, 7 May 2015 12:44:06 +0000 (05:44 -0700)]
Make V8 extras a separate type of native

Instead of making them an extra option that gets passed in and compiled
at the end of the natives file for a given run of js2c, we now make them a
separate run of js2c with a separate natives file output.

This natives file output is then compiled in the bootstrapper. It is not part
of the snapshot (yet), but instead is treated similar to the experimental
natives, just without any of the complexity that comes from tieing the
behavior to flags. We also don't add counterparts to
InitializeExperimentalGlobal and InstallExperimentalNativeFunctions, yet.

R=yangguo@chromium.org, jochen@chromium.org
BUG=

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

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

9 years ago[V8] Reland https://codereview.chromium.org/1121833003/
kozyatinskiy [Thu, 7 May 2015 11:49:05 +0000 (04:49 -0700)]
[V8] Reland https://codereview.chromium.org/1121833003/

Chromium tests were prepared in https://codereview.chromium.org/1118743003/ and https://codereview.chromium.org/1135493002/.
Blink tests in https://codereview.chromium.org/1115193002/

LOG=Y
BUG=chromium:480652
R=yangguo@chromium.org

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

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

9 years ago[grokdump] Annoying line wrapping fixed.
ishell [Thu, 7 May 2015 10:43:37 +0000 (03:43 -0700)]
[grokdump] Annoying line wrapping fixed.

NOTREECHECKS=true
NOTRY=true

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

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

9 years agoSkip test-heap/NoWeakHashTableLeakWithIncrementalMarking for no-snap builds.
yangguo [Thu, 7 May 2015 10:25:36 +0000 (03:25 -0700)]
Skip test-heap/NoWeakHashTableLeakWithIncrementalMarking for no-snap builds.

TBR=machenbach@chromium.org
NOTREECHECKS=true

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

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

9 years agoAdd aggregated memory histograms.
ulan [Thu, 7 May 2015 10:03:35 +0000 (03:03 -0700)]
Add aggregated memory histograms.

This introduces V8.MemoryHeapCommitted and V8.MemoryHeapUsed histograms.

In contrast to the existing memory histograms, the new histograms are uniform in time, i.e. their samples happen at regular time intervals. The --histogram-interval specifies the length of the interval.

We implement this by linearly interpolating memory stats between GC and idle notification events.

BUG=chromium:485472
LOG=NO

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

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

9 years agoMigrate error messages, part 9.
yangguo [Thu, 7 May 2015 10:00:21 +0000 (03:00 -0700)]
Migrate error messages, part 9.

R=mvstanton@chromium.org

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

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

9 years agoWhitespace CL for perf changes.
Michael Achenbach [Thu, 7 May 2015 09:43:32 +0000 (11:43 +0200)]
Whitespace CL for perf changes.

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

9 years agoUpdate V8 DEPS.
v8-autoroll [Thu, 7 May 2015 09:13:01 +0000 (02:13 -0700)]
Update V8 DEPS.

Rolling v8/tools/clang to 52a578929068131eb73e907fdd6e2600e0d3180c

TBR=machenbach@chromium.org

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

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

9 years agoRevert of Use CLOCK_REALTIME_COARSE when available. (patchset #3 id:40001 of https...
machenbach [Thu, 7 May 2015 08:51:34 +0000 (01:51 -0700)]
Revert of Use CLOCK_REALTIME_COARSE when available. (patchset #3 id:40001 of https://codereview.chromium.org/1125003002/)

Reason for revert:
[Sheriff] This causes layout test crashes:
http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/2735

You can add the trybot v8_linux_layout_dbg on reland.

Original issue's description:
> Use CLOCK_REALTIME_COARSE when available.
>
> On systems that have CLOCK_REALTIME_COARSE with good enough resolution, we can
> avoid making a system call to get the current time; it's serviced from the vDSO.
>
> BUG=
> LOG=N
>
> Committed: https://crrev.com/537ed7500c087786f28f51ff5222f1c2113776d3
> Cr-Commit-Position: refs/heads/master@{#28280}

TBR=jochen@chromium.org,deanm@chromium.org,bmeurer@chromium.org,ben@strongloop.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

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

9 years agoRevert of Revert of Wrap runtime.js in a function. (patchset #1 id:1 of https://coder...
yangguo [Thu, 7 May 2015 08:39:53 +0000 (01:39 -0700)]
Revert of Revert of Wrap runtime.js in a function. (patchset #1 id:1 of https://codereview.chromium.org/1123353004/)

Reason for revert:
Failing test has been fixed.

Original issue's description:
> Revert of Wrap runtime.js in a function. (patchset #2 id:20001 of https://codereview.chromium.org/1126213002/)
>
> Reason for revert:
> [Sheriff] Breaks nosnap:
> http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap/builds/2872
>
> Original issue's description:
> > Wrap runtime.js in a function.
> >
> > R=jkummerow@chromium.org
> >
> > Committed: https://crrev.com/65c56d49b2d671ac9e379de726bff3eb03a508c1
> > Cr-Commit-Position: refs/heads/master@{#28275}
>
> TBR=jkummerow@chromium.org,yangguo@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/62bd294f909ff448d0f876a3d745966a24cdc3f7
> Cr-Commit-Position: refs/heads/master@{#28277}

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

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

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

9 years agoRun test-heap/NoWeakHashTableLeakWithIncrementalMarking with a clean slate.
yangguo [Thu, 7 May 2015 08:37:50 +0000 (01:37 -0700)]
Run test-heap/NoWeakHashTableLeakWithIncrementalMarking with a clean slate.

R=jkummerow@chromium.org

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

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

9 years agoRevert of Remove Scope::scope_uses_this_ flag (patchset #1 id:1 of https://codereview...
machenbach [Thu, 7 May 2015 07:47:07 +0000 (00:47 -0700)]
Revert of Remove Scope::scope_uses_this_ flag (patchset #1 id:1 of https://codereview.chromium.org/1129823002/)

Reason for revert:
The reason for reverting is: [Sheriff] Need to fix compilation after this revert:
https://chromium.googlesource.com/v8/v8/+/5cab6be83a44567a3ee5747d728a399025d38411

Original issue's description:
> Remove Scope::scope_uses_this_ flag
>
> Use of the "this" variable is now tracked using scopes, like any other variable.
>
> R=arv@chromium.org
> LOG=N
> BUG=
>
> Committed: https://crrev.com/afba55965118d9ba57e53c729f52be2340e626e0
> Cr-Commit-Position: refs/heads/master@{#28268}

TBR=arv@chromium.org,wingo@igalia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

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

9 years agoRevert of Remove Scope::scope_uses_arguments_ flag (patchset #1 id:1 of https://coder...
machenbach [Thu, 7 May 2015 07:42:19 +0000 (00:42 -0700)]
Revert of Remove Scope::scope_uses_arguments_ flag (patchset #1 id:1 of https://codereview.chromium.org/1124233002/)

Reason for revert:
[Sheriff] Need to fix compilation after this revert:
https://chromium.googlesource.com/v8/v8/+/5cab6be83a44567a3ee5747d728a399025d38411

Original issue's description:
> Remove Scope::scope_uses_arguments_ flag
>
> Use of arguments is tracked as a variable, like any other variable.
>
> R=arv@chromium.org
> LOG=N
> BUG=
>
> Committed: https://crrev.com/d4ea33f480243fb5b7d2cca6edddcaa3e9478e29
> Cr-Commit-Position: refs/heads/master@{#28271}

TBR=arv@chromium.org,wingo@igalia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

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

9 years agoRevert of Resolve references to "this" the same way as normal variables (patchset...
machenbach [Thu, 7 May 2015 07:20:43 +0000 (00:20 -0700)]
Revert of Resolve references to "this" the same way as normal variables (patchset #2 id:20001 of https://codereview.chromium.org/1130733003/)

Reason for revert:
[Sheriff] Breaks jetstream benchmark with errors like this:

>>> Running suite: JetStream/bigfib.cpp
>>> Stdout (#1):
undefined:93: ReferenceError: this is not defined
  this['Module'] = Module;
  ^
ReferenceError: this is not defined
    at eval (eval at __run (runner.js:13:3), <anonymous>:93:3)
    at eval (native)
    at __run (runner.js:13:3)
    at Object.runSimpleBenchmark (runner.js:44:31)
    at runner.js:97:13

Original issue's description:
> Resolve references to "this" the same way as normal variables
>
> Make the parser handle references to "this" as unresolved variables, so the
> same logic as for the rest of function parameters is used for the receiver.
> Minor additions to the code generation handle copying the receiver to the
> context, along with the rest of the function parameters.
>
> Based on work by Adrian Perez de Castro <aperez@igalia.com>.
>
> BUG=v8:2700
> LOG=N
>
> Committed: https://crrev.com/06a792b7cc2db33ffce7244c044a9c05afbb6116
> Cr-Commit-Position: refs/heads/master@{#28263}

TBR=rossberg@chromium.org,arv@chromium.org,wingo@igalia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:2700

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

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

9 years agoFix typo in test-heap/NoWeakHashTableLeakWithIncrementalMarking
yangguo [Thu, 7 May 2015 06:12:55 +0000 (23:12 -0700)]
Fix typo in test-heap/NoWeakHashTableLeakWithIncrementalMarking

NOTRY=true
TBR=mvstanton@chromium.org

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

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

9 years agoMake sure fixed typed array is always double aligned for doubles
jochen [Thu, 7 May 2015 05:44:47 +0000 (22:44 -0700)]
Make sure fixed typed array is always double aligned for doubles

Allows for getting rid of the special casing for float64 and is probably
faster.

BUG=v8:3996
R=verwaest@chromium.org,dslomov@chromium.org,plind44@gmail.com
LOG=n

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

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

9 years agoUse CLOCK_REALTIME_COARSE when available.
ben [Thu, 7 May 2015 05:06:00 +0000 (22:06 -0700)]
Use CLOCK_REALTIME_COARSE when available.

On systems that have CLOCK_REALTIME_COARSE with good enough resolution, we can
avoid making a system call to get the current time; it's serviced from the vDSO.

BUG=
LOG=N

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

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

9 years agoX87: Optimize the typeof operator.
chunyang.dai [Thu, 7 May 2015 04:01:39 +0000 (21:01 -0700)]
X87: Optimize the typeof operator.

port 7798548a8f2ef14e8320cc42effa86f0eb8e4294 (r28260)

original commit message:

    typeof was implemented as a runtime function. Calling it in
    optimized code with a non-constant input becomes burdensome.

BUG=

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

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

9 years agoX87: Resolve references to "this" the same way as normal variables
chunyang.dai [Thu, 7 May 2015 03:59:56 +0000 (20:59 -0700)]
X87: Resolve references to "this" the same way as normal variables

port 06a792b7cc2db33ffce7244c044a9c05afbb6116 (r28263).

original commit message:

    Make the parser handle references to "this" as unresolved variables, so the
    same logic as for the rest of function parameters is used for the receiver.
    Minor additions to the code generation handle copying the receiver to the
    context, along with the rest of the function parameters.

    Based on work by Adrian Perez de Castro <aperez@igalia.com>

BUG=

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

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

9 years agoRevert of Wrap runtime.js in a function. (patchset #2 id:20001 of https://codereview...
machenbach [Wed, 6 May 2015 20:03:03 +0000 (13:03 -0700)]
Revert of Wrap runtime.js in a function. (patchset #2 id:20001 of https://codereview.chromium.org/1126213002/)

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

Original issue's description:
> Wrap runtime.js in a function.
>
> R=jkummerow@chromium.org
>
> Committed: https://crrev.com/65c56d49b2d671ac9e379de726bff3eb03a508c1
> Cr-Commit-Position: refs/heads/master@{#28275}

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

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

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

9 years agoShard v8_base.lib on Windows to avoid 2G .lib limit
scottmg [Wed, 6 May 2015 19:40:04 +0000 (12:40 -0700)]
Shard v8_base.lib on Windows to avoid 2G .lib limit

R=jochen@chromium.org
BUG=chromium:485155
LOG=y

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

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

9 years agoWrap runtime.js in a function.
yangguo [Wed, 6 May 2015 19:24:52 +0000 (12:24 -0700)]
Wrap runtime.js in a function.

R=jkummerow@chromium.org

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

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

9 years agoRespect double alignment in Mark-compact collector.
hpayer [Wed, 6 May 2015 17:25:57 +0000 (10:25 -0700)]
Respect double alignment in Mark-compact collector.

BUG=chromium:436911
LOG=n

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

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

9 years agoPPC: Optimize the typeof operator.
mbrandy [Wed, 6 May 2015 16:45:49 +0000 (09:45 -0700)]
PPC: Optimize the typeof operator.

Port 7798548a8f2ef14e8320cc42effa86f0eb8e4294

Original commit message:
typeof was implemented as a runtime function. Calling it in
optimized code with a non-constant input becomes burdensome.

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

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

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

9 years agoPPC: Resolve references to "this" the same way as normal variables
mbrandy [Wed, 6 May 2015 16:30:06 +0000 (09:30 -0700)]
PPC: Resolve references to "this" the same way as normal variables

Port 18619d355192e2699203d12d9ebb9caea107b693

Original commit message:
Make the parser handle references to "this" as unresolved variables, so the
same logic as for the rest of function parameters is used for the receiver.
Minor additions to the code generation handle copying the receiver to the
context, along with the rest of the function parameters.

Based on work by Adrian Perez de Castro <aperez@igalia.com>.

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

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

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

9 years agoRemove Scope::scope_uses_arguments_ flag
wingo [Wed, 6 May 2015 16:25:16 +0000 (09:25 -0700)]
Remove Scope::scope_uses_arguments_ flag

Use of arguments is tracked as a variable, like any other variable.

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

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

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

9 years ago[es6] implement Object.assign
caitpotter88 [Wed, 6 May 2015 16:17:40 +0000 (09:17 -0700)]
[es6] implement Object.assign

BUG=v8:4007
LOG=N
R=arv@chromium.org, rossberg@chromium.org

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

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

9 years agoPPC: Handle the case when derived constructor is [[Call]]ed with 0 args.
mbrandy [Wed, 6 May 2015 16:14:02 +0000 (09:14 -0700)]
PPC: Handle the case when derived constructor is [[Call]]ed with 0 args.

Port cf53fed972896bf23c037ce7ac9f8e1512463c62

Original commit message:
ArgumentsAdaptorStub for derived constructor (the one that needs
new.target) works in this way:
 - If the constructor is invoked via the Construct stub, we know that
   actual arguments always include new.target. ``arguments`` object
   however should not include a new.target, therefore we remove it.
   We achieve this by decrementing the argument count.
 - If the constructor is invoked as a call, we do not care for a correct
   ``arguments`` array since the constructor will immediately throw on
   entrance.
The bug is that the call could actually pass 0 actual arguments, but I
decrement unconditionally :(. The fix is to detect this case and avoid
decrementing. ``arguments`` is bogus, but it is ok as constructor
throws.

Long-term we should just remove mucking about with arguments for
new.target and just get it from the stack.

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

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

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

9 years agoRemove Scope::scope_uses_this_ flag
wingo [Wed, 6 May 2015 15:50:02 +0000 (08:50 -0700)]
Remove Scope::scope_uses_this_ flag

Use of the "this" variable is now tracked using scopes, like any other variable.

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

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

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

9 years agoOnly double align in scavenger on non-64 bit platforms.
hpayer [Wed, 6 May 2015 15:47:27 +0000 (08:47 -0700)]
Only double align in scavenger on non-64 bit platforms.

BUG=chromium:436911
LOG=n

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

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

9 years ago[es6] Fix symbol comparison on some architectures
conradw [Wed, 6 May 2015 15:04:39 +0000 (08:04 -0700)]
[es6] Fix symbol comparison on some architectures

https://codereview.chromium.org/1125783002 did not handle all cases for some
architectures. These cases are now covered, and tests have been extended to
check them.

BUG=v8:4073
LOG=N

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

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

9 years agoRevert of New insertion write barrier. (patchset #3 id:200001 of https://codereview...
hpayer [Wed, 6 May 2015 14:35:02 +0000 (07:35 -0700)]
Revert of New insertion write barrier. (patchset #3 id:200001 of https://codereview.chromium.org/1073953006/)

Reason for revert:
Various performance regressions.

Original issue's description:
> New insertion write barrier.
>
> BUG=
>
> Committed: https://crrev.com/6e9e2c08292b553602c74b16b8ccff4e4ccac003
> Cr-Commit-Position: refs/heads/master@{#28199}

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

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

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

9 years agoFunction apply(): make all architectures use an IC for performance.
mvstanton [Wed, 6 May 2015 14:32:03 +0000 (07:32 -0700)]
Function apply(): make all architectures use an IC for performance.

BUG=
R=yangguo@chromium.org

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

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

9 years agoResolve references to "this" the same way as normal variables
wingo [Wed, 6 May 2015 14:18:03 +0000 (07:18 -0700)]
Resolve references to "this" the same way as normal variables

Make the parser handle references to "this" as unresolved variables, so the
same logic as for the rest of function parameters is used for the receiver.
Minor additions to the code generation handle copying the receiver to the
context, along with the rest of the function parameters.

Based on work by Adrian Perez de Castro <aperez@igalia.com>.

BUG=v8:2700
LOG=N

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

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

9 years agoMove double alignment logic into memory allocator.
hpayer [Wed, 6 May 2015 14:11:49 +0000 (07:11 -0700)]
Move double alignment logic into memory allocator.

BUG=chromium:436911

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

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

9 years agoAdd ObjectTemplate::New() taking FunctionTemplate.
ben [Wed, 6 May 2015 14:10:38 +0000 (07:10 -0700)]
Add ObjectTemplate::New() taking FunctionTemplate.

I know the bug has been closed but this seems like a simple addition that may
be useful in other ways as well.

BUG=v8:2180
LOG=N

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

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

9 years agoOptimize the typeof operator.
mvstanton [Wed, 6 May 2015 13:31:00 +0000 (06:31 -0700)]
Optimize the typeof operator.

typeof was implemented as a runtime function. Calling it in
optimized code with a non-constant input becomes burdensome.

BUG=

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

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

9 years ago[turbofan] Connect non-terminating loops via Terminate.
bmeurer [Wed, 6 May 2015 12:51:41 +0000 (05:51 -0700)]
[turbofan] Connect non-terminating loops via Terminate.

This revives the Terminate operator and removes the weird Always
operator. As a first step we let the ControlReducer connect non
terminating loops via Terminate. The next step will be to change the
graph builder to insert Terminate nodes into every loop.

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

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

9 years agoManage size of lists used in global handles
jochen [Wed, 6 May 2015 12:43:24 +0000 (05:43 -0700)]
Manage size of lists used in global handles

Make sure all lists are either regularly cleared or trimmed

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

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

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

9 years agoImplement IdentityMap<V>, a robust, GC-safe object-identity HashMap.
titzer [Wed, 6 May 2015 12:40:21 +0000 (05:40 -0700)]
Implement IdentityMap<V>, a robust, GC-safe object-identity HashMap.

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

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

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

9 years agoShip string unicode escapes
rossberg [Wed, 6 May 2015 12:07:50 +0000 (05:07 -0700)]
Ship string unicode escapes

R=yangguo@chromium.org
BUG=

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

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

9 years agoRemove GetDefaultReceiver, pass in undefined to sloppy-mode functions instead.
verwaest [Wed, 6 May 2015 11:58:28 +0000 (04:58 -0700)]
Remove GetDefaultReceiver, pass in undefined to sloppy-mode functions instead.

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

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

9 years agoFix FreeBSD build.
ben [Wed, 6 May 2015 10:57:00 +0000 (03:57 -0700)]
Fix FreeBSD build.

Fix the following build error:

    ../deps/v8/src/compiler/graph-visualizer.h:23:1:
    error: 'FILE' does not name a type

See https://github.com/iojs/io.js/issues/1637 for background.

BUG=v8:4079
LOG=N

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

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

9 years ago[strong] Fix inlining issue
conradw [Wed, 6 May 2015 10:40:27 +0000 (03:40 -0700)]
[strong] Fix inlining issue

The Hydrogen representation for binops was never changed to care about the
language mode. We thought this was ok, but it turns out we need to keep track
of it to make sure inlining doesn't mess with the "strongness" of binops.

Also added more rigorous inlining testing.

BUG=v8:3956
LOG=N

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

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

9 years agoImplement a 'trial parse' step, that will abort pre-parsing excessively
vogelheim [Wed, 6 May 2015 10:21:20 +0000 (03:21 -0700)]
Implement a 'trial parse' step, that will abort pre-parsing excessively
long and trivial functions, so that they can be eagerly compiled after all.
This essentially allows the parser to renege on its earlier decision to
lazy-parse, if additional information suggests it was a bad decision.

BUG=chromium:470930
LOG=Y

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

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

9 years ago[turbofan] Add support for advanced reducers.
bmeurer [Wed, 6 May 2015 10:12:47 +0000 (03:12 -0700)]
[turbofan] Add support for advanced reducers.

An AdvancedReducer is basically a regular Reducer with an editor
that can perform graph editing operations beyond changing or
replacing the node that is currently being reduced. The GraphReducer
is the default implementation of the AdvancedReducer::Editor interface.

The ControlReducerImpl is now just an AdvancedReducer, which
temporarily requires a Finish method in the reducer to implement
the dead node trimming until we move that to the GraphReducer
(which in turn requires that all loops are connected to End).

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

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