tor-browser

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

substring-inline-strings.js (1534B)


      1 let hasStringRepresentation = typeof stringRepresentation === "function";
      2 
      3 function testLatin1() {
      4  var s = "abcdefghijklmnopqrstuvwxyz";
      5  for (var i = 0; i < 100; i++) {
      6    var sub8 = s.substring(0, 8);
      7    assertEq(sub8, "abcdefgh");
      8    if (hasStringRepresentation) {
      9      assertEq(stringRepresentation(sub8).includes("(JSThinInlineString*)"), true);
     10    }
     11 
     12    var sub24 = s.substring(0, 24);
     13    assertEq(sub24, "abcdefghijklmnopqrstuvwx");
     14    if (hasStringRepresentation) {
     15      assertEq(stringRepresentation(sub24).includes("(JSFatInlineString*)"), true);
     16    }
     17 
     18    var sub25 = s.substring(0, 25);
     19    assertEq(sub25, "abcdefghijklmnopqrstuvwxy");
     20    if (hasStringRepresentation) {
     21      assertEq(stringRepresentation(sub25).includes("(JSDependentString*)"), true);
     22    }
     23  }
     24 }
     25 testLatin1();
     26 
     27 function testTwoByte() {
     28  var s = "\u1000bcdefghijklmnopqrstuvwxyz";
     29  for (var i = 0; i < 100; i++) {
     30    var sub4 = s.substring(0, 4);
     31    assertEq(sub4, "\u1000bcd");
     32    if (hasStringRepresentation) {
     33      assertEq(stringRepresentation(sub4).includes("(JSThinInlineString*)"), true);
     34    }
     35 
     36    var sub12 = s.substring(0, 12);
     37    assertEq(sub12, "\u1000bcdefghijkl");
     38    if (hasStringRepresentation) {
     39      assertEq(stringRepresentation(sub12).includes("(JSFatInlineString*)"), true);
     40    }
     41 
     42    var sub13 = s.substring(0, 13);
     43    assertEq(sub13, "\u1000bcdefghijklm");
     44    if (hasStringRepresentation) {
     45      assertEq(stringRepresentation(sub13).includes("(JSDependentString*)"), true);
     46    }
     47  }
     48 }
     49 testTwoByte();