summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/compiler-frame-depth.js
blob: 319755c60929d6281a2943bc8dbb23f4333b1b3e (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
// Ensures that the postorder allows us to have very deep expression trees.

var expr = '(local.get 0)';

for (var i = 1000; i --> 0; ) {
    expr = `(f32.neg ${expr})`;
}

var code = `(module
 (func
  (param f32)
  (result f32)
  ${expr}
 )
 (export "run" (func 0))
)`;

try {
    wasmFullPass(code, Math.fround(13.37), {}, 13.37);
} catch (e) {
    // Some configurations, like e.g. ASAN, will fail these tests because its
    // stack frames are much bigger than usual ones and the parser will bail
    // out during its recursive descent.
    // Ignore those errors specifically.
    assertEq(e.message.includes('out of memory'), true);
}