| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // ECMAScript 402 API implementation. | 5 // ECMAScript 402 API implementation. |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * Intl object is a single object that has some named properties, | 8 * Intl object is a single object that has some named properties, |
| 9 * all of which are constructors. | 9 * all of which are constructors. |
| 10 */ | 10 */ |
| (...skipping 929 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 940 return collator; | 940 return collator; |
| 941 } | 941 } |
| 942 | 942 |
| 943 | 943 |
| 944 /** | 944 /** |
| 945 * Constructs Intl.Collator object given optional locales and options | 945 * Constructs Intl.Collator object given optional locales and options |
| 946 * parameters. | 946 * parameters. |
| 947 * | 947 * |
| 948 * @constructor | 948 * @constructor |
| 949 */ | 949 */ |
| 950 function Collator() { | 950 %AddNamedProperty(Intl, 'Collator', function() { |
| 951 var locales = %_Arguments(0); | 951 var locales = %_Arguments(0); |
| 952 var options = %_Arguments(1); | 952 var options = %_Arguments(1); |
| 953 | 953 |
| 954 if (IS_UNDEFINED(new.target)) return new Collator(locales, options); | 954 if (!this || this === Intl) { |
| 955 // Constructor is called as a function. |
| 956 return new Intl.Collator(locales, options); |
| 957 } |
| 955 | 958 |
| 956 return initializeCollator(this, locales, options); | 959 return initializeCollator(TO_OBJECT(this), locales, options); |
| 957 } | 960 }, |
| 958 | 961 DONT_ENUM |
| 959 %AddNamedProperty(Intl, 'Collator', Collator, DONT_ENUM); | 962 ); |
| 960 | 963 |
| 961 | 964 |
| 962 /** | 965 /** |
| 963 * Collator resolvedOptions method. | 966 * Collator resolvedOptions method. |
| 964 */ | 967 */ |
| 965 %AddNamedProperty(Intl.Collator.prototype, 'resolvedOptions', function() { | 968 %AddNamedProperty(Intl.Collator.prototype, 'resolvedOptions', function() { |
| 966 if (%_IsConstructCall()) { | 969 if (%_IsConstructCall()) { |
| 967 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor); | 970 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor); |
| 968 } | 971 } |
| 969 | 972 |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1179 return numberFormat; | 1182 return numberFormat; |
| 1180 } | 1183 } |
| 1181 | 1184 |
| 1182 | 1185 |
| 1183 /** | 1186 /** |
| 1184 * Constructs Intl.NumberFormat object given optional locales and options | 1187 * Constructs Intl.NumberFormat object given optional locales and options |
| 1185 * parameters. | 1188 * parameters. |
| 1186 * | 1189 * |
| 1187 * @constructor | 1190 * @constructor |
| 1188 */ | 1191 */ |
| 1189 function NumberFormat() { | 1192 %AddNamedProperty(Intl, 'NumberFormat', function() { |
| 1190 var locales = %_Arguments(0); | 1193 var locales = %_Arguments(0); |
| 1191 var options = %_Arguments(1); | 1194 var options = %_Arguments(1); |
| 1192 | 1195 |
| 1193 if (IS_UNDEFINED(new.target)) return new NumberFormat(locales, options); | 1196 if (!this || this === Intl) { |
| 1197 // Constructor is called as a function. |
| 1198 return new Intl.NumberFormat(locales, options); |
| 1199 } |
| 1194 | 1200 |
| 1195 return initializeNumberFormat(this, locales, options); | 1201 return initializeNumberFormat(TO_OBJECT(this), locales, options); |
| 1196 } | 1202 }, |
| 1197 %AddNamedProperty(Intl, 'NumberFormat', NumberFormat, DONT_ENUM); | 1203 DONT_ENUM |
| 1204 ); |
| 1198 | 1205 |
| 1199 | 1206 |
| 1200 /** | 1207 /** |
| 1201 * NumberFormat resolvedOptions method. | 1208 * NumberFormat resolvedOptions method. |
| 1202 */ | 1209 */ |
| 1203 %AddNamedProperty(Intl.NumberFormat.prototype, 'resolvedOptions', function() { | 1210 %AddNamedProperty(Intl.NumberFormat.prototype, 'resolvedOptions', function() { |
| 1204 if (%_IsConstructCall()) { | 1211 if (%_IsConstructCall()) { |
| 1205 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor); | 1212 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor); |
| 1206 } | 1213 } |
| 1207 | 1214 |
| (...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1577 return dateFormat; | 1584 return dateFormat; |
| 1578 } | 1585 } |
| 1579 | 1586 |
| 1580 | 1587 |
| 1581 /** | 1588 /** |
| 1582 * Constructs Intl.DateTimeFormat object given optional locales and options | 1589 * Constructs Intl.DateTimeFormat object given optional locales and options |
| 1583 * parameters. | 1590 * parameters. |
| 1584 * | 1591 * |
| 1585 * @constructor | 1592 * @constructor |
| 1586 */ | 1593 */ |
| 1587 function DateTimeFormat() { | 1594 %AddNamedProperty(Intl, 'DateTimeFormat', function() { |
| 1588 var locales = %_Arguments(0); | 1595 var locales = %_Arguments(0); |
| 1589 var options = %_Arguments(1); | 1596 var options = %_Arguments(1); |
| 1590 | 1597 |
| 1591 if (IS_UNDEFINED(new.target)) return new DateTimeFormat(locales, options); | 1598 if (!this || this === Intl) { |
| 1599 // Constructor is called as a function. |
| 1600 return new Intl.DateTimeFormat(locales, options); |
| 1601 } |
| 1592 | 1602 |
| 1593 return initializeDateTimeFormat(this, locales, options); | 1603 return initializeDateTimeFormat(TO_OBJECT(this), locales, options); |
| 1594 } | 1604 }, |
| 1595 %AddNamedProperty(Intl, 'DateTimeFormat', DateTimeFormat, DONT_ENUM); | 1605 DONT_ENUM |
| 1606 ); |
| 1596 | 1607 |
| 1597 | 1608 |
| 1598 /** | 1609 /** |
| 1599 * DateTimeFormat resolvedOptions method. | 1610 * DateTimeFormat resolvedOptions method. |
| 1600 */ | 1611 */ |
| 1601 %AddNamedProperty(Intl.DateTimeFormat.prototype, 'resolvedOptions', function() { | 1612 %AddNamedProperty(Intl.DateTimeFormat.prototype, 'resolvedOptions', function() { |
| 1602 if (%_IsConstructCall()) { | 1613 if (%_IsConstructCall()) { |
| 1603 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor); | 1614 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor); |
| 1604 } | 1615 } |
| 1605 | 1616 |
| (...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2102 } | 2113 } |
| 2103 | 2114 |
| 2104 var locales = %_Arguments(0); | 2115 var locales = %_Arguments(0); |
| 2105 var options = %_Arguments(1); | 2116 var options = %_Arguments(1); |
| 2106 return toLocaleDateTime( | 2117 return toLocaleDateTime( |
| 2107 this, locales, options, 'time', 'time', 'dateformattime'); | 2118 this, locales, options, 'time', 'time', 'dateformattime'); |
| 2108 } | 2119 } |
| 2109 ); | 2120 ); |
| 2110 | 2121 |
| 2111 }) | 2122 }) |
| OLD | NEW |