summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/wasm/table-access.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/wasm/table-access.js')
-rw-r--r--deps/v8/test/mjsunit/wasm/table-access.js30
1 files changed, 28 insertions, 2 deletions
diff --git a/deps/v8/test/mjsunit/wasm/table-access.js b/deps/v8/test/mjsunit/wasm/table-access.js
index 9a6f0ebc3a..3203b76d0b 100644
--- a/deps/v8/test/mjsunit/wasm/table-access.js
+++ b/deps/v8/test/mjsunit/wasm/table-access.js
@@ -117,8 +117,8 @@ const dummy_func = exports.set_table_func1;
const offset1 = 3;
const offset2 = 9;
- builder.addElementSegment(t1, offset1, false, [f1.index, f2.index], false);
- builder.addElementSegment(t2, offset2, false, [f3.index, f1.index], false);
+ builder.addElementSegment(t1, offset1, false, [f1.index, f2.index]);
+ builder.addElementSegment(t2, offset2, false, [f3.index, f1.index]);
const instance = builder.instantiate();
@@ -127,3 +127,29 @@ const dummy_func = exports.set_table_func1;
assertEquals(value3, instance.exports.get_t2(offset2)());
assertEquals(value1, instance.exports.get_t2(offset2 + 1)());
})();
+
+(function testRefFuncInTableIsCallable() {
+ print(arguments.callee.name);
+ const expected = 54;
+ const index = 3;
+ const builder = new WasmModuleBuilder();
+ const table_index = builder.addTable(kWasmAnyFunc, 15, 15).index;
+ const sig_index = builder.addType(kSig_i_v);
+ const function_index = builder.addFunction('hidden', sig_index)
+ .addBody([kExprI32Const, expected])
+ .index;
+
+ builder.addFunction('main', kSig_i_v)
+ .addBody([
+ kExprI32Const, index, // entry index
+ kExprRefFunc, function_index, // function reference
+ kExprSetTable, table_index, // --
+ kExprI32Const, index, // entry index
+ kExprCallIndirect, sig_index, table_index // --
+
+ ])
+ .exportFunc();
+
+ const instance = builder.instantiate();
+ assertEquals(expected, instance.exports.main());
+})();