Index: src/js/i18n.js |
diff --git a/src/js/i18n.js b/src/js/i18n.js |
index 6046a6f2f9438a68c9c9c8c3f9762aae04bb826d..300012ccce81925d065fc1f4ad03207c62602abf 100644 |
--- a/src/js/i18n.js |
+++ b/src/js/i18n.js |
@@ -1797,6 +1797,29 @@ function formatDate(formatter, dateValue) { |
new GlobalDate(dateMs)); |
} |
+function FormatDateToParts(dateValue) { |
+ if (!IS_UNDEFINED(new.target)) { |
+ throw %make_type_error(kOrdinaryFunctionCalledAsConstructor); |
+ } |
+ CHECK_OBJECT_COERCIBLE(this, "Intl.DateTimeFormat.prototype.formatToParts"); |
+ if (!IS_OBJECT(this)) { |
+ throw %make_type_error(kCalledOnNonObject, this); |
+ } |
+ var dateMs; |
+ if (IS_UNDEFINED(dateValue)) { |
+ dateMs = %DateCurrentTime(); |
+ } else { |
+ dateMs = TO_NUMBER(dateValue); |
+ } |
+ |
+ if (!NUMBER_IS_FINITE(dateMs)) throw %make_range_error(kDateRange); |
+ |
+ return %InternalDateFormatToParts( |
+ %GetImplFromInitializedIntlObject(this), new GlobalDate(dateMs)); |
+} |
+ |
+%FunctionSetLength(FormatDateToParts, 0); |
+ |
/** |
* Returns a Date object representing the result of calling ToString(value) |
@@ -2291,8 +2314,11 @@ OverrideFunction(GlobalDate.prototype, 'toLocaleTimeString', function() { |
} |
); |
+%FunctionRemovePrototype(FormatDateToParts); |
+ |
utils.Export(function(to) { |
to.AddBoundMethod = AddBoundMethod; |
+ to.FormatDateToParts = FormatDateToParts; |
to.IntlParseDate = IntlParseDate; |
to.IntlParseNumber = IntlParseNumber; |
}); |