tor-browser

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

ref-eq.js (825B)


      1 // ref.eq is part of the gc feature, not the reftypes feature.
      2 
      3 let { exports: { make, ref_eq, ref_eq_for_control } } = wasmEvalText(`(module
      4    (type $s (struct))
      5 
      6    (func (export "make") (result eqref) struct.new $s)
      7 
      8    (func (export "ref_eq") (param $a eqref) (param $b eqref) (result i32)
      9        (ref.eq (local.get $a) (local.get $b)))
     10 
     11    (func (export "ref_eq_for_control") (param $a eqref) (param $b eqref) (result f64)
     12        (if (result f64) (ref.eq (local.get $a) (local.get $b))
     13            (then (f64.const 5.0))
     14            (else (f64.const 3.0)))))`);
     15 
     16 let a = make();
     17 let b = make();
     18 
     19 assertEq(ref_eq(null, null), 1);
     20 assertEq(ref_eq(null, a), 0);
     21 assertEq(ref_eq(b, b), 1);
     22 assertEq(ref_eq_for_control(null, null), 5);
     23 assertEq(ref_eq_for_control(null, a), 3);
     24 assertEq(ref_eq_for_control(b, b), 5);