| Index: test/mjsunit/wasm/unreachable.js
|
| diff --git a/test/mjsunit/wasm/unreachable.js b/test/mjsunit/wasm/unreachable.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c84a7bbd5944a8e43d19bbc2ba28a1ddfcc7bc58
|
| --- /dev/null
|
| +++ b/test/mjsunit/wasm/unreachable.js
|
| @@ -0,0 +1,46 @@
|
| +// Copyright 2015 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");
|
| +
|
| +var module = (function () {
|
| + var kFuncWithBody = 9;
|
| + var kFuncImported = 7;
|
| + var kBodySize1 = 1;
|
| + var kMainOffset = 6 + kFuncWithBody + kBodySize1 + 1;
|
| +
|
| + var ffi = new Object();
|
| + ffi.add = (function(a, b) { return a + b | 0; });
|
| +
|
| + return WASM.instantiateModule(bytes(
|
| + // -- signatures
|
| + kDeclSignatures, 1,
|
| + 0, kAstStmt, // void -> void
|
| + // -- function #0 (unreachable)
|
| + kDeclFunctions, 1,
|
| + kDeclFunctionName | kDeclFunctionExport,
|
| + 0, 0, // signature offset
|
| + kMainOffset, 0, 0, 0, // name offset
|
| + kBodySize1, 0, // body size
|
| + kExprUnreachable,
|
| + kDeclEnd,
|
| + 'm', 'a', 'i', 'n', 0 // name
|
| + ), ffi);
|
| +})();
|
| +
|
| +// Check the module exists.
|
| +assertFalse(module === undefined);
|
| +assertFalse(module === null);
|
| +assertFalse(module === 0);
|
| +assertEquals("object", typeof module);
|
| +assertEquals("function", typeof module.main);
|
| +
|
| +var exception = "";
|
| +try {
|
| + assertEquals(0, module.main());
|
| +} catch(e) {
|
| + print("correctly caught: " + e);
|
| + exception = e;
|
| +}
|
| +assertEquals("unreachable", exception);
|
|
|