author | André Bargull <andre.bargull@gmail.com> |
Fri, 28 Jul 2017 12:56:53 -0700 | |
changeset 371906 | 820435b8583623782455b7f18e84b1a1b568e2ab |
parent 371905 | 3bceabbf445d41049258415796c2961a04b7ef9d |
child 371907 | e1ec4e403b9d6326fe38f51be3422790df8deb22 |
push id | 47611 |
push user | archaeopteryx@coole-files.de |
push date | Sun, 30 Jul 2017 09:20:48 +0000 |
treeherder | autoland@8b577b152383 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | till |
bugs | 1382656 |
milestone | 56.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/js/src/builtin/Intl.js +++ b/js/src/builtin/Intl.js @@ -102,21 +102,21 @@ function removeUnicodeExtensions(locale) // the concatenation. var pos = callFunction(std_String_indexOf, locale, "-x-"); if (pos < 0) pos = locale.length; var left = callFunction(String_substring, locale, 0, pos); var right = callFunction(String_substring, locale, pos); - var extensions; var unicodeLocaleExtensionSequenceRE = getUnicodeLocaleExtensionSequenceRE(); - while ((extensions = regexp_exec_no_statics(unicodeLocaleExtensionSequenceRE, left)) !== null) { - left = StringReplaceString(left, extensions[0], ""); - unicodeLocaleExtensionSequenceRE.lastIndex = 0; + var extensions = regexp_exec_no_statics(unicodeLocaleExtensionSequenceRE, left); + if (extensions !== null) { + left = callFunction(String_substring, left, 0, extensions.index) + + callFunction(String_substring, left, extensions.index + extensions[0].length); } var combined = left + right; assert(IsStructurallyValidLanguageTag(combined), "recombination produced an invalid language tag"); assert(function() { var uindex = callFunction(std_String_indexOf, combined, "-u-"); if (uindex < 0) return true;