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

Unified Diff: src/i18n.js

Issue 1000063002: Hide RegExp and String initialization in a closure. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: address comments Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/api.cc ('k') | src/math.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/i18n.js
diff --git a/src/i18n.js b/src/i18n.js
index 47f83efe3b4daf26394d05c4981d9da439fc3312..c743cad95a0e4ded70a1dd164a3a118080322cb8 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -15,6 +15,8 @@
%CheckIsBootstrapping();
var GlobalDate = global.Date;
+var GlobalRegExp = global.RegExp;
+var GlobalString = global.String;
var undefined = global.undefined;
@@ -54,7 +56,7 @@ var UNICODE_EXTENSION_RE = undefined;
function GetUnicodeExtensionRE() {
if (UNICODE_EXTENSION_RE === undefined) {
- UNICODE_EXTENSION_RE = new $RegExp('-u(-[a-z0-9]{2,8})+', 'g');
+ UNICODE_EXTENSION_RE = new GlobalRegExp('-u(-[a-z0-9]{2,8})+', 'g');
}
return UNICODE_EXTENSION_RE;
}
@@ -66,7 +68,7 @@ var ANY_EXTENSION_RE = undefined;
function GetAnyExtensionRE() {
if (ANY_EXTENSION_RE === undefined) {
- ANY_EXTENSION_RE = new $RegExp('-[a-z0-9]{1}-.*', 'g');
+ ANY_EXTENSION_RE = new GlobalRegExp('-[a-z0-9]{1}-.*', 'g');
}
return ANY_EXTENSION_RE;
}
@@ -78,7 +80,7 @@ var QUOTED_STRING_RE = undefined;
function GetQuotedStringRE() {
if (QUOTED_STRING_RE === undefined) {
- QUOTED_STRING_RE = new $RegExp("'[^']+'", 'g');
+ QUOTED_STRING_RE = new GlobalRegExp("'[^']+'", 'g');
}
return QUOTED_STRING_RE;
}
@@ -91,7 +93,7 @@ var SERVICE_RE = undefined;
function GetServiceRE() {
if (SERVICE_RE === undefined) {
SERVICE_RE =
- new $RegExp('^(collator|numberformat|dateformat|breakiterator)$');
+ new GlobalRegExp('^(collator|numberformat|dateformat|breakiterator)$');
}
return SERVICE_RE;
}
@@ -141,7 +143,7 @@ var TIMEZONE_NAME_CHECK_RE = undefined;
function GetTimezoneNameCheckRE() {
if (TIMEZONE_NAME_CHECK_RE === undefined) {
TIMEZONE_NAME_CHECK_RE =
- new $RegExp('^([A-Za-z]+)/([A-Za-z]+)(?:_([A-Za-z]+))*$');
+ new GlobalRegExp('^([A-Za-z]+)/([A-Za-z]+)(?:_([A-Za-z]+))*$');
}
return TIMEZONE_NAME_CHECK_RE;
}
@@ -289,7 +291,7 @@ function supportedLocalesOf(service, locales, options) {
var matcher = options.localeMatcher;
if (matcher !== undefined) {
- matcher = $String(matcher);
+ matcher = GlobalString(matcher);
if (matcher !== 'lookup' && matcher !== 'best fit') {
throw new $RangeError('Illegal value for localeMatcher:' + matcher);
}
@@ -375,7 +377,7 @@ function getGetOption(options, caller) {
value = $Boolean(value);
break;
case 'string':
- value = $String(value);
+ value = GlobalString(value);
break;
case 'number':
value = $Number(value);
@@ -531,7 +533,7 @@ function setOptions(inOptions, extensionMap, keyValues, getOption, outOptions) {
var extension = '';
var updateExtension = function updateExtension(key, value) {
- return '-' + key + '-' + $String(value);
+ return '-' + key + '-' + GlobalString(value);
}
var updateProperty = function updateProperty(property, type, value) {
@@ -620,7 +622,7 @@ function getOptimalLanguageTag(original, resolved) {
}
// Preserve extensions of resolved locale, but swap base tags with original.
- var resolvedBase = new $RegExp('^' + locales[1].base);
+ var resolvedBase = new GlobalRegExp('^' + locales[1].base);
return resolved.replace(resolvedBase, locales[0].base);
}
@@ -710,7 +712,7 @@ function canonicalizeLanguageTag(localeID) {
throw new $TypeError('Language ID should be string or object.');
}
- var localeString = $String(localeID);
+ var localeString = GlobalString(localeID);
if (isValidLanguageTag(localeString) === false) {
throw new $RangeError('Invalid language tag: ' + localeString);
@@ -839,12 +841,12 @@ function BuildLanguageTagREs() {
var privateUse = '(x(-' + alphanum + '{1,8})+)';
var singleton = '(' + digit + '|[A-WY-Za-wy-z])';
- LANGUAGE_SINGLETON_RE = new $RegExp('^' + singleton + '$', 'i');
+ LANGUAGE_SINGLETON_RE = new GlobalRegExp('^' + singleton + '$', 'i');
var extension = '(' + singleton + '(-' + alphanum + '{2,8})+)';
var variant = '(' + alphanum + '{5,8}|(' + digit + alphanum + '{3}))';
- LANGUAGE_VARIANT_RE = new $RegExp('^' + variant + '$', 'i');
+ LANGUAGE_VARIANT_RE = new GlobalRegExp('^' + variant + '$', 'i');
var region = '(' + alpha + '{2}|' + digit + '{3})';
var script = '(' + alpha + '{4})';
@@ -856,7 +858,7 @@ function BuildLanguageTagREs() {
var languageTag =
'^(' + langTag + '|' + privateUse + '|' + grandfathered + ')$';
- LANGUAGE_TAG_RE = new $RegExp(languageTag, 'i');
+ LANGUAGE_TAG_RE = new GlobalRegExp(languageTag, 'i');
}
/**
@@ -1029,7 +1031,7 @@ function initializeCollator(collator, locales, options) {
*/
function compare(collator, x, y) {
return %InternalCompare(%GetImplFromInitializedIntlObject(collator),
- $String(x), $String(y));
+ GlobalString(x), GlobalString(y));
};
@@ -1282,7 +1284,7 @@ function formatNumber(formatter, value) {
*/
function parseNumber(formatter, value) {
return %InternalNumberParse(%GetImplFromInitializedIntlObject(formatter),
- $String(value));
+ GlobalString(value));
}
@@ -1686,7 +1688,7 @@ function formatDate(formatter, dateValue) {
*/
function parseDate(formatter, value) {
return %InternalDateParse(%GetImplFromInitializedIntlObject(formatter),
- $String(value));
+ GlobalString(value));
}
@@ -1847,7 +1849,7 @@ function initializeBreakIterator(iterator, locales, options) {
*/
function adoptText(iterator, text) {
%BreakIteratorAdoptText(%GetImplFromInitializedIntlObject(iterator),
- $String(text));
+ GlobalString(text));
}
@@ -1930,7 +1932,7 @@ function cachedOrNewService(service, locales, options, defaults) {
* Compares this and that, and returns less than 0, 0 or greater than 0 value.
* Overrides the built-in method.
*/
-OverrideFunction($String.prototype, 'localeCompare', function(that) {
+OverrideFunction(GlobalString.prototype, 'localeCompare', function(that) {
if (%_IsConstructCall()) {
throw new $TypeError(ORDINARY_FUNCTION_CALLED_AS_CONSTRUCTOR);
}
@@ -1954,14 +1956,14 @@ OverrideFunction($String.prototype, 'localeCompare', function(that) {
* If the form is not one of "NFC", "NFD", "NFKC", or "NFKD", then throw
* a RangeError Exception.
*/
-OverrideFunction($String.prototype, 'normalize', function(that) {
+OverrideFunction(GlobalString.prototype, 'normalize', function(that) {
if (%_IsConstructCall()) {
throw new $TypeError(ORDINARY_FUNCTION_CALLED_AS_CONSTRUCTOR);
}
CHECK_OBJECT_COERCIBLE(this, "String.prototype.normalize");
- var form = $String(%_Arguments(0) || 'NFC');
+ var form = GlobalString(%_Arguments(0) || 'NFC');
var normalizationForm = NORMALIZATION_FORMS.indexOf(form);
if (normalizationForm === -1) {
« no previous file with comments | « src/api.cc ('k') | src/math.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698