blob: 1b2908d0ff81967b59907c652adb0406462aa92c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
// Tests that wasm module scripts are available via findScripts.
if (!wasmIsSupported())
quit();
var g = newGlobal();
g.eval(`o = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func) (export "" 0))')));`);
function isWasm(script) { return script.format === "wasm"; }
var dbg = new Debugger(g);
var foundScripts1 = dbg.findScripts().filter(isWasm);
assertEq(foundScripts1.length, 1);
var found = foundScripts1[0];
// Add another module, we should be able to find it via findScripts.
g.eval(`o2 = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func) (export "a" 0))')));`);
var foundScripts2 = dbg.findScripts().filter(isWasm);
assertEq(foundScripts2.length, 2);
// The first module should be in the list as wrapping the same wasm module
// twice gets the same Debugger.Script.
assertEq(foundScripts2.indexOf(found) !== -1, true);
// The two modules are distinct.
assertEq(foundScripts2[0] !== foundScripts2[1], true);
// We should be able to find the same script via its source.
for (var ws of foundScripts2) {
var scriptsFromSource = dbg.findScripts({ source: ws.source });
assertEq(scriptsFromSource.length, 1);
assertEq(scriptsFromSource[0], ws);
}
|