platform/upstream/v8.git
9 years agoX87: Cleanup Generate_JSConstructStubHelper a bit.
chunyang.dai [Tue, 14 Jul 2015 10:10:54 +0000 (03:10 -0700)]
X87: Cleanup Generate_JSConstructStubHelper a bit.

port 6ddcd32786dfafc968558ea59c0ca7588c45ebed (r29617)

original commit message:

  Cleanup Generate_JSConstructStubHelper a bit.

BUG=

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

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

9 years agoX87: Debugger: record reloc info for debug break slot immediate before the slot.
chunyang.dai [Tue, 14 Jul 2015 09:59:12 +0000 (02:59 -0700)]
X87: Debugger: record reloc info for debug break slot immediate before the slot.

port 0a19e44925301b9c0a554bbec5e3fb5a6cd09efa (r29568)

original commit message:

    If we do it too early, we might get a constant pool between the reloc info
    and the actual slot.

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

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

9 years agoX87: [turbofan] Add an InterpreterDispatch linkage type.
chunyang.dai [Tue, 14 Jul 2015 09:58:07 +0000 (02:58 -0700)]
X87: [turbofan] Add an InterpreterDispatch linkage type.

port a0129a25ba2f4d00138887cb2008d5b76e2b0068 (r29591).

original commit message:

BUG=

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

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

9 years agoRemove map-copying for global objects. This was an old (broken) requirement that...
verwaest [Tue, 14 Jul 2015 09:54:54 +0000 (02:54 -0700)]
Remove map-copying for global objects. This was an old (broken) requirement that has been fixed for a while.

BUG=

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

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

9 years agoRemove temporary hack re deleting hidden properties
verwaest [Tue, 14 Jul 2015 09:22:02 +0000 (02:22 -0700)]
Remove temporary hack re deleting hidden properties

BUG=

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

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

9 years agoFix test case for crbug/507070.
yangguo [Tue, 14 Jul 2015 08:50:11 +0000 (01:50 -0700)]
Fix test case for crbug/507070.

--debug-code causes full-codegen on arm64 to emit different number
of calls, which confuses the debugger when on-stack replacing code
with recompiled debug version on-stack.

BUG=chromium:507070
TBR=mstarzinger@chromium.org
LOG=N

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

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

9 years ago[Sheriff] Fix gn build.
machenbach [Tue, 14 Jul 2015 08:39:49 +0000 (01:39 -0700)]
[Sheriff] Fix gn build.

TBR=jochen@chromium.org, rmcilroy@chromium.org, hablich@chromium.org
NOTRY=true

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

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

9 years agoDebugger: make debug code on-stack replacement more robust.
yangguo [Tue, 14 Jul 2015 06:38:42 +0000 (23:38 -0700)]
Debugger: make debug code on-stack replacement more robust.

The new implemtation counts the number of calls (or continuations)
before the PC to find the corresponding PC in the new code.

R=mstarzinger@chromium.org
BUG=chromium:507070
LOG=N

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

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

9 years ago[turbofan] Don't use uniform initialization in AccessBuilder.
bmeurer [Tue, 14 Jul 2015 03:36:57 +0000 (20:36 -0700)]
[turbofan] Don't use uniform initialization in AccessBuilder.

BUG=v8:4295
LOG=n
TBR=jochen@chromium.org

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

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

9 years agoFix big-endian after '[osr] Increase Code::profiler_ticks to 28 bits.'
paul.lind [Tue, 14 Jul 2015 03:34:36 +0000 (20:34 -0700)]
Fix big-endian after '[osr] Increase Code::profiler_ticks to 28 bits.'

Several users of kKindSpecificFlags1Offset (aliased as kFullCodeFlags) were
reading/writing bytes -- not endian agnostic.

TEST=mjsunit/debug-setexceptionbreak, mjsunit/debug-mirror-cache, mjsunit/regress/regress-94873, others...
BUG=

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

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

9 years ago[turbofan] Fix undefined behavior in InstructionSequence::GetInstructionBlock.
ulan [Tue, 14 Jul 2015 03:33:20 +0000 (20:33 -0700)]
[turbofan] Fix undefined behavior in InstructionSequence::GetInstructionBlock.

Some implementations of std::lower_bound require weak-strict ordering.

The comparison operator must be assymetric, which doesn't hold for less_equals.

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

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

9 years ago[turbofan] Fix a -Wsign-compare error under GCC 4.9.2.
paul.lind [Tue, 14 Jul 2015 03:30:06 +0000 (20:30 -0700)]
[turbofan] Fix a -Wsign-compare error under GCC 4.9.2.

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

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

9 years agoX87: Remove separate construct stub for new.target users.
chunyang.dai [Tue, 14 Jul 2015 02:45:31 +0000 (19:45 -0700)]
X87: Remove separate construct stub for new.target users.

port e50c861b099b3bd3e1174b5f2843567620cc6842 (r29562)

