tor-browser

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

wasm-07.js (1298B)


      1 // |jit-test| test-also=--wasm-compiler=optimizing; skip-if: !wasmDebuggingEnabled()
      2 
      3 // Checking existence of all frame.offset references during onEnterFrame,
      4 // onLeaveFrame and onStep events in the source code, and that we can
      5 // potentially resolve offset back to the line/column.
      6 
      7 load(libdir + "wasm.js");
      8 
      9 var offsets;
     10 wasmRunWithDebugger(
     11    '(module (func (nop) (nop)) (export "test" (func 0)))',
     12    undefined,
     13    function ({dbg}) {
     14        offsets = [];
     15        dbg.onEnterFrame = function (frame) {
     16            if (frame.type != 'wasmcall') {
     17                return;
     18            }
     19            offsets.push(frame.offset);
     20            frame.onStep = function () {
     21                offsets.push(frame.offset);
     22            };
     23            frame.onPop = function () {
     24                offsets.push(frame.offset);
     25            };
     26        };
     27    },
     28    function ({wasmScript, error}) {
     29        assertEq(error, undefined);
     30        assertEq(offsets.length, 4);
     31        offsets.forEach(offset => {
     32            var loc = wasmScript.getOffsetLocation(offset);
     33            assertEq(loc.isEntryPoint, true);
     34            assertEq(loc.lineNumber > 0, true);
     35            assertEq(loc.columnNumber > 0, true);
     36            assertEq(wasmScript.getLineOffsets(loc.lineNumber).length, 1);
     37        });
     38    }
     39 );