Commit Graph

36882 Commits

Author SHA1 Message Date
ahaas
57c20f0b72 [wasm] The interpreter should not grow memory beyond module->mem_max_pages.
R=titzer@chromium.org
BUG=chromium:679352
TEST=cctest/test-run-wasm-interpreter/GrowMemory

Review-Url: https://codereview.chromium.org/2627943002
Cr-Commit-Position: refs/heads/master@{#42240}
2017-01-11 17:24:00 +00:00
clemensh
7a3366fbcd [compiler] Allow for StackSlots of arbitrary size
This will be used to pass parameters of wasm functions to the wasm
interpreter. All of them need to be packed into one buffer, which is
then passed to the interpreter.

R=ahaas@chromium.org, titzer@chromium.org
BUG=v8:5822

Review-Url: https://codereview.chromium.org/2624183002
Cr-Commit-Position: refs/heads/master@{#42239}
2017-01-11 16:10:51 +00:00
ahaas
e904894915 [wasm] (To|From)JSWrappers with I64 params throw a TypeError upon call.
According to the latest spec changes the WasmToJS wrapper and the
JSToWasm wrapper through a TypeError if the signature of the wrapper
contains a I64 parameter or return value. Originally the TypeError was
thrown when the parameter or return value was converted to or from JS.

In addition I removed all special handling of I64 parameters and return
values in the wrappers which was already dead code.

R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/2626853003
Cr-Commit-Position: refs/heads/master@{#42238}
2017-01-11 15:58:03 +00:00
ahaas
b2d67f3b75 [wasm] TrapIf and TrapUnless TurboFan operators implemented on mips64.
Original commit message:
[wasm] Introduce the TrapIf and TrapUnless operators to generate trap code.

Some instructions in WebAssembly trap for some inputs, which means that the
execution is terminated and (at least at the moment) a JavaScript exception is
thrown. Examples for traps are out-of-bounds memory accesses, or integer
divisions by zero.

Without the TrapIf and TrapUnless operators trap check in WebAssembly introduces 5
TurboFan nodes (branch, if_true, if_false, trap-reason constant, trap-position
constant), in addition to the trap condition itself. Additionally, each
WebAssembly function has four TurboFan nodes (merge, effect_phi, 2 phis) whose
number of inputs is linear to the number of trap checks in the function.
Especially for functions with high numbers of trap checks we observe a
significant slowdown in compilation time, down to 0.22 MiB/s in the sqlite
benchmark instead of the average of 3 MiB/s in other benchmarks. By introducing
a TrapIf common operator only a single node is necessary per trap check, in
addition to the trap condition. Also the nodes which are shared between trap
checks (merge, effect_phi, 2 phis) would disappear. First measurements suggest a
speedup of 30-50% on average.

This CL only implements TrapIf and TrapUnless on x64. The implementation is also
hidden behind the --wasm-trap-if flag.

Please take a special look at how the source position is transfered from the
instruction selector to the code generator, and at the context that is used for
the runtime call.

R=titzer@chromium.org, v8-mips-ports@googlegroups.com

Review-Url: https://codereview.chromium.org/2627003002
Cr-Commit-Position: refs/heads/master@{#42237}
2017-01-11 15:56:54 +00:00
leszeks
1f55c1b5ae [ignition] Use Smis directly for type feedback
Since type feedback is stored as Smis, we can avoid a few shift
instructions per bytecode handler by performing type feedback updates
on Smis directly, rather than converting between Smi and Word32.

Review-Url: https://codereview.chromium.org/2624753002
Cr-Commit-Position: refs/heads/master@{#42236}
2017-01-11 15:28:14 +00:00
jkummerow
ec45e6ed2e Internalize strings in-place (reland^2)
using newly introduced ThinStrings, which store a pointer to the actual,
internalized string they represent.

BUG=v8:4520

(Previously landed as #42168 / af51befe69)
(Previously landed as #42193 / 4c699e349a)

Review-Url: https://codereview.chromium.org/2549773002
Cr-Commit-Position: refs/heads/master@{#42235}
2017-01-11 14:59:35 +00:00
rdevlin.cronin
0befccd21b Update MessageCallback typedef Value name
The Local<Value> in the MessageCallback typedef is named "error", but
should be "data" - it's referred to as "data" everywhere else, and
that seems to be the canonical name for a curried-in value.

BUG=None

Review-Url: https://codereview.chromium.org/2621163003
Cr-Commit-Position: refs/heads/master@{#42234}
2017-01-11 14:48:24 +00:00
titzer
bbf00d80aa [wasm] Implement WebAssembly.Module.exports function.
R=rossberg@chromium.org
BUG=v8:5814,chromium:575167

Review-Url: https://codereview.chromium.org/2623183002
Cr-Commit-Position: refs/heads/master@{#42233}
2017-01-11 14:40:25 +00:00
machenbach
7374a16dd1 [foozzie] Suppress some asm test cases
BUG=chromium:680110
TBR=clemensh@chromium.org, titzer@chromium.org, ahaas@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2626073002
Cr-Commit-Position: refs/heads/master@{#42232}
2017-01-11 14:29:26 +00:00
titzer
d5a0860e87 [wasm] Implement the WebAssembly.Module.imports function.
R=rossberg@chromium.org
BUG=v8:5813,chromium:575167

Review-Url: https://codereview.chromium.org/2620203005
Cr-Commit-Position: refs/heads/master@{#42231}
2017-01-11 14:17:54 +00:00
ahaas
b16febbc3f [wasm] TrapIf and TrapUnless TurboFan operators implemented on mips.
Original commit message:
[wasm] Introduce the TrapIf and TrapUnless operators to generate trap code.

Some instructions in WebAssembly trap for some inputs, which means that the
execution is terminated and (at least at the moment) a JavaScript exception is
thrown. Examples for traps are out-of-bounds memory accesses, or integer
divisions by zero.

Without the TrapIf and TrapUnless operators trap check in WebAssembly introduces 5
TurboFan nodes (branch, if_true, if_false, trap-reason constant, trap-position
constant), in addition to the trap condition itself. Additionally, each
WebAssembly function has four TurboFan nodes (merge, effect_phi, 2 phis) whose
number of inputs is linear to the number of trap checks in the function.
Especially for functions with high numbers of trap checks we observe a
significant slowdown in compilation time, down to 0.22 MiB/s in the sqlite
benchmark instead of the average of 3 MiB/s in other benchmarks. By introducing
a TrapIf common operator only a single node is necessary per trap check, in
addition to the trap condition. Also the nodes which are shared between trap
checks (merge, effect_phi, 2 phis) would disappear. First measurements suggest a
speedup of 30-50% on average.

This CL only implements TrapIf and TrapUnless on x64. The implementation is also
hidden behind the --wasm-trap-if flag.

Please take a special look at how the source position is transfered from the
instruction selector to the code generator, and at the context that is used for
the runtime call.

R=titzer@chromium.org, v8-mips-ports@googlegroups.com

Review-Url: https://codereview.chromium.org/2628433004
Cr-Commit-Position: refs/heads/master@{#42230}
2017-01-11 14:07:45 +00:00
jarin
30176976e8 [turbofan] Enable escape analysis.
Review-Url: https://codereview.chromium.org/2626013002
Cr-Commit-Position: refs/heads/master@{#42229}
2017-01-11 13:47:36 +00:00
ulan
18104fac86 [heap] Add API function for checking if the heap limit was increased
for debugging. This function is needed to pass increased heap limit
from the main DevTools isolate to the worker isolates it spawns.

BUG=chromium:675911

Review-Url: https://codereview.chromium.org/2624973003
Cr-Commit-Position: refs/heads/master@{#42228}
2017-01-11 13:46:27 +00:00
hpayer
fdff4b072e [heap] Use CAS to update old to new slots in Scavenger.
BUG=chromium:676635

Review-Url: https://codereview.chromium.org/2628853002
Cr-Commit-Position: refs/heads/master@{#42227}
2017-01-11 13:32:13 +00:00
jgruber
3e362c755b [cleanup] Refactor builtins-object.cc to use TF_BUILTIN macro
BUG=

Review-Url: https://codereview.chromium.org/2621303002
Cr-Commit-Position: refs/heads/master@{#42226}
2017-01-11 13:30:13 +00:00
ulan
0959983c1a [heap, debugger] Introduce out-of-memory listener for debugger.
This API will allow DevTools to intercept out-of-memory condition,
increase the heap limit and schedule heap snapshot.

BUG=chromium:675911

Review-Url: https://codereview.chromium.org/2621873003
Cr-Commit-Position: refs/heads/master@{#42225}
2017-01-11 13:20:53 +00:00
mstarzinger
fc241b9077 [turbofan] Graph building is independent of closure.
This changes the BytecodeGraphBuilder interface to make the fact that
graph construction is independent of a closure explicit. A valid graph
can be constructed by providing only the pair of statically known values
for SharedFunctionInfo and TypeFeedbackVector. This is in preparation of
inlining based on the SharedFunctionInfo.

R=jarin@chromium.org
BUG=v8:2206

Review-Url: https://codereview.chromium.org/2626623002
Cr-Commit-Position: refs/heads/master@{#42224}
2017-01-11 13:05:53 +00:00
jarin
e0a850318f [deoptimizer] Insert more consistency checks.
This is mainly to catch a crash that we see in Canary with escape
analysis on.

Review-Url: https://codereview.chromium.org/2625893003
Cr-Commit-Position: refs/heads/master@{#42223}
2017-01-11 12:48:42 +00:00
machenbach
96b03dd111 Revert of [wasm] Enable WASM by default (--expose-wasm=true). (patchset #3 id:40001 of https://codereview.chromium.org/2623743003/ )
Reason for revert:
layout test breakages:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/12574

revert first to unblock rolling. otherwise please rebaseline.

Original issue's description:
> [wasm] Enable WASM by default (--expose-wasm=true).
>
> BUG=chromium:575167
> R=rossberg@chromium.org,ahaas@chromium.org,clemensh@chromium.org,bradnelson@chromium.org
>
> Review-Url: https://codereview.chromium.org/2623743003
> Cr-Original-Commit-Position: refs/heads/master@{#42197}
> Committed: 34b63f050b
> Review-Url: https://codereview.chromium.org/2623743003
> Cr-Commit-Position: refs/heads/master@{#42214}
> Committed: 71f5650828

TBR=clemensh@chromium.org,ahaas@chromium.org,bradnelson@chromium.org,rossberg@chromium.org,bradnelson@google.com,titzer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:575167

Review-Url: https://codereview.chromium.org/2621323002
Cr-Commit-Position: refs/heads/master@{#42222}
2017-01-11 12:43:33 +00:00
rmcilroy
a3052cfe22 [compiler] Collect eager inner functions for compilation during renumbering.
This CL modifies the ast-numbering phase to collect function literals which
should be compiled eagerly. This is then used to eagerly compile the inner
functions before compiling the outer function. This will be used to queue
compilation jobs on the CompilerDispatcher in a later CL.

This CL moves the compilation of eager inner functions out of the
GetSharedFunctionInfo function and instead compiles them explicitly. This
simplifies GetSharedFunctionInfo and also means there is no need to pass a
LazyCompilationMode to the function, so this concept has been removed.

BUG=v8:5203,v8:5215

Review-Url: https://codereview.chromium.org/2618553004
Cr-Commit-Position: refs/heads/master@{#42221}
2017-01-11 12:18:48 +00:00
yangguo
a8cfc2f5e4 [debugger] deprecate v8::Debug:GetDebugContext.
R=jgruber@chromium.org
BUG=v8:5530

Review-Url: https://codereview.chromium.org/2589203002
Cr-Original-Commit-Position: refs/heads/master@{#41911}
Committed: 381082168d
Review-Url: https://codereview.chromium.org/2589203002
Cr-Commit-Position: refs/heads/master@{#42220}
2017-01-11 11:59:54 +00:00
jkummerow
93a357c707 Fix: KeyedStoreGeneric must check for writable array length
This has been broken since forever.

BUG=v8:5669

Review-Url: https://codereview.chromium.org/2610343002
Cr-Commit-Position: refs/heads/master@{#42219}
2017-01-11 11:37:44 +00:00
jgruber
8713dc5777 [stubs] Add CreateIterResultObject stub
Most notably, the interpreter now calls this stub instead of the
runtime.

BUG=

Review-Url: https://codereview.chromium.org/2619163004
Cr-Commit-Position: refs/heads/master@{#42218}
2017-01-11 11:34:02 +00:00
machenbach
733569b70c [foozzie] Suppress asm stack trace difference
BUG=chromium:680064
TBR=clemensh@chromium.org, titzer@chromium.org, ahaas@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2620333002
Cr-Commit-Position: refs/heads/master@{#42217}
2017-01-11 11:32:12 +00:00
mstarzinger
fbce223157 [turbofan] Test for FixedDoubleArray materialization.
R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2624113002
Cr-Commit-Position: refs/heads/master@{#42216}
2017-01-11 11:30:43 +00:00
machenbach
8024d8f42e [foozzie] Add suppressions based on metadata.
Also suppress a testcase using f.arguments.

BUG=chromium:662424
TBR=jarin@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2625983002
Cr-Commit-Position: refs/heads/master@{#42215}
2017-01-11 10:49:09 +00:00
titzer
71f5650828 [wasm] Enable WASM by default (--expose-wasm=true).
BUG=chromium:575167
R=rossberg@chromium.org,ahaas@chromium.org,clemensh@chromium.org,bradnelson@chromium.org

Review-Url: https://codereview.chromium.org/2623743003
Cr-Original-Commit-Position: refs/heads/master@{#42197}
Committed: 34b63f050b
Review-Url: https://codereview.chromium.org/2623743003
Cr-Commit-Position: refs/heads/master@{#42214}
2017-01-11 10:17:23 +00:00
clemensh
81700ddfdc [wasm] Introduce WasmToInterpreterFrame
and rename WasmFrame to WasmCompiledFrame.
The WasmToInterpreterFrames are not used yet; this will follow in a
follow-up CL (see tracking bug for the overall picture).
Those frames will represent frames for WASM_TO_INTERPRETER stubs, which
call from wasm code to the wasm interpreter, implemented in C++.
They will support the Summarize method to inspect the stack frames in
the wasm interpreter.

R=yangguo@chromium.org, titzer@chromium.org
BUG=v8:5822

Review-Url: https://codereview.chromium.org/2623773004
Cr-Commit-Position: refs/heads/master@{#42213}
2017-01-11 10:16:10 +00:00
jkummerow
7ef86f8091 Revert of Internalize strings in-place (patchset #17 id:320001 of https://codereview.chromium.org/2549773002/ )
Reason for revert:
blocks roll, see: https://codereview.chromium.org/2628733002/

Debug mode runs into an Abort("External string expected, but not found").

Original issue's description:
> Internalize strings in-place (reland)
>
> using newly introduced ThinStrings, which store a pointer to the actual,
> internalized string they represent.
>
> BUG=v8:4520
>
> (Previously landed as #42168 / af51befe69.
>
> Review-Url: https://codereview.chromium.org/2549773002
> Cr-Commit-Position: refs/heads/master@{#42193}
> Committed: 4c699e349a

TBR=ishell@chromium.org,hpayer@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:4520

Review-Url: https://codereview.chromium.org/2625073002
Cr-Commit-Position: refs/heads/master@{#42212}
2017-01-11 09:59:52 +00:00
machenbach
e2935640d7 [foozzie] Suppress test cases using performance.now
BUG=chromium:679957
NOTRY=true
TBR=jarin@chromium.org,bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2628813002
Cr-Commit-Position: refs/heads/master@{#42211}
2017-01-11 09:45:55 +00:00
franzih
088df4e138 [turbofan] Use feedback from StoreDataPropertyInLiteral.
Lower StoreDataPropertyInLiteral() when storing
computed property names in object literals.

Add a new AccessMode, kStoreInLiteral. It is similar to
AccessMode::kStore but does not look
up properties on the prototype chain.

99% of all literal definitions with computed property names
end up with generic access_info because of how we count
properties. Once we fix
https://bugs.chromium.org/p/v8/issues/detail?id=5625,
they'll get lowered as well.

BUG=v8:5624

Review-Url: https://codereview.chromium.org/2619773002
Cr-Commit-Position: refs/heads/master@{#42210}
2017-01-11 09:29:57 +00:00
v8-autoroll
9355f899ef Update V8 DEPS.
Rolling v8/build: da5025b..91344e6

Rolling v8/third_party/catapult: 886ff59..8b10e78

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

Review-Url: https://codereview.chromium.org/2622133002
Cr-Commit-Position: refs/heads/master@{#42209}
2017-01-11 04:25:25 +00:00
zhengxing.li
f5631ead77 X87: [wasm] Prerequisites for WebAssembly Table.Grow.
port 0c4b8ff44c (r42192)

  original commit message:
   - Refactor Dispatch tables to have separate function, signature tables
   - New Relocation type for WasmFunctionTableReference, assembler, compiler support.
   - RelocInfo helper functions for Wasm references

BUG=

Review-Url: https://codereview.chromium.org/2623133002
Cr-Commit-Position: refs/heads/master@{#42208}
2017-01-11 03:27:02 +00:00
aseemgarg
b8a95b3545 [wasm] fix asm.js type for param type annotation statements
R=bradnelson@chromium.org
BUG=v8:5809

Review-Url: https://codereview.chromium.org/2625853003
Cr-Commit-Position: refs/heads/master@{#42207}
2017-01-11 01:36:38 +00:00
mtrofin
96ddbf5bbe [wasm] add WebAssembly.instantiate
BUG=v8:5816

Review-Url: https://codereview.chromium.org/2626693002
Cr-Commit-Position: refs/heads/master@{#42206}
2017-01-11 01:14:19 +00:00
mtrofin
040f7434cc [wasm] JS API tests for WebAssembly.validate
Also ensuring it is validation error to specify more than
one memory import.

BUG=v8:5824

Review-Url: https://codereview.chromium.org/2624853002
Cr-Commit-Position: refs/heads/master@{#42205}
2017-01-11 00:25:09 +00:00
bradnelson
b5071c87f4 [wasm][asm.js] Add flag to optionally suppress asm.js messages.
Asm.js warnings / info is non-canonical.
It may be useful to suppress it in golden file tests
(for instance LayoutTests).

BUG=v8:4203
R=mtrofin@chromium.org

Review-Url: https://codereview.chromium.org/2625833003
Cr-Commit-Position: refs/heads/master@{#42204}
2017-01-10 23:35:21 +00:00
adamk
66178c8f53 Remove --harmony-async-await runtime flag
It shipped with Chrome 55 stable.

R=littledan@chromium.org

Review-Url: https://codereview.chromium.org/2621173002
Cr-Commit-Position: refs/heads/master@{#42203}
2017-01-10 23:27:02 +00:00
bjaideep
aa0cb2eaf8 PPC/s390: Internalize strings in-place (reland)
Port 4c699e349a

Original Commit Message:

    using newly introduced ThinStrings, which store a pointer to the actual,
    internalized string they represent.

    (Previously landed as #42168 / af51befe69.

R=jkummerow@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=v8:4520
LOG=N

Review-Url: https://codereview.chromium.org/2628643002
Cr-Commit-Position: refs/heads/master@{#42202}
2017-01-10 22:09:29 +00:00
bjaideep
904bee3bdc PPC/s390: [wasm] Prerequisites for WebAssembly Table.Grow
Port 0c4b8ff44c

Original Commit Message:

     - Refactor Dispatch tables to have separate function, signature tables
     - New Relocation type for WasmFunctionTableReference, assembler, compiler support.
     - RelocInfo helper functions for Wasm references

R=gdeepti@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2625683004
Cr-Commit-Position: refs/heads/master@{#42201}
2017-01-10 21:10:18 +00:00
machenbach
0e03bea7ea Revert of [wasm][asm.js] Enable --validate-asm by default. (patchset #1 id:1 of https://codereview.chromium.org/2624813002/ )
Reason for revert:
Breaks layout tests:
https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/12554

See also:
https://github.com/v8/v8/wiki/Blink%20layout%20tests

Original issue's description:
> [wasm][asm.js] Enable --validate-asm by default.
>
> This directs all asm.js traffic via the Wasm backend.
>
> R=titzer@chromium.org,aseemgarg@chromium.org
> BUG=v8:4203
>
> Review-Url: https://codereview.chromium.org/2624813002
> Cr-Commit-Position: refs/heads/master@{#42194}
> Committed: 946cc371ed

TBR=aseemgarg@chromium.org,titzer@chromium.org,bradnelson@google.com,bradnelson@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4203

Review-Url: https://codereview.chromium.org/2622023002
Cr-Commit-Position: refs/heads/master@{#42200}
2017-01-10 21:09:08 +00:00
machenbach
4f6069086f Revert of [wasm] Enable WASM by default (--expose-wasm=true). (patchset #2 id:20001 of https://codereview.chromium.org/2623743003/ )
Reason for revert:
arm64 gc stress:
https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20gc%20stress/builds/4424

Original issue's description:
> [wasm] Enable WASM by default (--expose-wasm=true).
>
> BUG=chromium:575167
> R=rossberg@chromium.org,ahaas@chromium.org,clemensh@chromium.org,bradnelson@chromium.org
>
> Review-Url: https://codereview.chromium.org/2623743003
> Cr-Commit-Position: refs/heads/master@{#42197}
> Committed: 34b63f050b

TBR=clemensh@chromium.org,ahaas@chromium.org,bradnelson@chromium.org,rossberg@chromium.org,bradnelson@google.com,titzer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:575167

Review-Url: https://codereview.chromium.org/2626763002
Cr-Commit-Position: refs/heads/master@{#42199}
2017-01-10 21:03:59 +00:00
adamk
f40a3817e1 [crankshaft] Fix mips/mips64 build: remove unused variable
TBR=bmeurer@chromium.org
NOTRY=true
NOTREECHECKS=true

Review-Url: https://codereview.chromium.org/2621123002
Cr-Commit-Position: refs/heads/master@{#42198}
2017-01-10 19:55:56 +00:00
titzer
34b63f050b [wasm] Enable WASM by default (--expose-wasm=true).
BUG=chromium:575167
R=rossberg@chromium.org,ahaas@chromium.org,clemensh@chromium.org,bradnelson@chromium.org

Review-Url: https://codereview.chromium.org/2623743003
Cr-Commit-Position: refs/heads/master@{#42197}
2017-01-10 19:44:56 +00:00
adamk
2aaf217bd0 [crankshaft] Remove dead Variable hole-checking code
This is a follow-up on 45c1188792, which
removed hole checks from full-codegen. Variables requiring hole checks
always go through Ignition.

R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/2622783002
Cr-Commit-Position: refs/heads/master@{#42196}
2017-01-10 19:19:55 +00:00
titzer
a24fe91ce9 [test] Fix field type tracking tests to use a stable map by construction.
BUG=
R=clemensh@chromium.org,verwaest@chromium.org

Review-Url: https://codereview.chromium.org/2627453006
Cr-Commit-Position: refs/heads/master@{#42195}
2017-01-10 19:15:23 +00:00
bradnelson
946cc371ed [wasm][asm.js] Enable --validate-asm by default.
This directs all asm.js traffic via the Wasm backend.

R=titzer@chromium.org,aseemgarg@chromium.org
BUG=v8:4203

Review-Url: https://codereview.chromium.org/2624813002
Cr-Commit-Position: refs/heads/master@{#42194}
2017-01-10 19:12:49 +00:00
jkummerow
4c699e349a Internalize strings in-place (reland)
using newly introduced ThinStrings, which store a pointer to the actual,
internalized string they represent.

BUG=v8:4520

(Previously landed as #42168 / af51befe69.

Review-Url: https://codereview.chromium.org/2549773002
Cr-Commit-Position: refs/heads/master@{#42193}
2017-01-10 19:08:58 +00:00
gdeepti
0c4b8ff44c [wasm] Prerequisites for WebAssembly Table.Grow
- Refactor Dispatch tables to have separate function, signature tables
 - New Relocation type for WasmFunctionTableReference, assembler, compiler support.
 - RelocInfo helper functions for Wasm references

Review-Url: https://codereview.chromium.org/2627543003
Cr-Commit-Position: refs/heads/master@{#42192}
2017-01-10 19:07:34 +00:00
bradnelson
b1cfa6448c [wasm][asm.js] Ensure final validation phase runs.
Asm.js modules missing exports fail to run the last phase of
validation. Adding an explicit check for this.

BUG=676573
R=titzer@chromium.org,aseemgarg@chromium.org

Review-Url: https://codereview.chromium.org/2620893002
Cr-Commit-Position: refs/heads/master@{#42191}
2017-01-10 17:47:21 +00:00