blob: ffed0c6588540c3e427c96a97aeabb7fb79f450d (
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
34
35
36
37
38
39
40
41
42
43
44
|
// |jit-test| test-also=--wasm-compiler=optimizing; error: TestComplete
load(libdir + "asserts.js");
if (!wasmDebuggingEnabled())
throw "TestComplete";
// Single-step profiling currently only works in the ARM simulator
if (!getBuildConfiguration()["arm-simulator"])
throw "TestComplete";
enableGeckoProfiling();
enableSingleStepProfiling();
var g = newGlobal({newCompartment: true});
g.parent = this;
g.eval("Debugger(parent).onExceptionUnwind = function () {};");
let module = new WebAssembly.Module(wasmTextToBinary(`
(module
(import "a" "b" (func $imp (result i32)))
(memory 1 1)
(table 2 2 anyfunc)
(elem (i32.const 0) $imp $def)
(func $def (result i32) (i32.load (i32.const 0)))
(type $v2i (func (result i32)))
(func $call (param i32) (result i32) (call_indirect (type $v2i) (get_local 0)))
(export "call" (func $call))
)
`));
let instance = new WebAssembly.Instance(module, {
a: { b: function () { throw "test"; } }
});
try {
instance.exports.call(0);
assertEq(false, true);
} catch (e) {
assertEq(e, "test");
}
disableGeckoProfiling();
throw "TestComplete";
|