diff options
author | Myles Borins <mylesborins@google.com> | 2018-04-10 21:39:51 -0400 |
---|---|---|
committer | Myles Borins <mylesborins@google.com> | 2018-04-11 13:22:42 -0400 |
commit | 12a1b9b8049462e47181a298120243dc83e81c55 (patch) | |
tree | 8605276308c8b4e3597516961266bae1af57557a /deps/v8/test/mjsunit/regress/wasm | |
parent | 78cd8263354705b767ef8c6a651740efe4931ba0 (diff) | |
download | android-node-v8-12a1b9b8049462e47181a298120243dc83e81c55.tar.gz android-node-v8-12a1b9b8049462e47181a298120243dc83e81c55.tar.bz2 android-node-v8-12a1b9b8049462e47181a298120243dc83e81c55.zip |
deps: update V8 to 6.6.346.23
PR-URL: https://github.com/nodejs/node/pull/19201
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'deps/v8/test/mjsunit/regress/wasm')
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-7353.js | 29 | ||||
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-7364.js | 31 | ||||
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-7366.js | 33 | ||||
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-7422.js | 27 | ||||
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-7499.js | 19 | ||||
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-801785.js | 22 | ||||
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-803427.js | 13 | ||||
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-803788.js | 27 | ||||
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-808012.js | 14 | ||||
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-810973.js | 32 | ||||
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-812005.js | 16 | ||||
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-816226.js | 5 | ||||
-rw-r--r-- | deps/v8/test/mjsunit/regress/wasm/regress-819869.js | 12 |
13 files changed, 280 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-7353.js b/deps/v8/test/mjsunit/regress/wasm/regress-7353.js new file mode 100644 index 0000000000..d41cbabf36 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-7353.js @@ -0,0 +1,29 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Flags: --wasm-lazy-compilation + +load('test/mjsunit/wasm/wasm-constants.js'); +load('test/mjsunit/wasm/wasm-module-builder.js'); + +const builder = new WasmModuleBuilder(); +builder.addMemory(16, 32); +builder.addFunction('grow', kSig_i_i).addBody([ + kExprGetLocal, 0, + kExprGrowMemory, 0, +]).exportFunc(); +builder.addFunction('main', kSig_i_i).addBody([ + ...wasmI32Const(0x41), + kExprSetLocal, 0, + // Enter loop, such that values are spilled to the stack. + kExprLoop, kWasmStmt, + kExprEnd, + // Reload value. This must be loaded as 32 bit value. + kExprGetLocal, 0, + kExprI32LoadMem, 0, 0, +]).exportFunc(); +const instance = builder.instantiate(); +// Execute grow, such that the stack contains garbage data afterwards. +instance.exports.grow(1); +instance.exports.main(); diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-7364.js b/deps/v8/test/mjsunit/regress/wasm/regress-7364.js new file mode 100644 index 0000000000..8e66295b70 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-7364.js @@ -0,0 +1,31 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +load('test/mjsunit/wasm/wasm-constants.js'); +load('test/mjsunit/wasm/wasm-module-builder.js'); + +const exportingModuleBinary = (() => { + const builder = new WasmModuleBuilder(); + builder.addFunction('f', kSig_i_v).addBody([kExprI32Const, 42]).exportFunc(); + return builder.toBuffer(); +})(); + +const exportingModule = new WebAssembly.Module(exportingModuleBinary); +const exportingInstance = new WebAssembly.Instance(exportingModule); + +const reExportingModuleBinary = (() => { + const builder = new WasmModuleBuilder(); + const gIndex = builder.addImport('a', 'g', kSig_i_v); + builder.addExport('y', gIndex); + return builder.toBuffer(); +})(); + +const module = new WebAssembly.Module(reExportingModuleBinary); +const imports = { + a: {g: exportingInstance.exports.f}, +}; +const instance = new WebAssembly.Instance(module, imports); + +// Previously exported Wasm functions are re-exported with the same value +assertEquals(instance.exports.y, exportingInstance.exports.f); diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-7366.js b/deps/v8/test/mjsunit/regress/wasm/regress-7366.js new file mode 100644 index 0000000000..41f758efb1 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-7366.js @@ -0,0 +1,33 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +load('test/mjsunit/wasm/wasm-constants.js'); +load('test/mjsunit/wasm/wasm-module-builder.js'); + +const builder = new WasmModuleBuilder(); +builder.addFunction(undefined, kSig_i_iii).addBody([ + // Return the sum of all arguments. + kExprGetLocal, 0, kExprGetLocal, 1, kExprGetLocal, 2, kExprI32Add, kExprI32Add +]); +const sig = builder.addType(kSig_i_iii); +builder.addFunction(undefined, kSig_i_iii) + .addBody([ + ...wasmI32Const(1), // i32.const 0x1 + kExprSetLocal, 0, // set_local 0 + ...wasmI32Const(4), // i32.const 0x1 + kExprSetLocal, 1, // set_local 1 + ...wasmI32Const(16), // i32.const 0x1 + kExprSetLocal, 2, // set_local 2 + kExprLoop, kWasmStmt, // loop + kExprEnd, // end + kExprGetLocal, 0, // get_local 0 + kExprGetLocal, 1, // get_local 1 + kExprGetLocal, 2, // get_local 2 + kExprI32Const, 0, // i32.const 0 (func index) + kExprCallIndirect, sig, 0, // call indirect + ]) + .exportAs('main'); +builder.appendToTable([0]); +const instance = builder.instantiate(); +assertEquals(21, instance.exports.main()); diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-7422.js b/deps/v8/test/mjsunit/regress/wasm/regress-7422.js new file mode 100644 index 0000000000..87896b4c35 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-7422.js @@ -0,0 +1,27 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +load('test/mjsunit/wasm/wasm-constants.js'); +load('test/mjsunit/wasm/wasm-module-builder.js'); + +var builder = new WasmModuleBuilder(); +sig = makeSig([kWasmI32, kWasmI32, kWasmI32, kWasmI32, kWasmI32], [kWasmI32]); +builder.addFunction(undefined, sig).addBody([kExprGetLocal, 4]); +builder.addMemory(16, 32); +builder.addFunction('main', sig) + .addBody([ + kExprI32Const, 0, kExprSetLocal, 0, + // Compute five arguments to the function call. + kExprI32Const, 0, kExprI32Const, 0, kExprI32Const, 0, kExprI32Const, 0, + kExprGetLocal, 4, kExprI32Const, 1, kExprI32Add, + // Now some intermediate computation to force the arguments to be spilled + // to the stack: + kExprGetLocal, 0, kExprI32Const, 1, kExprI32Add, kExprGetLocal, 1, + kExprGetLocal, 1, kExprI32Add, kExprI32Add, kExprDrop, + // Now call the function. + kExprCallFunction, 0 + ]) + .exportFunc(); +var instance = builder.instantiate(); +assertEquals(11, instance.exports.main(2, 4, 6, 8, 10)); diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-7499.js b/deps/v8/test/mjsunit/regress/wasm/regress-7499.js new file mode 100644 index 0000000000..71f246decf --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-7499.js @@ -0,0 +1,19 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +load('test/mjsunit/wasm/wasm-constants.js'); +load('test/mjsunit/wasm/wasm-module-builder.js'); + +const builder = new WasmModuleBuilder(); +builder.addMemory(16, 32); +builder.addFunction(undefined, kSig_v_v).addBody([ + kExprI32Const, 0, // i32.const 0 + kExprI64LoadMem, 0, 0xff, 0xff, 0xff, 0xff, + 0x0f, // i64.load align=0 offset=0xffffffff + kExprDrop, // drop +]); +builder.addExport('main', 0); +const module = builder.instantiate(); +assertThrows( + () => module.exports.main(), WebAssembly.RuntimeError, /out of bounds/); diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-801785.js b/deps/v8/test/mjsunit/regress/wasm/regress-801785.js new file mode 100644 index 0000000000..1870d7e8f1 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-801785.js @@ -0,0 +1,22 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +load('test/mjsunit/wasm/wasm-constants.js'); +load('test/mjsunit/wasm/wasm-module-builder.js'); + +// Flags: --print-wasm-code + +const builder = new WasmModuleBuilder(); +builder.addMemory(8, 16); +builder.addFunction(undefined, kSig_i_i).addBody([ + // wasm to wasm call. + kExprGetLocal, 0, kExprCallFunction, 0x1 +]); +builder.addFunction(undefined, kSig_i_i).addBody([ + // load from <get_local 0> to create trap code. + kExprGetLocal, 0, kExprI32LoadMem, 0, + // unreachable to create a runtime call. + kExprUnreachable +]); +builder.instantiate(); diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-803427.js b/deps/v8/test/mjsunit/regress/wasm/regress-803427.js new file mode 100644 index 0000000000..833b140fd4 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-803427.js @@ -0,0 +1,13 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Flags: --wasm-lazy-compilation + +load('test/mjsunit/wasm/wasm-constants.js'); +load('test/mjsunit/wasm/wasm-module-builder.js'); + +var builder = new WasmModuleBuilder(); +let module = new WebAssembly.Module(builder.toBuffer()); +var worker = new Worker('onmessage = function() {};'); +worker.postMessage(module) diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-803788.js b/deps/v8/test/mjsunit/regress/wasm/regress-803788.js new file mode 100644 index 0000000000..8edec7c464 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-803788.js @@ -0,0 +1,27 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Flags: --wasm-lazy-compilation + +load('test/mjsunit/wasm/wasm-constants.js'); +load('test/mjsunit/wasm/wasm-module-builder.js'); + +var builder = new WasmModuleBuilder(); +let q_table = builder.addImportedTable("q", "table") +let q_base = builder.addImportedGlobal("q", "base", kWasmI32); +let q_fun = builder.addImport("q", "fun", kSig_v_v); +builder.addType(kSig_i_ii); +builder.addFunctionTableInit(q_base, true, [ q_fun ]) +let module = new WebAssembly.Module(builder.toBuffer()); +let table = new WebAssembly.Table({ + element: "anyfunc", + initial: 10, +}); +let instance = new WebAssembly.Instance(module, { + q: { + base: 0, + table: table, + fun: () => (0) + } +}); diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-808012.js b/deps/v8/test/mjsunit/regress/wasm/regress-808012.js new file mode 100644 index 0000000000..1b91f226a8 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-808012.js @@ -0,0 +1,14 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Flags: --wasm-lazy-compilation + +load('test/mjsunit/wasm/wasm-constants.js'); +load('test/mjsunit/wasm/wasm-module-builder.js'); + +const builder = new WasmModuleBuilder(); +builder.addFunction('test', kSig_i_i).addBody([kExprUnreachable]); +let module = new WebAssembly.Module(builder.toBuffer()); +var worker = new Worker('onmessage = function() {};'); +worker.postMessage(module); diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-810973.js b/deps/v8/test/mjsunit/regress/wasm/regress-810973.js new file mode 100644 index 0000000000..5a776884ee --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-810973.js @@ -0,0 +1,32 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + + this.WScript = new Proxy({}, { + get() { + switch (name) { + } + } + }); +function MjsUnitAssertionError() { +}; +let __v_692 = `(function module() { "use asm";function foo(`; +const __v_693 = +3695; +for (let __v_695 = 0; __v_695 < __v_693; ++__v_695) { + __v_692 += `arg${__v_695},`; +} +try { + __v_692 += `arg${__v_693}){`; +} catch (e) {} +for (let __v_696 = 0; __v_696 <= __v_693; ++__v_696) { + __v_692 += `arg${__v_696}=+arg${__v_696};`; +} + __v_692 += "return 10;}function bar(){return foo("; +for (let __v_697 = 0; __v_697 < __v_693; ++__v_697) { + __v_692 += "0.0,"; +} + __v_692 += "1.0)|0;}"; + + __v_692 += "return bar})()()"; +const __v_694 = eval(__v_692); diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-812005.js b/deps/v8/test/mjsunit/regress/wasm/regress-812005.js new file mode 100644 index 0000000000..979b769bbc --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-812005.js @@ -0,0 +1,16 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +load('test/mjsunit/wasm/wasm-constants.js'); +load('test/mjsunit/wasm/wasm-module-builder.js'); + +const builder = new WasmModuleBuilder(); +builder.addFunction(undefined, kSig_d_v).addBody([ + ...wasmF64Const(0), // f64.const 0 + ...wasmF64Const(0), // f64.const 0 + ...wasmI32Const(0), // i32.const 0 + kExprBrIf, 0x00, // br_if depth=0 + kExprF64Add // f64.add +]); +builder.instantiate(); diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-816226.js b/deps/v8/test/mjsunit/regress/wasm/regress-816226.js new file mode 100644 index 0000000000..a9cb715570 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-816226.js @@ -0,0 +1,5 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +(new Int8Array((new WebAssembly.Memory({})).buffer)).buffer; diff --git a/deps/v8/test/mjsunit/regress/wasm/regress-819869.js b/deps/v8/test/mjsunit/regress/wasm/regress-819869.js new file mode 100644 index 0000000000..f2606fb610 --- /dev/null +++ b/deps/v8/test/mjsunit/regress/wasm/regress-819869.js @@ -0,0 +1,12 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +load('test/mjsunit/wasm/wasm-constants.js'); +load('test/mjsunit/wasm/wasm-module-builder.js'); + +var builder = new WasmModuleBuilder(); +builder.addFunction(undefined, kSig_i_i) + .addLocals({i32_count: 0xffffffff}) + .addBody([]); +assertThrows(() => builder.instantiate(), WebAssembly.CompileError); |