tor-browser

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

udiv.js (1907B)


      1 function test_i32_udiv_n2() {
      2    return wasmEvalText(
      3      `(module
      4         (type (;0;) (func (param i32) (result i32)))
      5         (func (;0;) (type 0) (param i32) (result i32)
      6           local.get 0
      7           i32.const -2
      8           i32.div_u)
      9         (export "main" (func 0)))`
     10    ).exports["main"];
     11 }
     12 function test_i32_udiv_n1() {
     13    return wasmEvalText(
     14      `(module
     15         (type (;0;) (func (param i32) (result i32)))
     16         (func (;0;) (type 0) (param i32) (result i32)
     17           local.get 0
     18           i32.const -1
     19           i32.div_u)
     20         (export "main" (func 0)))`
     21    ).exports["main"];
     22 }
     23 function test_i32_udiv_p2() {
     24    return wasmEvalText(
     25      `(module
     26         (type (;0;) (func (param i32) (result i32)))
     27         (func (;0;) (type 0) (param i32) (result i32)
     28           local.get 0
     29           i32.const 2
     30           i32.div_u)
     31         (export "main" (func 0)))`
     32    ).exports["main"];
     33 }
     34 function test_i32_udiv_p1() {
     35    return wasmEvalText(
     36      `(module
     37         (type (;0;) (func (param i32) (result i32)))
     38         (func (;0;) (type 0) (param i32) (result i32)
     39           local.get 0
     40           i32.const 1
     41           i32.div_u)
     42         (export "main" (func 0)))`
     43    ).exports["main"];
     44 }
     45 
     46 let udiv_p1 = test_i32_udiv_p1();
     47 assertEq(udiv_p1(1), 1);
     48 assertEq(udiv_p1(2), 2);
     49 assertEq(udiv_p1(0x7fffffff), 0x7fffffff);
     50 assertEq(udiv_p1(-1), -1); // results are converted to i32.
     51 
     52 let udiv_p2 = test_i32_udiv_p2();
     53 assertEq(udiv_p2(1), 0);
     54 assertEq(udiv_p2(2), 1);
     55 assertEq(udiv_p2(0x7fffffff), 0x7fffffff >> 1);
     56 assertEq(udiv_p2(-1), 0x7fffffff); // -1 is converted to u32.
     57 
     58 let udiv_n1 = test_i32_udiv_n1();
     59 assertEq(udiv_n1(1), 0);
     60 assertEq(udiv_n1(2), 0);
     61 assertEq(udiv_n1(0x7fffffff), 0);
     62 assertEq(udiv_n1(-1), 1);
     63 
     64 let udiv_n2 = test_i32_udiv_n2();
     65 assertEq(udiv_n2(1), 0);
     66 assertEq(udiv_n2(2), 0);
     67 assertEq(udiv_n2(0x7fffffff), 0);
     68 assertEq(udiv_n2(-1), 1);