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 function bytes() { | 7 function bytes() { |
8 var buffer = new ArrayBuffer(arguments.length); | 8 var buffer = new ArrayBuffer(arguments.length); |
9 var view = new Uint8Array(buffer); | 9 var view = new Uint8Array(buffer); |
10 for (var i = 0; i < arguments.length; i++) { | 10 for (var i = 0; i < arguments.length; i++) { |
11 var val = arguments[i]; | 11 var val = arguments[i]; |
12 if ((typeof val) == "string") val = val.charCodeAt(0); | 12 if ((typeof val) == "string") val = val.charCodeAt(0); |
13 view[i] = val | 0; | 13 view[i] = val | 0; |
14 } | 14 } |
15 return buffer; | 15 return buffer; |
16 } | 16 } |
17 | 17 |
| 18 // Header declaration constants |
| 19 var kWasmH0 = 0; |
| 20 var kWasmH1 = 0x61; |
| 21 var kWasmH2 = 0x73; |
| 22 var kWasmH3 = 0x6d; |
| 23 |
| 24 var kWasmV0 = 10; |
| 25 var kWasmV1 = 0; |
| 26 var kWasmV2 = 0; |
| 27 var kWasmV3 = 0; |
| 28 |
| 29 var kHeaderSize = 8; |
| 30 |
| 31 function bytesWithHeader() { |
| 32 var buffer = new ArrayBuffer(kHeaderSize + arguments.length); |
| 33 var view = new Uint8Array(buffer); |
| 34 view[0] = kWasmH0; |
| 35 view[1] = kWasmH1; |
| 36 view[2] = kWasmH2; |
| 37 view[3] = kWasmH3; |
| 38 view[4] = kWasmV0; |
| 39 view[5] = kWasmV1; |
| 40 view[6] = kWasmV2; |
| 41 view[7] = kWasmV3; |
| 42 for (var i = 0; i < arguments.length; i++) { |
| 43 var val = arguments[i]; |
| 44 if ((typeof val) == "string") val = val.charCodeAt(0); |
| 45 view[kHeaderSize + i] = val | 0; |
| 46 } |
| 47 return buffer; |
| 48 } |
| 49 |
18 // Section declaration constants | 50 // Section declaration constants |
19 var kDeclMemory = 0x00; | 51 var kDeclMemory = 0x00; |
20 var kDeclSignatures = 0x01; | 52 var kDeclSignatures = 0x01; |
21 var kDeclFunctions = 0x02; | 53 var kDeclFunctions = 0x02; |
22 var kDeclGlobals = 0x03; | 54 var kDeclGlobals = 0x03; |
23 var kDeclDataSegments = 0x04; | 55 var kDeclDataSegments = 0x04; |
24 var kDeclFunctionTable = 0x05; | 56 var kDeclFunctionTable = 0x05; |
25 var kDeclStartFunction = 0x07; | 57 var kDeclStartFunction = 0x07; |
26 var kDeclImportTable = 0x08; | 58 var kDeclImportTable = 0x08; |
27 var kDeclExportTable = 0x09; | 59 var kDeclExportTable = 0x09; |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 } | 275 } |
244 threwException = false; | 276 threwException = false; |
245 } catch (e) { | 277 } catch (e) { |
246 assertEquals("string", typeof e); | 278 assertEquals("string", typeof e); |
247 assertEquals(kTrapMsgs[trap], e); | 279 assertEquals(kTrapMsgs[trap], e); |
248 // Success. | 280 // Success. |
249 return; | 281 return; |
250 } | 282 } |
251 throw new MjsUnitAssertionError("Did not trap, expected: " + kTrapMsgs[trap]
); | 283 throw new MjsUnitAssertionError("Did not trap, expected: " + kTrapMsgs[trap]
); |
252 } | 284 } |
OLD | NEW |