Index: src/js/i18n.js |
diff --git a/src/js/i18n.js b/src/js/i18n.js |
index 6046a6f2f9438a68c9c9c8c3f9762aae04bb826d..65415fb854929b6d35f4cc85db1f21d2f2de909c 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) { |
Dan Ehrenberg
2016/09/06 19:39:29
Nit: rename to FormatDateToParts
jungshik at Google
2016/09/06 21:35:14
Done.
|
+ 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; |
}); |