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

Side by Side Diff: src/i18n.js

Issue 1285133009: Native context: do not hold onto helper functions on the utils object. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 4 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 | « no previous file | no next file » | 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 10 matching lines...) Expand all
21 var ArrayJoin; 21 var ArrayJoin;
22 var IsFinite; 22 var IsFinite;
23 var IsNaN; 23 var IsNaN;
24 var GlobalBoolean = global.Boolean; 24 var GlobalBoolean = global.Boolean;
25 var GlobalDate = global.Date; 25 var GlobalDate = global.Date;
26 var GlobalNumber = global.Number; 26 var GlobalNumber = global.Number;
27 var GlobalRegExp = global.RegExp; 27 var GlobalRegExp = global.RegExp;
28 var GlobalString = global.String; 28 var GlobalString = global.String;
29 var MathFloor; 29 var MathFloor;
30 var RegExpTest; 30 var RegExpTest;
31 var SetFunctionName = utils.SetFunctionName;
32 var StringIndexOf; 31 var StringIndexOf;
33 var StringLastIndexOf; 32 var StringLastIndexOf;
34 var StringMatch; 33 var StringMatch;
35 var StringReplace; 34 var StringReplace;
36 var StringSplit; 35 var StringSplit;
37 var StringSubstr; 36 var StringSubstr;
38 var StringSubstring; 37 var StringSubstring;
39 38
40 utils.Import(function(from) { 39 utils.Import(function(from) {
41 ArrayIndexOf = from.ArrayIndexOf; 40 ArrayIndexOf = from.ArrayIndexOf;
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 // DateTimeFormat.format needs to be 0 arg method, but can stil 213 // DateTimeFormat.format needs to be 0 arg method, but can stil
215 // receive optional dateValue param. If one was provided, pass it 214 // receive optional dateValue param. If one was provided, pass it
216 // along. 215 // along.
217 if (%_ArgumentsLength() > 0) { 216 if (%_ArgumentsLength() > 0) {
218 return implementation(that, %_Arguments(0)); 217 return implementation(that, %_Arguments(0));
219 } else { 218 } else {
220 return implementation(that); 219 return implementation(that);
221 } 220 }
222 } 221 }
223 } 222 }
224 SetFunctionName(boundMethod, internalName); 223 %FunctionSetName(boundMethod, internalName);
225 %FunctionRemovePrototype(boundMethod); 224 %FunctionRemovePrototype(boundMethod);
226 %SetNativeFlag(boundMethod); 225 %SetNativeFlag(boundMethod);
227 this[internalName] = boundMethod; 226 this[internalName] = boundMethod;
228 } 227 }
229 return this[internalName]; 228 return this[internalName];
230 } 229 }
231 230
232 SetFunctionName(getter, methodName); 231 %FunctionSetName(getter, methodName);
233 %FunctionRemovePrototype(getter); 232 %FunctionRemovePrototype(getter);
234 %SetNativeFlag(getter); 233 %SetNativeFlag(getter);
235 234
236 ObjectDefineProperty(obj.prototype, methodName, { 235 ObjectDefineProperty(obj.prototype, methodName, {
237 get: getter, 236 get: getter,
238 enumerable: false, 237 enumerable: false,
239 configurable: true 238 configurable: true
240 }); 239 });
241 } 240 }
242 241
(...skipping 738 matching lines...) Expand 10 before | Expand all | Expand 10 after
981 usage: coll.resolved.usage, 980 usage: coll.resolved.usage,
982 sensitivity: coll.resolved.sensitivity, 981 sensitivity: coll.resolved.sensitivity,
983 ignorePunctuation: coll.resolved.ignorePunctuation, 982 ignorePunctuation: coll.resolved.ignorePunctuation,
984 numeric: coll.resolved.numeric, 983 numeric: coll.resolved.numeric,
985 caseFirst: coll.resolved.caseFirst, 984 caseFirst: coll.resolved.caseFirst,
986 collation: coll.resolved.collation 985 collation: coll.resolved.collation
987 }; 986 };
988 }, 987 },
989 DONT_ENUM 988 DONT_ENUM
990 ); 989 );
991 SetFunctionName(Intl.Collator.prototype.resolvedOptions, 'resolvedOptions'); 990 %FunctionSetName(Intl.Collator.prototype.resolvedOptions, 'resolvedOptions');
992 %FunctionRemovePrototype(Intl.Collator.prototype.resolvedOptions); 991 %FunctionRemovePrototype(Intl.Collator.prototype.resolvedOptions);
993 %SetNativeFlag(Intl.Collator.prototype.resolvedOptions); 992 %SetNativeFlag(Intl.Collator.prototype.resolvedOptions);
994 993
995 994
996 /** 995 /**
997 * Returns the subset of the given locale list for which this locale list 996 * Returns the subset of the given locale list for which this locale list
998 * has a matching (possibly fallback) locale. Locales appear in the same 997 * has a matching (possibly fallback) locale. Locales appear in the same
999 * order in the returned list as in the input list. 998 * order in the returned list as in the input list.
1000 * Options are optional parameter. 999 * Options are optional parameter.
1001 */ 1000 */
1002 %AddNamedProperty(Intl.Collator, 'supportedLocalesOf', function(locales) { 1001 %AddNamedProperty(Intl.Collator, 'supportedLocalesOf', function(locales) {
1003 if (%_IsConstructCall()) { 1002 if (%_IsConstructCall()) {
1004 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor); 1003 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
1005 } 1004 }
1006 1005
1007 return supportedLocalesOf('collator', locales, %_Arguments(1)); 1006 return supportedLocalesOf('collator', locales, %_Arguments(1));
1008 }, 1007 },
1009 DONT_ENUM 1008 DONT_ENUM
1010 ); 1009 );
1011 SetFunctionName(Intl.Collator.supportedLocalesOf, 'supportedLocalesOf'); 1010 %FunctionSetName(Intl.Collator.supportedLocalesOf, 'supportedLocalesOf');
1012 %FunctionRemovePrototype(Intl.Collator.supportedLocalesOf); 1011 %FunctionRemovePrototype(Intl.Collator.supportedLocalesOf);
1013 %SetNativeFlag(Intl.Collator.supportedLocalesOf); 1012 %SetNativeFlag(Intl.Collator.supportedLocalesOf);
1014 1013
1015 1014
1016 /** 1015 /**
1017 * When the compare method is called with two arguments x and y, it returns a 1016 * When the compare method is called with two arguments x and y, it returns a
1018 * Number other than NaN that represents the result of a locale-sensitive 1017 * Number other than NaN that represents the result of a locale-sensitive
1019 * String comparison of x with y. 1018 * String comparison of x with y.
1020 * The result is intended to order String values in the sort order specified 1019 * The result is intended to order String values in the sort order specified
1021 * by the effective locale and collation options computed during construction 1020 * by the effective locale and collation options computed during construction
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
1240 1239
1241 if (%HasOwnProperty(format.resolved, 'maximumSignificantDigits')) { 1240 if (%HasOwnProperty(format.resolved, 'maximumSignificantDigits')) {
1242 defineWECProperty(result, 'maximumSignificantDigits', 1241 defineWECProperty(result, 'maximumSignificantDigits',
1243 format.resolved.maximumSignificantDigits); 1242 format.resolved.maximumSignificantDigits);
1244 } 1243 }
1245 1244
1246 return result; 1245 return result;
1247 }, 1246 },
1248 DONT_ENUM 1247 DONT_ENUM
1249 ); 1248 );
1250 SetFunctionName(Intl.NumberFormat.prototype.resolvedOptions, 'resolvedOptions'); 1249 %FunctionSetName(Intl.NumberFormat.prototype.resolvedOptions,
1250 'resolvedOptions');
1251 %FunctionRemovePrototype(Intl.NumberFormat.prototype.resolvedOptions); 1251 %FunctionRemovePrototype(Intl.NumberFormat.prototype.resolvedOptions);
1252 %SetNativeFlag(Intl.NumberFormat.prototype.resolvedOptions); 1252 %SetNativeFlag(Intl.NumberFormat.prototype.resolvedOptions);
1253 1253
1254 1254
1255 /** 1255 /**
1256 * Returns the subset of the given locale list for which this locale list 1256 * Returns the subset of the given locale list for which this locale list
1257 * has a matching (possibly fallback) locale. Locales appear in the same 1257 * has a matching (possibly fallback) locale. Locales appear in the same
1258 * order in the returned list as in the input list. 1258 * order in the returned list as in the input list.
1259 * Options are optional parameter. 1259 * Options are optional parameter.
1260 */ 1260 */
1261 %AddNamedProperty(Intl.NumberFormat, 'supportedLocalesOf', function(locales) { 1261 %AddNamedProperty(Intl.NumberFormat, 'supportedLocalesOf', function(locales) {
1262 if (%_IsConstructCall()) { 1262 if (%_IsConstructCall()) {
1263 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor); 1263 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
1264 } 1264 }
1265 1265
1266 return supportedLocalesOf('numberformat', locales, %_Arguments(1)); 1266 return supportedLocalesOf('numberformat', locales, %_Arguments(1));
1267 }, 1267 },
1268 DONT_ENUM 1268 DONT_ENUM
1269 ); 1269 );
1270 SetFunctionName(Intl.NumberFormat.supportedLocalesOf, 'supportedLocalesOf'); 1270 %FunctionSetName(Intl.NumberFormat.supportedLocalesOf, 'supportedLocalesOf');
1271 %FunctionRemovePrototype(Intl.NumberFormat.supportedLocalesOf); 1271 %FunctionRemovePrototype(Intl.NumberFormat.supportedLocalesOf);
1272 %SetNativeFlag(Intl.NumberFormat.supportedLocalesOf); 1272 %SetNativeFlag(Intl.NumberFormat.supportedLocalesOf);
1273 1273
1274 1274
1275 /** 1275 /**
1276 * Returns a String value representing the result of calling ToNumber(value) 1276 * Returns a String value representing the result of calling ToNumber(value)
1277 * according to the effective locale and the formatting options of this 1277 * according to the effective locale and the formatting options of this
1278 * NumberFormat. 1278 * NumberFormat.
1279 */ 1279 */
1280 function formatNumber(formatter, value) { 1280 function formatNumber(formatter, value) {
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
1661 addWECPropertyIfDefined(result, 'weekday', fromPattern.weekday); 1661 addWECPropertyIfDefined(result, 'weekday', fromPattern.weekday);
1662 addWECPropertyIfDefined(result, 'hour12', fromPattern.hour12); 1662 addWECPropertyIfDefined(result, 'hour12', fromPattern.hour12);
1663 addWECPropertyIfDefined(result, 'hour', fromPattern.hour); 1663 addWECPropertyIfDefined(result, 'hour', fromPattern.hour);
1664 addWECPropertyIfDefined(result, 'minute', fromPattern.minute); 1664 addWECPropertyIfDefined(result, 'minute', fromPattern.minute);
1665 addWECPropertyIfDefined(result, 'second', fromPattern.second); 1665 addWECPropertyIfDefined(result, 'second', fromPattern.second);
1666 1666
1667 return result; 1667 return result;
1668 }, 1668 },
1669 DONT_ENUM 1669 DONT_ENUM
1670 ); 1670 );
1671 SetFunctionName(Intl.DateTimeFormat.prototype.resolvedOptions, 1671 %FunctionSetName(Intl.DateTimeFormat.prototype.resolvedOptions,
1672 'resolvedOptions'); 1672 'resolvedOptions');
1673 %FunctionRemovePrototype(Intl.DateTimeFormat.prototype.resolvedOptions); 1673 %FunctionRemovePrototype(Intl.DateTimeFormat.prototype.resolvedOptions);
1674 %SetNativeFlag(Intl.DateTimeFormat.prototype.resolvedOptions); 1674 %SetNativeFlag(Intl.DateTimeFormat.prototype.resolvedOptions);
1675 1675
1676 1676
1677 /** 1677 /**
1678 * Returns the subset of the given locale list for which this locale list 1678 * Returns the subset of the given locale list for which this locale list
1679 * has a matching (possibly fallback) locale. Locales appear in the same 1679 * has a matching (possibly fallback) locale. Locales appear in the same
1680 * order in the returned list as in the input list. 1680 * order in the returned list as in the input list.
1681 * Options are optional parameter. 1681 * Options are optional parameter.
1682 */ 1682 */
1683 %AddNamedProperty(Intl.DateTimeFormat, 'supportedLocalesOf', function(locales) { 1683 %AddNamedProperty(Intl.DateTimeFormat, 'supportedLocalesOf', function(locales) {
1684 if (%_IsConstructCall()) { 1684 if (%_IsConstructCall()) {
1685 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor); 1685 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
1686 } 1686 }
1687 1687
1688 return supportedLocalesOf('dateformat', locales, %_Arguments(1)); 1688 return supportedLocalesOf('dateformat', locales, %_Arguments(1));
1689 }, 1689 },
1690 DONT_ENUM 1690 DONT_ENUM
1691 ); 1691 );
1692 SetFunctionName(Intl.DateTimeFormat.supportedLocalesOf, 'supportedLocalesOf'); 1692 %FunctionSetName(Intl.DateTimeFormat.supportedLocalesOf, 'supportedLocalesOf');
1693 %FunctionRemovePrototype(Intl.DateTimeFormat.supportedLocalesOf); 1693 %FunctionRemovePrototype(Intl.DateTimeFormat.supportedLocalesOf);
1694 %SetNativeFlag(Intl.DateTimeFormat.supportedLocalesOf); 1694 %SetNativeFlag(Intl.DateTimeFormat.supportedLocalesOf);
1695 1695
1696 1696
1697 /** 1697 /**
1698 * Returns a String value representing the result of calling ToNumber(date) 1698 * Returns a String value representing the result of calling ToNumber(date)
1699 * according to the effective locale and the formatting options of this 1699 * according to the effective locale and the formatting options of this
1700 * DateTimeFormat. 1700 * DateTimeFormat.
1701 */ 1701 */
1702 function formatDate(formatter, dateValue) { 1702 function formatDate(formatter, dateValue) {
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
1840 var locale = getOptimalLanguageTag(segmenter.resolved.requestedLocale, 1840 var locale = getOptimalLanguageTag(segmenter.resolved.requestedLocale,
1841 segmenter.resolved.locale); 1841 segmenter.resolved.locale);
1842 1842
1843 return { 1843 return {
1844 locale: locale, 1844 locale: locale,
1845 type: segmenter.resolved.type 1845 type: segmenter.resolved.type
1846 }; 1846 };
1847 }, 1847 },
1848 DONT_ENUM 1848 DONT_ENUM
1849 ); 1849 );
1850 SetFunctionName(Intl.v8BreakIterator.prototype.resolvedOptions, 1850 %FunctionSetName(Intl.v8BreakIterator.prototype.resolvedOptions,
1851 'resolvedOptions'); 1851 'resolvedOptions');
1852 %FunctionRemovePrototype(Intl.v8BreakIterator.prototype.resolvedOptions); 1852 %FunctionRemovePrototype(Intl.v8BreakIterator.prototype.resolvedOptions);
1853 %SetNativeFlag(Intl.v8BreakIterator.prototype.resolvedOptions); 1853 %SetNativeFlag(Intl.v8BreakIterator.prototype.resolvedOptions);
1854 1854
1855 1855
1856 /** 1856 /**
1857 * Returns the subset of the given locale list for which this locale list 1857 * Returns the subset of the given locale list for which this locale list
1858 * has a matching (possibly fallback) locale. Locales appear in the same 1858 * has a matching (possibly fallback) locale. Locales appear in the same
1859 * order in the returned list as in the input list. 1859 * order in the returned list as in the input list.
1860 * Options are optional parameter. 1860 * Options are optional parameter.
1861 */ 1861 */
1862 %AddNamedProperty(Intl.v8BreakIterator, 'supportedLocalesOf', 1862 %AddNamedProperty(Intl.v8BreakIterator, 'supportedLocalesOf',
1863 function(locales) { 1863 function(locales) {
1864 if (%_IsConstructCall()) { 1864 if (%_IsConstructCall()) {
1865 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor); 1865 throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
1866 } 1866 }
1867 1867
1868 return supportedLocalesOf('breakiterator', locales, %_Arguments(1)); 1868 return supportedLocalesOf('breakiterator', locales, %_Arguments(1));
1869 }, 1869 },
1870 DONT_ENUM 1870 DONT_ENUM
1871 ); 1871 );
1872 SetFunctionName(Intl.v8BreakIterator.supportedLocalesOf, 'supportedLocalesOf'); 1872 %FunctionSetName(Intl.v8BreakIterator.supportedLocalesOf, 'supportedLocalesOf');
1873 %FunctionRemovePrototype(Intl.v8BreakIterator.supportedLocalesOf); 1873 %FunctionRemovePrototype(Intl.v8BreakIterator.supportedLocalesOf);
1874 %SetNativeFlag(Intl.v8BreakIterator.supportedLocalesOf); 1874 %SetNativeFlag(Intl.v8BreakIterator.supportedLocalesOf);
1875 1875
1876 1876
1877 /** 1877 /**
1878 * Adopts text to segment using the iterator. Old text, if present, 1878 * Adopts text to segment using the iterator. Old text, if present,
1879 * gets discarded. 1879 * gets discarded.
1880 */ 1880 */
1881 function adoptText(iterator, text) { 1881 function adoptText(iterator, text) {
1882 %BreakIteratorAdoptText(%GetImplFromInitializedIntlObject(iterator), 1882 %BreakIteratorAdoptText(%GetImplFromInitializedIntlObject(iterator),
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1958 return new savedObjects[service](locales, useOptions); 1958 return new savedObjects[service](locales, useOptions);
1959 } 1959 }
1960 1960
1961 1961
1962 function OverrideFunction(object, name, f) { 1962 function OverrideFunction(object, name, f) {
1963 %CheckIsBootstrapping(); 1963 %CheckIsBootstrapping();
1964 ObjectDefineProperty(object, name, { value: f, 1964 ObjectDefineProperty(object, name, { value: f,
1965 writeable: true, 1965 writeable: true,
1966 configurable: true, 1966 configurable: true,
1967 enumerable: false }); 1967 enumerable: false });
1968 SetFunctionName(f, name); 1968 %FunctionSetName(f, name);
1969 %FunctionRemovePrototype(f); 1969 %FunctionRemovePrototype(f);
1970 %SetNativeFlag(f); 1970 %SetNativeFlag(f);
1971 } 1971 }
1972 1972
1973 /** 1973 /**
1974 * Compares this and that, and returns less than 0, 0 or greater than 0 value. 1974 * Compares this and that, and returns less than 0, 0 or greater than 0 value.
1975 * Overrides the built-in method. 1975 * Overrides the built-in method.
1976 */ 1976 */
1977 OverrideFunction(GlobalString.prototype, 'localeCompare', function(that) { 1977 OverrideFunction(GlobalString.prototype, 'localeCompare', function(that) {
1978 if (%_IsConstructCall()) { 1978 if (%_IsConstructCall()) {
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
2111 } 2111 }
2112 2112
2113 var locales = %_Arguments(0); 2113 var locales = %_Arguments(0);
2114 var options = %_Arguments(1); 2114 var options = %_Arguments(1);
2115 return toLocaleDateTime( 2115 return toLocaleDateTime(
2116 this, locales, options, 'time', 'time', 'dateformattime'); 2116 this, locales, options, 'time', 'time', 'dateformattime');
2117 } 2117 }
2118 ); 2118 );
2119 2119
2120 }) 2120 })
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698