Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: src/js/i18n.js

Issue 2683083003: [bootstrapper] Remove Intl experimental natives files (Closed)
Patch Set: Changes based on review Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/js/datetime-format-to-parts.js ('k') | src/js/icu-case-mapping.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 2035 matching lines...) Expand 10 before | Expand all | Expand 10 after
2046 var normalizationForm = %ArrayIndexOf(NORMALIZATION_FORMS, form, 0); 2046 var normalizationForm = %ArrayIndexOf(NORMALIZATION_FORMS, form, 0);
2047 if (normalizationForm === -1) { 2047 if (normalizationForm === -1) {
2048 throw %make_range_error(kNormalizationForm, 2048 throw %make_range_error(kNormalizationForm,
2049 %_Call(ArrayJoin, NORMALIZATION_FORMS, ', ')); 2049 %_Call(ArrayJoin, NORMALIZATION_FORMS, ', '));
2050 } 2050 }
2051 2051
2052 return %StringNormalize(s, normalizationForm); 2052 return %StringNormalize(s, normalizationForm);
2053 } 2053 }
2054 ); 2054 );
2055 2055
2056 // TODO(littledan): Rewrite these two functions as C++ builtins
2056 function ToLowerCaseI18N() { 2057 function ToLowerCaseI18N() {
2057 CHECK_OBJECT_COERCIBLE(this, "String.prototype.toLowerCase"); 2058 CHECK_OBJECT_COERCIBLE(this, "String.prototype.toLowerCase");
2058 return %StringToLowerCaseI18N(TO_STRING(this)); 2059 return %StringToLowerCaseI18N(TO_STRING(this));
2059 } 2060 }
2060 2061
2061 function ToUpperCaseI18N() { 2062 function ToUpperCaseI18N() {
2062 CHECK_OBJECT_COERCIBLE(this, "String.prototype.toUpperCase"); 2063 CHECK_OBJECT_COERCIBLE(this, "String.prototype.toUpperCase");
2063 return %StringToUpperCaseI18N(TO_STRING(this)); 2064 return %StringToUpperCaseI18N(TO_STRING(this));
2064 } 2065 }
2065 2066
2066 function ToLocaleLowerCaseI18N(locales) { 2067 function ToLocaleLowerCaseI18N(locales) {
2067 CHECK_OBJECT_COERCIBLE(this, "String.prototype.toLocaleLowerCase"); 2068 CHECK_OBJECT_COERCIBLE(this, "String.prototype.toLocaleLowerCase");
2068 return LocaleConvertCase(TO_STRING(this), locales, false); 2069 return LocaleConvertCase(TO_STRING(this), locales, false);
2069 } 2070 }
2070 2071
2071 %FunctionSetLength(ToLocaleLowerCaseI18N, 0); 2072 %FunctionSetLength(ToLocaleLowerCaseI18N, 0);
2072 2073
2073 function ToLocaleUpperCaseI18N(locales) { 2074 function ToLocaleUpperCaseI18N(locales) {
2074 CHECK_OBJECT_COERCIBLE(this, "String.prototype.toLocaleUpperCase"); 2075 CHECK_OBJECT_COERCIBLE(this, "String.prototype.toLocaleUpperCase");
2075 return LocaleConvertCase(TO_STRING(this), locales, true); 2076 return LocaleConvertCase(TO_STRING(this), locales, true);
2076 } 2077 }
2077 2078
2078 %FunctionSetLength(ToLocaleUpperCaseI18N, 0); 2079 %FunctionSetLength(ToLocaleUpperCaseI18N, 0);
2079 2080
2080 %FunctionRemovePrototype(ToLowerCaseI18N);
2081 %FunctionRemovePrototype(ToUpperCaseI18N);
2082 %FunctionRemovePrototype(ToLocaleLowerCaseI18N);
2083 %FunctionRemovePrototype(ToLocaleUpperCaseI18N);
2084
2085 utils.Export(function(to) {
2086 to.ToLowerCaseI18N = ToLowerCaseI18N;
2087 to.ToUpperCaseI18N = ToUpperCaseI18N;
2088 to.ToLocaleLowerCaseI18N = ToLocaleLowerCaseI18N;
2089 to.ToLocaleUpperCaseI18N = ToLocaleUpperCaseI18N;
2090 });
2091
2092 2081
2093 /** 2082 /**
2094 * Formats a Number object (this) using locale and options values. 2083 * Formats a Number object (this) using locale and options values.
2095 * If locale or options are omitted, defaults are used. 2084 * If locale or options are omitted, defaults are used.
2096 */ 2085 */
2097 OverrideFunction(GlobalNumber.prototype, 'toLocaleString', function() { 2086 OverrideFunction(GlobalNumber.prototype, 'toLocaleString', function() {
2098 if (!(this instanceof GlobalNumber) && typeof(this) !== 'number') { 2087 if (!(this instanceof GlobalNumber) && typeof(this) !== 'number') {
2099 throw %make_type_error(kMethodInvokedOnWrongType, "Number"); 2088 throw %make_type_error(kMethodInvokedOnWrongType, "Number");
2100 } 2089 }
2101 2090
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
2162 */ 2151 */
2163 OverrideFunction(GlobalDate.prototype, 'toLocaleTimeString', function() { 2152 OverrideFunction(GlobalDate.prototype, 'toLocaleTimeString', function() {
2164 var locales = arguments[0]; 2153 var locales = arguments[0];
2165 var options = arguments[1]; 2154 var options = arguments[1];
2166 return toLocaleDateTime( 2155 return toLocaleDateTime(
2167 this, locales, options, 'time', 'time', 'dateformattime'); 2156 this, locales, options, 'time', 'time', 'dateformattime');
2168 } 2157 }
2169 ); 2158 );
2170 2159
2171 %FunctionRemovePrototype(FormatDateToParts); 2160 %FunctionRemovePrototype(FormatDateToParts);
2161 %FunctionRemovePrototype(ToLowerCaseI18N);
2162 %FunctionRemovePrototype(ToUpperCaseI18N);
2163 %FunctionRemovePrototype(ToLocaleLowerCaseI18N);
2164 %FunctionRemovePrototype(ToLocaleUpperCaseI18N);
2165
2166 utils.SetFunctionName(FormatDateToParts, "formatToParts");
2167 utils.SetFunctionName(ToLowerCaseI18N, "toLowerCase");
2168 utils.SetFunctionName(ToUpperCaseI18N, "toUpperCase");
2169 utils.SetFunctionName(ToLocaleLowerCaseI18N, "toLocaleLowerCase");
2170 utils.SetFunctionName(ToLocaleUpperCaseI18N, "toLocaleUpperCase");
2172 2171
2173 utils.Export(function(to) { 2172 utils.Export(function(to) {
2174 to.FormatDateToParts = FormatDateToParts; 2173 to.FormatDateToParts = FormatDateToParts;
2174 to.ToLowerCaseI18N = ToLowerCaseI18N;
2175 to.ToUpperCaseI18N = ToUpperCaseI18N;
2176 to.ToLocaleLowerCaseI18N = ToLocaleLowerCaseI18N;
2177 to.ToLocaleUpperCaseI18N = ToLocaleUpperCaseI18N;
2175 }); 2178 });
2176 2179
2177 }) 2180 })
OLDNEW
« no previous file with comments | « src/js/datetime-format-to-parts.js ('k') | src/js/icu-case-mapping.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698