| Index: src/i18n.js
|
| diff --git a/src/i18n.js b/src/i18n.js
|
| index ae01cc464343200775386ccd9ab91791ab98d997..94fe7d653e9dd78352b2ccf7f120c52c484c093c 100644
|
| --- a/src/i18n.js
|
| +++ b/src/i18n.js
|
| @@ -22,17 +22,10 @@
|
| var GlobalNumber = global.Number;
|
| var GlobalRegExp = global.RegExp;
|
| var GlobalString = global.String;
|
| -var ObjectDefineProperties = utils.ObjectDefineProperties;
|
| -var ObjectDefineProperty = utils.ObjectDefineProperty;
|
| -var SetFunctionName = utils.SetFunctionName;
|
| -
|
| -var IsFinite;
|
| -var IsNaN;
|
| +
|
| var MathFloor;
|
|
|
| utils.Import(function(from) {
|
| - IsFinite = from.IsFinite;
|
| - IsNaN = from.IsNaN;
|
| MathFloor = from.MathFloor;
|
| });
|
|
|
| @@ -160,7 +153,6 @@
|
| * Adds bound method to the prototype of the given object.
|
| */
|
| function addBoundMethod(obj, methodName, implementation, length) {
|
| - %CheckIsBootstrapping();
|
| function getter() {
|
| if (!%IsInitializedIntlObject(this)) {
|
| throw MakeTypeError(kMethodCalledOnWrongObject, methodName);
|
| @@ -198,7 +190,7 @@
|
| }
|
| }
|
| }
|
| - SetFunctionName(boundMethod, internalName);
|
| + $setFunctionName(boundMethod, internalName);
|
| %FunctionRemovePrototype(boundMethod);
|
| %SetNativeFlag(boundMethod);
|
| this[internalName] = boundMethod;
|
| @@ -206,11 +198,11 @@
|
| return this[internalName];
|
| }
|
|
|
| - SetFunctionName(getter, methodName);
|
| + $setFunctionName(getter, methodName);
|
| %FunctionRemovePrototype(getter);
|
| %SetNativeFlag(getter);
|
|
|
| - ObjectDefineProperty(obj.prototype, methodName, {
|
| + $objectDefineProperty(obj.prototype, methodName, {
|
| get: getter,
|
| enumerable: false,
|
| configurable: true
|
| @@ -529,14 +521,14 @@
|
| */
|
| function freezeArray(array) {
|
| array.forEach(function(element, index) {
|
| - ObjectDefineProperty(array, index, {value: element,
|
| - configurable: false,
|
| - writable: false,
|
| - enumerable: true});
|
| + $objectDefineProperty(array, index, {value: element,
|
| + configurable: false,
|
| + writable: false,
|
| + enumerable: true});
|
| });
|
|
|
| - ObjectDefineProperty(array, 'length', {value: array.length,
|
| - writable: false});
|
| + $objectDefineProperty(array, 'length', {value: array.length,
|
| + writable: false});
|
| return array;
|
| }
|
|
|
| @@ -597,8 +589,8 @@
|
| * Configurable is false by default.
|
| */
|
| function defineWEProperty(object, property, value) {
|
| - ObjectDefineProperty(object, property,
|
| - {value: value, writable: true, enumerable: true});
|
| + $objectDefineProperty(object, property,
|
| + {value: value, writable: true, enumerable: true});
|
| }
|
|
|
|
|
| @@ -617,10 +609,10 @@
|
| * Defines a property and sets writable, enumerable and configurable to true.
|
| */
|
| function defineWECProperty(object, property, value) {
|
| - ObjectDefineProperty(object, property, {value: value,
|
| - writable: true,
|
| - enumerable: true,
|
| - configurable: true});
|
| + $objectDefineProperty(object, property, {value: value,
|
| + writable: true,
|
| + enumerable: true,
|
| + configurable: true});
|
| }
|
|
|
|
|
| @@ -881,7 +873,7 @@
|
| // problems. If malicious user decides to redefine Object.prototype.locale
|
| // we can't just use plain x.locale = 'us' or in C++ Set("locale", "us").
|
| // ObjectDefineProperties will either succeed defining or throw an error.
|
| - var resolved = ObjectDefineProperties({}, {
|
| + var resolved = $objectDefineProperties({}, {
|
| caseFirst: {writable: true},
|
| collation: {value: internalOptions.collation, writable: true},
|
| ignorePunctuation: {writable: true},
|
| @@ -899,7 +891,7 @@
|
|
|
| // Writable, configurable and enumerable are set to false by default.
|
| %MarkAsInitializedIntlObjectOfType(collator, 'collator', internalCollator);
|
| - ObjectDefineProperty(collator, 'resolved', {value: resolved});
|
| + $objectDefineProperty(collator, 'resolved', {value: resolved});
|
|
|
| return collator;
|
| }
|
| @@ -954,7 +946,7 @@
|
| },
|
| DONT_ENUM
|
| );
|
| -SetFunctionName(Intl.Collator.prototype.resolvedOptions, 'resolvedOptions');
|
| +$setFunctionName(Intl.Collator.prototype.resolvedOptions, 'resolvedOptions');
|
| %FunctionRemovePrototype(Intl.Collator.prototype.resolvedOptions);
|
| %SetNativeFlag(Intl.Collator.prototype.resolvedOptions);
|
|
|
| @@ -974,7 +966,7 @@
|
| },
|
| DONT_ENUM
|
| );
|
| -SetFunctionName(Intl.Collator.supportedLocalesOf, 'supportedLocalesOf');
|
| +$setFunctionName(Intl.Collator.supportedLocalesOf, 'supportedLocalesOf');
|
| %FunctionRemovePrototype(Intl.Collator.supportedLocalesOf);
|
| %SetNativeFlag(Intl.Collator.supportedLocalesOf);
|
|
|
| @@ -1017,7 +1009,7 @@
|
| var value = options[property];
|
| if (!IS_UNDEFINED(value)) {
|
| value = GlobalNumber(value);
|
| - if (IsNaN(value) || value < min || value > max) {
|
| + if ($isNaN(value) || value < min || value > max) {
|
| throw MakeRangeError(kPropertyValueOutOfRange, property);
|
| }
|
| return MathFloor(value);
|
| @@ -1104,7 +1096,7 @@
|
| getOption, internalOptions);
|
|
|
| var requestedLocale = locale.locale + extension;
|
| - var resolved = ObjectDefineProperties({}, {
|
| + var resolved = $objectDefineProperties({}, {
|
| currency: {writable: true},
|
| currencyDisplay: {writable: true},
|
| locale: {writable: true},
|
| @@ -1129,12 +1121,12 @@
|
| // We can't get information about number or currency style from ICU, so we
|
| // assume user request was fulfilled.
|
| if (internalOptions.style === 'currency') {
|
| - ObjectDefineProperty(resolved, 'currencyDisplay', {value: currencyDisplay,
|
| - writable: true});
|
| + $objectDefineProperty(resolved, 'currencyDisplay', {value: currencyDisplay,
|
| + writable: true});
|
| }
|
|
|
| %MarkAsInitializedIntlObjectOfType(numberFormat, 'numberformat', formatter);
|
| - ObjectDefineProperty(numberFormat, 'resolved', {value: resolved});
|
| + $objectDefineProperty(numberFormat, 'resolved', {value: resolved});
|
|
|
| return numberFormat;
|
| }
|
| @@ -1207,7 +1199,8 @@
|
| },
|
| DONT_ENUM
|
| );
|
| -SetFunctionName(Intl.NumberFormat.prototype.resolvedOptions, 'resolvedOptions');
|
| +$setFunctionName(Intl.NumberFormat.prototype.resolvedOptions,
|
| + 'resolvedOptions');
|
| %FunctionRemovePrototype(Intl.NumberFormat.prototype.resolvedOptions);
|
| %SetNativeFlag(Intl.NumberFormat.prototype.resolvedOptions);
|
|
|
| @@ -1227,7 +1220,7 @@
|
| },
|
| DONT_ENUM
|
| );
|
| -SetFunctionName(Intl.NumberFormat.supportedLocalesOf, 'supportedLocalesOf');
|
| +$setFunctionName(Intl.NumberFormat.supportedLocalesOf, 'supportedLocalesOf');
|
| %FunctionRemovePrototype(Intl.NumberFormat.supportedLocalesOf);
|
| %SetNativeFlag(Intl.NumberFormat.supportedLocalesOf);
|
|
|
| @@ -1423,33 +1416,33 @@
|
| }
|
|
|
| if (needsDefault && (defaults === 'date' || defaults === 'all')) {
|
| - ObjectDefineProperty(options, 'year', {value: 'numeric',
|
| + $objectDefineProperty(options, 'year', {value: 'numeric',
|
| + writable: true,
|
| + enumerable: true,
|
| + configurable: true});
|
| + $objectDefineProperty(options, 'month', {value: 'numeric',
|
| + writable: true,
|
| + enumerable: true,
|
| + configurable: true});
|
| + $objectDefineProperty(options, 'day', {value: 'numeric',
|
| writable: true,
|
| enumerable: true,
|
| configurable: true});
|
| - ObjectDefineProperty(options, 'month', {value: 'numeric',
|
| + }
|
| +
|
| + if (needsDefault && (defaults === 'time' || defaults === 'all')) {
|
| + $objectDefineProperty(options, 'hour', {value: 'numeric',
|
| writable: true,
|
| enumerable: true,
|
| configurable: true});
|
| - ObjectDefineProperty(options, 'day', {value: 'numeric',
|
| - writable: true,
|
| - enumerable: true,
|
| - configurable: true});
|
| - }
|
| -
|
| - if (needsDefault && (defaults === 'time' || defaults === 'all')) {
|
| - ObjectDefineProperty(options, 'hour', {value: 'numeric',
|
| - writable: true,
|
| - enumerable: true,
|
| - configurable: true});
|
| - ObjectDefineProperty(options, 'minute', {value: 'numeric',
|
| - writable: true,
|
| - enumerable: true,
|
| - configurable: true});
|
| - ObjectDefineProperty(options, 'second', {value: 'numeric',
|
| - writable: true,
|
| - enumerable: true,
|
| - configurable: true});
|
| + $objectDefineProperty(options, 'minute', {value: 'numeric',
|
| + writable: true,
|
| + enumerable: true,
|
| + configurable: true});
|
| + $objectDefineProperty(options, 'second', {value: 'numeric',
|
| + writable: true,
|
| + enumerable: true,
|
| + configurable: true});
|
| }
|
|
|
| return options;
|
| @@ -1507,7 +1500,7 @@
|
| getOption, internalOptions);
|
|
|
| var requestedLocale = locale.locale + extension;
|
| - var resolved = ObjectDefineProperties({}, {
|
| + var resolved = $objectDefineProperties({}, {
|
| calendar: {writable: true},
|
| day: {writable: true},
|
| era: {writable: true},
|
| @@ -1535,7 +1528,7 @@
|
| }
|
|
|
| %MarkAsInitializedIntlObjectOfType(dateFormat, 'dateformat', formatter);
|
| - ObjectDefineProperty(dateFormat, 'resolved', {value: resolved});
|
| + $objectDefineProperty(dateFormat, 'resolved', {value: resolved});
|
|
|
| return dateFormat;
|
| }
|
| @@ -1627,7 +1620,7 @@
|
| },
|
| DONT_ENUM
|
| );
|
| -SetFunctionName(Intl.DateTimeFormat.prototype.resolvedOptions,
|
| +$setFunctionName(Intl.DateTimeFormat.prototype.resolvedOptions,
|
| 'resolvedOptions');
|
| %FunctionRemovePrototype(Intl.DateTimeFormat.prototype.resolvedOptions);
|
| %SetNativeFlag(Intl.DateTimeFormat.prototype.resolvedOptions);
|
| @@ -1648,7 +1641,7 @@
|
| },
|
| DONT_ENUM
|
| );
|
| -SetFunctionName(Intl.DateTimeFormat.supportedLocalesOf, 'supportedLocalesOf');
|
| +$setFunctionName(Intl.DateTimeFormat.supportedLocalesOf, 'supportedLocalesOf');
|
| %FunctionRemovePrototype(Intl.DateTimeFormat.supportedLocalesOf);
|
| %SetNativeFlag(Intl.DateTimeFormat.supportedLocalesOf);
|
|
|
| @@ -1666,7 +1659,7 @@
|
| dateMs = $toNumber(dateValue);
|
| }
|
|
|
| - if (!IsFinite(dateMs)) throw MakeRangeError(kDateRange);
|
| + if (!$isFinite(dateMs)) throw MakeRangeError(kDateRange);
|
|
|
| return %InternalDateFormat(%GetImplFromInitializedIntlObject(formatter),
|
| new GlobalDate(dateMs));
|
| @@ -1743,7 +1736,7 @@
|
| 'type', 'string', ['character', 'word', 'sentence', 'line'], 'word'));
|
|
|
| var locale = resolveLocale('breakiterator', locales, options);
|
| - var resolved = ObjectDefineProperties({}, {
|
| + var resolved = $objectDefineProperties({}, {
|
| requestedLocale: {value: locale.locale, writable: true},
|
| type: {value: internalOptions.type, writable: true},
|
| locale: {writable: true}
|
| @@ -1755,7 +1748,7 @@
|
|
|
| %MarkAsInitializedIntlObjectOfType(iterator, 'breakiterator',
|
| internalIterator);
|
| - ObjectDefineProperty(iterator, 'resolved', {value: resolved});
|
| + $objectDefineProperty(iterator, 'resolved', {value: resolved});
|
|
|
| return iterator;
|
| }
|
| @@ -1806,7 +1799,7 @@
|
| },
|
| DONT_ENUM
|
| );
|
| -SetFunctionName(Intl.v8BreakIterator.prototype.resolvedOptions,
|
| +$setFunctionName(Intl.v8BreakIterator.prototype.resolvedOptions,
|
| 'resolvedOptions');
|
| %FunctionRemovePrototype(Intl.v8BreakIterator.prototype.resolvedOptions);
|
| %SetNativeFlag(Intl.v8BreakIterator.prototype.resolvedOptions);
|
| @@ -1828,7 +1821,7 @@
|
| },
|
| DONT_ENUM
|
| );
|
| -SetFunctionName(Intl.v8BreakIterator.supportedLocalesOf, 'supportedLocalesOf');
|
| +$setFunctionName(Intl.v8BreakIterator.supportedLocalesOf, 'supportedLocalesOf');
|
| %FunctionRemovePrototype(Intl.v8BreakIterator.supportedLocalesOf);
|
| %SetNativeFlag(Intl.v8BreakIterator.supportedLocalesOf);
|
|
|
| @@ -1918,22 +1911,11 @@
|
| }
|
|
|
|
|
| -function OverrideFunction(object, name, f) {
|
| - %CheckIsBootstrapping();
|
| - ObjectDefineProperty(object, name, { value: f,
|
| - writeable: true,
|
| - configurable: true,
|
| - enumerable: false });
|
| - SetFunctionName(f, name);
|
| - %FunctionRemovePrototype(f);
|
| - %SetNativeFlag(f);
|
| -}
|
| -
|
| /**
|
| * Compares this and that, and returns less than 0, 0 or greater than 0 value.
|
| * Overrides the built-in method.
|
| */
|
| -OverrideFunction(GlobalString.prototype, 'localeCompare', function(that) {
|
| +$overrideFunction(GlobalString.prototype, 'localeCompare', function(that) {
|
| if (%_IsConstructCall()) {
|
| throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
|
| }
|
| @@ -1957,7 +1939,7 @@
|
| * If the form is not one of "NFC", "NFD", "NFKC", or "NFKD", then throw
|
| * a RangeError Exception.
|
| */
|
| -OverrideFunction(GlobalString.prototype, 'normalize', function(that) {
|
| +$overrideFunction(GlobalString.prototype, 'normalize', function(that) {
|
| if (%_IsConstructCall()) {
|
| throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
|
| }
|
| @@ -1982,7 +1964,7 @@
|
| * Formats a Number object (this) using locale and options values.
|
| * If locale or options are omitted, defaults are used.
|
| */
|
| -OverrideFunction(GlobalNumber.prototype, 'toLocaleString', function() {
|
| +$overrideFunction(GlobalNumber.prototype, 'toLocaleString', function() {
|
| if (%_IsConstructCall()) {
|
| throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
|
| }
|
| @@ -2007,7 +1989,9 @@
|
| throw MakeTypeError(kMethodInvokedOnWrongType, "Date");
|
| }
|
|
|
| - if (IsNaN(date)) return 'Invalid Date';
|
| + if ($isNaN(date)) {
|
| + return 'Invalid Date';
|
| + }
|
|
|
| var internalOptions = toDateTimeOptions(options, required, defaults);
|
|
|
| @@ -2023,7 +2007,7 @@
|
| * If locale or options are omitted, defaults are used - both date and time are
|
| * present in the output.
|
| */
|
| -OverrideFunction(GlobalDate.prototype, 'toLocaleString', function() {
|
| +$overrideFunction(GlobalDate.prototype, 'toLocaleString', function() {
|
| if (%_IsConstructCall()) {
|
| throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
|
| }
|
| @@ -2041,7 +2025,7 @@
|
| * If locale or options are omitted, defaults are used - only date is present
|
| * in the output.
|
| */
|
| -OverrideFunction(GlobalDate.prototype, 'toLocaleDateString', function() {
|
| +$overrideFunction(GlobalDate.prototype, 'toLocaleDateString', function() {
|
| if (%_IsConstructCall()) {
|
| throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
|
| }
|
| @@ -2059,7 +2043,7 @@
|
| * If locale or options are omitted, defaults are used - only time is present
|
| * in the output.
|
| */
|
| -OverrideFunction(GlobalDate.prototype, 'toLocaleTimeString', function() {
|
| +$overrideFunction(GlobalDate.prototype, 'toLocaleTimeString', function() {
|
| if (%_IsConstructCall()) {
|
| throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
|
| }
|
|
|