diff options
Diffstat (limited to 'deps/v8/test/mjsunit/regress/wasm/regress-7364.js')
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-7364.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-7364.js b/deps/v8/test/mjsunit/regress/wasm/regress-7364.js new file mode 100644 index 0000000000..8e66295b70 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-7364.js @@ -0,0 +1,31 @@ +// 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 exportingModuleBinary = (() => { + const builder = new WasmModuleBuilder(); + builder.addFunction('f', kSig_i_v).addBody([kExprI32Const, 42]).exportFunc(); + return builder.toBuffer(); +})(); + +const exportingModule = new WebAssembly.Module(exportingModuleBinary); +const exportingInstance = new WebAssembly.Instance(exportingModule); + +const reExportingModuleBinary = (() => { + const builder = new WasmModuleBuilder(); + const gIndex = builder.addImport('a', 'g', kSig_i_v); + builder.addExport('y', gIndex); + return builder.toBuffer(); +})(); + +const module = new WebAssembly.Module(reExportingModuleBinary); +const imports = { + a: {g: exportingInstance.exports.f}, +}; +const instance = new WebAssembly.Instance(module, imports); + +// Previously exported Wasm functions are re-exported with the same value +assertEquals(instance.exports.y, exportingInstance.exports.f); |