tor-browser

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

string-loadchar.js (890B)


      1 // Load Latin-1 and Two-Byte strings.
      2 function latin1AndTwoByte() {
      3  for (var i = 0; i <= 0x03FF; ++i) {
      4    var s = String.fromCodePoint(i);
      5    assertEq(s[0], s);
      6    assertEq(s.charAt(0), s);
      7  }
      8 }
      9 
     10 for (var i = 0; i < 2; ++i) {
     11  latin1AndTwoByte();
     12 }
     13 
     14 // Test bi-morphic loads.
     15 function stringAndArray() {
     16  var xs = [["\u0100"], "\u0100"];
     17  for (var i = 0; i < 200; ++i) {
     18    var x = xs[i & 1];
     19    var s = x[0];
     20    assertEq(s.length, 1);
     21    assertEq(s, "\u0100");
     22  }
     23 }
     24 
     25 for (var i = 0; i < 2; ++i) {
     26  stringAndArray();
     27 }
     28 
     29 function outOfBoundsFailureThenException() {
     30  var name = "Object";
     31 
     32  var j = 0;
     33  while (true) {
     34    // Access out-of-bounds character and then trigger an exception,
     35    // when accessing a property on the undefined value.
     36    name[j++].does_not_exist;
     37  }
     38 }
     39 
     40 for (var i = 0; i < 2; ++i) {
     41  try {
     42    outOfBoundsFailureThenException();
     43  } catch {}
     44 }