// |jit-test| skip-if: !getJitCompilerOptions()['baseline.enable']
// These tests need at least baseline to make sense.
const { assertStackTrace, startProfiling, endProfiling, assertEqPreciseStacks } = WasmHelpers;
enableGeckoProfiling();
let { add } = wasmEvalText(`(module
(func (export "add" ) (param i32) (param i32) (result i32)
local.get 0
i32.const 42
i32.eq
if
unreachable
end
local.get 0
local.get 1
i32.add
)
)`).exports;
const SLOW_ENTRY_STACK = ['' , '!>' , '0,!>' , '!>' , '' ];
const FAST_ENTRY_STACK = ['' , '>' , '0,>' , '>' , '' ];
const FAST_ENTRY_STACK_THROW = ['' , '>' , '0,>' , '>' , '' , '>' , '' ];
const INLINED_CALL_STACK = ['' , '0' , '' ];
function main() {
for (let i = 0; i < 50; i++) {
startProfiling();
try {
assertEq(add(i, i+1), 2*i+1);
} catch (e) {
assertEq(i, 42);
assertEq(e.message.includes("unreachable" ), true );
assertStackTrace(e, ['wasm-function[0]' , 'main' , '' ]);
}
let stack = endProfiling();
assertEqPreciseStacks(stack, [INLINED_CALL_STACK, FAST_ENTRY_STACK, FAST_ENTRY_STACK_THROW, SLOW_ENTRY_STACK]);
}
}
main();
Messung V0.5 in Prozent C=93 H=81 G=86
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-04-25)
¤
*© Formatika GbR, Deutschland