tor-browser

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

inline-getelem-args.js (1543B)


      1 function cat() {
      2    var res = "";
      3    for (var i = 0; i < arguments.length; i++)
      4        res += arguments[i];
      5    return res;
      6 }
      7 
      8 function cat_m1(ion) {
      9    var res = "";
     10    for (var i = (ion ? -1 : 0); i < arguments.length; i++)
     11        res += arguments[i];
     12    return res;
     13 }
     14 
     15 function cat_p1(ion) {
     16    var res = "";
     17    for (var i = 0; i < arguments.length + (ion ? 1 : 0); i++)
     18        res += arguments[i];
     19    return res;
     20 }
     21 
     22 function sum() {
     23    var res = 0;
     24    for (var i = 0; i < arguments.length; i++)
     25        res += arguments[i];
     26    return res;
     27 }
     28 
     29 function wrapper() {
     30    var res;
     31    var i6 = { valueOf: () => 6 },
     32        i8 = 8.5,
     33        s2 = { toString: () => "2" },
     34        s4 = {},
     35        s6 = "6",
     36        s7 = undefined,
     37        s8 = null;
     38    for (var b = true; b; b = !inIon()) {
     39        res = sum(1,2,3,4,5,i6,7,i8,9,10);
     40        assertEq(res, 55.5);
     41 
     42        res = cat(true,s2,3,s4,5,s6,s7,s8);
     43        assertEq(res, "true23[object Object]56undefinednull");
     44 
     45        ion = inIon();
     46        if (typeof ion !== "boolean") break;
     47        res = cat_m1(ion,1,s2,3,s4,5,s6,s7,s8);
     48        if (ion) assertEq(res, "undefinedtrue123[object Object]56undefinednull");
     49        else assertEq(res, "false123[object Object]56undefinednull");
     50 
     51        ion = inIon();
     52        if (typeof ion !== "boolean") break;
     53        res = cat_p1(ion,1,s2,3,s4,5,s6,s7,s8);
     54        if (ion) assertEq(res, "true123[object Object]56undefinednullundefined");
     55        else assertEq(res, "false123[object Object]56undefinednull");
     56    }
     57 }
     58 
     59 wrapper();