tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 })();