summaryrefslogtreecommitdiff
path: root/js/src/vm/SelfHosting.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/vm/SelfHosting.cpp')
-rw-r--r--js/src/vm/SelfHosting.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/js/src/vm/SelfHosting.cpp b/js/src/vm/SelfHosting.cpp
index 4b22001a4e..98e29b25a4 100644
--- a/js/src/vm/SelfHosting.cpp
+++ b/js/src/vm/SelfHosting.cpp
@@ -1905,6 +1905,23 @@ intrinsic_RuntimeDefaultLocale(JSContext* cx, unsigned argc, Value* vp)
return true;
}
+using GetOrCreateIntlConstructor = JSFunction* (*)(JSContext*, Handle<GlobalObject*>);
+
+template <GetOrCreateIntlConstructor getOrCreateIntlConstructor>
+static bool
+intrinsic_GetBuiltinIntlConstructor(JSContext* cx, unsigned argc, Value* vp)
+{
+ CallArgs args = CallArgsFromVp(argc, vp);
+ MOZ_ASSERT(args.length() == 0);
+
+ JSFunction* constructor = getOrCreateIntlConstructor(cx, cx->global());
+ if (!constructor)
+ return false;
+
+ args.rval().setObject(*constructor);
+ return true;
+}
+
static bool
intrinsic_ConstructFunction(JSContext* cx, unsigned argc, Value* vp)
{
@@ -2469,6 +2486,28 @@ static const JSFunctionSpec intrinsic_functions[] = {
JS_FN("intl_RelativeTimeFormat_availableLocales", intl_RelativeTimeFormat_availableLocales, 0,0),
JS_FN("intl_FormatRelativeTime", intl_FormatRelativeTime, 3,0),
+ JS_INLINABLE_FN("IsCollator",
+ intrinsic_IsInstanceOfBuiltin<CollatorObject>, 1,0,
+ IntlIsCollator),
+ JS_INLINABLE_FN("IsDateTimeFormat",
+ intrinsic_IsInstanceOfBuiltin<DateTimeFormatObject>, 1,0,
+ IntlIsDateTimeFormat),
+ JS_INLINABLE_FN("IsNumberFormat",
+ intrinsic_IsInstanceOfBuiltin<NumberFormatObject>, 1,0,
+ IntlIsNumberFormat),
+ JS_INLINABLE_FN("IsPluralRules",
+ intrinsic_IsInstanceOfBuiltin<PluralRulesObject>, 1,0,
+ IntlIsPluralRules),
+ JS_INLINABLE_FN("IsRelativeTimeFormat",
+ intrinsic_IsInstanceOfBuiltin<RelativeTimeFormatObject>, 1,0,
+ IntlIsRelativeTimeFormat),
+ JS_FN("GetDateTimeFormatConstructor",
+ intrinsic_GetBuiltinIntlConstructor<GlobalObject::getOrCreateDateTimeFormatConstructor>,
+ 0,0),
+ JS_FN("GetNumberFormatConstructor",
+ intrinsic_GetBuiltinIntlConstructor<GlobalObject::getOrCreateNumberFormatConstructor>,
+ 0,0),
+
JS_INLINABLE_FN("IsRegExpObject",
intrinsic_IsInstanceOfBuiltin<RegExpObject>, 1,0,
IsRegExpObject),