debugger.js (1218B)
1 // |jit-test| skip-if: !wasmDebuggingEnabled() 2 3 (function() { 4 let g = newGlobal({newCompartment: true}); 5 let dbg = new Debugger(g); 6 g.eval(`o = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func (param externref) (result externref) local.get 0) (export "" (func 0)))')));`); 7 })(); 8 9 (function() { 10 var g = newGlobal({newCompartment: true}); 11 g.parent = this; 12 13 let src = ` 14 (module 15 (func (export "func") (param $ref externref) (result externref) 16 local.get $ref 17 ) 18 ) 19 `; 20 21 g.eval(` 22 var obj = { somekey: 'somevalue' }; 23 Debugger(parent).onEnterFrame = function(frame) { 24 let v = frame.environment.getVariable('var0'); 25 assertEq(typeof v, 'object'); 26 27 let prop = v.unwrap().getOwnPropertyDescriptor('somekey'); 28 assertEq(typeof prop, 'object'); 29 assertEq(typeof prop.value, 'string'); 30 assertEq(prop.value, 'somevalue'); 31 32 // Disable onEnterFrame hook. 33 Debugger(parent).onEnterFrame = undefined; 34 }; 35 `); 36 37 new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`${src}`))).exports.func(g.obj); 38 })();