// |jit-test| skip-if: !wasmDebuggingEnabled()
// Tests that JS can be evaluated on wasm module scripts frames.
load(libdir + "wasm.js" );
wasmRunWithDebugger(
'(module (memory 1 1)\
(global (mut f64) (f64.const 0.5))\
(global f32 (f32.const 3.5))\
(func (param i32) (local f64) \
nop \
f64.const 1.0 \
local.tee 1 \
global.set 0 \
nop) \
(export "test" (func 0))\
(data (i32.const 0) "Abc\\x2A" ))',
undefined,
function ({dbg}) {
dbg.onEnterFrame = function (frame) {
if (frame.type != 'wasmcall' ) return ;
var memoryContent = frame.eval('new DataView(memory0.buffer).getUint8(3)' ).return ;
assertEq(memoryContent, 42, 'valid memory content is expected (0x2A)' );
var global1AndParamSum = frame.eval('global1 + var0' ).return ;
assertEq(global1AndParamSum, 3.5);
var stepNumber = 0;
frame.onStep = function () {
switch (stepNumber) {
case 0: // before nop
assertEq(frame.offset, 65);
assertEq(frame.eval('global0' ).return , 0.5);
assertEq(frame.eval('var1' ).return , 0.0);
break ;
case 2: // after local.tee $var1
assertEq(frame.offset, 79);
assertEq(frame.eval('var1' ).return , 1.0);
break ;
case 3: // after global.set $global0
assertEq(frame.offset, 80);
assertEq(frame.eval('global0' ).return , 1.0);
break ;
}
stepNumber++;
};
};
},
function ({error}) {
assertEq(error, undefined);
}
);
Messung V0.5 C=93 H=83 G=87
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland