Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(137)

Unified Diff: test/mjsunit/wasm/indirect-calls.js

Issue 2443353002: [wasm] Add support for exporting WebAssembly.Table instances. (Closed)
Patch Set: Fix identity of exported JSFunctions Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/mjsunit/wasm/export-table.js ('k') | test/mjsunit/wasm/indirect-tables.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/wasm/indirect-calls.js
diff --git a/test/mjsunit/wasm/indirect-calls.js b/test/mjsunit/wasm/indirect-calls.js
index b07ce0d58a8448de9058438318181b5da9c98698..c49361cfd299117efdddc4785ab765b2793cd9b8 100644
--- a/test/mjsunit/wasm/indirect-calls.js
+++ b/test/mjsunit/wasm/indirect-calls.js
@@ -73,7 +73,7 @@ module = (function () {
kExprGetLocal, 0,
kExprCallIndirect, sig_i_ii
])
- .exportFunc()
+ .exportFunc();
builder.appendToTable([mul.index, add.index, popcnt.index, main.index]);
return builder.instantiate({mul: function(a, b) { return a * b | 0; }});
@@ -85,10 +85,7 @@ assertTraps(kTrapFuncSigMismatch, "module.exports.main(2, 12, 33)");
assertTraps(kTrapFuncSigMismatch, "module.exports.main(3, 12, 33)");
assertTraps(kTrapFuncInvalid, "module.exports.main(4, 12, 33)");
-
-module = (function () {
- var builder = new WasmModuleBuilder();
-
+function AddFunctions(builder) {
var mul = builder.addFunction("mul", kSig_i_ii)
.addBody([
kExprGetLocal, 0, // --
@@ -107,6 +104,14 @@ module = (function () {
kExprGetLocal, 1, // --
kExprI32Sub // --
]);
+ return {mul: mul, add: add, sub: sub};
+}
+
+
+module = (function () {
+ var builder = new WasmModuleBuilder();
+
+ var f = AddFunctions(builder);
builder.addFunction("main", kSig_i_ii)
.addBody([
kExprI32Const, 33, // --
@@ -115,7 +120,7 @@ module = (function () {
kExprCallIndirect, 0]) // --
.exportAs("main");
- builder.appendToTable([mul.index, add.index, sub.index]);
+ builder.appendToTable([f.mul.index, f.add.index, f.sub.index]);
return builder.instantiate();
})();
@@ -133,24 +138,7 @@ assertTraps(kTrapFuncInvalid, "module.exports.main(12, 3)");
function instanceWithTable(base, length) {
var builder = new WasmModuleBuilder();
- var mul = builder.addFunction("mul", kSig_i_ii)
- .addBody([
- kExprGetLocal, 0, // --
- kExprGetLocal, 1, // --
- kExprI32Mul // --
- ]);
- var add = builder.addFunction("add", kSig_i_ii)
- .addBody([
- kExprGetLocal, 0, // --
- kExprGetLocal, 1, // --
- kExprI32Add // --
- ]);
- var sub = builder.addFunction("sub", kSig_i_ii)
- .addBody([
- kExprGetLocal, 0, // --
- kExprGetLocal, 1, // --
- kExprI32Sub // --
- ]);
+ var f = AddFunctions(builder);
builder.addFunction("main", kSig_i_ii)
.addBody([
kExprI32Const, 33, // --
@@ -160,7 +148,7 @@ assertTraps(kTrapFuncInvalid, "module.exports.main(12, 3)");
.exportAs("main");
builder.setFunctionTableLength(length);
- builder.addFunctionTableInit(base, false, [add.index, sub.index, mul.index]);
+ builder.addFunctionTableInit(base, false, [f.add.index, f.sub.index, f.mul.index]);
return builder.instantiate();
}
@@ -187,24 +175,7 @@ assertTraps(kTrapFuncInvalid, "module.exports.main(12, 3)");
var builder = new WasmModuleBuilder();
- var mul = builder.addFunction("mul", kSig_i_ii)
- .addBody([
- kExprGetLocal, 0, // --
- kExprGetLocal, 1, // --
- kExprI32Mul // --
- ]);
- var add = builder.addFunction("add", kSig_i_ii)
- .addBody([
- kExprGetLocal, 0, // --
- kExprGetLocal, 1, // --
- kExprI32Add // --
- ]);
- var sub = builder.addFunction("sub", kSig_i_ii)
- .addBody([
- kExprGetLocal, 0, // --
- kExprGetLocal, 1, // --
- kExprI32Sub // --
- ]);
+ var f = AddFunctions(builder);
builder.addFunction("main", kSig_i_ii)
.addBody([
kExprI32Const, 33, // --
@@ -215,7 +186,7 @@ assertTraps(kTrapFuncInvalid, "module.exports.main(12, 3)");
builder.setFunctionTableLength(10);
var g = builder.addImportedGlobal("base", undefined, kAstI32);
- builder.addFunctionTableInit(g, true, [mul.index, add.index, sub.index]);
+ builder.addFunctionTableInit(g, true, [f.mul.index, f.add.index, f.sub.index]);
var module = new WebAssembly.Module(builder.toBuffer());
« no previous file with comments | « test/mjsunit/wasm/export-table.js ('k') | test/mjsunit/wasm/indirect-tables.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698