71c05457e2
The js-to-wasm wrappers are shared across instances, so we cannot directly call the instance-specific wasm-to-js wrappers. Instead, we need to call via the import table. R=titzer@chromium.org Bug: chromium:843563 Change-Id: Ia882604f6769472fe2eb69176cbed728215ced29 Reviewed-on: https://chromium-review.googlesource.com/1064610 Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53254}
21 lines
762 B
JavaScript
21 lines
762 B
JavaScript
// Copyright 2018 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
load('test/mjsunit/wasm/wasm-constants.js');
|
|
load('test/mjsunit/wasm/wasm-module-builder.js');
|
|
|
|
const builder = new WasmModuleBuilder();
|
|
sig1 = makeSig([kWasmI32, kWasmI32, kWasmI32], [kWasmI32]);
|
|
const imp_idx = builder.addImport('q', 'imp', kSig_i_i);
|
|
builder.addExport('exp', imp_idx);
|
|
const module = builder.toModule();
|
|
|
|
function bad(a, b, c, d, e, f, g, h) {
|
|
print(JSON.stringify([a, b, c, d, e, f, g, h]));
|
|
}
|
|
const instance1 = new WebAssembly.Instance(module, {q: {imp: bad}});
|
|
const instance2 = new WebAssembly.Instance(module, {q: {imp: i => i}});
|
|
|
|
print(instance1.exports.exp(5));
|