Bug 1596544 - intl_ValidateAndCanonicalizeUnicodeExtensionType should ignore the second |option| argument until it's needed to report an error. r=anba
Differential Revision:
https://phabricator.services.mozilla.com/D53145
--- a/js/src/builtin/intl/Locale.cpp
+++ b/js/src/builtin/intl/Locale.cpp
@@ -1338,29 +1338,26 @@ bool js::intl_TryValidateAndCanonicalize
return true;
}
bool js::intl_ValidateAndCanonicalizeUnicodeExtensionType(JSContext* cx,
unsigned argc,
Value* vp) {
CallArgs args = CallArgsFromVp(argc, vp);
MOZ_ASSERT(args.length() == 2);
+ MOZ_ASSERT(args[0].isString());
+ MOZ_ASSERT(args[1].isString());
RootedLinearString unicodeType(cx, args[0].toString()->ensureLinear(cx));
if (!unicodeType) {
return false;
}
- RootedLinearString option(cx, args[1].toString()->ensureLinear(cx));
- if (!option) {
- return false;
- }
-
if (!IsValidUnicodeExtensionValue(unicodeType)) {
- UniqueChars optionChars = EncodeAscii(cx, option);
+ UniqueChars optionChars = EncodeAscii(cx, args[1].toString());
if (!optionChars) {
return false;
}
UniqueChars unicodeTypeChars = QuoteString(cx, unicodeType, '"');
if (!unicodeTypeChars) {
return false;
}