@@ -1640,10 +1640,7 @@ namespace Js
16401640
16411641 library->AddMember (arrayConstructor, PropertyIds::length, TaggedInt::ToVarUnchecked (1 ), PropertyNone);
16421642 library->AddMember (arrayConstructor, PropertyIds::prototype, scriptContext->GetLibrary ()->arrayPrototype , PropertyNone);
1643- if (scriptContext->GetConfig ()->IsES6SpeciesEnabled ())
1644- {
1645- library->AddAccessorsToLibraryObject (arrayConstructor, PropertyIds::_symbolSpecies, &JavascriptArray::EntryInfo::GetterSymbolSpecies, nullptr );
1646- }
1643+ library->AddSpeciesAccessorsToLibraryObject (arrayConstructor, &JavascriptArray::EntryInfo::GetterSymbolSpecies);
16471644
16481645 if (scriptContext->GetConfig ()->IsES6FunctionNameEnabled ())
16491646 {
@@ -1807,8 +1804,7 @@ namespace Js
18071804 JavascriptLibrary* library = sharedArrayBufferConstructor->GetLibrary ();
18081805 library->AddMember (sharedArrayBufferConstructor, PropertyIds::length, TaggedInt::ToVarUnchecked (1 ), PropertyNone);
18091806 library->AddMember (sharedArrayBufferConstructor, PropertyIds::prototype, scriptContext->GetLibrary ()->sharedArrayBufferPrototype , PropertyNone);
1810-
1811- library->AddAccessorsToLibraryObject (sharedArrayBufferConstructor, PropertyIds::_symbolSpecies, &SharedArrayBuffer::EntryInfo::GetterSymbolSpecies, nullptr );
1807+ library->AddSpeciesAccessorsToLibraryObject (sharedArrayBufferConstructor, &SharedArrayBuffer::EntryInfo::GetterSymbolSpecies);
18121808
18131809 if (scriptContext->GetConfig ()->IsES6FunctionNameEnabled ())
18141810 {
@@ -1877,11 +1873,7 @@ namespace Js
18771873 JavascriptLibrary* library = arrayBufferConstructor->GetLibrary ();
18781874 library->AddMember (arrayBufferConstructor, PropertyIds::length, TaggedInt::ToVarUnchecked (1 ), PropertyNone);
18791875 library->AddMember (arrayBufferConstructor, PropertyIds::prototype, scriptContext->GetLibrary ()->arrayBufferPrototype , PropertyNone);
1880-
1881- if (scriptContext->GetConfig ()->IsES6SpeciesEnabled ())
1882- {
1883- library->AddAccessorsToLibraryObject (arrayBufferConstructor, PropertyIds::_symbolSpecies, &ArrayBuffer::EntryInfo::GetterSymbolSpecies, nullptr );
1884- }
1876+ library->AddSpeciesAccessorsToLibraryObject (arrayBufferConstructor, &ArrayBuffer::EntryInfo::GetterSymbolSpecies);
18851877
18861878 if (scriptContext->GetConfig ()->IsES6FunctionNameEnabled ())
18871879 {
@@ -1991,10 +1983,7 @@ namespace Js
19911983
19921984 library->AddFunctionToLibraryObject (typedArrayConstructor, PropertyIds::from, &TypedArrayBase::EntryInfo::From, 1 );
19931985 library->AddFunctionToLibraryObject (typedArrayConstructor, PropertyIds::of, &TypedArrayBase::EntryInfo::Of, 0 );
1994- if (scriptContext->GetConfig ()->IsES6SpeciesEnabled ())
1995- {
1996- library->AddAccessorsToLibraryObject (typedArrayConstructor, PropertyIds::_symbolSpecies, &TypedArrayBase::EntryInfo::GetterSymbolSpecies, nullptr );
1997- }
1986+ library->AddSpeciesAccessorsToLibraryObject (typedArrayConstructor, &TypedArrayBase::EntryInfo::GetterSymbolSpecies);
19981987
19991988 typedArrayConstructor->SetHasNoEnumerableProperties (true );
20001989
@@ -2352,11 +2341,7 @@ namespace Js
23522341 ScriptContext* scriptContext = promiseConstructor->GetScriptContext ();
23532342 library->AddMember (promiseConstructor, PropertyIds::length, TaggedInt::ToVarUnchecked (1 ), PropertyNone);
23542343 library->AddMember (promiseConstructor, PropertyIds::prototype, library->promisePrototype , PropertyNone);
2355-
2356- if (scriptContext->GetConfig ()->IsES6SpeciesEnabled ())
2357- {
2358- library->AddAccessorsToLibraryObject (promiseConstructor, PropertyIds::_symbolSpecies, &JavascriptPromise::EntryInfo::GetterSymbolSpecies, nullptr );
2359- }
2344+ library->AddSpeciesAccessorsToLibraryObject (promiseConstructor, &JavascriptPromise::EntryInfo::GetterSymbolSpecies);
23602345
23612346 if (scriptContext->GetConfig ()->IsES6FunctionNameEnabled ())
23622347 {
@@ -4425,11 +4410,7 @@ namespace Js
44254410 // so that the update is in sync with profiler
44264411 library->AddMember (regexConstructor, PropertyIds::length, TaggedInt::ToVarUnchecked (2 ), PropertyNone);
44274412 library->AddMember (regexConstructor, PropertyIds::prototype, library->regexPrototype , PropertyNone);
4428-
4429- if (scriptContext->GetConfig ()->IsES6SpeciesEnabled ())
4430- {
4431- library->AddAccessorsToLibraryObject (regexConstructor, PropertyIds::_symbolSpecies, &JavascriptRegExp::EntryInfo::GetterSymbolSpecies, nullptr );
4432- }
4413+ library->AddSpeciesAccessorsToLibraryObject (regexConstructor, &JavascriptRegExp::EntryInfo::GetterSymbolSpecies);
44334414
44344415 if (scriptContext->GetConfig ()->IsES6FunctionNameEnabled ())
44354416 {
@@ -4657,11 +4638,7 @@ namespace Js
46574638 ScriptContext* scriptContext = mapConstructor->GetScriptContext ();
46584639 library->AddMember (mapConstructor, PropertyIds::length, TaggedInt::ToVarUnchecked (0 ), PropertyNone);
46594640 library->AddMember (mapConstructor, PropertyIds::prototype, library->mapPrototype , PropertyNone);
4660-
4661- if (scriptContext->GetConfig ()->IsES6SpeciesEnabled ())
4662- {
4663- library->AddAccessorsToLibraryObject (mapConstructor, PropertyIds::_symbolSpecies, &JavascriptMap::EntryInfo::GetterSymbolSpecies, nullptr );
4664- }
4641+ library->AddSpeciesAccessorsToLibraryObject (mapConstructor, &JavascriptMap::EntryInfo::GetterSymbolSpecies);
46654642
46664643 if (scriptContext->GetConfig ()->IsES6FunctionNameEnabled ())
46674644 {
@@ -4716,11 +4693,7 @@ namespace Js
47164693 ScriptContext* scriptContext = setConstructor->GetScriptContext ();
47174694 library->AddMember (setConstructor, PropertyIds::length, TaggedInt::ToVarUnchecked (0 ), PropertyNone);
47184695 library->AddMember (setConstructor, PropertyIds::prototype, library->setPrototype , PropertyNone);
4719-
4720- if (scriptContext->GetConfig ()->IsES6SpeciesEnabled ())
4721- {
4722- library->AddAccessorsToLibraryObject (setConstructor, PropertyIds::_symbolSpecies, &JavascriptSet::EntryInfo::GetterSymbolSpecies, nullptr );
4723- }
4696+ library->AddSpeciesAccessorsToLibraryObject (setConstructor, &JavascriptSet::EntryInfo::GetterSymbolSpecies);
47244697
47254698 if (scriptContext->GetConfig ()->IsES6FunctionNameEnabled ())
47264699 {
@@ -5145,6 +5118,14 @@ namespace Js
51455118 AddAccessorsToLibraryObject (object, propertyId, getterFunction, setterFunction);
51465119 }
51475120
5121+ void JavascriptLibrary::AddSpeciesAccessorsToLibraryObject (DynamicObject* object, FunctionInfo * getterFunctionInfo)
5122+ {
5123+ if (scriptContext->GetConfig ()->IsES6SpeciesEnabled ())
5124+ {
5125+ AddAccessorsToLibraryObjectWithName (object, PropertyIds::_symbolSpecies, PropertyIds::_RuntimeFunctionNameId_species, getterFunctionInfo, nullptr );
5126+ }
5127+ }
5128+
51485129 RuntimeFunction* JavascriptLibrary::CreateGetterFunction (PropertyId nameId, FunctionInfo* functionInfo)
51495130 {
51505131 Var name_withGetPrefix = LiteralString::Concat (LiteralString::NewCopySz (_u (" get " ), scriptContext), scriptContext->GetPropertyString (nameId));
0 commit comments