v8/test/cctest/wasm
clemensh 890d28f361 [wasm] Fix location for error in asm.js ToNumber conversion
In the asm.js code translated to wasm, we call imported functions via a
WASM_TO_JS stub, which first calls the function and then calls ToNumber
on the return value. Exceptions can happen in both calls.
We were only ever reporting the location of the function call, whereas
asm.js code executed via turbofan reported the location of the type
coercion operator ("+" on "+foo()" or "|" on "foo()|0").

This CL implements the same behaviour for asm.js code translated to
wasm. The following is changed:
- the AsmWasmBuilder records the parent node when descending on a binary
  operator (also "+foo()" is represented by a binary operation).
- it stores not one location per call in the source position side
  table, but two (one for the call, one for the parent which does the
  type coercion).
- the wasm compiler annotates the source positions "0" and "1" to the
  two calls in the WASM_TO_JS wrapper (only if the module origin is
  asm.js).
- the StackFrame::State struct now also holds the callee_pc_address,
  which is set in ComputeCallerState. The WASM frame uses this
  information to determine whether the callee frame is WASM_TO_JS, and
  whether that frame is at the ToNumber conversion call.
- the same information is also stored in the FrameArray which is used
  to reconstruct the stack trace later.

R=titzer@chromium.org, bradnelson@chromium.org
CC=jgruber@chromium.org
BUG=v8:4203,v8:5724

Committed: https://crrev.com/94cd46b55e24fa2bb7b06b3da4d5ba7f029bc262
Review-Url: https://codereview.chromium.org/2555243002
Cr-Original-Commit-Position: refs/heads/master@{#41599}
Cr-Commit-Position: refs/heads/master@{#41613}
2016-12-09 10:30:19 +00:00
..
OWNERS Adding a few more owners to the wasm directory. 2016-06-29 17:38:30 +00:00
test-managed.cc [wasm] Add a Managed<T> wrapper class for allocating C++ classes that are deleted when the wrapper is garbage collected. 2016-10-17 09:28:40 +00:00
test-run-wasm-64.cc [wasm] Fix more -Wsign-compare warnings. 2016-11-11 11:56:05 +00:00
test-run-wasm-asmjs.cc [wasm] Remove raw byte pointers from WasmModule 2016-11-30 15:03:06 +00:00
test-run-wasm-interpreter.cc [wasm] Fix -Wsign-compare warnings. 2016-11-10 12:51:05 +00:00
test-run-wasm-js.cc [wasm] Fix more -Wsign-compare warnings. 2016-11-11 11:56:05 +00:00
test-run-wasm-module.cc [wasm] Remove raw byte pointers from WasmModule 2016-11-30 15:03:06 +00:00
test-run-wasm-relocation.cc [wasm] Fix more -Wsign-compare warnings. 2016-11-11 11:56:05 +00:00
test-run-wasm-simd-lowering.cc [wasm] implement simd lowering for replaceLane, load, store and test for phi 2016-12-02 03:47:46 +00:00
test-run-wasm-simd.cc [wasm] Implement I32x4ReplaceLane, I32x4Add, I32x4Sub. 2016-12-06 01:12:55 +00:00
test-run-wasm.cc [wasm] Fix more -Wsign-compare warnings. 2016-11-11 11:56:05 +00:00
test-wasm-stack.cc [wasm] Make reported "lines" on stack frames 1-based 2016-11-14 16:00:54 +00:00
test-wasm-trap-position.cc [wasm] Make reported "lines" on stack frames 1-based 2016-11-14 16:00:54 +00:00
wasm-run-utils.h [wasm] Fix location for error in asm.js ToNumber conversion 2016-12-09 10:30:19 +00:00