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