tor-browser

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

string-iterator-generic.js (698B)


      1 // String.prototype.iterator is generic.
      2 
      3 load(libdir + "asserts.js");
      4 load(libdir + "iteration.js");
      5 load(libdir + "string.js");
      6 
      7 function test(obj) {
      8    var it = String.prototype[Symbol.iterator].call(obj);
      9    var s = String(obj);
     10    for (var i = 0, length = s.length; i < length;) {
     11        var r = s[i++];
     12        if (isHighSurrogate(r) && i < length && isLowSurrogate(s[i])) {
     13            r += s[i++];
     14        }
     15        assertIteratorNext(it, r);
     16    }
     17    assertIteratorDone(it, undefined);
     18 }
     19 
     20 test({toString: () => ""});
     21 test({toString: () => "xyz"});
     22 test({toString: () => "\ud808\udf45"});
     23 test({valueOf: () => ""});
     24 test({valueOf: () => "xyz"});
     25 test({valueOf: () => "\ud808\udf45"});