summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/wasm/test-wasm-module-builder.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/wasm/test-wasm-module-builder.js')
-rw-r--r--deps/v8/test/mjsunit/wasm/test-wasm-module-builder.js261
1 files changed, 141 insertions, 120 deletions
diff --git a/deps/v8/test/mjsunit/wasm/test-wasm-module-builder.js b/deps/v8/test/mjsunit/wasm/test-wasm-module-builder.js
index eb0a95384c..96d3a0bac5 100644
--- a/deps/v8/test/mjsunit/wasm/test-wasm-module-builder.js
+++ b/deps/v8/test/mjsunit/wasm/test-wasm-module-builder.js
@@ -13,153 +13,174 @@ function instantiate(buffer, ffi) {
}
(function BasicTest() {
- print("BasicTest");
- let builder = new WasmModuleBuilder();
- builder.addMemory(1, 2, false);
- builder.addFunction("foo", kSig_i_v)
- .addBody([kExprI32Const, 11])
- .exportAs("blarg");
-
- var buffer = builder.toBuffer(debug);
- var instance = instantiate(buffer);
- assertEquals(11, instance.exports.blarg());
+ print(arguments.callee.name);
+ let builder = new WasmModuleBuilder();
+ builder.addMemory(1, 2, false);
+ builder.addFunction('foo', kSig_i_v)
+ .addBody([kExprI32Const, 11])
+ .exportAs('blarg');
+
+ var buffer = builder.toBuffer(debug);
+ var instance = instantiate(buffer);
+ assertEquals(11, instance.exports.blarg());
})();
(function ImportTest() {
- print("ImportTest");
- let builder = new WasmModuleBuilder();
- var index = builder.addImport("", "print", makeSig_v_x(kWasmI32));
- builder.addFunction("foo", kSig_v_v)
- .addBody([kExprI32Const, 13, kExprCallFunction, index])
- .exportAs("main");
-
- var buffer = builder.toBuffer(debug);
- var instance = instantiate(buffer, {"": {print: print}});
- print("should print 13! ");
- instance.exports.main();
+ print(arguments.callee.name);
+ let builder = new WasmModuleBuilder();
+ var index = builder.addImport('', 'print', makeSig_v_x(kWasmI32));
+ builder.addFunction('foo', kSig_v_v)
+ .addBody([kExprI32Const, 13, kExprCallFunction, index])
+ .exportAs('main');
+
+ var buffer = builder.toBuffer(debug);
+ var instance = instantiate(buffer, {'': {print: print}});
+ print('should print 13! ');
+ instance.exports.main();
})();
(function LocalsTest() {
- print("LocalsTest");
+ print(arguments.callee.name);
+ let builder = new WasmModuleBuilder();
+ builder.addFunction(undefined, kSig_i_i)
+ .addLocals({i32_count: 1})
+ .addBody([kExprGetLocal, 0, kExprSetLocal, 1, kExprGetLocal, 1])
+ .exportAs('main');
+
+ var buffer = builder.toBuffer(debug);
+ var instance = instantiate(buffer);
+ assertEquals(19, instance.exports.main(19));
+ assertEquals(27777, instance.exports.main(27777));
+})();
+
+(function LocalsTest2() {
+ print(arguments.callee.name);
+ // TODO(titzer): i64 only works on 64-bit platforms.
+ var types = [
+ {locals: {i32_count: 1}, type: kWasmI32},
+ // {locals: {i64_count: 1}, type: kWasmI64},
+ {locals: {f32_count: 1}, type: kWasmF32},
+ {locals: {f64_count: 1}, type: kWasmF64},
+ ];
+
+ for (p of types) {
let builder = new WasmModuleBuilder();
- builder.addFunction(undefined, kSig_i_i)
- .addLocals({i32_count: 1})
+ builder.addFunction(undefined, makeSig_r_x(p.type, p.type))
+ .addLocals(p.locals)
.addBody([kExprGetLocal, 0, kExprSetLocal, 1, kExprGetLocal, 1])
- .exportAs("main");
+ .exportAs('main');
var buffer = builder.toBuffer(debug);
var instance = instantiate(buffer);
assertEquals(19, instance.exports.main(19));
assertEquals(27777, instance.exports.main(27777));
-})();
-
-(function LocalsTest2() {
- print("LocalsTest2");
- // TODO(titzer): i64 only works on 64-bit platforms.
- var types = [
- {locals: {i32_count: 1}, type: kWasmI32},
-// {locals: {i64_count: 1}, type: kWasmI64},
- {locals: {f32_count: 1}, type: kWasmF32},
- {locals: {f64_count: 1}, type: kWasmF64},
- ];
-
- for (p of types) {
- let builder = new WasmModuleBuilder();
- builder.addFunction(undefined, makeSig_r_x(p.type, p.type))
- .addLocals(p.locals)
- .addBody([kExprGetLocal, 0, kExprSetLocal, 1, kExprGetLocal, 1])
- .exportAs("main");
-
- var buffer = builder.toBuffer(debug);
- var instance = instantiate(buffer);
- assertEquals(19, instance.exports.main(19));
- assertEquals(27777, instance.exports.main(27777));
- }
+ }
})();
(function CallTest() {
- print("CallTest");
- let builder = new WasmModuleBuilder();
- builder.addFunction("add", kSig_i_ii)
- .addBody([kExprGetLocal, 0, kExprGetLocal, 1, kExprI32Add]);
- builder.addFunction("main", kSig_i_ii)
- .addBody([kExprGetLocal, 0, kExprGetLocal, 1, kExprCallFunction, 0])
- .exportAs("main");
-
- var instance = builder.instantiate();
- assertEquals(44, instance.exports.main(11, 33));
- assertEquals(7777, instance.exports.main(2222, 5555));
+ print(arguments.callee.name);
+ let builder = new WasmModuleBuilder();
+ builder.addFunction('add', kSig_i_ii).addBody([
+ kExprGetLocal, 0, kExprGetLocal, 1, kExprI32Add
+ ]);
+ builder.addFunction('main', kSig_i_ii)
+ .addBody([kExprGetLocal, 0, kExprGetLocal, 1, kExprCallFunction, 0])
+ .exportAs('main');
+
+ var instance = builder.instantiate();
+ assertEquals(44, instance.exports.main(11, 33));
+ assertEquals(7777, instance.exports.main(2222, 5555));
})();
(function IndirectCallTest() {
- print("IndirectCallTest");
- let builder = new WasmModuleBuilder();
- builder.addFunction("add", kSig_i_ii)
- .addBody([kExprGetLocal, 0, kExprGetLocal, 1, kExprI32Add]);
- builder.addFunction("main", kSig_i_iii)
- .addBody([kExprGetLocal,
- 1, kExprGetLocal, 2, kExprGetLocal, 0, kExprCallIndirect, 0, kTableZero])
- .exportAs("main");
- builder.appendToTable([0]);
-
- var instance = builder.instantiate();
- assertEquals(44, instance.exports.main(0, 11, 33));
- assertEquals(7777, instance.exports.main(0, 2222, 5555));
- assertThrows(function() { instance.exports.main(1, 1, 1); });
+ print(arguments.callee.name);
+ let builder = new WasmModuleBuilder();
+ builder.addFunction('add', kSig_i_ii).addBody([
+ kExprGetLocal, 0, kExprGetLocal, 1, kExprI32Add
+ ]);
+ builder.addFunction('main', kSig_i_iii)
+ .addBody([
+ kExprGetLocal, 1, kExprGetLocal, 2, kExprGetLocal, 0, kExprCallIndirect,
+ 0, kTableZero
+ ])
+ .exportAs('main');
+ builder.appendToTable([0]);
+
+ var instance = builder.instantiate();
+ assertEquals(44, instance.exports.main(0, 11, 33));
+ assertEquals(7777, instance.exports.main(0, 2222, 5555));
+ assertThrows(() => instance.exports.main(1, 1, 1));
})();
(function DataSegmentTest() {
- print("DataSegmentTest");
- let builder = new WasmModuleBuilder();
- builder.addMemory(1, 1, false);
- builder.addFunction("load", kSig_i_i)
- .addBody([kExprGetLocal, 0, kExprI32LoadMem, 0, 0])
- .exportAs("load");
- builder.addDataSegment(0, [9, 9, 9, 9]);
-
- var buffer = builder.toBuffer(debug);
- var instance = instantiate(buffer);
- assertEquals(151587081, instance.exports.load(0));
+ print(arguments.callee.name);
+ let builder = new WasmModuleBuilder();
+ builder.addMemory(1, 1, false);
+ builder.addFunction('load', kSig_i_i)
+ .addBody([kExprGetLocal, 0, kExprI32LoadMem, 0, 0])
+ .exportAs('load');
+ builder.addDataSegment(0, [9, 9, 9, 9]);
+
+ var buffer = builder.toBuffer(debug);
+ var instance = instantiate(buffer);
+ assertEquals(151587081, instance.exports.load(0));
})();
-
(function BasicTestWithUint8Array() {
- print("BasicTestWithUint8Array");
- let builder = new WasmModuleBuilder();
- builder.addMemory(1, 2, false);
- builder.addFunction("foo", kSig_i_v)
- .addBody([kExprI32Const, 17])
- .exportAs("blarg");
-
- var buffer = builder.toBuffer(debug);
- var array = new Uint8Array(buffer);
- var instance = instantiate(array);
- assertEquals(17, instance.exports.blarg());
-
- var kPad = 5;
- var buffer2 = new ArrayBuffer(kPad + buffer.byteLength + kPad);
- var whole = new Uint8Array(buffer2);
- for (var i = 0; i < whole.byteLength; i++) {
- whole[i] = 0xff;
- }
- var array2 = new Uint8Array(buffer2, kPad, buffer.byteLength);
- for (var i = 0; i < array2.byteLength; i++) {
- array2[i] = array[i];
- }
- var instance = instantiate(array2);
- assertEquals(17, instance.exports.blarg());
+ print(arguments.callee.name);
+ let builder = new WasmModuleBuilder();
+ builder.addMemory(1, 2, false);
+ builder.addFunction('foo', kSig_i_v)
+ .addBody([kExprI32Const, 17])
+ .exportAs('blarg');
+
+ var buffer = builder.toBuffer(debug);
+ var array = new Uint8Array(buffer);
+ var instance = instantiate(array);
+ assertEquals(17, instance.exports.blarg());
+
+ var kPad = 5;
+ var buffer2 = new ArrayBuffer(kPad + buffer.byteLength + kPad);
+ var whole = new Uint8Array(buffer2);
+ for (var i = 0; i < whole.byteLength; i++) {
+ whole[i] = 0xff;
+ }
+ var array2 = new Uint8Array(buffer2, kPad, buffer.byteLength);
+ for (var i = 0; i < array2.byteLength; i++) {
+ array2[i] = array[i];
+ }
+ var instance = instantiate(array2);
+ assertEquals(17, instance.exports.blarg());
})();
(function ImportTestTwoLevel() {
- print("ImportTestTwoLevel");
- let builder = new WasmModuleBuilder();
- var index = builder.addImport("mod", "print", makeSig_v_x(kWasmI32));
- builder.addFunction("foo", kSig_v_v)
- .addBody([kExprI32Const, 19, kExprCallFunction, index])
- .exportAs("main");
+ print(arguments.callee.name);
+ let builder = new WasmModuleBuilder();
+ var index = builder.addImport('mod', 'print', makeSig_v_x(kWasmI32));
+ builder.addFunction('foo', kSig_v_v)
+ .addBody([kExprI32Const, 19, kExprCallFunction, index])
+ .exportAs('main');
+
+ var buffer = builder.toBuffer(debug);
+ var instance = instantiate(buffer, {mod: {print: print}});
+ print('should print 19! ');
+ instance.exports.main();
+})();
- var buffer = builder.toBuffer(debug);
- var instance = instantiate(buffer, {mod: {print: print}});
- print("should print 19! ");
- instance.exports.main();
+(function TestI32Const() {
+ print(arguments.callee.name);
+ let ints = [
+ // A few negative number of different length.
+ -3 << 28, -20000, -400, -200, -100, -50, -10, -1,
+ // And a few positive number of different length.
+ 0, 1, 2, 20, 120, 130, 260, 500, 5000000, 3 << 28
+ ];
+ for (let i of ints) {
+ let builder = new WasmModuleBuilder();
+ builder.addFunction('main', kSig_i_v)
+ .addBody([...wasmI32Const(i)])
+ .exportAs('main');
+ let instance = builder.instantiate();
+ assertEquals(i, instance.exports.main());
+ }
})();