• clemensh's avatar
    [wasm] Fix ToNumber conversion · ae1c5746
    clemensh authored
    There were two bugs, one partly hiding the other one:
    1) We generate the ToNumber conversion for each WASM_TO_JS wrapper,
       even if the expected return type is void.
    2) The return node in the WASM_TO_JS wrapper did not use the effect of
       the ToNumber conversion.
    
    This CL fixes both, and adds test cases to check that we do throw an
    error trying to convert (e.g.) Symbol to a number, but only if the
    return type is not void.
    Additional test check that a user-provided valueOf method is actually
    called the correct number of times.
    
    R=titzer@chromium.org, bradnelson@chromium.org
    BUG=v8:4203
    
    Review-Url: https://codereview.chromium.org/2552123004
    Cr-Commit-Position: refs/heads/master@{#41552}
    ae1c5746
Name
Last commit
Last update
..
embenchen Loading commit data...
OWNERS Loading commit data...
adapter-frame.js Loading commit data...
asm-wasm-copy.js Loading commit data...
asm-wasm-deopt.js Loading commit data...
asm-wasm-expr.js Loading commit data...
asm-wasm-f32.js Loading commit data...
asm-wasm-f64.js Loading commit data...
asm-wasm-heap.js Loading commit data...
asm-wasm-i32.js Loading commit data...
asm-wasm-literals.js Loading commit data...
asm-wasm-names.js Loading commit data...
asm-wasm-stack.js Loading commit data...
asm-wasm-stdlib.js Loading commit data...
asm-wasm-switch.js Loading commit data...
asm-wasm-u32.js Loading commit data...
asm-wasm.js Loading commit data...
calls.js Loading commit data...
compiled-module-management.js Loading commit data...
compiled-module-serialization.js Loading commit data...
data-segments.js Loading commit data...
divrem-trap.js Loading commit data...
ensure-wasm-binaries-up-to-date.js Loading commit data...
errors.js Loading commit data...
exceptions.js Loading commit data...
export-table.js Loading commit data...
ffi-error.js Loading commit data...
ffi.js Loading commit data...
function-names.js Loading commit data...
function-prototype.js Loading commit data...
gc-buffer.js Loading commit data...
gc-frame.js Loading commit data...
gc-stress.js Loading commit data...
globals.js Loading commit data...
grow-memory.js Loading commit data...
import-memory.js Loading commit data...
import-table.js Loading commit data...
incrementer.wasm Loading commit data...
indirect-calls.js Loading commit data...
indirect-tables.js Loading commit data...
instance-gc.js Loading commit data...
instance-memory-gc-stress.js Loading commit data...
instantiate-module-basic.js Loading commit data...
instantiate-run-basic.js Loading commit data...
memory-instance-validation.js Loading commit data...
memory-size.js Loading commit data...
memory.js Loading commit data...
module-memory.js Loading commit data...
no-wasm-by-default.js Loading commit data...
parallel_compilation.js Loading commit data...
params.js Loading commit data...
receiver.js Loading commit data...
stack.js Loading commit data...
stackwalk.js Loading commit data...
start-function.js Loading commit data...
table.js Loading commit data...
test-import-export-wrapper.js Loading commit data...
test-wasm-module-builder.js Loading commit data...
trap-location.js Loading commit data...
unicode-validation.js Loading commit data...
unreachable.js Loading commit data...
verify-module-basic-errors.js Loading commit data...
wasm-constants.js Loading commit data...
wasm-module-builder.js Loading commit data...
wasm-object-api.js Loading commit data...