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 load("test/mjsunit/wasm/wasm-module-builder.js"); | 8 load("test/mjsunit/wasm/wasm-module-builder.js"); |
9 | 9 |
10 let kReturnValue = 117; | 10 let kReturnValue = 117; |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 assertTrue(instance_1 != instance_2); | 113 assertTrue(instance_1 != instance_2); |
114 }); | 114 }); |
115 })(); | 115 })(); |
116 | 116 |
117 (function InstancesAreIsolatedFromEachother() { | 117 (function InstancesAreIsolatedFromEachother() { |
118 print("InstancesAreIsolatedFromEachother..."); | 118 print("InstancesAreIsolatedFromEachother..."); |
119 var builder = new WasmModuleBuilder(); | 119 var builder = new WasmModuleBuilder(); |
120 builder.addMemory(1,1, true); | 120 builder.addMemory(1,1, true); |
121 var kSig_v_i = makeSig([kAstI32], []); | 121 var kSig_v_i = makeSig([kAstI32], []); |
122 var signature = builder.addType(kSig_v_i); | 122 var signature = builder.addType(kSig_v_i); |
123 builder.addImport("some_value", kSig_i_v); | 123 builder.addImport("m", "some_value", kSig_i_v); |
124 builder.addImport("writer", signature); | 124 builder.addImport("m", "writer", signature); |
125 | 125 |
126 builder.addFunction("main", kSig_i_i) | 126 builder.addFunction("main", kSig_i_i) |
127 .addBody([ | 127 .addBody([ |
128 kExprGetLocal, 0, | 128 kExprGetLocal, 0, |
129 kExprI32LoadMem, 0, 0, | 129 kExprI32LoadMem, 0, 0, |
130 kExprI32Const, 1, | 130 kExprI32Const, 1, |
131 kExprCallIndirect, signature, kTableZero, | 131 kExprCallIndirect, signature, kTableZero, |
132 kExprGetLocal,0, | 132 kExprGetLocal,0, |
133 kExprI32LoadMem,0, 0, | 133 kExprI32LoadMem,0, 0, |
134 kExprCallFunction, 0, | 134 kExprCallFunction, 0, |
(...skipping 13 matching lines...) Expand all Loading... |
148 var mem_1 = new WebAssembly.Memory({initial: 1}); | 148 var mem_1 = new WebAssembly.Memory({initial: 1}); |
149 var mem_2 = new WebAssembly.Memory({initial: 1}); | 149 var mem_2 = new WebAssembly.Memory({initial: 1}); |
150 var view_1 = new Int32Array(mem_1.buffer); | 150 var view_1 = new Int32Array(mem_1.buffer); |
151 var view_2 = new Int32Array(mem_2.buffer); | 151 var view_2 = new Int32Array(mem_2.buffer); |
152 | 152 |
153 view_1[0] = 42; | 153 view_1[0] = 42; |
154 view_2[0] = 1000; | 154 view_2[0] = 1000; |
155 | 155 |
156 var outval_1; | 156 var outval_1; |
157 var outval_2; | 157 var outval_2; |
158 var i1 = new WebAssembly.Instance(module, {some_value: () => 1, | 158 var i1 = new WebAssembly.Instance(module, {m: {some_value: () => 1, |
159 writer: (x)=>outval_1 = x }, mem_1); | 159 writer: (x)=>outval_1 = x }}, |
160 var i2 = new WebAssembly.Instance(module, {some_value: () => 2, | 160 mem_1); |
161 writer: (x)=>outval_2 = x }, mem_2); | 161 var i2 = new WebAssembly.Instance(module, {m: {some_value: () => 2, |
| 162 writer: (x)=>outval_2 = x }}, |
| 163 mem_2); |
162 | 164 |
163 assertEquals(43, i1.exports.main(0)); | 165 assertEquals(43, i1.exports.main(0)); |
164 assertEquals(1002, i2.exports.main(0)); | 166 assertEquals(1002, i2.exports.main(0)); |
165 | 167 |
166 assertEquals(42, outval_1); | 168 assertEquals(42, outval_1); |
167 assertEquals(1000, outval_2); | 169 assertEquals(1000, outval_2); |
168 })(); | 170 })(); |
169 | 171 |
170 (function GlobalsArePrivateToTheInstance() { | 172 (function GlobalsArePrivateToTheInstance() { |
171 print("GlobalsArePrivateToTheInstance..."); | 173 print("GlobalsArePrivateToTheInstance..."); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 assertEquals(1, i1.exports.f()); | 219 assertEquals(1, i1.exports.f()); |
218 assertEquals(1000, i2.exports.f()); | 220 assertEquals(1000, i2.exports.f()); |
219 })(); | 221 })(); |
220 | 222 |
221 (function MustBeMemory() { | 223 (function MustBeMemory() { |
222 print("MustBeMemory..."); | 224 print("MustBeMemory..."); |
223 var memory = new ArrayBuffer(65536); | 225 var memory = new ArrayBuffer(65536); |
224 var module = new WebAssembly.Module(buffer); | 226 var module = new WebAssembly.Module(buffer); |
225 assertThrows(() => new WebAssembly.Instance(module, null, memory), TypeError); | 227 assertThrows(() => new WebAssembly.Instance(module, null, memory), TypeError); |
226 })(); | 228 })(); |
OLD | NEW |