diff --git a/Features.md b/Features.md index 58f5810e..6a0830e7 100644 --- a/Features.md +++ b/Features.md @@ -13,6 +13,7 @@ This table lists features available in the most common engines.
ANY_WINDOW
(implied by WINDOW
)
ARRAY_ITERATOR
(implied by NO_OLD_SAFARI_ARRAY_ITERATOR
)
ARROW
+ASYNC_FUNCTION
AT
ATOB
BARPROP
@@ -32,6 +33,7 @@ This table lists features available in the most common engines.
INCR_CHAR
INTL
ITERATOR_HELPER
+JAPANESE_INFINITY
LOCALE_INFINITY
LOCALE_NUMERALS
(implied by LOCALE_NUMERALS_EXT
)
LOCALE_NUMERALS_EXT
@@ -58,6 +60,7 @@ This table lists features available in the most common engines.
ANY_WINDOW
(implied by WINDOW
)
ARRAY_ITERATOR
(implied by NO_OLD_SAFARI_ARRAY_ITERATOR
)
ARROW
+ASYNC_FUNCTION
AT
ATOB
BARPROP
@@ -77,6 +80,7 @@ This table lists features available in the most common engines.
HTMLDOCUMENT
INCR_CHAR
INTL
+JAPANESE_INFINITY
LOCALE_INFINITY
LOCALE_NUMERALS
(implied by LOCALE_NUMERALS_EXT
and SHORT_LOCALES
)
LOCALE_NUMERALS_EXT
@@ -116,6 +120,7 @@ This table lists features available in the most common engines.
IE_SRC
INCR_CHAR
INTL
(implied by PLAIN_INTL
; Internet Explorer 11)
+JAPANESE_INFINITY
(Internet Explorer 11)
LOCALE_INFINITY
(Internet Explorer 11 on Windows 10)
LOCALE_NUMERALS
(implied by LOCALE_NUMERALS_EXT
and SHORT_LOCALES
; Internet Explorer 11)
LOCALE_NUMERALS_EXT
(Internet Explorer 11 on Windows 10)
@@ -141,6 +146,7 @@ This table lists features available in the most common engines.
ANY_WINDOW
(implied by WINDOW
)
ARRAY_ITERATOR
(implied by NO_OLD_SAFARI_ARRAY_ITERATOR
; Safari 7.1+)
ARROW
(Safari 10+)
+ASYNC_FUNCTION
(Safari 10.1+)
AT
(Safari 15.4+)
ATOB
BARPROP
@@ -162,6 +168,7 @@ This table lists features available in the most common engines.
HTMLDOCUMENT
INCR_CHAR
INTL
(implied by PLAIN_INTL
; Safari 10+)
+JAPANESE_INFINITY
(Safari 10+)
LOCALE_INFINITY
(Safari 10+)
LOCALE_NUMERALS
(implied by LOCALE_NUMERALS_EXT
and SHORT_LOCALES
; Safari 10+)
LOCALE_NUMERALS_EXT
(Safari 10+)
@@ -206,6 +213,7 @@ This table lists features available in the most common engines.
HTMLDOCUMENT
INCR_CHAR
INTL
(implied by PLAIN_INTL
; Android Browser 4.4)
+JAPANESE_INFINITY
(Android Browser 4.4)
LOCALE_INFINITY
(Android Browser 4.4)
LOCALE_NUMERALS
(implied by LOCALE_NUMERALS_EXT
and SHORT_LOCALES
; Android Browser 4.4)
LOCALE_NUMERALS_EXT
(Android Browser 4.4)
@@ -230,6 +238,7 @@ This table lists features available in the most common engines.
ARRAY_ITERATOR
(implied by NO_OLD_SAFARI_ARRAY_ITERATOR
; Node.js 0.12+)
ARROW
(Node.js 4+)
+ASYNC_FUNCTION
(Node.js 7.6+)
AT
(Node.js 16.6+)
ATOB
(Node.js 16.0+)
ESC_HTML_ALL
(not in Node.js 0.12+)
@@ -248,6 +257,7 @@ This table lists features available in the most common engines.
INCR_CHAR
INTL
(implied by PLAIN_INTL
; Node.js 0.12+)
ITERATOR_HELPER
(Node.js 22+)
+JAPANESE_INFINITY
(Node.js 0.12+)
LOCALE_INFINITY
(Node.js 0.12+)
LOCALE_NUMERALS
(implied by LOCALE_NUMERALS_EXT
and SHORT_LOCALES
; Node.js 13+)
LOCALE_NUMERALS_EXT
(Node.js 13+)
diff --git a/api-doc/interfaces/FeatureAll.md b/api-doc/interfaces/FeatureAll.md
index 7c2115e2..484be124 100644
--- a/api-doc/interfaces/FeatureAll.md
+++ b/api-doc/interfaces/FeatureAll.md
@@ -82,6 +82,18 @@ Available in Chrome, Edge, Firefox, Safari 10+, Opera, and Node.js 4+.
***
+### ASYNC_FUNCTION
+
+> **ASYNC_FUNCTION**: [`ElementaryFeature`](ElementaryFeature.md)
+
+Support for async functions, which return `Promise` object.
+
+#### Remarks
+
+Available in Chrome, Edge, Firefox, Safari 10.1+, Opera, and Node.js 7.6+.
+
+***
+
### AT
> **AT**: [`ElementaryFeature`](ElementaryFeature.md)
@@ -576,6 +588,18 @@ Available in Chrome, Edge, Opera, and Node.js 22+.
***
+### JAPANESE_INFINITY
+
+> **JAPANESE_INFINITY**: [`ElementaryFeature`](ElementaryFeature.md)
+
+Japanese string representation of Infinity ended with "∞".
+
+#### Remarks
+
+Available in Chrome, Edge, Firefox, Internet Explorer 11, Safari 10+, Opera, Android Browser 4.4, and Node.js 0.12+.
+
+***
+
### LOCALE\_INFINITY
> **LOCALE\_INFINITY**: [`ElementaryFeature`](ElementaryFeature.md)
@@ -666,6 +690,14 @@ Features available in Node.js 0.12.
***
+### NODE\_7\_6
+
+> **NODE\_7\_6**: [`PredefinedFeature`](PredefinedFeature.md)
+
+Features available in Node.js 7.6.
+
+***
+
### NODE\_10
> **NODE\_10**: [`PredefinedFeature`](PredefinedFeature.md)
@@ -900,6 +932,14 @@ Features available in Safari 10 and Safari 11.
***
+### SAFARI\_10\_1
+
+> **SAFARI\_10\_1**: [`PredefinedFeature`](PredefinedFeature.md)
+
+Features available in Safari 10.1 and Safari 11.
+
+***
+
### SAFARI\_12
> **SAFARI\_12**: [`PredefinedFeature`](PredefinedFeature.md)
diff --git a/api-doc/interfaces/FeatureConstructor.md b/api-doc/interfaces/FeatureConstructor.md
index 180e7fbd..7ace4a04 100644
--- a/api-doc/interfaces/FeatureConstructor.md
+++ b/api-doc/interfaces/FeatureConstructor.md
@@ -216,6 +216,22 @@ Available in Chrome, Edge, Firefox, Safari 10+, Opera, and Node.js 4+.
***
+### ASYNC_FUNCTION
+
+> **ASYNC_FUNCTION**: [`ElementaryFeature`](ElementaryFeature.md)
+
+Support for async functions, which return `Promise` object.
+
+#### Remarks
+
+Available in Chrome, Edge, Firefox, Safari 10.1+, Opera, and Node.js 7.6+.
+
+#### Inherited from
+
+[`FeatureAll`](FeatureAll.md).[`ASYNC_FUNCTION`](FeatureAll.md#async_function)
+
+***
+
### AT
> **AT**: [`ElementaryFeature`](ElementaryFeature.md)
@@ -906,6 +922,22 @@ Available in Chrome, Edge, Firefox, Internet Explorer 11 on Windows 10, Safari 1
***
+### JAPANESE_INFINITY
+
+> **JAPANESE_INFINITY**: [`ElementaryFeature`](ElementaryFeature.md)
+
+Japanese string representation of Infinity ended with "∞".
+
+#### Remarks
+
+Available in Chrome, Edge, Firefox, Internet Explorer 11, Safari 10+, Opera, Android Browser 4.4, and Node.js 0.12+.
+
+#### Inherited from
+
+[`FeatureAll`](FeatureAll.md).[`JAPANESE_INFINITY`](FeatureAll.md#japanese_infinity)
+
+***
+
### LOCALE\_NUMERALS
> **LOCALE\_NUMERALS**: [`ElementaryFeature`](ElementaryFeature.md)
diff --git a/api-doc/type-aliases/ElementaryFeatureName.md b/api-doc/type-aliases/ElementaryFeatureName.md
index 2a9ee584..1efb81c3 100644
--- a/api-doc/type-aliases/ElementaryFeatureName.md
+++ b/api-doc/type-aliases/ElementaryFeatureName.md
@@ -4,6 +4,6 @@
# Type Alias: ElementaryFeatureName
-> **ElementaryFeatureName**: `"ANY_DOCUMENT"` \| `"ANY_WINDOW"` \| `"ARRAY_ITERATOR"` \| `"ARROW"` \| `"AT"` \| `"ATOB"` \| `"BARPROP"` \| `"CAPITAL_HTML"` \| `"CONSOLE"` \| `"DOCUMENT"` \| `"DOMWINDOW"` \| `"ESC_HTML_ALL"` \| `"ESC_HTML_QUOT"` \| `"ESC_HTML_QUOT_ONLY"` \| `"ESC_REGEXP_LF"` \| `"ESC_REGEXP_SLASH"` \| `"FF_SRC"` \| `"FILL"` \| `"FLAT"` \| `"FROM_CODE_POINT"` \| `"FUNCTION_19_LF"` \| `"FUNCTION_22_LF"` \| `"GENERIC_ARRAY_TO_STRING"` \| `"GLOBAL_UNDEFINED"` \| `"GMT"` \| `"HISTORY"` \| `"HTMLAUDIOELEMENT"` \| `"HTMLDOCUMENT"` \| `"IE_SRC"` \| `"INCR_CHAR"` \| `"INTL"` \| `"ITERATOR_HELPER"` \| `"LOCALE_INFINITY"` \| `"LOCALE_NUMERALS"` \| `"LOCALE_NUMERALS_EXT"` \| `"LOCATION"` \| `"NAME"` \| `"NODECONSTRUCTOR"` \| `"NO_FF_SRC"` \| `"NO_IE_SRC"` \| `"NO_OLD_SAFARI_ARRAY_ITERATOR"` \| `"NO_V8_SRC"` \| `"OBJECT_ARRAY_ENTRIES_CTOR"` \| `"OBJECT_L_LOCATION_CTOR"` \| `"OBJECT_UNDEFINED"` \| `"OBJECT_W_CTOR"` \| `"OLD_SAFARI_LOCATION_CTOR"` \| `"PLAIN_INTL"` \| `"REGEXP_STRING_ITERATOR"` \| `"SELF_OBJ"` \| `"SHORT_LOCALES"` \| `"STATUS"` \| `"UNDEFINED"` \| `"V8_SRC"` \| `"WINDOW"`
+> **ElementaryFeatureName**: `"ANY_DOCUMENT"` \| `"ANY_WINDOW"` \| `"ARRAY_ITERATOR"` \| `"ASYNC_FUNCTION"` \| `"ATOB"` \| `"AT"` \| `"ATOB"` \| `"BARPROP"` \| `"CAPITAL_HTML"` \| `"CONSOLE"` \| `"DOCUMENT"` \| `"DOMWINDOW"` \| `"ESC_HTML_ALL"` \| `"ESC_HTML_QUOT"` \| `"ESC_HTML_QUOT_ONLY"` \| `"ESC_REGEXP_LF"` \| `"ESC_REGEXP_SLASH"` \| `"FF_SRC"` \| `"FILL"` \| `"FLAT"` \| `"FROM_CODE_POINT"` \| `"FUNCTION_19_LF"` \| `"FUNCTION_22_LF"` \| `"GENERIC_ARRAY_TO_STRING"` \| `"GLOBAL_UNDEFINED"` \| `"GMT"` \| `"HISTORY"` \| `"HTMLAUDIOELEMENT"` \| `"HTMLDOCUMENT"` \| `"IE_SRC"` \| `"INCR_CHAR"` \| `"INTL"` \| `"ITERATOR_HELPER"` \| `"JAPANESE_INFINITY"` \| `"LOCALE_INFINITY"` \| `"LOCALE_NUMERALS"` \| `"LOCALE_NUMERALS_EXT"` \| `"LOCATION"` \| `"NAME"` \| `"NODECONSTRUCTOR"` \| `"NO_FF_SRC"` \| `"NO_IE_SRC"` \| `"NO_OLD_SAFARI_ARRAY_ITERATOR"` \| `"NO_V8_SRC"` \| `"OBJECT_ARRAY_ENTRIES_CTOR"` \| `"OBJECT_L_LOCATION_CTOR"` \| `"OBJECT_UNDEFINED"` \| `"OBJECT_W_CTOR"` \| `"OLD_SAFARI_LOCATION_CTOR"` \| `"PLAIN_INTL"` \| `"REGEXP_STRING_ITERATOR"` \| `"SELF_OBJ"` \| `"SHORT_LOCALES"` \| `"STATUS"` \| `"UNDEFINED"` \| `"V8_SRC"` \| `"WINDOW"`
Name of an elementary feature.
diff --git a/api-doc/type-aliases/PredefinedFeatureName.md b/api-doc/type-aliases/PredefinedFeatureName.md
index 308edb4f..c610a6e9 100644
--- a/api-doc/type-aliases/PredefinedFeatureName.md
+++ b/api-doc/type-aliases/PredefinedFeatureName.md
@@ -4,6 +4,6 @@
# Type Alias: PredefinedFeatureName
-> **PredefinedFeatureName**: [`ElementaryFeatureName`](ElementaryFeatureName.md) \| `"ANDRO_4_0"` \| `"ANDRO_4_1"` \| `"ANDRO_4_4"` \| `"AUTO"` \| `"BROWSER"` \| `"CHROME_122"` \| `"COMPACT"` \| `"DEFAULT"` \| `"FF_90"` \| `"IE_10"` \| `"IE_11"` \| `"IE_11_WIN_10"` \| `"IE_9"` \| `"NODE_0_10"` \| `"NODE_0_12"` \| `"NODE_10"` \| `"NODE_11"` \| `"NODE_12"` \| `"NODE_13"` \| `"NODE_15"` \| `"NODE_16_0"` \| `"NODE_16_6"` \| `"NODE_22"` \| `"NODE_4"` \| `"NODE_5"` \| `"SAFARI_10"` \| `"SAFARI_12"` \| `"SAFARI_13"` \| `"SAFARI_14_0_1"` \| `"SAFARI_14_1"` \| `"SAFARI_15_4"` \| `"SAFARI_17_4"` \| `"SAFARI_7_0"` \| `"SAFARI_7_1"` \| `"SAFARI_9"`
+> **PredefinedFeatureName**: [`ElementaryFeatureName`](ElementaryFeatureName.md) \| `"ANDRO_4_0"` \| `"ANDRO_4_1"` \| `"ANDRO_4_4"` \| `"AUTO"` \| `"BROWSER"` \| `"CHROME_122"` \| `"COMPACT"` \| `"DEFAULT"` \| `"FF_90"` \| `"IE_10"` \| `"IE_11"` \| `"IE_11_WIN_10"` \| `"IE_9"` \| `"NODE_0_10"` \| `"NODE_0_12"` \| `"NODE_10"` \| `"NODE_11"` \| `"NODE_12"` \| `"NODE_13"` \| `"NODE_15"` \| `"NODE_16_0"` \| `"NODE_16_6"` \| `"NODE_22"` \| `"NODE_4"` \| `"NODE_5"` \| `"NODE_7_6"` \| `"SAFARI_10"` \| `"SAFARI_10_1"` \| `"SAFARI_12"` \| `"SAFARI_13"` \| `"SAFARI_14_0_1"` \| `"SAFARI_14_1"` \| `"SAFARI_15_4"` \| `"SAFARI_17_4"` \| `"SAFARI_7_0"` \| `"SAFARI_7_1"` \| `"SAFARI_9"`
Name of a predefined feature.
diff --git a/src/lib/definitions.js b/src/lib/definitions.js
index 98025d81..1813f769 100644
--- a/src/lib/definitions.js
+++ b/src/lib/definitions.js
@@ -351,6 +351,7 @@ function getFHPaddingEntries(index)
var ANY_WINDOW = Feature.ANY_WINDOW;
var ARRAY_ITERATOR = Feature.ARRAY_ITERATOR;
var ARROW = Feature.ARROW;
+ var ASYNC_FUNCTION = Feature.ASYNC_FUNCTION;
var AT = Feature.AT;
var ATOB = Feature.ATOB;
var BARPROP = Feature.BARPROP;
@@ -378,6 +379,8 @@ function getFHPaddingEntries(index)
var IE_SRC = Feature.IE_SRC;
var INCR_CHAR = Feature.INCR_CHAR;
var INTL = Feature.INTL;
+ var ITERATOR_HELPER = Feature.ITERATOR_HELPER;
+ var JAPANESE_INFINITY = Feature.JAPANESE_INFINITY;
var LOCALE_INFINITY = Feature.LOCALE_INFINITY;
var LOCALE_NUMERALS = Feature.LOCALE_NUMERALS;
var LOCALE_NUMERALS_EXT = Feature.LOCALE_NUMERALS_EXT;
@@ -902,6 +905,7 @@ function getFHPaddingEntries(index)
({ expr: '(RP_3_WA + Function("return history")())[11]', optimize: true }, HISTORY),
define('(RP_1_WA + Audio)[10]', HTMLAUDIOELEMENT),
define('(RP_3_WA + document)[11]', HTMLDOCUMENT),
+ define('(RP_4_A + [].entries().filter(ANY_FUNCTION))[21]', ITERATOR_HELPER),
],
'I': '"Infinity"[0]',
'J':
@@ -985,6 +989,7 @@ function getFHPaddingEntries(index)
'P':
[
define('String.fromCharCode("80")'),
+ define('(RP_3_WA + Function("return async function(){}")()())[11]', ASYNC_FUNCTION),
define('atob("01A")[1]', ATOB),
define('btoa("".italics())[0]', ATOB),
define('(RP_0_S + Function("return statusbar")())[11]', BARPROP),
@@ -1161,6 +1166,7 @@ function getFHPaddingEntries(index)
[
define('211[TO_STRING]("31")[1]'),
define('(RP_3_WA + btoa(undefined))[10]', ATOB),
+ define('(RP_0_S + [].entries().filter(ANY_FUNCTION))[20]', ITERATOR_HELPER),
],
'q':
[
@@ -1293,6 +1299,8 @@ function getFHPaddingEntries(index)
'∞':
[
define('Infinity[TO_LOCALE_STRING]()', LOCALE_INFINITY),
+ define('Infinity[TO_LOCALE_STRING]("ja")[SLICE_OR_SUBSTR]("-1")', JAPANESE_INFINITY),
+ define('Infinity[TO_LOCALE_STRING]("ja").at("-1")', JAPANESE_INFINITY, AT),
defineCharDefault(),
],
}); // eslint-disable-line @origin-1/bracket-layout
diff --git a/src/lib/features.js b/src/lib/features.js
index 169f7fbb..a1bbcac3 100644
--- a/src/lib/features.js
+++ b/src/lib/features.js
@@ -129,6 +129,21 @@ var featureInfos =
return available;
},
},
+ ASYNC_FUNCTION:
+ {
+ description: 'Support for async functions, which return Promise object.',
+ check:
+ function ()
+ {
+ try
+ {
+ Function('return async function(){}');
+ return true;
+ }
+ catch (error)
+ { }
+ },
+ },
ARROW:
{
description: 'Support for arrow functions.',
@@ -506,6 +521,16 @@ var featureInfos =
return available;
},
},
+ JAPANESE_INFINITY:
+ {
+ description: 'Japanese string representation of Infinity ending with "∞".',
+ check:
+ function ()
+ {
+ var available = Infinity.toLocaleString('ja').slice(-1) === '∞';
+ return available;
+ },
+ },
LOCALE_INFINITY:
{
description: 'Language sensitive string representation of Infinity as "∞".',
@@ -858,6 +883,7 @@ var featureInfos =
includes:
[
'ARROW',
+ 'ASYNC_FUNCTION',
'AT',
'ATOB',
'BARPROP',
@@ -875,6 +901,7 @@ var featureInfos =
'HTMLDOCUMENT',
'INCR_CHAR',
'INTL',
+ 'JAPANESE_INFINITY',
'LOCALE_INFINITY',
'LOCALE_NUMERALS_EXT',
'LOCATION',
@@ -923,6 +950,7 @@ var featureInfos =
BARPROP: true,
DOMWINDOW: false,
HTMLAUDIOELEMENT: true,
+ JAPANESE_INFINITY: true,
LOCALE_INFINITY: true,
LOCALE_NUMERALS_EXT: true,
PLAIN_INTL: true,
@@ -948,6 +976,7 @@ var featureInfos =
includes:
[
'ARROW',
+ 'ASYNC_FUNCTION',
'AT',
'ATOB',
'BARPROP',
@@ -966,6 +995,7 @@ var featureInfos =
'INCR_CHAR',
'INTL',
'ITERATOR_HELPER',
+ 'JAPANESE_INFINITY',
'LOCALE_INFINITY',
'LOCALE_NUMERALS_EXT',
'LOCATION',
@@ -1001,6 +1031,7 @@ var featureInfos =
includes:
[
'ARROW',
+ 'ASYNC_FUNCTION',
'AT',
'ATOB',
'BARPROP',
@@ -1019,6 +1050,7 @@ var featureInfos =
'HTMLDOCUMENT',
'INCR_CHAR',
'INTL',
+ 'JAPANESE_INFINITY',
'LOCALE_INFINITY',
'LOCALE_NUMERALS_EXT',
'LOCATION',
@@ -1071,6 +1103,7 @@ var featureInfos =
DOCUMENT: false,
GMT: true,
HTMLDOCUMENT: true,
+ JAPANESE_INFINITY: true,
LOCALE_NUMERALS: true,
PLAIN_INTL: true,
SHORT_LOCALES: true,
@@ -1109,6 +1142,7 @@ var featureInfos =
{
ESC_HTML_ALL: false,
ESC_HTML_QUOT_ONLY: true,
+ JAPANESE_INFINITY: true,
LOCALE_INFINITY: true,
NO_OLD_SAFARI_ARRAY_ITERATOR: true,
OBJECT_ARRAY_ENTRIES_CTOR: true,
@@ -1124,12 +1158,18 @@ var featureInfos =
NODE_5:
{
inherits: 'NODE_4',
- versions: [['5',, '9']],
+ versions: [['5',, '7.5']],
attributes: { 'char-increment-restriction': null },
},
- NODE_10:
+ NODE_7_6:
{
inherits: 'NODE_5',
+ versions: [['7.6',, '9']],
+ includes: { ASYNC_FUNCTION: true },
+ },
+ NODE_10:
+ {
+ inherits: 'NODE_7_6',
versions: ['10'],
includes: { FUNCTION_19_LF: true, FUNCTION_22_LF: false },
},
@@ -1231,13 +1271,14 @@ var featureInfos =
OBJECT_ARRAY_ENTRIES_CTOR: true,
},
},
- SAFARI_10:
+ SAFARI_10_0:
{
inherits: 'SAFARI_9',
- versions: [['10', '11']],
+ versions: ['10.0'],
includes:
{
ARROW: true,
+ JAPANESE_INFINITY: true,
LOCALE_INFINITY: true,
LOCALE_NUMERALS_EXT: true,
NODECONSTRUCTOR: false,
@@ -1249,9 +1290,15 @@ var featureInfos =
},
attributes: { 'old-safari-restriction': undefined, 'safari-bug-21820506': undefined },
},
+ SAFARI_10_1:
+ {
+ inherits: 'SAFARI_10_0',
+ versions: [['10.1',, '11']],
+ includes: { ASYNC_FUNCTION: true },
+ },
SAFARI_12:
{
- inherits: 'SAFARI_10',
+ inherits: 'SAFARI_10_1',
versions: ['12'],
includes: { FLAT: true },
},
diff --git a/test/helpers/feature-emulation.helpers.js b/test/helpers/feature-emulation.helpers.js
index 4fe40cee..5e2d791a 100644
--- a/test/helpers/feature-emulation.helpers.js
+++ b/test/helpers/feature-emulation.helpers.js
@@ -532,6 +532,13 @@
return expr;
}
+ function replaceAsyncFunctions(expr)
+ {
+ if (expr === 'return async function(){}')
+ return 'return function(){return"[object Promise]"}';
+ return expr;
+ }
+
function restoreAll(backupList)
{
var backupData;
@@ -635,6 +642,31 @@
}
);
},
+ ASYNC_FUNCTION:
+ function ()
+ {
+ var context = this;
+ registerFunctionAdapter
+ (
+ this,
+ function ()
+ {
+ var bodyIndex = arguments.length - 1;
+ if (bodyIndex < 0)
+ return;
+ var oldBody = arguments[bodyIndex];
+ if (typeof oldBody !== 'string')
+ return;
+ var newBody = replaceAsyncFunctions(oldBody);
+ if (newBody === oldBody)
+ return;
+ var fn = context.ADAPTERS.Function.function;
+ arguments[bodyIndex] = newBody;
+ var fnObj = fn.apply(this, arguments);
+ return fnObj;
+ }
+ );
+ },
AT:
function ()
{
@@ -920,6 +952,27 @@
var filter = createStaticSupplier('[object Iterator Helper]');
override(this, 'Iterator.prototype.filter', { value: filter });
},
+ JAPANESE_INFINITY:
+ function ()
+ {
+ registerNumberToLocaleStringAdapter
+ (
+ this,
+ function (locale)
+ {
+ if (locale === 'ja')
+ {
+ switch (+this) // In Internet Explorer 9, +this is different from this.
+ {
+ case Infinity:
+ return '+∞';
+ case -Infinity:
+ return '-∞';
+ }
+ }
+ }
+ );
+ },
LOCALE_INFINITY:
function ()
{