LibJS: Revert ArrayIterator and RegExpStringIterator to manual iterators

This is a normative change in the ECMA-262 spec. See:
de62e8d

This did not actually seem to affect our implementation as we were not
using generators here to begin with. So this patch is basically just
adding spec comments.
This commit is contained in:
Timothy Flynn 2025-04-29 08:00:05 -04:00 committed by Tim Flynn
parent 107d0cafcf
commit 6b4b7a54de
Notes: github-actions[bot] 2025-04-30 11:30:29 +00:00
6 changed files with 108 additions and 51 deletions

View file

@ -14,6 +14,13 @@ GC_DEFINE_ALLOCATOR(RegExpStringIterator);
// 22.2.9.1 CreateRegExpStringIterator ( R, S, global, fullUnicode ), https://tc39.es/ecma262/#sec-createregexpstringiterator
GC::Ref<RegExpStringIterator> RegExpStringIterator::create(Realm& realm, Object& regexp_object, Utf16String string, bool global, bool unicode)
{
// 1. Let iterator be OrdinaryObjectCreate(%RegExpStringIteratorPrototype%, « [[IteratingRegExp]], [[IteratedString]], [[Global]], [[Unicode]], [[Done]] »).
// 2. Set iterator.[[IteratingRegExp]] to R.
// 3. Set iterator.[[IteratedString]] to S.
// 4. Set iterator.[[Global]] to global.
// 5. Set iterator.[[Unicode]] to fullUnicode.
// 6. Set iterator.[[Done]] to false.
// 7. Return iterator.
return realm.create<RegExpStringIterator>(realm.intrinsics().regexp_string_iterator_prototype(), regexp_object, move(string), global, unicode);
}