original commit message:

BUG=

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

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

9 years agoX87: Debugger: use debug break slot to break on call.
chunyang.dai [Tue, 14 Jul 2015 02:34:35 +0000 (19:34 -0700)]
X87: Debugger: use debug break slot to break on call.

port 8965b683ce39bc3c24ed2466d189323d81a70852 (r29561)

original commit message:

    Break point at calls are currently set via IC. To change this, we
    need to set debug break slots instead. We also need to distinguish
    those debug break slots as calls to support step-in.

    To implement this, we add a data field to debug break reloc info to
    indicate non-call debug breaks or in case of call debug breaks, the
    number of arguments. We can later use this to find the callee on the
    evaluation stack in Debug::PrepareStep.

BUG=

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

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

9 years agoX87: [turbofan] Add TruncationMode for TruncateFloat64ToInt32.
chunyang.dai [Tue, 14 Jul 2015 02:29:46 +0000 (19:29 -0700)]
X87: [turbofan] Add TruncationMode for TruncateFloat64ToInt32.

port 4b38c15817033ccd9a65efbb3d038ae2423293c2 (r29527).

original commit message:

    We actually need round to zero truncation to implement the counterpart
    of LDoubleToI in TurboFan, which tries to convert a double to an integer
    as required for keyed load/store optimizations.

    Drive-by-cleanup: Reduce some code duplication in the InstructionSelector
    implementations.

BUG=

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

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

9 years agoX87: Reland: Add unoptimized/optimized variants of MathFloor TF code stub
chunyang.dai [Tue, 14 Jul 2015 02:28:39 +0000 (19:28 -0700)]
X87: Reland: Add unoptimized/optimized variants of MathFloor TF code stub

port 737b8573f80deaa1cbaec98f42ecd3e3b56ba901 (r29539)

original commit message:

    - Add a TurboFanIC class, derived from TurboFanCodeStub, that
      automatically distinguishes between versions of the IC called from
      optimized and unoptimized code.
    - Add appropriate InterfaceDescriptors for both the versions of the
      stub called from unoptimized and optimized code
    - Change the MathFloor TF stub generator to output either the
      for-optimized or for-unoptimized version based on the minor_key
      parameter.

BUG=

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

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

9 years agoPPC: protect against malformed branch and memory access instructions.
mbrandy [Mon, 13 Jul 2015 21:58:23 +0000 (14:58 -0700)]
PPC: protect against malformed branch and memory access instructions.

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

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

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

9 years agod8: Fix some TSAN bugs
binji [Mon, 13 Jul 2015 21:04:55 +0000 (14:04 -0700)]
d8: Fix some TSAN bugs

* Fix embarrassing bug in DeserializeValue, using a static buffer in
multithreaded code.
* Fix thread leak when Worker.terminate() is not called.

R=jarin@chromium.org

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

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

9 years agoIn Atomics API, convert operands to numbers before calling runtime.
binji [Mon, 13 Jul 2015 20:36:21 +0000 (13:36 -0700)]
In Atomics API, convert operands to numbers before calling runtime.

R=jarin@chromium.org

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

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

9 years agoMIPS64: Fix 'Fix keyed element access wrt string wrappers'.
balazs.kilvady [Mon, 13 Jul 2015 19:42:19 +0000 (12:42 -0700)]
MIPS64: Fix 'Fix keyed element access wrt string wrappers'.

Port 01f40e6ad6c8137708955494987857fbe489616b

BUG=v8:4296
LOG=n

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

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

9 years agoPPC: Cleanup Generate_JSConstructStubHelper a bit.
mbrandy [Mon, 13 Jul 2015 18:54:23 +0000 (11:54 -0700)]
PPC: Cleanup Generate_JSConstructStubHelper a bit.

Port 6ddcd32786dfafc968558ea59c0ca7588c45ebed

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

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

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

9 years agoPPC: Fix keyed element access wrt string wrappers
mbrandy [Mon, 13 Jul 2015 18:51:12 +0000 (11:51 -0700)]
PPC: Fix keyed element access wrt string wrappers

Port 01f40e6ad6c8137708955494987857fbe489616b

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

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

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

9 years agoMIPS64: Fix BlockTrampolinePoolFor() to emit trampoline before blocking, if needed.
balazs.kilvady [Mon, 13 Jul 2015 18:26:17 +0000 (11:26 -0700)]
MIPS64: Fix BlockTrampolinePoolFor() to emit trampoline before blocking, if needed.

Port f0d1106a3fa1ffaa822efc90d61e2aca315cbe15

Fixes possible failure in AssembleArchTableSwitch().

BUG=v8:4294
LOG=y

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

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

9 years agoPPC: [turbofan] Add an InterpreterDispatch linkage type.
mbrandy [Mon, 13 Jul 2015 17:21:39 +0000 (10:21 -0700)]
PPC: [turbofan] Add an InterpreterDispatch linkage type.

