mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-24 18:02:20 +00:00
LibJS: Use PrimitiveString more instead of Utf16String in RegExp code
PrimitiveString has an internal UTF-16 string cache anyway, and so this actually avoids repeatedly converting between UTF-8 and UTF-16.
This commit is contained in:
parent
897c83cbcb
commit
98fef16972
Notes:
github-actions[bot]
2025-05-03 18:02:20 +00:00
Author: https://github.com/awesomekling
Commit: 98fef16972
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4575
5 changed files with 57 additions and 57 deletions
|
@ -12,7 +12,7 @@ namespace JS {
|
|||
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)
|
||||
GC::Ref<RegExpStringIterator> RegExpStringIterator::create(Realm& realm, Object& regexp_object, GC::Ref<PrimitiveString> string, bool global, bool unicode)
|
||||
{
|
||||
// 1. Let iterator be OrdinaryObjectCreate(%RegExpStringIteratorPrototype%, « [[IteratingRegExp]], [[IteratedString]], [[Global]], [[Unicode]], [[Done]] »).
|
||||
// 2. Set iterator.[[IteratingRegExp]] to R.
|
||||
|
@ -21,13 +21,13 @@ GC::Ref<RegExpStringIterator> RegExpStringIterator::create(Realm& realm, Object&
|
|||
// 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);
|
||||
return realm.create<RegExpStringIterator>(realm.intrinsics().regexp_string_iterator_prototype(), regexp_object, string, global, unicode);
|
||||
}
|
||||
|
||||
RegExpStringIterator::RegExpStringIterator(Object& prototype, Object& regexp_object, Utf16String string, bool global, bool unicode)
|
||||
RegExpStringIterator::RegExpStringIterator(Object& prototype, Object& regexp_object, GC::Ref<PrimitiveString> string, bool global, bool unicode)
|
||||
: Object(ConstructWithPrototypeTag::Tag, prototype)
|
||||
, m_regexp_object(regexp_object)
|
||||
, m_string(move(string))
|
||||
, m_string(string)
|
||||
, m_global(global)
|
||||
, m_unicode(unicode)
|
||||
{
|
||||
|
@ -37,6 +37,7 @@ void RegExpStringIterator::visit_edges(Cell::Visitor& visitor)
|
|||
{
|
||||
Base::visit_edges(visitor);
|
||||
visitor.visit(m_regexp_object);
|
||||
visitor.visit(m_string);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue