Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Side by Side Diff: test/mjsunit/wasm/compiled-module-management.js

Issue 2591753002: [wasm] Implement correct 2-level namespace for imports. (Closed)
Patch Set: Fix debug tests Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 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 --expose-gc --allow-natives-syntax 5 // Flags: --expose-wasm --expose-gc --allow-natives-syntax
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 // Use global variables for all values where the test wants to maintain strict 10 // Use global variables for all values where the test wants to maintain strict
11 // control over value lifetime. Using local variables would not give sufficient 11 // control over value lifetime. Using local variables would not give sufficient
12 // guarantees of the value lifetime. 12 // guarantees of the value lifetime.
13 var module; 13 var module;
14 var instance1; 14 var instance1;
15 var instance2; 15 var instance2;
16 var instance3; 16 var instance3;
17 var instance4; 17 var instance4;
18 18
19 (function CompiledModuleInstancesInitialize1to3() { 19 (function CompiledModuleInstancesInitialize1to3() {
20 var builder = new WasmModuleBuilder(); 20 var builder = new WasmModuleBuilder();
21 21
22 builder.addMemory(1,1, true); 22 builder.addMemory(1,1, true);
23 builder.addImport("getValue", kSig_i_v); 23 builder.addImport("", "getValue", kSig_i_v);
24 builder.addFunction("f", kSig_i_v) 24 builder.addFunction("f", kSig_i_v)
25 .addBody([ 25 .addBody([
26 kExprCallFunction, 0 26 kExprCallFunction, 0
27 ]).exportFunc(); 27 ]).exportFunc();
28 28
29 module = new WebAssembly.Module(builder.toBuffer()); 29 module = new WebAssembly.Module(builder.toBuffer());
30 %ValidateWasmModuleState(module); 30 %ValidateWasmModuleState(module);
31 %ValidateWasmInstancesChain(module, 0); 31 %ValidateWasmInstancesChain(module, 0);
32 instance1 = new WebAssembly.Instance(module, {getValue: () => 1}); 32 instance1 = new WebAssembly.Instance(module, {"": {getValue: () => 1}});
33 %ValidateWasmInstancesChain(module, 1); 33 %ValidateWasmInstancesChain(module, 1);
34 instance2 = new WebAssembly.Instance(module, {getValue: () => 2}); 34 instance2 = new WebAssembly.Instance(module, {"": {getValue: () => 2}});
35 %ValidateWasmInstancesChain(module, 2); 35 %ValidateWasmInstancesChain(module, 2);
36 instance3 = new WebAssembly.Instance(module, {getValue: () => 3}); 36 instance3 = new WebAssembly.Instance(module, {"": {getValue: () => 3}});
37 %ValidateWasmInstancesChain(module, 3); 37 %ValidateWasmInstancesChain(module, 3);
38 })(); 38 })();
39 39
40 (function CompiledModuleInstancesClear1() { 40 (function CompiledModuleInstancesClear1() {
41 assertEquals(1, instance1.exports.f()); 41 assertEquals(1, instance1.exports.f());
42 instance1 = null; 42 instance1 = null;
43 })(); 43 })();
44 44
45 gc(); 45 gc();
46 %ValidateWasmInstancesChain(module, 2); 46 %ValidateWasmInstancesChain(module, 2);
47 47
48 (function CompiledModuleInstancesClear3() { 48 (function CompiledModuleInstancesClear3() {
49 assertEquals(3, instance3.exports.f()); 49 assertEquals(3, instance3.exports.f());
50 instance3 = null; 50 instance3 = null;
51 })(); 51 })();
52 52
53 gc(); 53 gc();
54 %ValidateWasmInstancesChain(module, 1); 54 %ValidateWasmInstancesChain(module, 1);
55 55
56 (function CompiledModuleInstancesClear2() { 56 (function CompiledModuleInstancesClear2() {
57 assertEquals(2, instance2.exports.f()); 57 assertEquals(2, instance2.exports.f());
58 instance2 = null; 58 instance2 = null;
59 })(); 59 })();
60 60
61 gc(); 61 gc();
62 %ValidateWasmModuleState(module); 62 %ValidateWasmModuleState(module);
63 63
64 (function CompiledModuleInstancesInitialize4AndClearModule() { 64 (function CompiledModuleInstancesInitialize4AndClearModule() {
65 instance4 = new WebAssembly.Instance(module, {getValue: () => 4}); 65 instance4 = new WebAssembly.Instance(module, {"": {getValue: () => 4}});
66 assertEquals(4, instance4.exports.f()); 66 assertEquals(4, instance4.exports.f());
67 module = null; 67 module = null;
68 })(); 68 })();
69 69
70 gc(); 70 gc();
71 %ValidateWasmOrphanedInstance(instance4); 71 %ValidateWasmOrphanedInstance(instance4);
OLDNEW
« no previous file with comments | « test/inspector/debugger/wasm-stack.js ('k') | test/mjsunit/wasm/compiled-module-serialization.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698