Port a0129a25ba2f4d00138887cb2008d5b76e2b0068

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

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

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

9 years agoPPC: This CL also adds hydrogen stubs for global loads and global stores, full-codege...
mbrandy [Mon, 13 Jul 2015 17:16:07 +0000 (10:16 -0700)]
PPC: This CL also adds hydrogen stubs for global loads and global stores, full-codegen and TurboFan now uses this machinery.

Fix f87286e2db5b302ecd8331ccd13b1d3859b8bef5

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

Original commit message:
    Loads and stores to global vars are now made via property cell shortcuts installed into parent script context.

BUG=

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

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

9 years agoFix keyed element access wrt string wrappers
verwaest [Mon, 13 Jul 2015 15:38:55 +0000 (08:38 -0700)]
Fix keyed element access wrt string wrappers

BUG=v8:4296
LOG=n

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

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

9 years agoCleanup Generate_JSConstructStubHelper a bit.
mstarzinger [Mon, 13 Jul 2015 15:13:00 +0000 (08:13 -0700)]
Cleanup Generate_JSConstructStubHelper a bit.

R=bmeurer@chromium.org

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

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

9 years agoAdd convenience method for converting v8::PersistentBase to v8::Local
yurys [Mon, 13 Jul 2015 15:02:21 +0000 (08:02 -0700)]
Add convenience method for converting v8::PersistentBase to v8::Local

The CL addes convenienve method that allows to write code like the following
v8::Local<v8::Object> local = v8::Local<v8::Object>::New(global, isolate);
in a more readable way:
v8::Local<v8::Object> local = global.Get(isolate);

There is already v8::Eternal::Get that does similar thing.

BUG=None
LOG=Y

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

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

9 years ago[strong] class objects created in strong mode are frozen
conradw [Mon, 13 Jul 2015 15:00:55 +0000 (08:00 -0700)]
[strong] class objects created in strong mode are frozen

BUG=v8:3956
LOG=N

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

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

9 years agoMinor cleanup IC keyed access handling.
verwaest [Mon, 13 Jul 2015 14:41:38 +0000 (07:41 -0700)]
Minor cleanup IC keyed access handling.

BUG=

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

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

9 years agoV8 project metadata
nodir [Mon, 13 Jul 2015 14:40:31 +0000 (07:40 -0700)]
V8 project metadata

Added project.cfg metadata file for chrome-infra

R=machenbach@chromium.org, sergiyb@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=507723

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

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

9 years agoWhitespace change to test ninja switch on windows.
Michael Achenbach [Mon, 13 Jul 2015 14:31:04 +0000 (16:31 +0200)]
Whitespace change to test ninja switch on windows.

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

9 years agoTypeofMode replaces TypeofState and ContextualMode.
ishell [Mon, 13 Jul 2015 13:39:26 +0000 (06:39 -0700)]
TypeofMode replaces TypeofState and ContextualMode.

NON_CONTEXTUAL ~> INSIDE_TYPEOF
CONTEXTUAL ~> NOT_INSIDE_TYPEOF

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

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

9 years agoMIPS64: Refine 'Remove unused byte from Map::instance_sizes field.'
balazs.kilvady [Mon, 13 Jul 2015 13:36:03 +0000 (06:36 -0700)]
MIPS64: Refine 'Remove unused byte from Map::instance_sizes field.'

Port 2027335f1ce44b0c6523eb5e55881e2a4e162815

Original commit message:
Note that there are currently no objects that require a pre-allocated
properties backing store, all such slots are in-object properties from
the begining. Hence {unused + pre_allocated - inobject == 0} holds.

BUG=

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

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

9 years agoRemove unused bailout reasons.
mstarzinger [Mon, 13 Jul 2015 13:34:01 +0000 (06:34 -0700)]
Remove unused bailout reasons.

This also adds a script to the tools directory that allows to grep for
unused bailout reasons. For now the script needs to be run manually.

R=mvstanton@chromium.org

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

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

9 years agoMIPS: Fix missing Float32 case in AssembleArchBoolean.
dusan.milosavljevic [Mon, 13 Jul 2015 13:32:53 +0000 (06:32 -0700)]
MIPS: Fix missing Float32 case in AssembleArchBoolean.

TEST=mjsunit/asm/embenchen/box2d
BUG=

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

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

9 years agoOur JavaScriptFrame::function_slot_object is arch independent.
mstarzinger [Mon, 13 Jul 2015 12:45:19 +0000 (05:45 -0700)]
Our JavaScriptFrame::function_slot_object is arch independent.

R=bmeurer@chromium.org

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

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

9 years ago[strong] Strong classes can't extend null
conradw [Mon, 13 Jul 2015 12:40:22 +0000 (05:40 -0700)]
[strong] Strong classes can't extend null

BUG=v8:3956
LOG=N

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

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

