js/src/jit-test/tests/for-of/string-iterator-generic.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:87636e11513b
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[std_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"});

mercurial