@@ -3277,9 +3277,6 @@ namespace Js
32773277 case PropertyIds::link:
32783278 return BuiltinFunction::JavascriptString_Link;
32793279
3280- case PropertyIds::localeCompare:
3281- return BuiltinFunction::JavascriptString_LocaleCompare;
3282-
32833280 case PropertyIds::match:
32843281 return BuiltinFunction::JavascriptString_Match;
32853282
@@ -3842,7 +3839,8 @@ namespace Js
38423839 builtinFuncs[BuiltinFunction::JavascriptString_CharAt] = library->AddFunctionToLibraryObject (stringPrototype, PropertyIds::charAt, &JavascriptString::EntryInfo::CharAt, 1 );
38433840 builtinFuncs[BuiltinFunction::JavascriptString_CharCodeAt] = library->AddFunctionToLibraryObject (stringPrototype, PropertyIds::charCodeAt, &JavascriptString::EntryInfo::CharCodeAt, 1 );
38443841 builtinFuncs[BuiltinFunction::JavascriptString_Concat] = library->AddFunctionToLibraryObject (stringPrototype, PropertyIds::concat, &JavascriptString::EntryInfo::Concat, 1 );
3845- builtinFuncs[BuiltinFunction::JavascriptString_LocaleCompare] = library->AddFunctionToLibraryObject (stringPrototype, PropertyIds::localeCompare, &JavascriptString::EntryInfo::LocaleCompare, 1 );
3842+ // OS#17824730: Don't inline String.prototype.localeCompare because it immediately calls back into Intl.js, which can break implicitCallFlags
3843+ /* No inlining String_LocaleCompare */ library->AddFunctionToLibraryObject (stringPrototype, PropertyIds::localeCompare, &JavascriptString::EntryInfo::LocaleCompare, 1 );
38463844 builtinFuncs[BuiltinFunction::JavascriptString_Match] = library->AddFunctionToLibraryObject (stringPrototype, PropertyIds::match, &JavascriptString::EntryInfo::Match, 1 );
38473845 builtinFuncs[BuiltinFunction::JavascriptString_Split] = library->AddFunctionToLibraryObject (stringPrototype, PropertyIds::split, &JavascriptString::EntryInfo::Split, 2 );
38483846 builtinFuncs[BuiltinFunction::JavascriptString_Substring] = library->AddFunctionToLibraryObject (stringPrototype, PropertyIds::substring, &JavascriptString::EntryInfo::Substring, 2 );
0 commit comments