in packages/fbjs/src/core/enumerate.js [100:131]
next() {
if (this._iteratedString == null) {
return {value: undefined, done: true};
}
let index = this._nextIndex;
let s = this._iteratedString;
let len = s.length;
if (index >= len) {
this._iteratedString = undefined;
return {value: undefined, done: true};
}
let ret;
let first = s.charCodeAt(index);
if (first < 0xD800 || first > 0xDBFF || index + 1 === len) {
ret = s[index];
} else {
let second = s.charCodeAt(index + 1);
if (second < 0xDC00 || second > 0xDFFF) {
ret = s[index];
} else {
ret = s[index] + s[index + 1];
}
}
this._nextIndex = index + ret.length;
return {value: ret, done: false};
}