diff --git a/lib/Runtime/Library/IntlEngineInterfaceExtensionObject.cpp b/lib/Runtime/Library/IntlEngineInterfaceExtensionObject.cpp index d144b862daa..bf7fd8d6a0b 100644 --- a/lib/Runtime/Library/IntlEngineInterfaceExtensionObject.cpp +++ b/lib/Runtime/Library/IntlEngineInterfaceExtensionObject.cpp @@ -679,15 +679,17 @@ namespace Js char16 normalized[ULOC_FULLNAME_CAPACITY] = { 0 }; size_t normalizedLength = 0; hr = NormalizeLanguageTag(argString->GetSz(), argString->GetLength(), normalized, &normalizedLength); + if (FAILED(hr)) + { + HandleOOMSOEHR(hr); + //If we can't normalize the tag; return undefined. + return scriptContext->GetLibrary()->GetUndefined(); + } + retVal = Js::JavascriptString::NewCopyBuffer(normalized, static_cast(normalizedLength), scriptContext); #else AutoHSTRING str; hr = GetWindowsGlobalizationAdapter(scriptContext)->NormalizeLanguageTag(scriptContext, argString->GetSz(), &str); - DelayLoadWindowsGlobalization *wsl = scriptContext->GetThreadContext()->GetWindowsGlobalizationLibrary(); - PCWSTR strBuf = wsl->WindowsGetStringRawBuffer(*str, NULL); - retVal = Js::JavascriptString::NewCopySz(strBuf, scriptContext); -#endif - if (FAILED(hr)) { HandleOOMSOEHR(hr); @@ -695,6 +697,11 @@ namespace Js return scriptContext->GetLibrary()->GetUndefined(); } + DelayLoadWindowsGlobalization *wsl = scriptContext->GetThreadContext()->GetWindowsGlobalizationLibrary(); + PCWSTR strBuf = wsl->WindowsGetStringRawBuffer(*str, NULL); + retVal = Js::JavascriptString::NewCopySz(strBuf, scriptContext); +#endif + return retVal; } Var IntlEngineInterfaceExtensionObject::EntryIntl_ResolveLocaleLookup(RecyclableObject* function, CallInfo callInfo, ...)