| // Copyright 2019 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. |
| |
| // Flags: --expose-wasm --experimental-wasm-reftypes |
| |
| load('test/mjsunit/wasm/wasm-module-builder.js'); |
| |
| let builder = new WasmModuleBuilder(); |
| |
| builder.addImportedTable('ffi', 't1', 5, 5, kWasmAnyFunc); |
| builder.addImportedTable('ffi', 't2', 9, 9, kWasmAnyFunc); |
| |
| builder.addFunction('foo', kSig_v_v).addBody([]).exportFunc(); |
| |
| let module = builder.toModule(); |
| let table1 = |
| new WebAssembly.Table({element: 'anyfunc', initial: 5, maximum: 5}); |
| |
| let table2 = |
| new WebAssembly.Table({element: 'anyfunc', initial: 9, maximum: 9}); |
| |
| let instance = |
| new WebAssembly.Instance(module, {ffi: {t1: table1, t2: table2}}); |
| let table3 = |
| new WebAssembly.Table({element: 'anyfunc', initial: 9, maximum: 9}); |
| |
| table3.set(8, instance.exports.foo); |
| new WebAssembly.Instance(module, {ffi: {t1: table1, t2: table3}}); |