9 years agoPrepare for using ninja for win64.
machenbach [Mon, 13 Jul 2015 12:39:15 +0000 (05:39 -0700)]
Prepare for using ninja for win64.

BUG=chromium:508921
LOG=n

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

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

9 years agoMove SmartPointer to base.
rmcilroy [Mon, 13 Jul 2015 12:38:06 +0000 (05:38 -0700)]
Move SmartPointer to base.

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

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

9 years agoDebugger: refactor reloc info.
yangguo [Mon, 13 Jul 2015 12:32:09 +0000 (05:32 -0700)]
Debugger: refactor reloc info.

- split relocation info for debug break slots for
  - calls (with call arguments count as data)
  - construct calls
  - normal slots
- renamed DEBUG_BREAK into DEBUGGER_STATEMENT
- removed unused IC state for Debug stubs

R=ulan@chromium.org
BUG=v8:4269
LOG=N

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

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

9 years ago[turbofan] Context specialization should only specialize loads/stores.
bmeurer [Mon, 13 Jul 2015 12:30:51 +0000 (05:30 -0700)]
[turbofan] Context specialization should only specialize loads/stores.

The JSContextSpecialization should only care about loads from the
context and stores to the context, where the context is either a
HeapConstant or the special context Parameter (and a context for the
outer most function is provided). This way we don't eagerly embed
arbitrary context constants for no benefit, but we still specialize the
loads and store which we actually care about.

R=mstarzinger@chromium.org

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

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

9 years ago[turbofan] Use context specialization in code stubs
danno [Mon, 13 Jul 2015 12:29:37 +0000 (05:29 -0700)]
[turbofan] Use context specialization in code stubs

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

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

