| Index: src/extensions/i18n/globals.js
|
| diff --git a/src/extensions/i18n/globals.js b/src/extensions/i18n/globals.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..68fabe777f5a922164cc7f90960326e46e87728e
|
| --- /dev/null
|
| +++ b/src/extensions/i18n/globals.js
|
| @@ -0,0 +1,168 @@
|
| +// Copyright 2013 the V8 project authors. All rights reserved.
|
| +// Redistribution and use in source and binary forms, with or without
|
| +// modification, are permitted provided that the following conditions are
|
| +// met:
|
| +//
|
| +// * Redistributions of source code must retain the above copyright
|
| +// notice, this list of conditions and the following disclaimer.
|
| +// * Redistributions in binary form must reproduce the above
|
| +// copyright notice, this list of conditions and the following
|
| +// disclaimer in the documentation and/or other materials provided
|
| +// with the distribution.
|
| +// * Neither the name of Google Inc. nor the names of its
|
| +// contributors may be used to endorse or promote products derived
|
| +// from this software without specific prior written permission.
|
| +//
|
| +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| +// limitations under the License.
|
| +
|
| +
|
| +/**
|
| + * List of available services.
|
| + */
|
| +var AVAILABLE_SERVICES = ['collator',
|
| + 'numberformat',
|
| + 'dateformat',
|
| + 'breakiterator'];
|
| +
|
| +/**
|
| + * Caches available locales for each service.
|
| + */
|
| +var AVAILABLE_LOCALES = {
|
| + 'collator': undefined,
|
| + 'numberformat': undefined,
|
| + 'dateformat': undefined,
|
| + 'breakiterator': undefined
|
| +};
|
| +
|
| +/**
|
| + * Caches default ICU locale.
|
| + */
|
| +var DEFAULT_ICU_LOCALE = undefined;
|
| +
|
| +/**
|
| + * Unicode extension regular expression.
|
| + */
|
| +var UNICODE_EXTENSION_RE = new RegExp('-u(-[a-z0-9]{2,8})+', 'g');
|
| +
|
| +/**
|
| + * Matches any Unicode extension.
|
| + */
|
| +var ANY_EXTENSION_RE = new RegExp('-[a-z0-9]{1}-.*', 'g');
|
| +
|
| +/**
|
| + * Replace quoted text (single quote, anything but the quote and quote again).
|
| + */
|
| +var QUOTED_STRING_RE = new RegExp("'[^']+'", 'g');
|
| +
|
| +/**
|
| + * Matches valid service name.
|
| + */
|
| +var SERVICE_RE =
|
| + new RegExp('^(collator|numberformat|dateformat|breakiterator)$');
|
| +
|
| +/**
|
| + * Validates a language tag against bcp47 spec.
|
| + * Actual value is assigned on first run.
|
| + */
|
| +var LANGUAGE_TAG_RE = undefined;
|
| +
|
| +/**
|
| + * Helps find duplicate variants in the language tag.
|
| + */
|
| +var LANGUAGE_VARIANT_RE = undefined;
|
| +
|
| +/**
|
| + * Helps find duplicate singletons in the language tag.
|
| + */
|
| +var LANGUAGE_SINGLETON_RE = undefined;
|
| +
|
| +/**
|
| + * Matches valid IANA time zone names.
|
| + */
|
| +var TIMEZONE_NAME_CHECK_RE =
|
| + new RegExp('^([A-Za-z]+)/([A-Za-z]+)(?:_([A-Za-z]+))*$');
|
| +
|
| +/**
|
| + * Maps ICU calendar names into LDML type.
|
| + */
|
| +var ICU_CALENDAR_MAP = {
|
| + 'gregorian': 'gregory',
|
| + 'japanese': 'japanese',
|
| + 'buddhist': 'buddhist',
|
| + 'roc': 'roc',
|
| + 'persian': 'persian',
|
| + 'islamic-civil': 'islamicc',
|
| + 'islamic': 'islamic',
|
| + 'hebrew': 'hebrew',
|
| + 'chinese': 'chinese',
|
| + 'indian': 'indian',
|
| + 'coptic': 'coptic',
|
| + 'ethiopic': 'ethiopic',
|
| + 'ethiopic-amete-alem': 'ethioaa'
|
| +};
|
| +
|
| +/**
|
| + * Map of Unicode extensions to option properties, and their values and types,
|
| + * for a collator.
|
| + */
|
| +var COLLATOR_KEY_MAP = {
|
| + 'kn': {'property': 'numeric', 'type': 'boolean'},
|
| + 'kf': {'property': 'caseFirst', 'type': 'string',
|
| + 'values': ['false', 'lower', 'upper']}
|
| +};
|
| +
|
| +/**
|
| + * Map of Unicode extensions to option properties, and their values and types,
|
| + * for a number format.
|
| + */
|
| +var NUMBER_FORMAT_KEY_MAP = {
|
| + 'nu': {'property': undefined, 'type': 'string'}
|
| +};
|
| +
|
| +/**
|
| + * Map of Unicode extensions to option properties, and their values and types,
|
| + * for a date/time format.
|
| + */
|
| +var DATETIME_FORMAT_KEY_MAP = {
|
| + 'ca': {'property': undefined, 'type': 'string'},
|
| + 'nu': {'property': undefined, 'type': 'string'}
|
| +};
|
| +
|
| +/**
|
| + * Allowed -u-co- values. List taken from:
|
| + * http://unicode.org/repos/cldr/trunk/common/bcp47/collation.xml
|
| + */
|
| +var ALLOWED_CO_VALUES = [
|
| + 'big5han', 'dict', 'direct', 'ducet', 'gb2312', 'phonebk', 'phonetic',
|
| + 'pinyin', 'reformed', 'searchjl', 'stroke', 'trad', 'unihan', 'zhuyin'
|
| +];
|
| +
|
| +/**
|
| + * Object attributes (configurable, writable, enumerable).
|
| + * To combine attributes, OR them.
|
| + * Values/names are copied from v8/include/v8.h:PropertyAttribute
|
| + */
|
| +var ATTRIBUTES = {
|
| + 'NONE': 0,
|
| + 'READ_ONLY': 1,
|
| + 'DONT_ENUM': 2,
|
| + 'DONT_DELETE': 4
|
| +};
|
| +
|
| +/**
|
| + * Error message for when function object is created with new and it's not
|
| + * a constructor.
|
| + */
|
| +var ORDINARY_FUNCTION_CALLED_AS_CONSTRUCTOR =
|
| + 'Function object that\'s not a constructor was created with new';
|
|
|