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 print(view[1]); | |
binji
2016/02/27 19:26:56
did you leave this in while testing?
titzer
2016/02/27 23:05:09
Good catch. Removed.
| |
43 for (var i = 0; i < arguments.length; i++) { | |
44 var val = arguments[i]; | |
45 if ((typeof val) == "string") val = val.charCodeAt(0); | |
46 view[kHeaderSize + i] = val | 0; | |
47 } | |
48 return buffer; | |
49 } | |
50 | |
18 // Section declaration constants | 51 // Section declaration constants |
19 var kDeclMemory = 0x00; | 52 var kDeclMemory = 0x00; |
20 var kDeclSignatures = 0x01; | 53 var kDeclSignatures = 0x01; |
21 var kDeclFunctions = 0x02; | 54 var kDeclFunctions = 0x02; |
22 var kDeclGlobals = 0x03; | 55 var kDeclGlobals = 0x03; |
23 var kDeclDataSegments = 0x04; | 56 var kDeclDataSegments = 0x04; |
24 var kDeclFunctionTable = 0x05; | 57 var kDeclFunctionTable = 0x05; |
25 var kDeclStartFunction = 0x07; | 58 var kDeclStartFunction = 0x07; |
26 var kDeclImportTable = 0x08; | 59 var kDeclImportTable = 0x08; |
27 var kDeclExportTable = 0x09; | 60 var kDeclExportTable = 0x09; |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
243 } | 276 } |
244 threwException = false; | 277 threwException = false; |
245 } catch (e) { | 278 } catch (e) { |
246 assertEquals("string", typeof e); | 279 assertEquals("string", typeof e); |
247 assertEquals(kTrapMsgs[trap], e); | 280 assertEquals(kTrapMsgs[trap], e); |
248 // Success. | 281 // Success. |
249 return; | 282 return; |
250 } | 283 } |
251 throw new MjsUnitAssertionError("Did not trap, expected: " + kTrapMsgs[trap] ); | 284 throw new MjsUnitAssertionError("Did not trap, expected: " + kTrapMsgs[trap] ); |
252 } | 285 } |
OLD | NEW |