| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Flags: --expose-wasm | 5 // Flags: --expose-wasm |
| 6 | 6 |
| 7 load("test/mjsunit/wasm/wasm-constants.js"); | 7 load("test/mjsunit/wasm/wasm-constants.js"); |
| 8 | 8 |
| 9 var module = (function () { | 9 var module = (function () { |
| 10 var kBodySize = 5; | 10 var kBodySize = 6; |
| 11 var kNameOffset = kHeaderSize + 21 + kBodySize + 1; | 11 var kNameOffset = kHeaderSize + 21 + kBodySize + 1; |
| 12 | 12 |
| 13 return _WASMEXP_.instantiateModule(bytesWithHeader( | 13 return _WASMEXP_.instantiateModule(bytesWithHeader( |
| 14 // -- memory | 14 // -- memory |
| 15 kDeclMemory, | 15 kDeclMemory, |
| 16 12, 12, 1, | 16 12, 12, 1, |
| 17 // -- signatures | 17 // -- signatures |
| 18 kDeclSignatures, 1, | 18 kDeclSignatures, 1, |
| 19 2, kAstI32, kAstI32, kAstI32, // int, int -> int | 19 2, kAstI32, kAstI32, kAstI32, // int, int -> int |
| 20 // -- functions | 20 // -- functions |
| 21 kDeclFunctions, 1, | 21 kDeclFunctions, 1, |
| 22 kDeclFunctionName | kDeclFunctionExport, | 22 kDeclFunctionName | kDeclFunctionExport, |
| 23 0, 0, | 23 0, 0, |
| 24 kNameOffset, 0, 0, 0, // name offset | 24 kNameOffset, 0, 0, 0, // name offset |
| 25 kBodySize, 0, | 25 kBodySize, 0, |
| 26 // -- body | 26 // -- body |
| 27 kDeclNoLocals, |
| 27 kExprI32Sub, // -- | 28 kExprI32Sub, // -- |
| 28 kExprGetLocal, 0, // -- | 29 kExprGetLocal, 0, // -- |
| 29 kExprGetLocal, 1, // -- | 30 kExprGetLocal, 1, // -- |
| 30 kDeclEnd, | 31 kDeclEnd, |
| 31 's', 'u', 'b', 0 // name | 32 's', 'u', 'b', 0 // name |
| 32 )); | 33 )); |
| 33 })(); | 34 })(); |
| 34 | 35 |
| 35 // Check the module exists. | 36 // Check the module exists. |
| 36 assertFalse(module === undefined); | 37 assertFalse(module === undefined); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 54 | 55 |
| 55 // Check the properties of the sub function. | 56 // Check the properties of the sub function. |
| 56 assertEquals("function", typeof module.sub); | 57 assertEquals("function", typeof module.sub); |
| 57 | 58 |
| 58 assertEquals(-55, module.sub(33, 88)); | 59 assertEquals(-55, module.sub(33, 88)); |
| 59 assertEquals(-55555, module.sub(33333, 88888)); | 60 assertEquals(-55555, module.sub(33333, 88888)); |
| 60 assertEquals(-5555555, module.sub(3333333, 8888888)); | 61 assertEquals(-5555555, module.sub(3333333, 8888888)); |
| 61 | 62 |
| 62 | 63 |
| 63 var module = (function() { | 64 var module = (function() { |
| 64 var kBodySize = 1; | 65 var kBodySize = 2; |
| 65 var kNameOffset2 = kHeaderSize + 19 + kBodySize + 1; | 66 var kNameOffset2 = kHeaderSize + 19 + kBodySize + 1; |
| 66 | 67 |
| 67 return _WASMEXP_.instantiateModule(bytesWithHeader( | 68 return _WASMEXP_.instantiateModule(bytesWithHeader( |
| 68 // -- memory | 69 // -- memory |
| 69 kDeclMemory, | 70 kDeclMemory, |
| 70 12, 12, 1, | 71 12, 12, 1, |
| 71 // -- signatures | 72 // -- signatures |
| 72 kDeclSignatures, 1, | 73 kDeclSignatures, 1, |
| 73 0, kAstStmt, // signature: void -> void | 74 0, kAstStmt, // signature: void -> void |
| 74 // -- functions | 75 // -- functions |
| 75 kDeclFunctions, 1, | 76 kDeclFunctions, 1, |
| 76 kDeclFunctionName | kDeclFunctionExport, | 77 kDeclFunctionName | kDeclFunctionExport, |
| 77 0, 0, // signature index | 78 0, 0, // signature index |
| 78 kNameOffset2, 0, 0, 0, // name offset | 79 kNameOffset2, 0, 0, 0, // name offset |
| 79 kBodySize, 0, | 80 kBodySize, 0, |
| 81 kDeclNoLocals, |
| 80 kExprNop, // body | 82 kExprNop, // body |
| 81 kDeclEnd, | 83 kDeclEnd, |
| 82 'n', 'o', 'p', 0 // name | 84 'n', 'o', 'p', 0 // name |
| 83 )); | 85 )); |
| 84 })(); | 86 })(); |
| 85 | 87 |
| 86 // Check the module exists. | 88 // Check the module exists. |
| 87 assertFalse(module === undefined); | 89 assertFalse(module === undefined); |
| 88 assertFalse(module === null); | 90 assertFalse(module === null); |
| 89 assertFalse(module === 0); | 91 assertFalse(module === 0); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 105 | 107 |
| 106 // Check the properties of the sub function. | 108 // Check the properties of the sub function. |
| 107 assertFalse(module.nop === undefined); | 109 assertFalse(module.nop === undefined); |
| 108 assertFalse(module.nop === null); | 110 assertFalse(module.nop === null); |
| 109 assertFalse(module.nop === 0); | 111 assertFalse(module.nop === 0); |
| 110 assertEquals("function", typeof module.nop); | 112 assertEquals("function", typeof module.nop); |
| 111 | 113 |
| 112 assertEquals(undefined, module.nop()); | 114 assertEquals(undefined, module.nop()); |
| 113 | 115 |
| 114 (function testLt() { | 116 (function testLt() { |
| 115 var kBodySize = 5; | 117 var kBodySize = 6; |
| 116 var kNameOffset = kHeaderSize + 21 + kBodySize + 1; | 118 var kNameOffset = kHeaderSize + 21 + kBodySize + 1; |
| 117 | 119 |
| 118 var data = bytesWithHeader( | 120 var data = bytesWithHeader( |
| 119 // -- memory | 121 // -- memory |
| 120 kDeclMemory, | 122 kDeclMemory, |
| 121 12, 12, 1, | 123 12, 12, 1, |
| 122 // -- signatures | 124 // -- signatures |
| 123 kDeclSignatures, 1, | 125 kDeclSignatures, 1, |
| 124 2, kAstI32, kAstF64, kAstF64, // (f64,f64)->int | 126 2, kAstI32, kAstF64, kAstF64, // (f64,f64)->int |
| 125 // -- functions | 127 // -- functions |
| 126 kDeclFunctions, 1, | 128 kDeclFunctions, 1, |
| 127 kDeclFunctionName | kDeclFunctionExport, | 129 kDeclFunctionName | kDeclFunctionExport, |
| 128 0, 0, // signature index | 130 0, 0, // signature index |
| 129 kNameOffset, 0, 0, 0, // name offset | 131 kNameOffset, 0, 0, 0, // name offset |
| 130 kBodySize, 0, | 132 kBodySize, 0, |
| 131 // -- body | 133 // -- body |
| 134 kDeclNoLocals, |
| 132 kExprF64Lt, // -- | 135 kExprF64Lt, // -- |
| 133 kExprGetLocal, 0, // -- | 136 kExprGetLocal, 0, // -- |
| 134 kExprGetLocal, 1, // -- | 137 kExprGetLocal, 1, // -- |
| 135 kDeclEnd, | 138 kDeclEnd, |
| 136 'f', 'l', 't', 0 // name | 139 'f', 'l', 't', 0 // name |
| 137 ); | 140 ); |
| 138 | 141 |
| 139 var module = _WASMEXP_.instantiateModule(data); | 142 var module = _WASMEXP_.instantiateModule(data); |
| 140 | 143 |
| 141 assertEquals("function", typeof module.flt); | 144 assertEquals("function", typeof module.flt); |
| 142 assertEquals(1, module.flt(-2, -1)); | 145 assertEquals(1, module.flt(-2, -1)); |
| 143 assertEquals(0, module.flt(7.3, 7.1)); | 146 assertEquals(0, module.flt(7.3, 7.1)); |
| 144 assertEquals(1, module.flt(7.1, 7.3)); | 147 assertEquals(1, module.flt(7.1, 7.3)); |
| 145 })(); | 148 })(); |
| OLD | NEW |