Commit Graph

32447 Commits

Author SHA1 Message Date
jochen
0ae0fbce8b Don't hide V8 symbols in debug builds
That way, backtraces should work

BUG=
R=machenbach@chromium.org

Review-Url: https://codereview.chromium.org/2168593002
Cr-Commit-Position: refs/heads/master@{#37905}
2016-07-20 12:55:57 +00:00
klaasb
5f603e838a [interpreter] Inline Star on dispatch for some bytecodes
For some bytecodes it is beneficial to always look for a Star
bytecode when dispatching to the next and inline perform it
without dispatching to the Star handler.

BUG=v8:4280
LOG=N

Review-Url: https://codereview.chromium.org/2142273003
Cr-Commit-Position: refs/heads/master@{#37904}
2016-07-20 12:52:20 +00:00
machenbach
3449dbc010 [cq] Make chromium win trybot experimental
BUG=chromium:629025
NOTRY=true
NOPRESUBMIT=true
TBR=sergiyb@chromium.org

Review-Url: https://codereview.chromium.org/2165883003
Cr-Commit-Position: refs/heads/master@{#37903}
2016-07-20 12:19:52 +00:00
verwaest
13cbf54522 Inline Scope::Initialize into the only constructor that's always called right before
This additionally makes the invariant obvious that outer_scope==nullptr+is_with_scope is impossible.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2165923002
Cr-Commit-Position: refs/heads/master@{#37902}
2016-07-20 12:19:51 +00:00
jochen
a76d133f76 Fix incorrect parameter to HasSufficientCapacity
It takes the number of additional elements, not the total target
capacity.

Also, avoid right-shifting a negative integer as this is undefined in general

BUG=v8:4909
R=verwaest@chromium.org

Review-Url: https://codereview.chromium.org/2162333002
Cr-Commit-Position: refs/heads/master@{#37901}
2016-07-20 12:16:30 +00:00
mstarzinger
99d1e5dccf [turbofan] Remove obsolete --turbo-shipping flag.
By now TurboFan is shipping on a broad range of language constructs and
wholesale disabling TurboFan can still be done with the --turbo-filter
flag. A dedicated flag controlling AST numbering heuristics is no longer
needed.

R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2155243006
Cr-Commit-Position: refs/heads/master@{#37900}
2016-07-20 10:38:19 +00:00
bmeurer
52a66bf1a8 Revert of [turbofan] Introduce TruncateTaggedToBit operator for ToBoolean truncation. (patchset #2 id:20001 of https://codereview.chromium.org/2167593002/ )
Reason for revert:
Breaks arm64 gc stress:
https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20gc%20stress/builds/1605

Original issue's description:
> [turbofan] Introduce TruncateTaggedToBit operator for ToBoolean truncation.
>
> Add a dedicated simplified operator to inline the general case for the
> ToBoolean conversion. In a follow up CL we will also use the ToBoolean
> hints gathered by the baseline compiler.
>
> Committed: https://crrev.com/8c50b51ab3d21efcd2f6900d83962159f21e1590
> Cr-Commit-Position: refs/heads/master@{#37882}

TBR=jarin@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2170433002
Cr-Commit-Position: refs/heads/master@{#37899}
2016-07-20 10:18:46 +00:00
verwaest
90015a1fe0 Implicitly pass 'scope()' as parent scope for function scopes
This creates the guarantee that we can compute the parent scope later on. We'll do the same for other types of scopes as well (with perhaps a limited number of exceptions that will need to be eagerly allocated).

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2168563002
Cr-Commit-Position: refs/heads/master@{#37898}
2016-07-20 09:39:11 +00:00
neis
f2c2ef1f0e Make toLocaleString on arrays always call toLocaleString on its elements.
As required by the spec.

This is a variant of what I reverted in f47e722403.
It will probably still cause a regression but now it's easier to migrate (parts of)
the current implementation to C++, which is expected to make things faster again.

BUG=chromium:627729,v8:5113

Review-Url: https://codereview.chromium.org/2164923002
Cr-Commit-Position: refs/heads/master@{#37897}
2016-07-20 09:32:20 +00:00
machenbach
d02290ceb9 [gn] Properly qualify variable names that escape v8 context
This prepares for relanding:
https://codereview.chromium.org/2058033002/

All toplevel variables are visible in files including v8.gni.
This works around potential name clashes.

BUG=chromium:616034

Review-Url: https://codereview.chromium.org/2169443002
Cr-Commit-Position: refs/heads/master@{#37896}
2016-07-20 09:18:58 +00:00
jacob.bramley
6ae7f2b5d8 [arm64] Avoid signed arithmetic in AddWithCarry.
This avoids implementation-defined signed overflow in the simulator's
AddWithCarry implementation. The implementation of AddWithCarry now uses
unsigned arithmetic exclusively.

Testing coverage is also significantly improved.

BUG=

Review-Url: https://codereview.chromium.org/2157283003
Cr-Commit-Position: refs/heads/master@{#37895}
2016-07-20 09:15:35 +00:00
verwaest
f52263ece7 Make the Scope constructors less reliant on SetDefaults to magically set flags
BUG=v8:5209

Review-Url: https://codereview.chromium.org/2158393002
Cr-Commit-Position: refs/heads/master@{#37894}
2016-07-20 09:02:27 +00:00
marja
1e08974e86 Fix: Don't use Isolate during scope resolution.
Using Isolate is unsafe, because we might parse (and do scope analysis)
on a background thread.

The illegal access happens when encountering f(arguments) { ... }.

Kudos to verwaest@ for finding this bug.

R=verwaest@chromium.org, rossberg@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2158343002
Cr-Commit-Position: refs/heads/master@{#37893}
2016-07-20 08:58:53 +00:00
yangguo
ff542972f6 [debugger] remove deprecated api functions.
Review-Url: https://codereview.chromium.org/2162503002
Cr-Commit-Position: refs/heads/master@{#37892}
2016-07-20 08:52:18 +00:00
bmeurer
1f3c8dc71f [turbofan] Properly handle bit->tagged representation changes.
Look at the output type instead of the output representation,
when converting to tagged representation.

R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2159373004
Cr-Commit-Position: refs/heads/master@{#37891}
2016-07-20 08:52:17 +00:00
jarin
1906e88d3b [turbofan] In the feedback refinement retyper, always intersect the upper bound with the type.
BUG=chromium:608617

Review-Url: https://codereview.chromium.org/2163173002
Cr-Commit-Position: refs/heads/master@{#37890}
2016-07-20 08:48:56 +00:00
mstarzinger
2484254907 [ast] Make Toon Verwaest an AST owner.
R=adamk@chromium.org,bmeurer@chromium.org,littledan@chromium.org,rossberg@chromium.org

Review-Url: https://codereview.chromium.org/2156083002
Cr-Commit-Position: refs/heads/master@{#37889}
2016-07-20 08:48:55 +00:00
zhengxing.li
870fac08c9 X87: Revert of [builtins] Introduce a builtin for Abort(). (patchset #5 id:80001 of https://codereview.chromium.org/2156923002/ ).
port 3e8f49ab59 (r37883)

  original commit message:
  Reason for revert:
  Blocks roll: https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/builds/1622

  Original issue's description:
  > [builtins] Introduce a builtin for Abort().
  >
  > Calling Runtime::kAbort through a builtin instead of the c-entry stub
  > will allow to generate the call in a background thread, because a
  > builtin provides its own handle, whereas a code stub does not.
  >
  > @v8-mips-ports: Could you take a special look at the padding that is
  > done in MacroAssembler::Abort()?
  >
  > R=bmeurer@chromium.org, titzer@chromium.org, mstarzinger@chromium.org, v8-mips-ports@googlegroups.com, v8-arm-ports@googlegroups.com
  >
  > Committed: https://crrev.com/9be015a254cfff871c56cd129523a729637e9158
  > Cr-Commit-Position: refs/heads/master@{#37854}

BUG=

Review-Url: https://codereview.chromium.org/2168573002
Cr-Commit-Position: refs/heads/master@{#37888}
2016-07-20 08:34:46 +00:00
verwaest
e8e09ca725 Remove ast_value_factory_ and usages from scope
This frees up a field in Scope and untangles scope a little from the parser.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2160943004
Cr-Commit-Position: refs/heads/master@{#37887}
2016-07-20 08:08:39 +00:00
oth
ac69e74fbf [stubs] Suppress shift by zero.
LOG=N
BUG=

Review-Url: https://codereview.chromium.org/2157363003
Cr-Commit-Position: refs/heads/master@{#37886}
2016-07-20 08:08:38 +00:00
jgruber
d4ad10b30f [builtins] Move builtins into own files
R=yangguo@chromium.org
BUG=v8:5197

Review-Url: https://codereview.chromium.org/2165593002
Cr-Commit-Position: refs/heads/master@{#37885}
2016-07-20 07:38:45 +00:00
nikolaos
6ce36869bc [parser] Add default constructor for PreParserExpression
In a few places in the parser base, we were forced to initialize
variables of type ExpressionT even if it's not necessary, as they
are assigned to later on before their use.  This was required
because, for the case of the preparser, ExpressionT is
PreParserExpression which had no default constructor.

This patch adds a default constructor, equivalent to EmptyExpression
for this class, and gets rid of the unnecessary initializations.

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

Review-Url: https://codereview.chromium.org/2162763003
Cr-Commit-Position: refs/heads/master@{#37884}
2016-07-20 07:35:22 +00:00
hablich
3e8f49ab59 Revert of [builtins] Introduce a builtin for Abort(). (patchset #5 id:80001 of https://codereview.chromium.org/2156923002/ )
Reason for revert:
Blocks roll: https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/builds/1622

Original issue's description:
> [builtins] Introduce a builtin for Abort().
>
> Calling Runtime::kAbort through a builtin instead of the c-entry stub
> will allow to generate the call in a background thread, because a
> builtin provides its own handle, whereas a code stub does not.
>
> @v8-mips-ports: Could you take a special look at the padding that is
> done in MacroAssembler::Abort()?
>
> R=bmeurer@chromium.org, titzer@chromium.org, mstarzinger@chromium.org, v8-mips-ports@googlegroups.com, v8-arm-ports@googlegroups.com
>
> Committed: https://crrev.com/9be015a254cfff871c56cd129523a729637e9158
> Cr-Commit-Position: refs/heads/master@{#37854}

TBR=bmeurer@chromium.org,mstarzinger@chromium.org,titzer@chromium.org,v8-arm-ports@googlegroups.com,v8-mips-ports@googlegroups.com,akos.palfi@imgtec.com,ahaas@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2163603003
Cr-Commit-Position: refs/heads/master@{#37883}
2016-07-20 07:25:18 +00:00
bmeurer
8c50b51ab3 [turbofan] Introduce TruncateTaggedToBit operator for ToBoolean truncation.
Add a dedicated simplified operator to inline the general case for the
ToBoolean conversion. In a follow up CL we will also use the ToBoolean
hints gathered by the baseline compiler.

Review-Url: https://codereview.chromium.org/2167593002
Cr-Commit-Position: refs/heads/master@{#37882}
2016-07-20 06:49:17 +00:00
jgruber
8c163cfe45 Revert of Move Error methods to C++ (patchset #11 id:200001 of https://codereview.chromium.org/2142933003/ )
Reason for revert:
Clusterfuzz failures: https://bugs.chromium.org/p/chromium/issues/detail?id=629749

Original issue's description:
> Move Error methods to C++
>
> This ports a large portion of Error methods to C++,
> including the constructor, stack setter and getter,
> and Error.prototype.toString.
>
> BUG=
>
> Committed: https://crrev.com/5742da056a290caa13a0b8717ddb1e43424e0d31
> Cr-Commit-Position: refs/heads/master@{#37870}

TBR=yangguo@chromium.org,bmeurer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review-Url: https://codereview.chromium.org/2159223004
Cr-Commit-Position: refs/heads/master@{#37881}
2016-07-20 06:45:49 +00:00
zhengxing.li
f910bfeb3d X87: [builtins] Introduce a builtin for Abort().
port 9be015a254 (r37854)

  original commit message:
  Calling Runtime::kAbort through a builtin instead of the c-entry stub
  will allow to generate the call in a background thread, because a
  builtin provides its own handle, whereas a code stub does not.

  @v8-mips-ports: Could you take a special look at the padding that is
  done in MacroAssembler::Abort()?

BUG=

Review-Url: https://codereview.chromium.org/2166703002
Cr-Commit-Position: refs/heads/master@{#37880}
2016-07-20 03:56:11 +00:00
v8-autoroll
406d7c801d Update V8 DEPS.
Rolling v8/build to 4b2ee7d1824cdc45d8e3d4076c05f9a8af10e4ac

Rolling v8/tools/mb to 3f6bbf669fa2b89399cead251fe693ce71132779

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

Review-Url: https://codereview.chromium.org/2166433004
Cr-Commit-Position: refs/heads/master@{#37879}
2016-07-20 03:22:52 +00:00
neis
cde66a896e [parser] More CHECK_OK cleanup.
In parser.{cc,h}, replace CHECK_OK_CUSTOM by CHECK_OK_VOID, as that's all we need.
Use this to convert all void* functions to void.

R=adamk@chromium.org, nikolaos@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2165513004
Cr-Commit-Position: refs/heads/master@{#37878}
2016-07-19 19:47:49 +00:00
bjaideep
a660062de5 PPC/s390: [builtins] Introduce a builtin for Abort().
Port 9be015a254

Original commit message:

    Calling Runtime::kAbort through a builtin instead of the c-entry stub
    will allow to generate the call in a background thread, because a
    builtin provides its own handle, whereas a code stub does not.

R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2166553002
Cr-Commit-Position: refs/heads/master@{#37877}
2016-07-19 18:24:54 +00:00
peterssen
6a65cff40f Reinforce fast-accessor-assembler tests.
Add additional sanity checks for implicit parameters, mainly to prevent passing
a wrong context, which can lead to obscure errors.
This is a regression test after https://crrev.com/da4f2491501e54d436ed448c5e345480d1f5906b

BUG=chromium:508898

Review-Url: https://codereview.chromium.org/2160563003
Cr-Commit-Position: refs/heads/master@{#37876}
2016-07-19 15:45:53 +00:00
cbruni
ec94ad400d [runtime] temporarily transform IsContext check from DCHECK to CHECK
We are enabling this trial on canary to see if we can flush out some missing
context restores.

BUG=

Review-Url: https://codereview.chromium.org/2164633002
Cr-Commit-Position: refs/heads/master@{#37875}
2016-07-19 15:26:14 +00:00
oth
263131cf2a [interpreter] Update ForInPrepare to conditionally use runtime.
Copies the behaviour of FullCode in attempting to get the state for
ForInPrepare inline and falling back to the runtime if necessary.

BUG=v8:4280
LOG=N

Review-Url: https://codereview.chromium.org/2155153002
Cr-Commit-Position: refs/heads/master@{#37874}
2016-07-19 14:46:52 +00:00
klaasb
a3f598fc85 [interpreter] Add relative numbers to dispatch report
This adds an additional column with percentages to the output of
bytecode_dispatch_report.py --top-dispatches-for-bytecode.
The percentages always represent the relative number of dispatches to
the target bytecode to all dispatches from the source bytecode.
The additional flag --sort-sources-relative/-r allows sorting the
"Top sources of dispatches to" the given bytecode by this column to more
easily find bytecodes that significantly often dispatch to the target.

BUG=v8:4899
LOG=N

Review-Url: https://codereview.chromium.org/2159683003
Cr-Commit-Position: refs/heads/master@{#37873}
2016-07-19 14:17:29 +00:00
mythria
b401217675 Revert of [Interpreter] Collect type feedback for 'new' in the bytecode handler (patchset #6 id:100001 of https://codereview.chromium.org/2153433002/ )
Reason for revert:
This cl causes a large regression in octane (https://chromeperf.appspot.com/group_report?bug_id=629503). I have to investigate the reason before I can reland this.

Original issue's description:
> [Interpreter] Collect type feedback for 'new' in the bytecode handler
>
> Collect type feedback in the bytecode handler for 'new' bytecode. The
> current implementation does not collect allocation site feedback.
>
> BUG=v8:4280, v8:4780
> LOG=N
>
> Committed: https://crrev.com/1eadc76419b323fb2e55ae9953142f801704aa59
> Cr-Commit-Position: refs/heads/master@{#37862}

TBR=rmcilroy@chromium.org,bmeurer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4280, v8:4780

Review-Url: https://codereview.chromium.org/2165633003
Cr-Commit-Position: refs/heads/master@{#37872}
2016-07-19 14:17:28 +00:00
jyan
94e1c858e3 S390: Fix convertion from int32 to float32
Should use the same Mask code as float32 to int32

R=joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/2160573003
Cr-Commit-Position: refs/heads/master@{#37871}
2016-07-19 14:07:25 +00:00
jgruber
5742da056a Move Error methods to C++
This ports a large portion of Error methods to C++,
including the constructor, stack setter and getter,
and Error.prototype.toString.

BUG=

Review-Url: https://codereview.chromium.org/2142933003
Cr-Commit-Position: refs/heads/master@{#37870}
2016-07-19 13:51:07 +00:00
bmeurer
908cd09f3a [turbofan] Introduce a TransitionElementsKind simplified operator.
Instead of wriring the elements kind transitions into the control flow
early on, we do instead put this marker into the effect chain, so that
the elements transitions are visible to the LoadElimination and can
thus be optimized properly there.

This CL itself doesn't add any of those optimizations, but just adds
the foundations to make them possible later.

R=jarin@chromium.org
BUG=v8:4930,v8:5141

Review-Url: https://codereview.chromium.org/2164573003
Cr-Commit-Position: refs/heads/master@{#37869}
2016-07-19 13:41:08 +00:00
verwaest
3442519d56 Eagerly set arguments_, new_target_ and ths_function_ Scope, and unset if we don't need to allocate them.
This probably slightly speeds up AllocateParameterLocals, but more importantly it removes ast_value_factory_ uses. If we get rid of ast_value_factory from Scope it's easier to lazily allocate it later from within a ScopeState object.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2158333002
Cr-Commit-Position: refs/heads/master@{#37868}
2016-07-19 13:01:49 +00:00
jochen
562bb5823c Add API to create a "remote" instance of a given FunctionTemplate
BUG=chromium:618305
R=verwaest@chromium.org
CC=dcheng@chromium.org,haraken@chromium.org

Review-Url: https://codereview.chromium.org/2162443002
Cr-Commit-Position: refs/heads/master@{#37867}
2016-07-19 12:22:37 +00:00
oth
a451bd1a68 Reland "[interpeter] Move to table based peephole optimizer."
Original issue's description:
> [interpeter] Move to table based peephole optimizer.
>
> Introduces a lookup table for peephole optimizations.
>
> Fixes some tests using BytecodePeepholeOptimizer::Write() that should
> have been update to use BytecodePeepholeOptimizer::WriteJump().
>
> BUG=v8:4280
> LOG=N
>
> Committed: https://crrev.com/f4234422b93b21a286b0f31799009bcbe8b90b9e
> Cr-Commit-Position: refs/heads/master@{#37819}

BUG=v8:4280
LOG=N

Review-Url: https://codereview.chromium.org/2164583002
Cr-Commit-Position: refs/heads/master@{#37866}
2016-07-19 11:56:33 +00:00
jochen
460e0b80a9 Move SetObjectPrototype to JSObject
I plan to use this from ApiNatives, so move it to a common location.

BUG=
R=verwaest@chromium.org

Review-Url: https://codereview.chromium.org/2161613002
Cr-Commit-Position: refs/heads/master@{#37865}
2016-07-19 11:30:34 +00:00
nikolaos
24291c326b [parser] Rewritable expressions should not be valid variable references
This patch restores the status of rewritable expressions, which
were not considered valid variable references before CL 2126233002,
regardless of the type of the wrapped expression.

R=mstarzinger@chromium.org, verwaest@chromium.org
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2158853002
Cr-Commit-Position: refs/heads/master@{#37864}
2016-07-19 11:30:33 +00:00
marja
09a854c72b Put FunctionLiterals into temp_zone too.
This reduces memory usage when parsing (because temp_zones are discarded
every now and then) and work done by FuncNameInferrer.

BUG=

Review-Url: https://codereview.chromium.org/2156013002
Cr-Commit-Position: refs/heads/master@{#37863}
2016-07-19 11:14:07 +00:00
mythria
1eadc76419 [Interpreter] Collect type feedback for 'new' in the bytecode handler
Collect type feedback in the bytecode handler for 'new' bytecode. The
current implementation does not collect allocation site feedback.

BUG=v8:4280, v8:4780
LOG=N

Review-Url: https://codereview.chromium.org/2153433002
Cr-Commit-Position: refs/heads/master@{#37862}
2016-07-19 11:10:33 +00:00
marija.antic
dcf8251ecf MIPS: Fix 'Port [turbofan] Introduce integer multiplication with overflow.'
Port 8e18a5f2a0

Failing on r6 due to wrong registers used in macro assembler.

TEST=test-run-machops/RunInt32MulWithOverflowImm
BUG=

Review-Url: https://codereview.chromium.org/2165533002
Cr-Commit-Position: refs/heads/master@{#37861}
2016-07-19 11:10:32 +00:00
yangguo
4de5e1456e [debug] add test case for scope iterator using correct language mode.
TBR=mstarzinger@chromium.org
BUG=v8:5207

Review-Url: https://codereview.chromium.org/2154393003
Cr-Commit-Position: refs/heads/master@{#37860}
2016-07-19 11:07:03 +00:00
bmeurer
e0b8707c78 [turbofan] Fix typing rule for number addition.
R=jarin@chromium.org
BUG=chromium:629435

Review-Url: https://codereview.chromium.org/2161013002
Cr-Commit-Position: refs/heads/master@{#37859}
2016-07-19 10:08:13 +00:00
verwaest
4f552f5a17 Introduce parent ScopeState class and track the scope through the state in the parser
This will allow us to move more state from Scope into ScopeState and lazily allocate full Scopes only when needed.

BUG=v8:5209

Review-Url: https://codereview.chromium.org/2160593002
Cr-Commit-Position: refs/heads/master@{#37858}
2016-07-19 10:08:12 +00:00
yangguo
7c3ddd2cf4 [debug] use correct language mode when parsing eval for scope iterator.
R=mstarzinger@chromium.org
BUG=v8:5207

Review-Url: https://codereview.chromium.org/2159113002
Cr-Commit-Position: refs/heads/master@{#37857}
2016-07-19 09:55:02 +00:00
sxa
6f68f30ba5 [build] Add force_dynamic_crt option to build a static library with /MD on windows
Adds option to build a V8 library statically, but with the options on
windows that allows it to be subsequently included in another DLL. On
Windows this is required for it to correclty link against the correct
C++ runtime. Require for our Node.js shared library build.

Reference:  https://github.com/nodejs/node/pull/7487

BUG=
R=machenbach@chromium.org, michael_dawson@ca.ibm.com

Committed: https://crrev.com/9cf88c1c364cf76c1e745aa63196768435e8ef5d
Review-Url: https://codereview.chromium.org/2149963002
Cr-Original-Commit-Position: refs/heads/master@{#37814}
Cr-Commit-Position: refs/heads/master@{#37856}
2016-07-19 09:55:01 +00:00