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 = 5; |
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 1, 1, 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 |
(...skipping 16 matching lines...) Expand all Loading... |
43 assertFalse(mem === undefined); | 43 assertFalse(mem === undefined); |
44 assertFalse(mem === null); | 44 assertFalse(mem === null); |
45 assertFalse(mem === 0); | 45 assertFalse(mem === 0); |
46 assertEquals("object", typeof mem); | 46 assertEquals("object", typeof mem); |
47 assertTrue(mem instanceof ArrayBuffer); | 47 assertTrue(mem instanceof ArrayBuffer); |
48 for (var i = 0; i < 4; i++) { | 48 for (var i = 0; i < 4; i++) { |
49 module.memory = 0; // should be ignored | 49 module.memory = 0; // should be ignored |
50 assertEquals(mem, module.memory); | 50 assertEquals(mem, module.memory); |
51 } | 51 } |
52 | 52 |
53 assertEquals(4096, module.memory.byteLength); | 53 assertEquals(65536, module.memory.byteLength); |
54 | 54 |
55 // Check the properties of the sub function. | 55 // Check the properties of the sub function. |
56 assertEquals("function", typeof module.sub); | 56 assertEquals("function", typeof module.sub); |
57 | 57 |
58 assertEquals(-55, module.sub(33, 88)); | 58 assertEquals(-55, module.sub(33, 88)); |
59 assertEquals(-55555, module.sub(33333, 88888)); | 59 assertEquals(-55555, module.sub(33333, 88888)); |
60 assertEquals(-5555555, module.sub(3333333, 8888888)); | 60 assertEquals(-5555555, module.sub(3333333, 8888888)); |
61 | 61 |
62 | 62 |
63 var module = (function() { | 63 var module = (function() { |
64 var kBodySize = 1; | 64 var kBodySize = 1; |
65 var kNameOffset2 = kHeaderSize + 19 + kBodySize + 1; | 65 var kNameOffset2 = kHeaderSize + 19 + kBodySize + 1; |
66 | 66 |
67 return _WASMEXP_.instantiateModule(bytesWithHeader( | 67 return _WASMEXP_.instantiateModule(bytesWithHeader( |
68 // -- memory | 68 // -- memory |
69 kDeclMemory, | 69 kDeclMemory, |
70 12, 12, 1, | 70 1, 1, 1, |
71 // -- signatures | 71 // -- signatures |
72 kDeclSignatures, 1, | 72 kDeclSignatures, 1, |
73 0, kAstStmt, // signature: void -> void | 73 0, kAstStmt, // signature: void -> void |
74 // -- functions | 74 // -- functions |
75 kDeclFunctions, 1, | 75 kDeclFunctions, 1, |
76 kDeclFunctionName | kDeclFunctionExport, | 76 kDeclFunctionName | kDeclFunctionExport, |
77 0, 0, // signature index | 77 0, 0, // signature index |
78 kNameOffset2, 0, 0, 0, // name offset | 78 kNameOffset2, 0, 0, 0, // name offset |
79 kBodySize, 0, | 79 kBodySize, 0, |
80 kExprNop, // body | 80 kExprNop, // body |
(...skipping 13 matching lines...) Expand all Loading... |
94 assertFalse(mem === undefined); | 94 assertFalse(mem === undefined); |
95 assertFalse(mem === null); | 95 assertFalse(mem === null); |
96 assertFalse(mem === 0); | 96 assertFalse(mem === 0); |
97 assertEquals("object", typeof mem); | 97 assertEquals("object", typeof mem); |
98 assertTrue(mem instanceof ArrayBuffer); | 98 assertTrue(mem instanceof ArrayBuffer); |
99 for (var i = 0; i < 4; i++) { | 99 for (var i = 0; i < 4; i++) { |
100 module.memory = 0; // should be ignored | 100 module.memory = 0; // should be ignored |
101 assertEquals(mem, module.memory); | 101 assertEquals(mem, module.memory); |
102 } | 102 } |
103 | 103 |
104 assertEquals(4096, module.memory.byteLength); | 104 assertEquals(65536, module.memory.byteLength); |
105 | 105 |
106 // Check the properties of the sub function. | 106 // Check the properties of the sub function. |
107 assertFalse(module.nop === undefined); | 107 assertFalse(module.nop === undefined); |
108 assertFalse(module.nop === null); | 108 assertFalse(module.nop === null); |
109 assertFalse(module.nop === 0); | 109 assertFalse(module.nop === 0); |
110 assertEquals("function", typeof module.nop); | 110 assertEquals("function", typeof module.nop); |
111 | 111 |
112 assertEquals(undefined, module.nop()); | 112 assertEquals(undefined, module.nop()); |
113 | 113 |
114 (function testLt() { | 114 (function testLt() { |
115 var kBodySize = 5; | 115 var kBodySize = 5; |
116 var kNameOffset = kHeaderSize + 21 + kBodySize + 1; | 116 var kNameOffset = kHeaderSize + 21 + kBodySize + 1; |
117 | 117 |
118 var data = bytesWithHeader( | 118 var data = bytesWithHeader( |
119 // -- memory | 119 // -- memory |
120 kDeclMemory, | 120 kDeclMemory, |
121 12, 12, 1, | 121 1, 1, 1, |
122 // -- signatures | 122 // -- signatures |
123 kDeclSignatures, 1, | 123 kDeclSignatures, 1, |
124 2, kAstI32, kAstF64, kAstF64, // (f64,f64)->int | 124 2, kAstI32, kAstF64, kAstF64, // (f64,f64)->int |
125 // -- functions | 125 // -- functions |
126 kDeclFunctions, 1, | 126 kDeclFunctions, 1, |
127 kDeclFunctionName | kDeclFunctionExport, | 127 kDeclFunctionName | kDeclFunctionExport, |
128 0, 0, // signature index | 128 0, 0, // signature index |
129 kNameOffset, 0, 0, 0, // name offset | 129 kNameOffset, 0, 0, 0, // name offset |
130 kBodySize, 0, | 130 kBodySize, 0, |
131 // -- body | 131 // -- body |
132 kExprF64Lt, // -- | 132 kExprF64Lt, // -- |
133 kExprGetLocal, 0, // -- | 133 kExprGetLocal, 0, // -- |
134 kExprGetLocal, 1, // -- | 134 kExprGetLocal, 1, // -- |
135 kDeclEnd, | 135 kDeclEnd, |
136 'f', 'l', 't', 0 // name | 136 'f', 'l', 't', 0 // name |
137 ); | 137 ); |
138 | 138 |
139 var module = _WASMEXP_.instantiateModule(data); | 139 var module = _WASMEXP_.instantiateModule(data); |
140 | 140 |
141 assertEquals("function", typeof module.flt); | 141 assertEquals("function", typeof module.flt); |
142 assertEquals(1, module.flt(-2, -1)); | 142 assertEquals(1, module.flt(-2, -1)); |
143 assertEquals(0, module.flt(7.3, 7.1)); | 143 assertEquals(0, module.flt(7.3, 7.1)); |
144 assertEquals(1, module.flt(7.1, 7.3)); | 144 assertEquals(1, module.flt(7.1, 7.3)); |
145 })(); | 145 })(); |
OLD | NEW |