commit b0d1e698fd76803ba7c74eb5b9e8dd3a57c723bf
parent 4a17a424d0a010673a97d3f74cb209d43ec1c390
Author: André Bargull <andre.bargull@gmail.com>
Date: Tue, 16 Dec 2025 18:23:28 +0000
Bug 2005531 - Part 4: Move CanonicalizeLocaleList declaration to LocaleNegotiation. r=spidermonkey-reviewers,dminor
Move the declaration into "LocaleNegotiation" to match the spec structure [1].
[1] https://tc39.es/ecma402/#sec-canonicalizelocalelist
Differential Revision: https://phabricator.services.mozilla.com/D276022
Diffstat:
4 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/js/src/builtin/String.cpp b/js/src/builtin/String.cpp
@@ -34,7 +34,7 @@
# include "builtin/intl/CommonFunctions.h"
# include "builtin/intl/FormatBuffer.h"
# include "builtin/intl/GlobalIntlData.h"
-# include "builtin/intl/Locale.h"
+# include "builtin/intl/LocaleNegotiation.h"
#endif
#include "builtin/RegExp.h"
#include "gc/GC.h"
diff --git a/js/src/builtin/intl/CommonFunctions.h b/js/src/builtin/intl/CommonFunctions.h
@@ -96,11 +96,6 @@ extern const OldStyleLanguageTagMapping oldStyleLanguageTagMappings[5];
extern JS::UniqueChars EncodeLocale(JSContext* cx, JSString* locale);
-using LocalesList = JS::StackGCVector<JSLinearString*>;
-
-bool CanonicalizeLocaleList(JSContext* cx, JS::Handle<JS::Value> locales,
- JS::MutableHandle<LocalesList> result);
-
// The inline capacity we use for a Vector<char16_t>. Use this to ensure that
// our uses of ICU string functions, below and elsewhere, will try to fill the
// buffer's entire inline capacity before growing it and heap-allocating.
diff --git a/js/src/builtin/intl/Locale.cpp b/js/src/builtin/intl/Locale.cpp
@@ -25,6 +25,7 @@
#include "builtin/intl/CommonFunctions.h"
#include "builtin/intl/FormatBuffer.h"
#include "builtin/intl/LanguageTag.h"
+#include "builtin/intl/LocaleNegotiation.h"
#include "builtin/intl/StringAsciiChars.h"
#include "builtin/String.h"
#include "js/Conversions.h"
diff --git a/js/src/builtin/intl/LocaleNegotiation.h b/js/src/builtin/intl/LocaleNegotiation.h
@@ -16,6 +16,16 @@ namespace js::intl {
enum class AvailableLocaleKind;
+using LocalesList = JS::StackGCVector<JSLinearString*>;
+
+/**
+ * Canonicalizes a locale list.
+ *
+ * Spec: ECMAScript Internationalization API Specification, 9.2.1.
+ */
+bool CanonicalizeLocaleList(JSContext* cx, JS::Handle<JS::Value> locales,
+ JS::MutableHandle<LocalesList> result);
+
/**
* Compares a BCP 47 language tag against the locales in availableLocales and
* returns the best available match -- or |nullptr| if no match was found.