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

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

Issue 1558113002: Add UseCounters for various standards-related code paths (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Don't expose patternSymbol Created 4 years, 11 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
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 15 matching lines...) Expand all
26 var GlobalDate = global.Date; 26 var GlobalDate = global.Date;
27 var GlobalNumber = global.Number; 27 var GlobalNumber = global.Number;
28 var GlobalRegExp = global.RegExp; 28 var GlobalRegExp = global.RegExp;
29 var GlobalString = global.String; 29 var GlobalString = global.String;
30 var MakeError; 30 var MakeError;
31 var MakeRangeError; 31 var MakeRangeError;
32 var MakeTypeError; 32 var MakeTypeError;
33 var MathFloor; 33 var MathFloor;
34 var ObjectDefineProperties = utils.ImportNow("ObjectDefineProperties"); 34 var ObjectDefineProperties = utils.ImportNow("ObjectDefineProperties");
35 var ObjectDefineProperty = utils.ImportNow("ObjectDefineProperty"); 35 var ObjectDefineProperty = utils.ImportNow("ObjectDefineProperty");
36 var patternSymbol = utils.ImportNow("pattern_symbol");
36 var RegExpTest; 37 var RegExpTest;
37 var StringIndexOf; 38 var StringIndexOf;
38 var StringLastIndexOf; 39 var StringLastIndexOf;
39 var StringMatch; 40 var StringMatch;
40 var StringReplace; 41 var StringReplace;
41 var StringSplit; 42 var StringSplit;
42 var StringSubstr; 43 var StringSubstr;
43 var StringSubstring; 44 var StringSubstring;
45 const kIntlPattern = 15;
44 46
45 utils.Import(function(from) { 47 utils.Import(function(from) {
46 ArrayIndexOf = from.ArrayIndexOf; 48 ArrayIndexOf = from.ArrayIndexOf;
47 ArrayJoin = from.ArrayJoin; 49 ArrayJoin = from.ArrayJoin;
48 ArrayPush = from.ArrayPush; 50 ArrayPush = from.ArrayPush;
49 IsFinite = from.IsFinite; 51 IsFinite = from.IsFinite;
50 IsNaN = from.IsNaN; 52 IsNaN = from.IsNaN;
51 MakeError = from.MakeError; 53 MakeError = from.MakeError;
52 MakeRangeError = from.MakeRangeError; 54 MakeRangeError = from.MakeRangeError;
53 MakeTypeError = from.MakeTypeError; 55 MakeTypeError = from.MakeTypeError;
(...skipping 1096 matching lines...) Expand 10 before | Expand all | Expand 10 after
1150 1152
1151 var requestedLocale = locale.locale + extension; 1153 var requestedLocale = locale.locale + extension;
1152 var resolved = ObjectDefineProperties({}, { 1154 var resolved = ObjectDefineProperties({}, {
1153 currency: {writable: true}, 1155 currency: {writable: true},
1154 currencyDisplay: {writable: true}, 1156 currencyDisplay: {writable: true},
1155 locale: {writable: true}, 1157 locale: {writable: true},
1156 maximumFractionDigits: {writable: true}, 1158 maximumFractionDigits: {writable: true},
1157 minimumFractionDigits: {writable: true}, 1159 minimumFractionDigits: {writable: true},
1158 minimumIntegerDigits: {writable: true}, 1160 minimumIntegerDigits: {writable: true},
1159 numberingSystem: {writable: true}, 1161 numberingSystem: {writable: true},
1162 pattern: {get() {
1163 %IncrementUseCounter(kIntlPattern);
1164 return this[patternSymbol];
1165 }},
1160 requestedLocale: {value: requestedLocale, writable: true}, 1166 requestedLocale: {value: requestedLocale, writable: true},
1161 style: {value: internalOptions.style, writable: true}, 1167 style: {value: internalOptions.style, writable: true},
1162 useGrouping: {writable: true} 1168 useGrouping: {writable: true}
1163 }); 1169 });
1164 if (%HasOwnProperty(internalOptions, 'minimumSignificantDigits')) { 1170 if (%HasOwnProperty(internalOptions, 'minimumSignificantDigits')) {
1165 defineWEProperty(resolved, 'minimumSignificantDigits', UNDEFINED); 1171 defineWEProperty(resolved, 'minimumSignificantDigits', UNDEFINED);
1166 } 1172 }
1167 if (%HasOwnProperty(internalOptions, 'maximumSignificantDigits')) { 1173 if (%HasOwnProperty(internalOptions, 'maximumSignificantDigits')) {
1168 defineWEProperty(resolved, 'maximumSignificantDigits', UNDEFINED); 1174 defineWEProperty(resolved, 'maximumSignificantDigits', UNDEFINED);
1169 } 1175 }
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
1554 var resolved = ObjectDefineProperties({}, { 1560 var resolved = ObjectDefineProperties({}, {
1555 calendar: {writable: true}, 1561 calendar: {writable: true},
1556 day: {writable: true}, 1562 day: {writable: true},
1557 era: {writable: true}, 1563 era: {writable: true},
1558 hour12: {writable: true}, 1564 hour12: {writable: true},
1559 hour: {writable: true}, 1565 hour: {writable: true},
1560 locale: {writable: true}, 1566 locale: {writable: true},
1561 minute: {writable: true}, 1567 minute: {writable: true},
1562 month: {writable: true}, 1568 month: {writable: true},
1563 numberingSystem: {writable: true}, 1569 numberingSystem: {writable: true},
1564 pattern: {writable: true}, 1570 [patternSymbol]: {writable: true},
1571 pattern: {get() {
adamk 2016/01/05 19:10:09 Don't you want a setter too, since the old propert
Dan Ehrenberg 2016/01/06 03:20:55 Oh, good point. Done.
1572 %IncrementUseCounter(kIntlPattern);
1573 return this[patternSymbol];
1574 }},
1565 requestedLocale: {value: requestedLocale, writable: true}, 1575 requestedLocale: {value: requestedLocale, writable: true},
1566 second: {writable: true}, 1576 second: {writable: true},
1567 timeZone: {writable: true}, 1577 timeZone: {writable: true},
1568 timeZoneName: {writable: true}, 1578 timeZoneName: {writable: true},
1569 tz: {value: tz, writable: true}, 1579 tz: {value: tz, writable: true},
1570 weekday: {writable: true}, 1580 weekday: {writable: true},
1571 year: {writable: true} 1581 year: {writable: true}
1572 }); 1582 });
1573 1583
1574 var formatter = %CreateDateTimeFormat( 1584 var formatter = %CreateDateTimeFormat(
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1631 'islamic': 'islamic', 1641 'islamic': 'islamic',
1632 'hebrew': 'hebrew', 1642 'hebrew': 'hebrew',
1633 'chinese': 'chinese', 1643 'chinese': 'chinese',
1634 'indian': 'indian', 1644 'indian': 'indian',
1635 'coptic': 'coptic', 1645 'coptic': 'coptic',
1636 'ethiopic': 'ethiopic', 1646 'ethiopic': 'ethiopic',
1637 'ethiopic-amete-alem': 'ethioaa' 1647 'ethiopic-amete-alem': 'ethioaa'
1638 }; 1648 };
1639 1649
1640 var format = this; 1650 var format = this;
1641 var fromPattern = fromLDMLString(format.resolved.pattern); 1651 var fromPattern = fromLDMLString(format.resolved[patternSymbol]);
1642 var userCalendar = ICU_CALENDAR_MAP[format.resolved.calendar]; 1652 var userCalendar = ICU_CALENDAR_MAP[format.resolved.calendar];
1643 if (IS_UNDEFINED(userCalendar)) { 1653 if (IS_UNDEFINED(userCalendar)) {
1644 // Use ICU name if we don't have a match. It shouldn't happen, but 1654 // Use ICU name if we don't have a match. It shouldn't happen, but
1645 // it would be too strict to throw for this. 1655 // it would be too strict to throw for this.
1646 userCalendar = format.resolved.calendar; 1656 userCalendar = format.resolved.calendar;
1647 } 1657 }
1648 1658
1649 var locale = getOptimalLanguageTag(format.resolved.requestedLocale, 1659 var locale = getOptimalLanguageTag(format.resolved.requestedLocale,
1650 format.resolved.locale); 1660 format.resolved.locale);
1651 1661
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
2113 } 2123 }
2114 2124
2115 var locales = %_Arguments(0); 2125 var locales = %_Arguments(0);
2116 var options = %_Arguments(1); 2126 var options = %_Arguments(1);
2117 return toLocaleDateTime( 2127 return toLocaleDateTime(
2118 this, locales, options, 'time', 'time', 'dateformattime'); 2128 this, locales, options, 'time', 'time', 'dateformattime');
2119 } 2129 }
2120 ); 2130 );
2121 2131
2122 }) 2132 })
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698