tor-browser

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

bug1969987.js (983B)


      1 // This exposed an obscure bug to do with flag handling in GVN.
      2 
      3 const t =`
      4 (module
      5  (func (export "w0")
      6    (local $v1 i32)
      7    (local $v4 i32)
      8    (local $v5 i32)
      9    (local $v7 i32)
     10    (local $v8 i32)
     11    (local $v10 i32)
     12    i32.const 1
     13    local.set $v1
     14 
     15    local.get $v4
     16    local.get $v1
     17    local.get $v1
     18    local.get $v1
     19 
     20    loop (param i32 i32 i32 i32) ;; label = @1
     21      local.set $v5
     22      local.set $v7
     23      local.set $v8
     24      local.set $v10
     25 
     26      local.get $v8
     27      local.get $v4
     28      local.get $v8
     29      local.get $v7
     30 
     31      local.get $v10
     32      br_if 0 (;@1;)
     33 
     34      drop
     35      drop
     36      drop
     37      drop
     38 
     39      local.get $v1
     40      local.get $v4
     41      local.get $v10
     42      local.get $v1
     43 
     44      local.get $v5
     45      br_if 0 (;@1;)
     46 
     47      drop
     48      drop
     49      drop
     50      drop
     51 
     52    end
     53  )
     54 )`;
     55 
     56 // Check we can compile and run this without asserting.
     57 const v52
     58      = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(t)));
     59 v52.exports.w0();