9 years agoRevert of Update V8 DEPS. (patchset #3 id:40001 of https://codereview.chromium.org...
machenbach [Mon, 13 Jul 2015 11:45:17 +0000 (04:45 -0700)]
Revert of Update V8 DEPS. (patchset #3 id:40001 of https://codereview.chromium.org/1232583002/)

Reason for revert:
[Sheriff] Looks like another clang option got deprecated: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20ASAN%20mipsel%20-%20debug%20builder/builds/326

Original issue's description:
> Update V8 DEPS.
>
> Rolling v8/tools/clang to 58128abd44c22255def1163d30bc9bb2cc85e15c
>
> Original CL: https://codereview.chromium.org/1232043002/
>
> BUG=
>
> Committed: https://crrev.com/6211e1660492f653d30ddd1336bce6f9083ede94
> Cr-Commit-Position: refs/heads/master@{#29598}

TBR=jochen@chromium.org,akos.palfi@imgtec.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

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

9 years agoRevert of Enable loads and stores to global vars through property cell shortcuts...
machenbach [Mon, 13 Jul 2015 11:19:26 +0000 (04:19 -0700)]
Revert of Enable loads and stores to global vars through property cell shortcuts installed into parent script… (patchset #1 id:1 of https://codereview.chromium.org/1237603002/)

Reason for revert:
[Sheriff] This changes lots of layout tests. See comment on CL.

Original issue's description:
> Enable loads and stores to global vars through property cell shortcuts installed into parent script context.
>
> Committed: https://crrev.com/cd61b047f1ab92c353a629556f9d3ad571ace1b1
> Cr-Commit-Position: refs/heads/master@{#29595}

TBR=verwaest@chromium.org,ishell@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

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

9 years agoUpdate V8 DEPS.
machenbach [Mon, 13 Jul 2015 10:58:53 +0000 (03:58 -0700)]
Update V8 DEPS.

Rolling v8/tools/clang to 58128abd44c22255def1163d30bc9bb2cc85e15c

Original CL: https://codereview.chromium.org/1232043002/

BUG=

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

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

9 years ago[osr] Increase Code::profiler_ticks to 28 bits.
bmeurer [Mon, 13 Jul 2015 10:57:40 +0000 (03:57 -0700)]
[osr] Increase Code::profiler_ticks to 28 bits.

Up until now we were unable to have profiler ticks beyong 255, which
basically disabled OSR for moderately large functions.

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

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

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

9 years agoFix keyed stores to strings convertible to indices
verwaest [Mon, 13 Jul 2015 10:46:28 +0000 (03:46 -0700)]
Fix keyed stores to strings convertible to indices

BUG=chromium:509545
LOG=n

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

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

9 years agoEnable loads and stores to global vars through property cell shortcuts installed...
ishell [Mon, 13 Jul 2015 10:22:09 +0000 (03:22 -0700)]
Enable loads and stores to global vars through property cell shortcuts installed into parent script context.

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

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

9 years agoCorrectly handle the case when TimerTask is destroyed with being run.
ulan [Mon, 13 Jul 2015 10:18:16 +0000 (03:18 -0700)]
Correctly handle the case when TimerTask is destroyed with being run.

This is follow-up for a5616e.

BUG=chromium:508584
LOG=NO

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

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

9 years agoCreate a internal native context used only for TF-generated code stubs
danno [Mon, 13 Jul 2015 09:45:43 +0000 (02:45 -0700)]
Create a internal native context used only for TF-generated code stubs

Until now, TF-generated code stubs piggy-backed off of the builtin
context. Since generation of code stubs is lazy, stubs generated at
different times in different native contexts would contain embedded
pointers different builtin contexts, leading to cross-context references
and memory leaks.

After this CL, all TF-generated code stubs are generated inside a
internal thinned-out, native context that lives solely for the
purpose of hosting generated code stubs.

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

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

9 years agoLoads and stores to global vars are now made via property cell shortcuts installed...
ishell [Mon, 13 Jul 2015 09:18:44 +0000 (02:18 -0700)]
Loads and stores to global vars are now made via property cell shortcuts installed into parent script context.

This CL also adds hydrogen stubs for global loads and global stores, full-codegen and TurboFan now uses this machinery.

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

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

9 years ago[turbofan] Add an InterpreterDispatch linkage type.
rmcilroy [Mon, 13 Jul 2015 08:27:40 +0000 (01:27 -0700)]
[turbofan] Add an InterpreterDispatch linkage type.

BUG=v8:4280
LOG=N

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

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

9 years agoRemove unused byte from Map::instance_sizes field.
mstarzinger [Mon, 13 Jul 2015 08:26:21 +0000 (01:26 -0700)]
Remove unused byte from Map::instance_sizes field.

Note that there are currently no objects that require a pre-allocated
properties backing store, all such slots are in-object properties from
the begining. Hence {unused + pre_allocated - inobject == 0} holds.

R=verwaest@chromium.org

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

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

9 years agoMIPS: Fix BlockTrampolinePoolFor() to emit trampoline before blocking, if needed.
paul.lind [Mon, 13 Jul 2015 07:28:24 +0000 (00:28 -0700)]
MIPS: Fix BlockTrampolinePoolFor() to emit trampoline before blocking, if needed.

Fixes possible failure in AssembleArchTableSwitch().

BUG=v8:4294
LOG=y

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

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

9 years ago[turbofan] Optimize string "length" property access based on types.
bmeurer [Mon, 13 Jul 2015 06:02:16 +0000 (23:02 -0700)]
[turbofan] Optimize string "length" property access based on types.

Optimize string "length" property access based on static type
information if possible, but also optimistically optimize the access
based on type feedback from the LoadIC.

R=jarin@chromium.org

Committed: https://crrev.com/17add22ff4b9c5ca638502e7708f0d9d99baca40
Cr-Commit-Position: refs/heads/master@{#29543}

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

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

9 years ago[arm] CheckConstPool between TurboFan instructions.
bmeurer [Mon, 13 Jul 2015 05:26:42 +0000 (22:26 -0700)]
[arm] CheckConstPool between TurboFan instructions.

Some TurboFan instructions block the literal pool for their entire
duration. If a long enough sequence of these instructions is
encountered, the literal pool can be blocked until it goes out of range.

Patch from issue 1236603002 at patchset 1 (http://crrev.com/1236603002#ps1).

BUG=v8:4292
LOG=y
R=jarin@chromium.org

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

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

9 years ago[turbofan] Reduce Float64 comparison to Float32.
martyn.capewell [Mon, 13 Jul 2015 05:23:40 +0000 (22:23 -0700)]
[turbofan] Reduce Float64 comparison to Float32.

Reduce Float64 comparison to Float32 when both inputs are conversions from
Float32.

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

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

9 years agoPPC: Debugger: record reloc info for debug break slot immediate before the slot.
mbrandy [Fri, 10 Jul 2015 21:27:36 +0000 (14:27 -0700)]
PPC: Debugger: record reloc info for debug break slot immediate before the slot.

Port 0a19e44925301b9c0a554bbec5e3fb5a6cd09efa

Original commit message:
    If we do it too early, we might get a constant pool between the reloc info
    and the actual slot.

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

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

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

9 years agoPPC: Remove unused jump_elimination_allowed parameter to Assembler::branch_offset().
mbrandy [Fri, 10 Jul 2015 21:11:39 +0000 (14:11 -0700)]
PPC: Remove unused jump_elimination_allowed parameter to Assembler::branch_offset().

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

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

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

9 years agoPPC: Remove separate construct stub for new.target users.
mbrandy [Fri, 10 Jul 2015 21:03:30 +0000 (14:03 -0700)]
PPC: Remove separate construct stub for new.target users.

Port e50c861b099b3bd3e1174b5f2843567620cc6842

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

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

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

9 years agoPPC: Debugger: use debug break slot to break on call.
mbrandy [Fri, 10 Jul 2015 21:02:20 +0000 (14:02 -0700)]
PPC: Debugger: use debug break slot to break on call.

Port 8965b683ce39bc3c24ed2466d189323d81a70852

Original commit message:
    Break point at calls are currently set via IC. To change this, we
    need to set debug break slots instead. We also need to distinguish
    those debug break slots as calls to support step-in.

    To implement this, we add a data field to debug break reloc info to
    indicate non-call debug breaks or in case of call debug breaks, the
    number of arguments. We can later use this to find the callee on the
    evaluation stack in Debug::PrepareStep.

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

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

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

9 years agoMIPS: Check that branches to trampoline pool do actually reach.
paul.lind [Fri, 10 Jul 2015 20:55:35 +0000 (13:55 -0700)]
MIPS: Check that branches to trampoline pool do actually reach.

Do the check in release mode, too. Prefer crash over mis-patched
branch instruction.

BUG=v8:4294
LOG=N

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

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

9 years agoRemove arv from OWNERS
arv [Fri, 10 Jul 2015 19:16:30 +0000 (12:16 -0700)]
Remove arv from OWNERS

Goodbyes are not forever.
Goodbyes are not the end.
They simply mean I’ll miss you
Until we meet again!
~Author Unknown

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

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

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

9 years agoRevert preallocating of descriptors since right now getters and setters cause copying...
verwaest [Fri, 10 Jul 2015 17:11:35 +0000 (10:11 -0700)]
Revert preallocating of descriptors since right now getters and setters cause copying of descriptor arrays

BUG=

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

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

9 years ago[es6] Handle conflicts for sloppy let
arv [Fri, 10 Jul 2015 16:39:47 +0000 (09:39 -0700)]
[es6] Handle conflicts for sloppy let

We have to call CheckConflictingVarDeclarations in case we have enabled
--harmony-sloppy

BUG=v8:4287
LOG=N
R=littledan@chromium.org, rossberg@chromium.org

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

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

9 years ago[es6] Enforce TDZ checks for let/const in StoreLookupSlot
arv [Fri, 10 Jul 2015 16:20:34 +0000 (09:20 -0700)]
[es6] Enforce TDZ checks for let/const in StoreLookupSlot

With --harmony-sloppy we can get to a runtime store in the presence of
an eval. We therefor need to check that the value is not the hole which
is used to enforce TDZ.

BUG=v8:4284
LOG=N
R=rossberg@chromium.org, littledan@chromium.org

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

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

9 years agoFix keyed access of primitive objects in the runtime.
verwaest [Fri, 10 Jul 2015 16:11:00 +0000 (09:11 -0700)]
Fix keyed access of primitive objects in the runtime.
For now it uses a pretty slow path for accessing strings by wrapping it into a new temporary wrapper.

BUG=v8:4042, v8:3088
LOG=y

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

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

9 years agoUpdate the context if Set on slow-mode argument targets an aliased arguments entry
verwaest [Fri, 10 Jul 2015 15:51:57 +0000 (08:51 -0700)]
Update the context if Set on slow-mode argument targets an aliased arguments entry

BUG=v8:4177
LOG=n

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

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

9 years agoUse entry rather than index in ElementsAccessor::Get
verwaest [Fri, 10 Jul 2015 14:13:27 +0000 (07:13 -0700)]
Use entry rather than index in ElementsAccessor::Get

BUG=v8:4137, v8:4177
LOG=n

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

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

9 years agoChange and simplify RelocInfo format.
yangguo [Fri, 10 Jul 2015 13:14:36 +0000 (06:14 -0700)]
Change and simplify RelocInfo format.
 - we now have 6 bits to store RelocInfo mode.
 - removed a redundant tag byte per long reloc info entry.
 - renamed methods to be more precise.

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

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

9 years ago[test] Let perf runner interleave try executions.
machenbach [Fri, 10 Jul 2015 13:02:09 +0000 (06:02 -0700)]
[test] Let perf runner interleave try executions.

This allows running two executables interleaved to reduce
flakiness of tryjobs. The executables must reside in
different out directories.

BUG=chromium:507213
LOG=n
NOTRY=true
TEST=python -m unittest run_perf_test

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

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

9 years agoUse entry rather than index in ElementsAccessor::Set
verwaest [Fri, 10 Jul 2015 12:56:36 +0000 (05:56 -0700)]
Use entry rather than index in ElementsAccessor::Set

BUG=v8:4137,v8:4177
LOG=n

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

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

9 years agoReload the map of typed arrays after performing ToNumber.
verwaest [Fri, 10 Jul 2015 12:49:29 +0000 (05:49 -0700)]
Reload the map of typed arrays after performing ToNumber.

BUG=chromium:507980
LOG=n

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

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

9 years agoUpdated version to 4.6
hablich [Fri, 10 Jul 2015 12:48:23 +0000 (05:48 -0700)]
Updated version to 4.6

BUG=
TBR=machenbach@chromium.org,vogelheim@chromium.org
NOTRY=true

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

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

9 years agoDebugger: record reloc info for debug break slot immediate before the slot.
yangguo [Fri, 10 Jul 2015 12:47:18 +0000 (05:47 -0700)]
Debugger: record reloc info for debug break slot immediate before the slot.

If we do it too early, we might get a constant pool between the reloc info
and the actual slot.

R=ulan@chromium.org

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

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

9 years ago[arm64] Fixed unnecessary environment assignment to LSmiTag instruction.
ishell [Fri, 10 Jul 2015 11:36:03 +0000 (04:36 -0700)]
[arm64] Fixed unnecessary environment assignment to LSmiTag instruction.

BUG=chromium:490021
LOG=N

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

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

9 years agoFixes the parser-shell by adding a dependency to StartupDataUtil.
epertoso [Fri, 10 Jul 2015 10:26:52 +0000 (03:26 -0700)]
Fixes the parser-shell by adding a dependency to StartupDataUtil.

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

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

9 years agoDisable the pending task if the memory reducer is torn down.
ulan [Fri, 10 Jul 2015 10:07:35 +0000 (03:07 -0700)]
Disable the pending task if the memory reducer is torn down.

BUG=chromium:508584
LOG=NO

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

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

9 years agoRemove more uses of the deprecated EnumSet template class.
bmeurer [Fri, 10 Jul 2015 09:34:56 +0000 (02:34 -0700)]
Remove more uses of the deprecated EnumSet template class.

EnumtSet has been deprecated for quite some time, and replaced with the
more general and type safe base::Flags template class.

R=jarin@chromium.org

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

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

9 years ago[Sheriff] Skip worker test.
machenbach [Fri, 10 Jul 2015 09:30:51 +0000 (02:30 -0700)]
[Sheriff] Skip worker test.

BUG=v8:4279
LOG=n
NOTRY=true
TBR=jarin@chromium.org

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

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

9 years agoRemove separate construct stub for new.target users.
mstarzinger [Fri, 10 Jul 2015 08:50:24 +0000 (01:50 -0700)]
Remove separate construct stub for new.target users.

R=bmeurer@chromium.org

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

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

9 years agoDebugger: use debug break slot to break on call.
yangguo [Fri, 10 Jul 2015 08:49:14 +0000 (01:49 -0700)]
Debugger: use debug break slot to break on call.

Break point at calls are currently set via IC. To change this, we
need to set debug break slots instead. We also need to distinguish
those debug break slots as calls to support step-in.

To implement this, we add a data field to debug break reloc info to
indicate non-call debug breaks or in case of call debug breaks, the
number of arguments. We can later use this to find the callee on the
evaluation stack in Debug::PrepareStep.

BUG=v8:4269
R=ulan@chromium.org
LOG=N

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

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

9 years ago[Sheriff] Mark test as flaky.
machenbach [Fri, 10 Jul 2015 08:32:46 +0000 (01:32 -0700)]
[Sheriff] Mark test as flaky.

BUG=v8:4279
LOG=n
NOTRY=true
TBR=jarin@chromium.org

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

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

9 years agoFix lazy compilation of eval() under nosnap/--use-strict
adamk [Thu, 9 Jul 2015 21:31:11 +0000 (14:31 -0700)]
Fix lazy compilation of eval() under nosnap/--use-strict

When running without a snapshot, the GlobalEval function gets lazy compiled.
By the time we compile it, its name is "eval", which causes the parser to
choke (functions named "eval" aren't allowed in strict mode!).

Instead, we now always skip checking the function name when lazy-parsing,
as the name has already been checked appropriately by the preparser.

Also cleaned up other cases that don't require name checking by introducing
FunctionNameValidity enum and passing appropriate values throughout the
parser and preparser.

This lets us pass an additional 18 test262 tests.

BUG=v8:4198
LOG=n

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

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

9 years ago[es6] Bound function name
arv [Thu, 9 Jul 2015 20:36:03 +0000 (13:36 -0700)]
[es6] Bound function name

Instead of updating the SharedFuntionInfo set the name property on
the function directly.

BUG=v8:4278
LOG=N
R=verwaest@chromium.org, littledan@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel

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

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

9 years agod8 workers: fix race on quit() with context_mutex_
binji [Thu, 9 Jul 2015 19:30:18 +0000 (12:30 -0700)]
d8 workers: fix race on quit() with context_mutex_

When quit() is called, d8 shell exits without cleanup. If a worker is running,
it might be holding the context_mutex_, which if destroyed will DCHECK.

BUG=4279
R=jarin@chromium.org
LOG=n

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

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

9 years ago[es6] Function bind should preserve [[Prototype]]
arv [Thu, 9 Jul 2015 15:48:50 +0000 (08:48 -0700)]
[es6] Function bind should preserve [[Prototype]]

The function returned from Function.prototype.bind should have the same
[[Prototype]] as the receiver.

BUG=v8:3889
LOG=N
R=adamk@chromium.org, verwaest@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel

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

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

9 years agoLandmine to cleanup windows.
Michael Achenbach [Thu, 9 Jul 2015 14:03:25 +0000 (16:03 +0200)]
Landmine to cleanup windows.

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

9 years ago[test] Raise timeout for testing without vfp3.
machenbach [Thu, 9 Jul 2015 13:56:00 +0000 (06:56 -0700)]
[test] Raise timeout for testing without vfp3.

TBR=bmeurer@chromium.org
NOTRY=true

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

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

9 years agoWhitespace change to test ninja on windows.
Michael Achenbach [Thu, 9 Jul 2015 11:23:20 +0000 (13:23 +0200)]
Whitespace change to test ninja on windows.

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

9 years ago[arm] Don't call branch_offset within CheckConstPool.
bmeurer [Thu, 9 Jul 2015 10:32:23 +0000 (03:32 -0700)]
[arm] Don't call branch_offset within CheckConstPool.

This basically means that we must not use the b(Label*) version here,
but the b(int) version instead to jump over the constant pool.

BUG=v8:4292
LOG=y

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

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

9 years agoAdd goma=on option to Makefile build.
rmcilroy [Thu, 9 Jul 2015 09:50:48 +0000 (02:50 -0700)]
Add goma=on option to Makefile build.

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

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

9 years ago[arm] Fix missing CheckBuffer for branches.
bmeurer [Thu, 9 Jul 2015 09:33:17 +0000 (02:33 -0700)]
[arm] Fix missing CheckBuffer for branches.

The b, bl and blx methods that take labels basically ignore the constant
pool check and just block the constant pool for the next instruction.
This way a long enough sequence of those instructions will block can
potentially block the constant pool emission for too long.

BUG=v8:4292
LOG=y
R=yangguo@chromium.org

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

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

9 years agoAllow deferred handle dereference in EmitLoadRegister to retrieve number.
yangguo [Thu, 9 Jul 2015 09:26:49 +0000 (02:26 -0700)]
Allow deferred handle dereference in EmitLoadRegister to retrieve number.

R=mstarzinger@chromium.org
BUG=chromium:507977
LOG=N

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

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

9 years ago[turbofan] Use NumAllocatableRegisters() instead of kMaxNumAllocatableRegisters.
rmcilroy [Thu, 9 Jul 2015 09:14:32 +0000 (02:14 -0700)]
[turbofan] Use NumAllocatableRegisters() instead of kMaxNumAllocatableRegisters.

Use NumAllocatableRegisters() instead of kMaxNumAllocatableRegisters in
ArchDefaultRegisterConfiguration::ArchDefaultRegisterConfiguration()
otherwise the compiler DCHECKS if triggered during snapshot builds on
Arm where only 16 DoubleRegisters are avaiable instead of 32.

BUG=v8:4280
LOG=N

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

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

9 years ago[arm] Remove unused jump_elimination_allowed parameter to Assembler::branch_offset().
bmeurer [Thu, 9 Jul 2015 09:00:06 +0000 (02:00 -0700)]
[arm] Remove unused jump_elimination_allowed parameter to Assembler::branch_offset().

That parameter is just confusing and completely unused.

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

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

9 years agoDebugger: do not compile IC for accessors when debugging.
yangguo [Thu, 9 Jul 2015 07:05:28 +0000 (00:05 -0700)]
Debugger: do not compile IC for accessors when debugging.

The invariant is that as long as there is a debug info on
the shared function info, no accessor IC is compiled for
its code. That way we can guarantee that stepping into
accessors, which requires a debug info, works for accessors.

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

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

9 years agoGuard @@isConcatSpreadable behind a flag
littledan [Wed, 8 Jul 2015 21:49:44 +0000 (14:49 -0700)]
Guard @@isConcatSpreadable behind a flag

The breakage to Chrome seems to be based on @@isConcatSpreadable
and turning that part off with this patch fixes the Maps Tips & Tricks
test case.

BUG=chromium:507553
LOG=Y
R=adamk

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

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

9 years agoRevert of [turbofan] Optimize string "length" property access based on types. (patchs...
adamk [Wed, 8 Jul 2015 21:29:54 +0000 (14:29 -0700)]
Revert of [turbofan] Optimize string "length" property access based on types. (patchset #2 id:20001 of https://codereview.chromium.org/1216593003/)

Reason for revert:
Causes crash when running benchmarks/octane/regexp.js on ARM:
http://build.chromium.org/p/client.v8/builders/V8%20Arm/builds/2492/steps/Benchmarks/logs/regexp

Original issue's description:
> [turbofan] Optimize string "length" property access based on types.
>
> Optimize string "length" property access based on static type
> information if possible, but also optimistically optimize the access
> based on type feedback from the LoadIC.
>
> R=jarin@chromium.org
>
> Committed: https://crrev.com/17add22ff4b9c5ca638502e7708f0d9d99baca40
> Cr-Commit-Position: refs/heads/master@{#29543}

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

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

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