Chromium Code Reviews| 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; |
| }); |