Upgrade V8 to 5.1.281.57 DO NOT MERGE
FPIIM-449
Change-Id: Id981b686b4d587ac31697662eb98bb34be42ad90
(cherry picked from commit 3b9bc31999c9787eb726ecdbfd5796bfdec32a18)
diff --git a/test/mjsunit/wasm/calls.js b/test/mjsunit/wasm/calls.js
index 98ad657..11cc92a 100644
--- a/test/mjsunit/wasm/calls.js
+++ b/test/mjsunit/wasm/calls.js
@@ -5,141 +5,100 @@
// Flags: --expose-wasm
load("test/mjsunit/wasm/wasm-constants.js");
+load("test/mjsunit/wasm/wasm-module-builder.js");
-var module = (function () {
- var kBodySize = 5;
- var kNameOffset = 21 + kBodySize + 1;
+function assertModule(module, memsize) {
+ // Check the module exists.
+ assertFalse(module === undefined);
+ assertFalse(module === null);
+ assertFalse(module === 0);
+ assertEquals("object", typeof module);
- return _WASMEXP_.instantiateModule(bytes(
- // -- memory
- kDeclMemory,
- 12, 12, 1,
- // -- signatures
- kDeclSignatures, 1,
- 2, kAstI32, kAstI32, kAstI32, // int, int -> int
- // -- functions
- kDeclFunctions, 1,
- kDeclFunctionName | kDeclFunctionExport,
- 0, 0,
- kNameOffset, 0, 0, 0, // name offset
- kBodySize, 0,
- // -- body
- kExprI32Sub, // --
- kExprGetLocal, 0, // --
- kExprGetLocal, 1, // --
- kDeclEnd,
- 's', 'u', 'b', 0 // name
- ));
-})();
+ // Check the memory is an ArrayBuffer.
+ var mem = module.exports.memory;
+ assertFalse(mem === undefined);
+ assertFalse(mem === null);
+ assertFalse(mem === 0);
+ assertEquals("object", typeof mem);
+ assertTrue(mem instanceof ArrayBuffer);
+ for (var i = 0; i < 4; i++) {
+ module.exports.memory = 0; // should be ignored
+ assertEquals(mem, module.exports.memory);
+ }
-// Check the module exists.
-assertFalse(module === undefined);
-assertFalse(module === null);
-assertFalse(module === 0);
-assertEquals("object", typeof module);
-
-// Check the memory is an ArrayBuffer.
-var mem = module.memory;
-assertFalse(mem === undefined);
-assertFalse(mem === null);
-assertFalse(mem === 0);
-assertEquals("object", typeof mem);
-assertTrue(mem instanceof ArrayBuffer);
-for (var i = 0; i < 4; i++) {
- module.memory = 0; // should be ignored
- assertEquals(mem, module.memory);
+ assertEquals(memsize, module.exports.memory.byteLength);
}
-assertEquals(4096, module.memory.byteLength);
+function assertFunction(module, func) {
+ assertEquals("object", typeof module.exports);
-// Check the properties of the sub function.
-assertEquals("function", typeof module.sub);
+ var exp = module.exports[func];
+ assertFalse(exp === undefined);
+ assertFalse(exp === null);
+ assertFalse(exp === 0);
+ assertEquals("function", typeof exp);
-assertEquals(-55, module.sub(33, 88));
-assertEquals(-55555, module.sub(33333, 88888));
-assertEquals(-5555555, module.sub(3333333, 8888888));
-
-
-var module = (function() {
- var kBodySize = 1;
- var kNameOffset2 = 19 + kBodySize + 1;
-
- return _WASMEXP_.instantiateModule(bytes(
- // -- memory
- kDeclMemory,
- 12, 12, 1,
- // -- signatures
- kDeclSignatures, 1,
- 0, kAstStmt, // signature: void -> void
- // -- functions
- kDeclFunctions, 1,
- kDeclFunctionName | kDeclFunctionExport,
- 0, 0, // signature index
- kNameOffset2, 0, 0, 0, // name offset
- kBodySize, 0,
- kExprNop, // body
- kDeclEnd,
- 'n', 'o', 'p', 0 // name
- ));
-})();
-
-// Check the module exists.
-assertFalse(module === undefined);
-assertFalse(module === null);
-assertFalse(module === 0);
-assertEquals("object", typeof module);
-
-// Check the memory is an ArrayBuffer.
-var mem = module.memory;
-assertFalse(mem === undefined);
-assertFalse(mem === null);
-assertFalse(mem === 0);
-assertEquals("object", typeof mem);
-assertTrue(mem instanceof ArrayBuffer);
-for (var i = 0; i < 4; i++) {
- module.memory = 0; // should be ignored
- assertEquals(mem, module.memory);
+ return exp;
}
-assertEquals(4096, module.memory.byteLength);
+(function SubTest() {
-// Check the properties of the sub function.
-assertFalse(module.nop === undefined);
-assertFalse(module.nop === null);
-assertFalse(module.nop === 0);
-assertEquals("function", typeof module.nop);
+ var builder = new WasmModuleBuilder();
-assertEquals(undefined, module.nop());
+ builder.addMemory(1, 1, true);
+ builder.addFunction("sub", [kAstI32, kAstI32, kAstI32])
+ .addBody([
+ kExprI32Sub, // --
+ kExprGetLocal, 0, // --
+ kExprGetLocal, 1]) // --
+ .exportFunc()
+
+ var module = builder.instantiate();
+ assertModule(module, kPageSize);
+
+ // Check the properties of the sub function.
+ var sub = assertFunction(module, "sub");
+ assertEquals(-55, sub(33, 88));
+ assertEquals(-55555, sub(33333, 88888));
+ assertEquals(-5555555, sub(3333333, 8888888));
+})();
+
+
+(function NopTest() {
+
+ var builder = new WasmModuleBuilder();
+
+ var kPages = 2;
+ builder.addMemory(kPages, kPages, true);
+ builder.addFunction("nop", [kAstStmt])
+ .addBody([kExprNop])
+ .exportFunc();
+
+ var module = builder.instantiate();
+ assertModule(module, kPageSize * kPages);
+
+ var nop = assertFunction(module, "nop");
+ assertEquals(undefined, nop());
+})();
+
(function testLt() {
- var kBodySize = 5;
- var kNameOffset = 21 + kBodySize + 1;
+ var builder = new WasmModuleBuilder();
- var data = bytes(
- // -- memory
- kDeclMemory,
- 12, 12, 1,
- // -- signatures
- kDeclSignatures, 1,
- 2, kAstI32, kAstF64, kAstF64, // (f64,f64)->int
- // -- functions
- kDeclFunctions, 1,
- kDeclFunctionName | kDeclFunctionExport,
- 0, 0, // signature index
- kNameOffset, 0, 0, 0, // name offset
- kBodySize, 0,
- // -- body
- kExprF64Lt, // --
- kExprGetLocal, 0, // --
- kExprGetLocal, 1, // --
- kDeclEnd,
- 'f', 'l', 't', 0 // name
- );
+ var kPages = 3;
+ builder.addMemory(kPages, kPages, true);
+ builder.addFunction("flt", [kAstI32, kAstF64, kAstF64])
+ .addBody([
+ kExprF64Lt, // --
+ kExprGetLocal, 0, // --
+ kExprGetLocal, 1]) // --
+ .exportFunc();
- var module = _WASMEXP_.instantiateModule(data);
+ var module = builder.instantiate();
+ assertModule(module, kPageSize * kPages);
- assertEquals("function", typeof module.flt);
- assertEquals(1, module.flt(-2, -1));
- assertEquals(0, module.flt(7.3, 7.1));
- assertEquals(1, module.flt(7.1, 7.3));
+ var flt = assertFunction(module, "flt");
+ assertEquals(1, flt(-2, -1));
+ assertEquals(0, flt(7.3, 7.1));
+ assertEquals(1, flt(7.1, 7.3));
})();