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));
 })();