tor-browser

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

bug1983499.js (741B)


      1 function test() {
      2  var i8 = new Int8Array(4);
      3  var i16 = new Int16Array(i8.buffer, 0, 2);
      4 
      5  for (var i = 0; i < 100; ++i) {
      6    i8.set([
      7      0x11,
      8      0x22,
      9      0x33,
     10      0x44,
     11    ]);
     12 
     13    var oldval = 0x22_11;
     14 
     15    // Ensure initial state is correct. (Little endian order!)
     16    assertEq(i16[0], oldval);
     17    assertEq(i16[1], 0x44_33);
     18 
     19    // 0x88_99_55_66 will get truncated to 0x55_66.
     20    var newval = 0x88_99_55_66;
     21 
     22    oldval = Atomics.compareExchange(i16, 0, 0x22_11, newval);
     23 
     24    // Assert success.
     25    assertEq(oldval, 0x22_11);
     26 
     27    // Ensure high bits 0x33_44 weren't overwritten with 0x88_99.
     28    assertEq(i8[0], 0x66);
     29    assertEq(i8[1], 0x55);
     30    assertEq(i8[2], 0x33);
     31    assertEq(i8[3], 0x44);
     32  }
     33 }
     34 test();