| Index: test/mjsunit/wasm/default-func-call2.js
|
| diff --git a/test/mjsunit/wasm/indirect-calls.js b/test/mjsunit/wasm/default-func-call2.js
|
| similarity index 55%
|
| copy from test/mjsunit/wasm/indirect-calls.js
|
| copy to test/mjsunit/wasm/default-func-call2.js
|
| index 80bee412e028541e3b54ba7a175a512cb8293e77..8863eac6a1ee902a0ce2719e03339ead03faed7e 100644
|
| --- a/test/mjsunit/wasm/indirect-calls.js
|
| +++ b/test/mjsunit/wasm/default-func-call2.js
|
| @@ -3,6 +3,7 @@
|
| // found in the LICENSE file.
|
|
|
| // Flags: --expose-wasm
|
| +// Flags: --wasm-jit-prototype
|
|
|
| load("test/mjsunit/wasm/wasm-constants.js");
|
| load("test/mjsunit/wasm/wasm-module-builder.js");
|
| @@ -22,6 +23,17 @@ var module = (function () {
|
| kExprGetLocal, 1, // --
|
| kExprI32Sub, // --
|
| ]);
|
| + builder.appendToFunctionTable([0, 1]);
|
| + var i;
|
| + for(i = 0; i < 2000; i++){
|
| + builder.addFunction("sub".concat(i.toString()), sig_index)
|
| + .addBody([
|
| + kExprGetLocal, 0, // --
|
| + kExprGetLocal, 1, // --
|
| + kExprI32Sub, // --
|
| + ]);
|
| + builder.appendToFunctionTable([i + 2]);
|
| + }
|
| builder.addFunction("main", kSig_i_iii)
|
| .addBody([
|
| kExprGetLocal, 0,
|
| @@ -30,7 +42,8 @@ var module = (function () {
|
| kExprCallIndirect, kArity2, sig_index
|
| ])
|
| .exportFunc()
|
| - builder.appendToFunctionTable([0, 1, 2]);
|
| + builder.appendToFunctionTable([2002]);
|
| +
|
|
|
| return builder.instantiate({add: function(a, b) { return a + b | 0; }});
|
| })();
|
| @@ -42,8 +55,12 @@ assertFalse(module === 0);
|
| assertEquals("object", typeof module.exports);
|
| assertEquals("function", typeof module.exports.main);
|
|
|
| -assertEquals(5, module.exports.main(1, 12, 7));
|
| -assertEquals(19, module.exports.main(0, 12, 7));
|
| -
|
| -assertTraps(kTrapFuncSigMismatch, "module.exports.main(2, 12, 33)");
|
| -assertTraps(kTrapFuncInvalid, "module.exports.main(3, 12, 33)");
|
| +// Check that the appropriate trap is generated
|
| +assertTraps(kTrapFuncInvalid, "module.exports.main(-1,15,16)");
|
| +assertTraps(kTrapFuncInvalid, "module.exports.main(100000,15,16)");
|
| +assertTraps(kTrapFuncInvalid, "module.exports.main(4006,15,16)");
|
| +assertTraps(kTrapFuncInvalid, "module.exports.main(4007,15,16)");
|
| +assertTraps(kTrapDefaultFuncCall, "module.exports.main(4005,15,16)");
|
| +assertTraps(kTrapDefaultFuncCall, "module.exports.main(2003,15,16)");
|
| +assertTraps(kTrapDefaultFuncCall, "module.exports.main(3000,15,16)");
|
| +assertTraps(kTrapFuncSigMismatch, "module.exports.main(2002,15,16)");
|
|
|