tor-browser

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

latin1.js (2851B)


      1 function assertLatin1(s) {
      2    assertEq(isLatin1(s), true, "String: " + s);
      3 }
      4 
      5 // string literals
      6 assertLatin1("");
      7 assertLatin1("x");
      8 assertLatin1("xy");
      9 assertLatin1("while");
     10 assertLatin1("xyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\u00ff.");
     11 assertLatin1("-1");
     12 assertLatin1("50");
     13 assertLatin1("873939");
     14 assertLatin1("12.34");
     15 assertLatin1("NaN");
     16 
     17 // int32
     18 assertLatin1(String(1));
     19 assertLatin1("" + 40);
     20 assertLatin1(String(873939));
     21 assertLatin1(String(-1));
     22 assertLatin1((-12983).toString());
     23 assertLatin1(20..toString(16));
     24 assertLatin1((-20).toString(12));
     25 assertLatin1(12121..toString(16));
     26 assertLatin1(12144..toString(2));
     27 
     28 // doubles
     29 assertLatin1(String(12.34));
     30 assertLatin1(45.6.toString(16));
     31 assertLatin1(String(-0));
     32 assertLatin1(NaN.toString());
     33 assertLatin1("" + -Infinity);
     34 assertLatin1("a" + 85899345929);
     35 
     36 // other types
     37 assertLatin1(true.toString());
     38 assertLatin1(String(false));
     39 assertLatin1(String(null));
     40 assertLatin1(String(undefined));
     41 
     42 // objects
     43 assertLatin1(Math.toString());
     44 assertLatin1(({x:1}).toString());
     45 if (Object.prototype.toSource) {
     46    assertLatin1(({x:"foo"}).toSource());
     47 }
     48 assertLatin1([1, "bar"].toString());
     49 
     50 // typeof
     51 assertLatin1(typeof "foo");
     52 assertLatin1(typeof assertEq);
     53 
     54 // join
     55 assertLatin1([1, "foo", null, true].join());
     56 assertLatin1([1, "foo", null, true].join(":"));
     57 
     58 // JSON
     59 assertLatin1(JSON.stringify({x:1,y:"bar",z:[null],1281298:Math.PI}));
     60 assertLatin1(JSON.stringify([1, 2, 3], null, "foo"));
     61 assertLatin1(JSON.stringify({x:1,y:"bar"}, function(k, v) {
     62    assertLatin1(k);
     63    return v;
     64 }));
     65 var arr = [1, 2, 3]; arr.length = 300;
     66 assertLatin1(JSON.stringify(arr, function(k, v) {
     67    assertLatin1(k);
     68    return v;
     69 }));
     70 
     71 // Date
     72 assertLatin1(new Date().toString());
     73 assertLatin1(new Date().toISOString());
     74 assertLatin1(Date());
     75 
     76 // native functions
     77 assertLatin1(Math.abs.toString());
     78 assertLatin1(Object.getOwnPropertyNames.name);
     79 
     80 // scripted functions
     81 function fun1(a, b) { return ["foo\xAA"]; }
     82 assertLatin1(fun1.toString());
     83 assertLatin1(fun1.name);
     84 
     85 // fromCharCode
     86 assertLatin1(String.fromCharCode(99));
     87 assertLatin1(String.fromCharCode(99, 0xff, 1));
     88 
     89 // charAt
     90 assertLatin1("foo\u00ff\u1200".charAt(3));
     91 
     92 // RegExps
     93 var re = /a\.*b[cC]+/g;
     94 assertLatin1(re.source);
     95 assertLatin1(re.toString());
     96 
     97 // For-in
     98 var o = {x: 1, y: 2, z\u00ff: 3, 987654: 4, 22: 5};
     99 for (var prop in o)
    100    assertLatin1(prop);
    101 
    102 // Object.keys
    103 assertLatin1(Object.keys(o)[2]);
    104 
    105 // Error
    106 (function foo() {
    107    var err;
    108    try { this(); } catch(e) { err = e; }
    109    assertEq(err.name, "TypeError");
    110    assertLatin1(err.name);
    111    assertLatin1(err.message);
    112    assertLatin1(err.stack);
    113    assertLatin1(err.toString());
    114 
    115    try { throw new Error("foo"); } catch(e) { err = e; }
    116    assertLatin1(err.name);
    117    assertLatin1(err.message);
    118    assertLatin1(err.stack);
    119    assertLatin1(err.toString());
    120 })();