jscrewit 2.36.0 → 2.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/jscrewit.js CHANGED
@@ -1,4 +1,4 @@
1
- // JScrewIt 2.36.0 – https://jscrew.it
1
+ // JScrewIt 2.38.0 – https://jscrew.it
2
2
 
3
3
  (function () {
4
4
  'use strict';
@@ -281,36 +281,35 @@
281
281
  // ~feature-hub – https://github.com/fasttime/JScrewIt/tree/master/packages/~feature-hub
282
282
 
283
283
 
284
- var BIN_POW_31 = 2147483648;
285
- var BIN_POW_32 = 4294967296;
286
- var BIN_POW_51 = 2251799813685248;
287
- var BIT_MASK_31 = 2147483647;
288
- var EMPTY_MASK = 0;
284
+ var LO_INDEX = 0;
285
+ var HI_INDEX = 1;
286
+ var freezeMask = function (_LoHi) { return Object.freeze(_LoHi); };
287
+ /** An empty mask. */
288
+ var MASK_EMPTY = freezeMask([0, 0]);
289
289
  /** Determines whether two specified masks are equal. */
290
290
  function maskAreEqual(mask1, mask2) {
291
- return mask1 === mask2;
291
+ var _LoHi1 = mask1;
292
+ var _LoHi2 = mask2;
293
+ return _LoHi1[LO_INDEX] === _LoHi2[LO_INDEX] && _LoHi1[HI_INDEX] === _LoHi2[HI_INDEX];
292
294
  }
293
295
  /** Determines whether a specified mask includes another one. */
294
296
  function maskIncludes(includingMask, includedMask) {
297
+ var includingLoHi = includingMask;
298
+ var includedLoHi = includedMask;
295
299
  var includedLoValue;
296
300
  var includedHiValue;
297
- var returnValue = (includingMask &
298
- (includedLoValue = includedMask | 0)) ===
299
- includedLoValue &&
300
- (includingMask / BIN_POW_32 &
301
- (includedHiValue = includedMask / BIN_POW_32 | 0)) ===
302
- includedHiValue;
301
+ var returnValue = (includedLoValue = includedLoHi[LO_INDEX]) === (includedLoValue & includingLoHi[LO_INDEX]) &&
302
+ (includedHiValue = includedLoHi[HI_INDEX]) === (includedHiValue & includingLoHi[HI_INDEX]);
303
303
  return returnValue;
304
304
  }
305
305
  /** Returns a new mask that is the intersection of two specified masks. */
306
306
  function maskIntersection(mask1, mask2) {
307
- var intersectionMask = ((mask1 & mask2 & BIT_MASK_31) +
308
- (mask1 / BIN_POW_31 & mask2 / BIN_POW_31) * BIN_POW_31);
309
- return intersectionMask;
310
- }
311
- /** Returns a new empty mask. */
312
- function maskNew() {
313
- return EMPTY_MASK;
307
+ var _LoHi1 = mask1;
308
+ var _LoHi2 = mask2;
309
+ var intersectionLo = _LoHi1[LO_INDEX] & _LoHi2[LO_INDEX];
310
+ var intersectionHi = _LoHi1[HI_INDEX] & _LoHi2[HI_INDEX];
311
+ var intersectionLoHi = [intersectionLo, intersectionHi];
312
+ return freezeMask(intersectionLoHi);
314
313
  }
315
314
  /**
316
315
  * Returns a new non-empty mask that does not intersect the specified mask.
@@ -318,18 +317,24 @@
318
317
  * @throws If the specified mask is full, a `RangeError` is thrown.
319
318
  */
320
319
  function maskNext(mask) {
321
- var nextValue = 1;
322
- for (var checkValue = mask; checkValue & 1; checkValue /= 2)
323
- nextValue *= 2;
324
- if (nextValue > BIN_POW_51)
325
- throw RangeError('Mask full');
326
- return nextValue;
320
+ var _LoHi = mask;
321
+ var bitIndex = 0;
322
+ for (; _LoHi[bitIndex >> 5] & 1 << (bitIndex & 0x1F); bitIndex++) {
323
+ if (bitIndex === 63)
324
+ throw RangeError('Mask full');
325
+ }
326
+ var nextLoHi = [0, 0];
327
+ nextLoHi[bitIndex >> 5] = 1 << (bitIndex & 0x1F);
328
+ return freezeMask(nextLoHi);
327
329
  }
328
330
  /** Returns a new mask that is the union of two specified masks. */
329
331
  function maskUnion(mask1, mask2) {
330
- var unionMask = (((mask1 | mask2) & BIT_MASK_31) +
331
- (mask1 / BIN_POW_31 | mask2 / BIN_POW_31) * BIN_POW_31);
332
- return unionMask;
332
+ var _LoHi1 = mask1;
333
+ var _LoHi2 = mask2;
334
+ var unionLo = _LoHi1[LO_INDEX] | _LoHi2[LO_INDEX];
335
+ var unionHi = _LoHi1[HI_INDEX] | _LoHi2[HI_INDEX];
336
+ var unionLoHi = [unionLo, unionHi];
337
+ return freezeMask(unionLoHi);
333
338
  }
334
339
 
335
340
  var keyFor = function (mask) { return "_".concat(mask); };
@@ -430,7 +435,7 @@
430
435
  for (var _i = 0; _i < arguments.length; _i++) {
431
436
  features[_i] = arguments[_i];
432
437
  }
433
- var mask = maskNew();
438
+ var mask = MASK_EMPTY;
434
439
  for (var _a = 0, features_1 = features; _a < features_1.length; _a++) {
435
440
  var feature = features_1[_a];
436
441
  var otherMask = validMaskFromArrayOrStringOrFeature(feature);
@@ -444,7 +449,7 @@
444
449
  }
445
450
  function _fromMask(mask) {
446
451
  if (isMaskCompatible(mask)) {
447
- var includedMask = maskNew();
452
+ var includedMask = MASK_EMPTY;
448
453
  for (var _i = 0, ELEMENTARY_1 = ELEMENTARY; _i < ELEMENTARY_1.length; _i++) {
449
454
  var featureMask = ELEMENTARY_1[_i].mask;
450
455
  if (maskIncludes(mask, featureMask))
@@ -458,7 +463,7 @@
458
463
  return null;
459
464
  }
460
465
  function _getMask(feature) {
461
- var mask = feature !== undefined ? validMaskFromArrayOrStringOrFeature(feature) : maskNew();
466
+ var mask = feature !== undefined ? validMaskFromArrayOrStringOrFeature(feature) : MASK_EMPTY;
462
467
  return mask;
463
468
  }
464
469
  function areCompatible() {
@@ -528,7 +533,7 @@
528
533
  return description;
529
534
  }
530
535
  function featureArrayLikeToMask(features) {
531
- var mask = maskNew();
536
+ var mask = MASK_EMPTY;
532
537
  var length = features.length;
533
538
  for (var index = 0; index < length; ++index) {
534
539
  var feature = features[index];
@@ -608,7 +613,9 @@
608
613
  }
609
614
  var utilInspect;
610
615
  try {
616
+ /* eslint-disable @typescript-eslint/no-require-imports */
611
617
  utilInspect = require('util').inspect;
618
+ /* eslint-enable @typescript-eslint/no-require-imports */
612
619
  }
613
620
  catch (_a) { }
614
621
  {
@@ -616,7 +623,7 @@
616
623
  get canonicalNames() {
617
624
  var mask = this.mask;
618
625
  var names = [];
619
- var includedMask = maskNew();
626
+ var includedMask = MASK_EMPTY;
620
627
  for (var index = PRISTINE_ELEMENTARY.length; index--;) {
621
628
  var featureObj = PRISTINE_ELEMENTARY[index];
622
629
  var featureMask = featureObj.mask;
@@ -719,7 +726,7 @@
719
726
  wrappedCheck = wrapCheck(check);
720
727
  }
721
728
  else {
722
- mask = maskNew();
729
+ mask = MASK_EMPTY;
723
730
  wrappedCheck = null;
724
731
  }
725
732
  {
@@ -841,7 +848,7 @@
841
848
  var featureNames = _Object_keys(featureInfos);
842
849
  var includeSetMap = createMap();
843
850
  var familiesMap = createMap();
844
- var unionMask = maskNew();
851
+ var unionMask = MASK_EMPTY;
845
852
  featureNames.forEach(completeFeature);
846
853
  completeExclusions();
847
854
  PRISTINE_ELEMENTARY = ELEMENTARY.slice();
@@ -864,7 +871,7 @@
864
871
  return str;
865
872
  }
866
873
  function featuresToMask(featureObjs) {
867
- var mask = featureObjs.reduce(function (mask, featureObj) { return maskUnion(mask, featureObj.mask); }, maskNew());
874
+ var mask = featureObjs.reduce(function (mask, featureObj) { return maskUnion(mask, featureObj.mask); }, MASK_EMPTY);
868
875
  return mask;
869
876
  }
870
877
  function indent(text) {
@@ -915,21 +922,6 @@
915
922
  return returnValue;
916
923
  }
917
924
 
918
- function checkSelfFeature()
919
- {
920
- // self + '' throws an error inside a web worker in Safari 8 and 9.
921
- try
922
- {
923
- var str = self + '';
924
- }
925
- catch (error)
926
- {
927
- return false;
928
- }
929
- var available = this(str);
930
- return available;
931
- }
932
-
933
925
  function describeEngine(engine)
934
926
  {
935
927
  var description = 'Features available in ' + engine + '.';
@@ -955,6 +947,26 @@
955
947
  return returnValue;
956
948
  }
957
949
 
950
+ function makeSelfFeatureCheck(regExp)
951
+ {
952
+ function check()
953
+ {
954
+ // self + '' throws an error inside a web worker in Safari 8 and 9.
955
+ try
956
+ {
957
+ var str = self + '';
958
+ }
959
+ catch (error)
960
+ {
961
+ return false;
962
+ }
963
+ var available = regExp.test(str);
964
+ return available;
965
+ }
966
+
967
+ return check;
968
+ }
969
+
958
970
  function restrict(environment, engineFeatureObjs)
959
971
  {
960
972
  var restrictionCache = createEmpty();
@@ -1006,15 +1018,7 @@
1006
1018
  description:
1007
1019
  'Existence of the global object self whose string representation starts with "[object " ' +
1008
1020
  'and ends with "Window]".',
1009
- check:
1010
- checkSelfFeature.bind
1011
- (
1012
- function (str)
1013
- {
1014
- var available = /^\[object [\S\s]*Window]$/.test(str);
1015
- return available;
1016
- }
1017
- ),
1021
+ check: makeSelfFeatureCheck(/^\[object [\S\s]*Window]$/),
1018
1022
  includes: ['SELF_OBJ'],
1019
1023
  attributes: { 'web-worker': 'web-worker-restriction' },
1020
1024
  },
@@ -1031,6 +1035,21 @@
1031
1035
  return available;
1032
1036
  },
1033
1037
  },
1038
+ ASYNC_FUNCTION:
1039
+ {
1040
+ description: 'Support for async functions, which return Promise object.',
1041
+ check:
1042
+ function ()
1043
+ {
1044
+ try
1045
+ {
1046
+ Function('return async function(){}');
1047
+ return true;
1048
+ }
1049
+ catch (error)
1050
+ { }
1051
+ },
1052
+ },
1034
1053
  ARROW:
1035
1054
  {
1036
1055
  description: 'Support for arrow functions.',
@@ -1080,6 +1099,23 @@
1080
1099
  },
1081
1100
  attributes: { 'web-worker': 'web-worker-restriction' },
1082
1101
  },
1102
+ CALL_ON_GLOBAL:
1103
+ {
1104
+ description:
1105
+ 'The ability to call a function on the global object when invoking ' +
1106
+ 'Function.prototype.call without binding.',
1107
+ check:
1108
+ function ()
1109
+ {
1110
+ try
1111
+ {
1112
+ if ([].concat.call()[0])
1113
+ return true;
1114
+ }
1115
+ catch (error)
1116
+ { }
1117
+ },
1118
+ },
1083
1119
  CAPITAL_HTML:
1084
1120
  {
1085
1121
  description:
@@ -1127,7 +1163,6 @@
1127
1163
  return available;
1128
1164
  },
1129
1165
  includes: ['ANY_DOCUMENT'],
1130
- excludes: ['HTMLDOCUMENT'],
1131
1166
  attributes: { 'web-worker': 'web-worker-restriction' },
1132
1167
  },
1133
1168
  DOMWINDOW:
@@ -1135,17 +1170,9 @@
1135
1170
  description:
1136
1171
  'Existence of the global object self having the string representation "[object ' +
1137
1172
  'DOMWindow]".',
1138
- check:
1139
- checkSelfFeature.bind
1140
- (
1141
- function (str)
1142
- {
1143
- var available = str === '[object DOMWindow]';
1144
- return available;
1145
- }
1146
- ),
1173
+ check: makeSelfFeatureCheck(/^\[object DOMWindow]$/),
1147
1174
  includes: ['ANY_WINDOW'],
1148
- excludes: ['WINDOW'],
1175
+ excludes: ['OBJECT_W_SELF'],
1149
1176
  attributes: { 'web-worker': 'web-worker-restriction' },
1150
1177
  },
1151
1178
  ESC_HTML_ALL:
@@ -1349,22 +1376,6 @@
1349
1376
  includes: ['NO_IE_SRC'],
1350
1377
  attributes: { 'web-worker': 'web-worker-restriction' },
1351
1378
  },
1352
- HTMLDOCUMENT:
1353
- {
1354
- description:
1355
- 'Existence of the global object document having the string representation "[object ' +
1356
- 'HTMLDocument]".',
1357
- check:
1358
- function ()
1359
- {
1360
- var available =
1361
- typeof document === 'object' && document + '' === '[object HTMLDocument]';
1362
- return available;
1363
- },
1364
- includes: ['ANY_DOCUMENT'],
1365
- excludes: ['DOCUMENT'],
1366
- attributes: { 'web-worker': 'web-worker-restriction' },
1367
- },
1368
1379
  IE_SRC:
1369
1380
  {
1370
1381
  description:
@@ -1398,6 +1409,26 @@
1398
1409
  return available;
1399
1410
  },
1400
1411
  },
1412
+ ITERATOR_HELPER:
1413
+ {
1414
+ description: 'Availability of iterator helpers.',
1415
+ check:
1416
+ function ()
1417
+ {
1418
+ var available = typeof Iterator === 'function';
1419
+ return available;
1420
+ },
1421
+ },
1422
+ JAPANESE_INFINITY:
1423
+ {
1424
+ description: 'Japanese string representation of Infinity ending with "∞".',
1425
+ check:
1426
+ function ()
1427
+ {
1428
+ var available = /∞$/.test(Infinity.toLocaleString('ja'));
1429
+ return available;
1430
+ },
1431
+ },
1401
1432
  LOCALE_INFINITY:
1402
1433
  {
1403
1434
  description: 'Language sensitive string representation of Infinity as "∞".',
@@ -1419,7 +1450,6 @@
1419
1450
  function ()
1420
1451
  {
1421
1452
  var available =
1422
- Number.prototype.toLocaleString &&
1423
1453
  checkLocaleNumeral('ar', NaN, /^ليس/) &&
1424
1454
  checkLocaleNumeral('ar-td', 234567890.1, /^٢٣٤٬?٥٦٧٬?٨٩٠٫١/) &&
1425
1455
  checkLocaleNumeral('fa', 1234567890, /^۱٬۲۳۴٬۵۶۷٬۸۹۰/);
@@ -1438,7 +1468,6 @@
1438
1468
  function ()
1439
1469
  {
1440
1470
  var available =
1441
- Number.prototype.toLocaleString &&
1442
1471
  checkLocaleNumeral('ar', NaN, /^ليس.رقم/) &&
1443
1472
  checkLocaleNumeral('ar-td', 234567890.1, /^٢٣٤٬?٥٦٧٬?٨٩٠٫١/) &&
1444
1473
  checkLocaleNumeral('bn', 1234567890, /^১,২৩,৪৫,৬৭,৮৯০/) &&
@@ -1464,6 +1493,18 @@
1464
1493
  return available;
1465
1494
  },
1466
1495
  },
1496
+ MOZILLA:
1497
+ {
1498
+ description:
1499
+ 'Existence of user agent string navigator.userAgent that starts with "Mozilla".',
1500
+ check:
1501
+ function ()
1502
+ {
1503
+ var available =
1504
+ typeof navigator === 'object' && /^Mozilla/.test(navigator.userAgent);
1505
+ return available;
1506
+ },
1507
+ },
1467
1508
  NAME:
1468
1509
  {
1469
1510
  description: 'Existence of the name property for functions.',
@@ -1585,18 +1626,15 @@
1585
1626
  },
1586
1627
  includes: ['UNDEFINED'],
1587
1628
  },
1588
- OBJECT_W_CTOR:
1629
+ OBJECT_W_SELF:
1589
1630
  {
1590
1631
  description:
1591
- 'The property that the string representation of the global object constructor starts ' +
1632
+ 'The property that the string representation of the global object self starts ' +
1592
1633
  'with "[object W".',
1593
- check:
1594
- function ()
1595
- {
1596
- var available = /^\[object W/.test(constructor);
1597
- return available;
1598
- },
1599
- attributes: { 'web-worker': 'old-safari-restriction' },
1634
+ check: makeSelfFeatureCheck(/^\[object W/),
1635
+ includes: ['SELF_OBJ'],
1636
+ excludes: ['DOMWINDOW'],
1637
+ attributes: { 'web-worker': 'non-ie-restriction' },
1600
1638
  },
1601
1639
  OLD_SAFARI_LOCATION_CTOR:
1602
1640
  {
@@ -1643,15 +1681,7 @@
1643
1681
  {
1644
1682
  description:
1645
1683
  'Existence of the global object self whose string representation starts with "[object ".',
1646
- check:
1647
- checkSelfFeature.bind
1648
- (
1649
- function (str)
1650
- {
1651
- var available = /^\[object /.test(str);
1652
- return available;
1653
- }
1654
- ),
1684
+ check: makeSelfFeatureCheck(/^\[object /),
1655
1685
  attributes: { 'web-worker': 'safari-bug-21820506' },
1656
1686
  },
1657
1687
  SHORT_LOCALES:
@@ -1709,17 +1739,8 @@
1709
1739
  {
1710
1740
  description:
1711
1741
  'Existence of the global object self having the string representation "[object Window]".',
1712
- check:
1713
- checkSelfFeature.bind
1714
- (
1715
- function (str)
1716
- {
1717
- var available = str === '[object Window]';
1718
- return available;
1719
- }
1720
- ),
1721
- includes: ['ANY_WINDOW'],
1722
- excludes: ['DOMWINDOW'],
1742
+ check: makeSelfFeatureCheck(/^\[object Window]$/),
1743
+ includes: ['ANY_WINDOW', 'OBJECT_W_SELF'],
1723
1744
  attributes: { 'web-worker': 'web-worker-restriction' },
1724
1745
  },
1725
1746
 
@@ -1733,7 +1754,7 @@
1733
1754
  description:
1734
1755
  'Features available in all browsers.\n' +
1735
1756
  'No support for Node.js.',
1736
- includes: ['ANY_DOCUMENT', 'ANY_WINDOW', 'HISTORY', 'INCR_CHAR', 'STATUS'],
1757
+ includes: ['ANY_DOCUMENT', 'ANY_WINDOW', 'HISTORY', 'INCR_CHAR', 'MOZILLA', 'STATUS'],
1737
1758
  attributes:
1738
1759
  {
1739
1760
  'char-increment-restriction': null,
@@ -1745,11 +1766,13 @@
1745
1766
  {
1746
1767
  description:
1747
1768
  'All new browsers\' features.\n' +
1748
- 'No support for Node.js and older browsers like Internet Explorer, Safari 9 or Android ' +
1749
- 'Browser.',
1769
+ 'No support for Node.js and older browsers like Internet Explorer, Safari 17.3 or ' +
1770
+ 'Android Browser.',
1750
1771
  includes:
1751
1772
  [
1773
+ 'ANY_DOCUMENT',
1752
1774
  'ARROW',
1775
+ 'ASYNC_FUNCTION',
1753
1776
  'AT',
1754
1777
  'ATOB',
1755
1778
  'BARPROP',
@@ -1764,12 +1787,13 @@
1764
1787
  'GLOBAL_UNDEFINED',
1765
1788
  'GMT',
1766
1789
  'HISTORY',
1767
- 'HTMLDOCUMENT',
1768
1790
  'INCR_CHAR',
1769
1791
  'INTL',
1792
+ 'JAPANESE_INFINITY',
1770
1793
  'LOCALE_INFINITY',
1771
1794
  'LOCALE_NUMERALS_EXT',
1772
1795
  'LOCATION',
1796
+ 'MOZILLA',
1773
1797
  'NAME',
1774
1798
  'NO_IE_SRC',
1775
1799
  'NO_OLD_SAFARI_ARRAY_ITERATOR',
@@ -1777,7 +1801,12 @@
1777
1801
  'STATUS',
1778
1802
  'WINDOW',
1779
1803
  ],
1780
- attributes: { 'char-increment-restriction': null, 'web-worker-restriction': null },
1804
+ attributes:
1805
+ {
1806
+ 'char-increment-restriction': null,
1807
+ 'non-ie-restriction': null,
1808
+ 'web-worker-restriction': null,
1809
+ },
1781
1810
  },
1782
1811
  ANDRO_4_0:
1783
1812
  {
@@ -1785,16 +1814,18 @@
1785
1814
  versions: ['4.0'],
1786
1815
  includes:
1787
1816
  [
1817
+ 'ANY_DOCUMENT',
1788
1818
  'ATOB',
1819
+ 'CALL_ON_GLOBAL',
1789
1820
  'CONSOLE',
1790
1821
  'DOMWINDOW',
1791
1822
  'ESC_HTML_ALL',
1792
1823
  'FUNCTION_22_LF',
1793
1824
  'GMT',
1794
1825
  'HISTORY',
1795
- 'HTMLDOCUMENT',
1796
1826
  'INCR_CHAR',
1797
1827
  'LOCATION',
1828
+ 'MOZILLA',
1798
1829
  'NAME',
1799
1830
  'STATUS',
1800
1831
  'V8_SRC',
@@ -1804,7 +1835,7 @@
1804
1835
  {
1805
1836
  inherits: 'ANDRO_4_0',
1806
1837
  versions: [['4.1',, '4.3']],
1807
- includes: { GENERIC_ARRAY_TO_STRING: true, OBJECT_UNDEFINED: true },
1838
+ includes: { CALL_ON_GLOBAL: false, GENERIC_ARRAY_TO_STRING: true, OBJECT_UNDEFINED: true },
1808
1839
  },
1809
1840
  ANDRO_4_4:
1810
1841
  {
@@ -1815,13 +1846,19 @@
1815
1846
  BARPROP: true,
1816
1847
  DOMWINDOW: false,
1817
1848
  HTMLAUDIOELEMENT: true,
1849
+ JAPANESE_INFINITY: true,
1818
1850
  LOCALE_INFINITY: true,
1819
1851
  LOCALE_NUMERALS_EXT: true,
1820
1852
  PLAIN_INTL: true,
1821
1853
  SHORT_LOCALES: true,
1822
1854
  WINDOW: true,
1823
1855
  },
1824
- attributes: { 'no-console-in-web-worker': null, 'web-worker-restriction': null },
1856
+ attributes:
1857
+ {
1858
+ 'no-console-in-web-worker': null,
1859
+ 'non-ie-restriction': null,
1860
+ 'web-worker-restriction': null,
1861
+ },
1825
1862
  },
1826
1863
  CHROME_PREV:
1827
1864
  {
@@ -1839,7 +1876,9 @@
1839
1876
  versions: [['122'], ['122'], ['108']],
1840
1877
  includes:
1841
1878
  [
1879
+ 'ANY_DOCUMENT',
1842
1880
  'ARROW',
1881
+ 'ASYNC_FUNCTION',
1843
1882
  'AT',
1844
1883
  'ATOB',
1845
1884
  'BARPROP',
@@ -1854,12 +1893,14 @@
1854
1893
  'GLOBAL_UNDEFINED',
1855
1894
  'GMT',
1856
1895
  'HISTORY',
1857
- 'HTMLDOCUMENT',
1858
1896
  'INCR_CHAR',
1859
1897
  'INTL',
1898
+ 'ITERATOR_HELPER',
1899
+ 'JAPANESE_INFINITY',
1860
1900
  'LOCALE_INFINITY',
1861
1901
  'LOCALE_NUMERALS_EXT',
1862
1902
  'LOCATION',
1903
+ 'MOZILLA',
1863
1904
  'NAME',
1864
1905
  'NO_OLD_SAFARI_ARRAY_ITERATOR',
1865
1906
  'REGEXP_STRING_ITERATOR',
@@ -1868,7 +1909,12 @@
1868
1909
  'WINDOW',
1869
1910
  ],
1870
1911
  attributes:
1871
- { 'char-increment-restriction': null, 'unstable': null, 'web-worker-restriction': null },
1912
+ {
1913
+ 'char-increment-restriction': null,
1914
+ 'non-ie-restriction': null,
1915
+ 'unstable': null,
1916
+ 'web-worker-restriction': null,
1917
+ },
1872
1918
  },
1873
1919
  FF_ESR:
1874
1920
  {
@@ -1883,15 +1929,17 @@
1883
1929
  FF:
1884
1930
  {
1885
1931
  description: describeEngine('the current stable version of Firefox'),
1886
- aliasFor: 'FF_90',
1932
+ aliasFor: 'FF_131',
1887
1933
  },
1888
1934
  FF_90:
1889
1935
  {
1890
1936
  families: ['Firefox'],
1891
- versions: [['90']],
1937
+ versions: [['90',, '130']],
1892
1938
  includes:
1893
1939
  [
1940
+ 'ANY_DOCUMENT',
1894
1941
  'ARROW',
1942
+ 'ASYNC_FUNCTION',
1895
1943
  'AT',
1896
1944
  'ATOB',
1897
1945
  'BARPROP',
@@ -1907,12 +1955,13 @@
1907
1955
  'GLOBAL_UNDEFINED',
1908
1956
  'GMT',
1909
1957
  'HISTORY',
1910
- 'HTMLDOCUMENT',
1911
1958
  'INCR_CHAR',
1912
1959
  'INTL',
1960
+ 'JAPANESE_INFINITY',
1913
1961
  'LOCALE_INFINITY',
1914
1962
  'LOCALE_NUMERALS_EXT',
1915
1963
  'LOCATION',
1964
+ 'MOZILLA',
1916
1965
  'NAME',
1917
1966
  'NO_OLD_SAFARI_ARRAY_ITERATOR',
1918
1967
  'OBJECT_ARRAY_ENTRIES_CTOR',
@@ -1922,7 +1971,18 @@
1922
1971
  'WINDOW',
1923
1972
  ],
1924
1973
  attributes:
1925
- { 'char-increment-restriction': null, 'unstable': null, 'web-worker-restriction': null },
1974
+ {
1975
+ 'char-increment-restriction': null,
1976
+ 'non-ie-restriction': null,
1977
+ 'unstable': null,
1978
+ 'web-worker-restriction': null,
1979
+ },
1980
+ },
1981
+ FF_131:
1982
+ {
1983
+ inherits: 'FF_90',
1984
+ versions: [['131']],
1985
+ includes: { ITERATOR_HELPER: true, OBJECT_ARRAY_ENTRIES_CTOR: false },
1926
1986
  },
1927
1987
  IE_9:
1928
1988
  {
@@ -1939,8 +1999,8 @@
1939
1999
  'HISTORY',
1940
2000
  'IE_SRC',
1941
2001
  'INCR_CHAR',
2002
+ 'MOZILLA',
1942
2003
  'OBJECT_L_LOCATION_CTOR',
1943
- 'OBJECT_W_CTOR',
1944
2004
  'STATUS',
1945
2005
  'UNDEFINED',
1946
2006
  'WINDOW',
@@ -1959,9 +2019,10 @@
1959
2019
  versions: ['11'],
1960
2020
  includes:
1961
2021
  {
2022
+ ANY_DOCUMENT: true,
1962
2023
  DOCUMENT: false,
1963
2024
  GMT: true,
1964
- HTMLDOCUMENT: true,
2025
+ JAPANESE_INFINITY: true,
1965
2026
  LOCALE_NUMERALS: true,
1966
2027
  PLAIN_INTL: true,
1967
2028
  SHORT_LOCALES: true,
@@ -2000,6 +2061,7 @@
2000
2061
  {
2001
2062
  ESC_HTML_ALL: false,
2002
2063
  ESC_HTML_QUOT_ONLY: true,
2064
+ JAPANESE_INFINITY: true,
2003
2065
  LOCALE_INFINITY: true,
2004
2066
  NO_OLD_SAFARI_ARRAY_ITERATOR: true,
2005
2067
  OBJECT_ARRAY_ENTRIES_CTOR: true,
@@ -2015,12 +2077,18 @@
2015
2077
  NODE_5:
2016
2078
  {
2017
2079
  inherits: 'NODE_4',
2018
- versions: [['5',, '9']],
2080
+ versions: [['5',, '7.5']],
2019
2081
  attributes: { 'char-increment-restriction': null },
2020
2082
  },
2021
- NODE_10:
2083
+ NODE_7_6:
2022
2084
  {
2023
2085
  inherits: 'NODE_5',
2086
+ versions: [['7.6',, '9']],
2087
+ includes: { ASYNC_FUNCTION: true },
2088
+ },
2089
+ NODE_10:
2090
+ {
2091
+ inherits: 'NODE_7_6',
2024
2092
  versions: ['10'],
2025
2093
  includes: { FUNCTION_19_LF: true, FUNCTION_22_LF: false },
2026
2094
  },
@@ -2057,15 +2125,22 @@
2057
2125
  NODE_16_6:
2058
2126
  {
2059
2127
  inherits: 'NODE_16_0',
2060
- versions: [['16.6']],
2128
+ versions: [['16.6',, '21']],
2061
2129
  includes: { AT: true },
2062
2130
  },
2131
+ NODE_22:
2132
+ {
2133
+ inherits: 'NODE_16_6',
2134
+ versions: [['22']],
2135
+ includes: { ITERATOR_HELPER: true, OBJECT_ARRAY_ENTRIES_CTOR: false },
2136
+ },
2063
2137
  SAFARI_7_0:
2064
2138
  {
2065
2139
  families: ['Safari'],
2066
2140
  versions: ['7.0'],
2067
2141
  includes:
2068
2142
  [
2143
+ 'ANY_DOCUMENT',
2069
2144
  'ATOB',
2070
2145
  'BARPROP',
2071
2146
  'CONSOLE',
@@ -2077,13 +2152,12 @@
2077
2152
  'GLOBAL_UNDEFINED',
2078
2153
  'GMT',
2079
2154
  'HISTORY',
2080
- 'HTMLDOCUMENT',
2081
2155
  'INCR_CHAR',
2082
2156
  'LOCATION',
2157
+ 'MOZILLA',
2083
2158
  'NAME',
2084
2159
  'NODECONSTRUCTOR',
2085
2160
  'OBJECT_L_LOCATION_CTOR',
2086
- 'OBJECT_W_CTOR',
2087
2161
  'OLD_SAFARI_LOCATION_CTOR',
2088
2162
  'STATUS',
2089
2163
  'WINDOW',
@@ -2092,6 +2166,7 @@
2092
2166
  {
2093
2167
  'char-increment-restriction': null,
2094
2168
  'no-console-in-web-worker': null,
2169
+ 'non-ie-restriction': null,
2095
2170
  'old-safari-restriction': null,
2096
2171
  'web-worker-restriction': null,
2097
2172
  },
@@ -2116,27 +2191,33 @@
2116
2191
  OBJECT_ARRAY_ENTRIES_CTOR: true,
2117
2192
  },
2118
2193
  },
2119
- SAFARI_10:
2194
+ SAFARI_10_0:
2120
2195
  {
2121
2196
  inherits: 'SAFARI_9',
2122
- versions: [['10', '11']],
2197
+ versions: ['10.0'],
2123
2198
  includes:
2124
2199
  {
2125
2200
  ARROW: true,
2201
+ JAPANESE_INFINITY: true,
2126
2202
  LOCALE_INFINITY: true,
2127
2203
  LOCALE_NUMERALS_EXT: true,
2128
2204
  NODECONSTRUCTOR: false,
2129
2205
  OBJECT_L_LOCATION_CTOR: false,
2130
- OBJECT_W_CTOR: false,
2131
2206
  OLD_SAFARI_LOCATION_CTOR: false,
2132
2207
  PLAIN_INTL: true,
2133
2208
  SHORT_LOCALES: true,
2134
2209
  },
2135
2210
  attributes: { 'old-safari-restriction': undefined, 'safari-bug-21820506': undefined },
2136
2211
  },
2212
+ SAFARI_10_1:
2213
+ {
2214
+ inherits: 'SAFARI_10_0',
2215
+ versions: [['10.1', '11']],
2216
+ includes: { ASYNC_FUNCTION: true },
2217
+ },
2137
2218
  SAFARI_12:
2138
2219
  {
2139
- inherits: 'SAFARI_10',
2220
+ inherits: 'SAFARI_10_1',
2140
2221
  versions: ['12'],
2141
2222
  includes: { FLAT: true },
2142
2223
  },
@@ -2164,16 +2245,22 @@
2164
2245
  versions: [['15.4',, '17.3']],
2165
2246
  includes: { AT: true },
2166
2247
  },
2248
+ SAFARI_17_4:
2249
+ {
2250
+ inherits: 'SAFARI_15_4',
2251
+ versions: [['17.4',, '17.6']],
2252
+ includes: { FUNCTION_19_LF: true, FUNCTION_22_LF: false },
2253
+ },
2167
2254
  SAFARI:
2168
2255
  {
2169
2256
  description: describeEngine('the current stable version of Safari'),
2170
- aliasFor: 'SAFARI_17_4',
2257
+ aliasFor: 'SAFARI_18',
2171
2258
  },
2172
- SAFARI_17_4:
2259
+ SAFARI_18:
2173
2260
  {
2174
- inherits: 'SAFARI_15_4',
2175
- versions: [['17.4']],
2176
- includes: { FUNCTION_19_LF: true, FUNCTION_22_LF: false },
2261
+ inherits: 'SAFARI_17_4',
2262
+ versions: [['18']],
2263
+ includes: { SHORT_LOCALES: false },
2177
2264
  },
2178
2265
  };
2179
2266
  (function ()
@@ -3091,9 +3178,11 @@
3091
3178
  var ANY_WINDOW = Feature.ANY_WINDOW;
3092
3179
  var ARRAY_ITERATOR = Feature.ARRAY_ITERATOR;
3093
3180
  var ARROW = Feature.ARROW;
3181
+ var ASYNC_FUNCTION = Feature.ASYNC_FUNCTION;
3094
3182
  var AT = Feature.AT;
3095
3183
  var ATOB = Feature.ATOB;
3096
3184
  var BARPROP = Feature.BARPROP;
3185
+ var CALL_ON_GLOBAL = Feature.CALL_ON_GLOBAL;
3097
3186
  var CAPITAL_HTML = Feature.CAPITAL_HTML;
3098
3187
  var CONSOLE = Feature.CONSOLE;
3099
3188
  var DOCUMENT = Feature.DOCUMENT;
@@ -3114,14 +3203,16 @@
3114
3203
  var GMT = Feature.GMT;
3115
3204
  var HISTORY = Feature.HISTORY;
3116
3205
  var HTMLAUDIOELEMENT = Feature.HTMLAUDIOELEMENT;
3117
- var HTMLDOCUMENT = Feature.HTMLDOCUMENT;
3118
3206
  var IE_SRC = Feature.IE_SRC;
3119
3207
  var INCR_CHAR = Feature.INCR_CHAR;
3120
3208
  var INTL = Feature.INTL;
3209
+ var ITERATOR_HELPER = Feature.ITERATOR_HELPER;
3210
+ var JAPANESE_INFINITY = Feature.JAPANESE_INFINITY;
3121
3211
  var LOCALE_INFINITY = Feature.LOCALE_INFINITY;
3122
3212
  var LOCALE_NUMERALS = Feature.LOCALE_NUMERALS;
3123
3213
  var LOCALE_NUMERALS_EXT = Feature.LOCALE_NUMERALS_EXT;
3124
3214
  var LOCATION = Feature.LOCATION;
3215
+ var MOZILLA = Feature.MOZILLA;
3125
3216
  var NAME = Feature.NAME;
3126
3217
  var NODECONSTRUCTOR = Feature.NODECONSTRUCTOR;
3127
3218
  var NO_FF_SRC = Feature.NO_FF_SRC;
@@ -3131,7 +3222,7 @@
3131
3222
  var OBJECT_ARRAY_ENTRIES_CTOR = Feature.OBJECT_ARRAY_ENTRIES_CTOR;
3132
3223
  var OBJECT_L_LOCATION_CTOR = Feature.OBJECT_L_LOCATION_CTOR;
3133
3224
  var OBJECT_UNDEFINED = Feature.OBJECT_UNDEFINED;
3134
- var OBJECT_W_CTOR = Feature.OBJECT_W_CTOR;
3225
+ var OBJECT_W_SELF = Feature.OBJECT_W_SELF;
3135
3226
  var OLD_SAFARI_LOCATION_CTOR = Feature.OLD_SAFARI_LOCATION_CTOR;
3136
3227
  var PLAIN_INTL = Feature.PLAIN_INTL;
3137
3228
  var REGEXP_STRING_ITERATOR = Feature.REGEXP_STRING_ITERATOR;
@@ -3313,12 +3404,29 @@
3313
3404
 
3314
3405
  BASE64_ALPHABET_HI_4 =
3315
3406
  [
3316
- [define('A'), define('C', CAPITAL_HTML), define('A', ARRAY_ITERATOR)],
3317
- 'F',
3407
+ [
3408
+ define('A'),
3409
+ define('D', CALL_ON_GLOBAL, DOMWINDOW),
3410
+ define('C', CAPITAL_HTML),
3411
+ define('A', ARRAY_ITERATOR, CAPITAL_HTML),
3412
+ define('A', ARRAY_ITERATOR, CALL_ON_GLOBAL, DOMWINDOW),
3413
+ ],
3414
+ [
3415
+ define('F'),
3416
+ define('H', ITERATOR_HELPER),
3417
+ define('F', AT, CAPITAL_HTML, IE_SRC),
3418
+ define('F', AT, CAPITAL_HTML, NO_IE_SRC),
3419
+ ],
3318
3420
  'Infinity',
3319
3421
  'NaNfalse',
3320
3422
  [define('S'), define('R', CAPITAL_HTML), define('S', ARRAY_ITERATOR)],
3321
- [define('W'), define('U', CAPITAL_HTML)],
3423
+ [
3424
+ define('W'),
3425
+ define('U', CAPITAL_HTML),
3426
+ define('W', CALL_ON_GLOBAL, DOMWINDOW),
3427
+ define('W', CALL_ON_GLOBAL, OBJECT_W_SELF),
3428
+ define('U', ARRAY_ITERATOR, CAPITAL_HTML),
3429
+ ],
3322
3430
  'a',
3323
3431
  'false',
3324
3432
  'i',
@@ -3603,7 +3711,6 @@
3603
3711
  ('escape((NaN + [+("10" + [(RP_6_S + FILL)[40]] + "000")] + FILL)[40])[2]', FILL),
3604
3712
  define // *
3605
3713
  ('escape((NaN + [+("10" + [(RP_6_S + FLAT)[40]] + "000")] + FLAT)[40])[2]', FLAT),
3606
- define('(RP_0_S + document)[12]', HTMLDOCUMENT),
3607
3714
  define('escape(ARRAY_ITERATOR)[30]', NO_OLD_SAFARI_ARRAY_ITERATOR),
3608
3715
  define('escape(FILTER)[50]', V8_SRC),
3609
3716
  define('(document + [RP_1_WA]).at("-10")', ANY_DOCUMENT, AT),
@@ -3641,7 +3748,8 @@
3641
3748
  define
3642
3749
  ({ expr: '(RP_3_WA + Function("return history")())[11]', optimize: true }, HISTORY),
3643
3750
  define('(RP_1_WA + Audio)[10]', HTMLAUDIOELEMENT),
3644
- define('(RP_3_WA + document)[11]', HTMLDOCUMENT),
3751
+ define('(RP_4_A + [].entries().filter(ANY_FUNCTION))[21]', ITERATOR_HELPER),
3752
+ define({ expr: '(RP_3_WA + self.history)[11]', optimize: true }, HISTORY, SELF_OBJ),
3645
3753
  ],
3646
3754
  'I': '"Infinity"[0]',
3647
3755
  'J':
@@ -3661,7 +3769,6 @@
3661
3769
  define('btoa(".")[0]', ATOB),
3662
3770
  define('(RP_3_WA + "".fontcolor())[11]', CAPITAL_HTML),
3663
3771
  define('(RP_0_S + Audio)[12]', HTMLAUDIOELEMENT),
3664
- define('(RP_0_S + document)[11]', HTMLDOCUMENT),
3665
3772
  define
3666
3773
  (
3667
3774
  {
@@ -3695,12 +3802,15 @@
3695
3802
  LOCATION
3696
3803
  ),
3697
3804
  define
3805
+ ('self[TO_STRING].call(location)[SLICE_OR_SUBSTR]("-10")[1]', LOCATION, SELF_OBJ),
3806
+ define
3698
3807
  (
3699
3808
  '([][TO_STRING].call(location) + RP_1_WA).at("-10")',
3700
3809
  AT,
3701
3810
  GENERIC_ARRAY_TO_STRING,
3702
3811
  LOCATION
3703
3812
  ),
3813
+ define('(self[TO_STRING].call(location) + RP_1_WA).at("-10")', AT, LOCATION, SELF_OBJ),
3704
3814
  ],
3705
3815
  'M':
3706
3816
  [
@@ -3710,7 +3820,7 @@
3710
3820
  define('(RP_0_S + self)[10]', DOMWINDOW),
3711
3821
  define('(RP_4_A + Date())[30]', GMT),
3712
3822
  define('(RP_0_S + Audio)[11]', HTMLAUDIOELEMENT),
3713
- define('(RP_0_S + document)[10]', HTMLDOCUMENT),
3823
+ define('USER_AGENT[0]', MOZILLA),
3714
3824
  ],
3715
3825
  'N': '"NaN"[0]',
3716
3826
  'O':
@@ -3725,10 +3835,12 @@
3725
3835
  'P':
3726
3836
  [
3727
3837
  define('String.fromCharCode("80")'),
3838
+ define('(RP_3_WA + Function("return async function(){}")()())[11]', ASYNC_FUNCTION),
3728
3839
  define('atob("01A")[1]', ATOB),
3729
3840
  define('btoa("".italics())[0]', ATOB),
3730
3841
  define('(RP_0_S + Function("return statusbar")())[11]', BARPROP),
3731
3842
  define('"0".sup()[10]', CAPITAL_HTML),
3843
+ define('(RP_0_S + self.statusbar)[11]', BARPROP, SELF_OBJ),
3732
3844
  defineCharDefault({ atob: false, charCode: false }),
3733
3845
  ],
3734
3846
  'Q':
@@ -3764,7 +3876,6 @@
3764
3876
  define('"".fontcolor([])[20]', CAPITAL_HTML),
3765
3877
  define('(RP_3_WA + Date())[30]', GMT),
3766
3878
  define('(RP_0_S + Audio)[10]', HTMLAUDIOELEMENT),
3767
- define('(RP_1_WA + document)[10]', HTMLDOCUMENT),
3768
3879
  defineCharDefault({ atob: false }),
3769
3880
  ],
3770
3881
  'U':
@@ -3804,8 +3915,7 @@
3804
3915
  define('(self + RP_4_A)[SLICE_OR_SUBSTR]("-11")[0]', ANY_WINDOW),
3805
3916
  define('btoa(undefined)[1]', ATOB),
3806
3917
  define('(RP_0_S + self)[11]', DOMWINDOW),
3807
- define('(RP_3_WA + Function("return constructor")())[11]', OBJECT_W_CTOR),
3808
- define('(RP_3_WA + self)[11]', WINDOW),
3918
+ define('(RP_3_WA + self)[11]', OBJECT_W_SELF),
3809
3919
  define('(self + RP_4_A).at("-11")', ANY_WINDOW, AT),
3810
3920
  defineCharDefault({ atob: false }),
3811
3921
  ],
@@ -3901,6 +4011,7 @@
3901
4011
  [
3902
4012
  define('211[TO_STRING]("31")[1]'),
3903
4013
  define('(RP_3_WA + btoa(undefined))[10]', ATOB),
4014
+ define('(RP_0_S + [].entries().filter(ANY_FUNCTION))[20]', ITERATOR_HELPER),
3904
4015
  ],
3905
4016
  'q':
3906
4017
  [
@@ -4033,6 +4144,8 @@
4033
4144
  '∞':
4034
4145
  [
4035
4146
  define('Infinity[TO_LOCALE_STRING]()', LOCALE_INFINITY),
4147
+ define('Infinity[TO_LOCALE_STRING]("ja")[SLICE_OR_SUBSTR]("-1")', JAPANESE_INFINITY),
4148
+ define('Infinity[TO_LOCALE_STRING]("ja").at("-1")', JAPANESE_INFINITY, AT),
4036
4149
  defineCharDefault(),
4037
4150
  ],
4038
4151
  });
@@ -4061,6 +4174,7 @@
4061
4174
  Audio:
4062
4175
  [
4063
4176
  define('Function("return Audio")()', HTMLAUDIOELEMENT),
4177
+ define('self.Audio', HTMLAUDIOELEMENT, SELF_OBJ),
4064
4178
  ],
4065
4179
  Boolean:
4066
4180
  [
@@ -4069,6 +4183,7 @@
4069
4183
  Date:
4070
4184
  [
4071
4185
  define('Function("return Date")()'),
4186
+ define('self.Date', SELF_OBJ),
4072
4187
  ],
4073
4188
  Function:
4074
4189
  [
@@ -4077,10 +4192,12 @@
4077
4192
  Intl:
4078
4193
  [
4079
4194
  define('Function("return Intl")()', INTL),
4195
+ define('self.Intl', INTL, SELF_OBJ),
4080
4196
  ],
4081
4197
  Node:
4082
4198
  [
4083
4199
  define('Function("return Node")()', NODECONSTRUCTOR),
4200
+ define('self.Node', NODECONSTRUCTOR, SELF_OBJ),
4084
4201
  ],
4085
4202
  Number:
4086
4203
  [
@@ -4103,30 +4220,37 @@
4103
4220
  atob:
4104
4221
  [
4105
4222
  define('Function("return atob")()', ATOB),
4223
+ define('self.atob', ATOB, SELF_OBJ),
4106
4224
  ],
4107
4225
  btoa:
4108
4226
  [
4109
4227
  define('Function("return btoa")()', ATOB),
4228
+ define('self.btoa', ATOB, SELF_OBJ),
4110
4229
  ],
4111
4230
  document:
4112
4231
  [
4113
4232
  define({ expr: 'Function("return document")()', optimize: true }, ANY_DOCUMENT),
4233
+ define({ expr: 'self.document', optimize: true }, ANY_DOCUMENT, SELF_OBJ),
4114
4234
  ],
4115
4235
  escape:
4116
4236
  [
4117
4237
  define({ expr: 'Function("return escape")()', optimize: true }),
4238
+ define({ expr: 'self.escape', optimize: true }, SELF_OBJ),
4118
4239
  ],
4119
4240
  location:
4120
4241
  [
4121
4242
  define('Function("return location")()', LOCATION),
4243
+ define('self.location', LOCATION, SELF_OBJ),
4122
4244
  ],
4123
4245
  self:
4124
4246
  [
4125
4247
  define('Function("return self")()', SELF_OBJ),
4248
+ define('[].concat.call()[0]', CALL_ON_GLOBAL, SELF_OBJ),
4126
4249
  ],
4127
4250
  unescape:
4128
4251
  [
4129
4252
  define({ expr: 'Function("return unescape")()', optimize: true }),
4253
+ define({ expr: 'self.unescape', optimize: true }, SELF_OBJ),
4130
4254
  ],
4131
4255
 
4132
4256
  // Custom definitions
@@ -4275,6 +4399,8 @@
4275
4399
  [
4276
4400
  define('Function("return location")().constructor', OBJECT_L_LOCATION_CTOR),
4277
4401
  define('Function("return location")().constructor', OLD_SAFARI_LOCATION_CTOR),
4402
+ define('self.location.constructor', OBJECT_L_LOCATION_CTOR, SELF_OBJ),
4403
+ define('self.location.constructor', OLD_SAFARI_LOCATION_CTOR, SELF_OBJ),
4278
4404
  ],
4279
4405
  PLAIN_OBJECT:
4280
4406
  [
@@ -4321,6 +4447,23 @@
4321
4447
  define
4322
4448
  ({ expr: '"toUpperCase"', optimize: true, solutionType: SolutionType.COMBINED_STRING }),
4323
4449
  ],
4450
+ USER_AGENT:
4451
+ [
4452
+ define
4453
+ (
4454
+ {
4455
+ expr: 'Function("return navigator")().userAgent',
4456
+ solutionType: SolutionType.STRING,
4457
+ },
4458
+ MOZILLA
4459
+ ),
4460
+ define
4461
+ (
4462
+ { expr: 'self.navigator.userAgent', solutionType: SolutionType.STRING },
4463
+ MOZILLA,
4464
+ SELF_OBJ
4465
+ ),
4466
+ ],
4324
4467
 
4325
4468
  // Function body extra padding blocks: prepended to a function to align the function's body
4326
4469
  // at the same position in different engines, assuming that the function header is aligned.
@@ -4545,10 +4688,558 @@
4545
4688
  [define('fromCharCode'), define('fromCodePoint', FROM_CODE_POINT)],
4546
4689
  [
4547
4690
  define(0),
4691
+ define(1, ASYNC_FUNCTION),
4548
4692
  define(1, ATOB),
4549
- define(1, BARPROP),
4693
+ define
4694
+ (
4695
+ 0,
4696
+ ASYNC_FUNCTION,
4697
+ CALL_ON_GLOBAL,
4698
+ FROM_CODE_POINT,
4699
+ INCR_CHAR,
4700
+ NAME,
4701
+ NODECONSTRUCTOR,
4702
+ SELF_OBJ
4703
+ ),
4704
+ define(1, ASYNC_FUNCTION, NO_FF_SRC),
4705
+ define(1, ASYNC_FUNCTION, NO_V8_SRC),
4706
+ define(0, ARRAY_ITERATOR, ASYNC_FUNCTION, FROM_CODE_POINT, NAME),
4707
+ define(1, ARRAY_ITERATOR, ASYNC_FUNCTION, AT, NAME),
4708
+ define(1, ARRAY_ITERATOR, ASYNC_FUNCTION, FILL, NAME),
4709
+ define(1, ARRAY_ITERATOR, ASYNC_FUNCTION, FLAT, NAME),
4710
+ define(1, ARRAY_ITERATOR, ASYNC_FUNCTION, NAME, NO_IE_SRC),
4711
+ define(1, ARRAY_ITERATOR, ASYNC_FUNCTION, NAME, NO_V8_SRC),
4712
+ define(0, ARRAY_ITERATOR, ATOB, FROM_CODE_POINT, IE_SRC, ITERATOR_HELPER),
4713
+ define
4714
+ (
4715
+ 0,
4716
+ ASYNC_FUNCTION,
4717
+ AT,
4718
+ CALL_ON_GLOBAL,
4719
+ FROM_CODE_POINT,
4720
+ NAME,
4721
+ NODECONSTRUCTOR,
4722
+ SELF_OBJ
4723
+ ),
4724
+ define(1, ARRAY_ITERATOR, AT, ATOB, IE_SRC, ITERATOR_HELPER),
4725
+ define
4726
+ (
4727
+ 0,
4728
+ ASYNC_FUNCTION,
4729
+ CALL_ON_GLOBAL,
4730
+ FLAT,
4731
+ FROM_CODE_POINT,
4732
+ NAME,
4733
+ NODECONSTRUCTOR,
4734
+ SELF_OBJ
4735
+ ),
4736
+ define
4737
+ (1, ASYNC_FUNCTION, AT, CALL_ON_GLOBAL, NAME, NODECONSTRUCTOR, NO_FF_SRC, SELF_OBJ),
4738
+ define
4739
+ (1, ASYNC_FUNCTION, AT, CALL_ON_GLOBAL, NAME, NODECONSTRUCTOR, NO_V8_SRC, SELF_OBJ),
4740
+ define
4741
+ (1, ASYNC_FUNCTION, CALL_ON_GLOBAL, FLAT, NAME, NODECONSTRUCTOR, NO_FF_SRC, SELF_OBJ),
4742
+ define
4743
+ (1, ASYNC_FUNCTION, CALL_ON_GLOBAL, FLAT, NAME, NODECONSTRUCTOR, NO_V8_SRC, SELF_OBJ),
4744
+ define(0, ATOB, FROM_CODE_POINT, INTL, ITERATOR_HELPER),
4745
+ define(1, ATOB, FILL, INTL, ITERATOR_HELPER),
4746
+ define(1, ATOB, IE_SRC, INTL, ITERATOR_HELPER),
4747
+ define(1, ATOB, INTL, ITERATOR_HELPER, NO_IE_SRC),
4748
+ define
4749
+ (0, ASYNC_FUNCTION, CALL_ON_GLOBAL, FROM_CODE_POINT, IE_SRC, NODECONSTRUCTOR, SELF_OBJ),
4750
+ define(1, ASYNC_FUNCTION, AT, CALL_ON_GLOBAL, IE_SRC, NODECONSTRUCTOR, SELF_OBJ),
4751
+ define(1, ASYNC_FUNCTION, CALL_ON_GLOBAL, FILL, IE_SRC, NODECONSTRUCTOR, SELF_OBJ),
4752
+ define(1, ASYNC_FUNCTION, CALL_ON_GLOBAL, FLAT, IE_SRC, NODECONSTRUCTOR, SELF_OBJ),
4753
+ define(0, ARRAY_ITERATOR, ATOB, FROM_CODE_POINT, ITERATOR_HELPER, NO_IE_SRC),
4754
+ define
4755
+ (
4756
+ 0,
4757
+ ASYNC_FUNCTION,
4758
+ CALL_ON_GLOBAL,
4759
+ FLAT,
4760
+ FROM_CODE_POINT,
4761
+ IE_SRC,
4762
+ NAME,
4763
+ NODECONSTRUCTOR,
4764
+ SELF_OBJ
4765
+ ),
4766
+ define(1, ARRAY_ITERATOR, AT, ATOB, ITERATOR_HELPER, NO_IE_SRC),
4767
+ define
4768
+ (
4769
+ 0,
4770
+ ASYNC_FUNCTION,
4771
+ CALL_ON_GLOBAL,
4772
+ FILL,
4773
+ FROM_CODE_POINT,
4774
+ NAME,
4775
+ NODECONSTRUCTOR,
4776
+ SELF_OBJ
4777
+ ),
4778
+ define
4779
+ (1, ASYNC_FUNCTION, CALL_ON_GLOBAL, FILL, NAME, NODECONSTRUCTOR, NO_FF_SRC, SELF_OBJ),
4780
+ define
4781
+ (1, ASYNC_FUNCTION, CALL_ON_GLOBAL, FILL, NAME, NODECONSTRUCTOR, NO_V8_SRC, SELF_OBJ),
4782
+ define
4783
+ (
4784
+ 0,
4785
+ ASYNC_FUNCTION,
4786
+ CALL_ON_GLOBAL,
4787
+ FILL,
4788
+ FROM_CODE_POINT,
4789
+ IE_SRC,
4790
+ NAME,
4791
+ NODECONSTRUCTOR,
4792
+ SELF_OBJ
4793
+ ),
4794
+ define(1, AT, ATOB, INTL, ITERATOR_HELPER),
4795
+ define(0, ATOB, FROM_CODE_POINT, ITERATOR_HELPER, SELF_OBJ),
4796
+ define(1, ARRAY_ITERATOR, ATOB, ITERATOR_HELPER, SELF_OBJ),
4797
+ define(1, ATOB, FILL, ITERATOR_HELPER, SELF_OBJ),
4798
+ define(1, ATOB, FLAT, INTL, ITERATOR_HELPER),
4799
+ define(1, ATOB, FLAT, ITERATOR_HELPER, SELF_OBJ),
4800
+ define
4801
+ (
4802
+ 0,
4803
+ ARRAY_ITERATOR,
4804
+ ASYNC_FUNCTION,
4805
+ CALL_ON_GLOBAL,
4806
+ FROM_CODE_POINT,
4807
+ NODECONSTRUCTOR,
4808
+ SELF_OBJ
4809
+ ),
4810
+ define
4811
+ (1, ARRAY_ITERATOR, ASYNC_FUNCTION, AT, CALL_ON_GLOBAL, NODECONSTRUCTOR, SELF_OBJ),
4812
+ define
4813
+ (1, ARRAY_ITERATOR, ASYNC_FUNCTION, CALL_ON_GLOBAL, FLAT, NODECONSTRUCTOR, SELF_OBJ),
4814
+ define
4815
+ (
4816
+ 1,
4817
+ ARRAY_ITERATOR,
4818
+ ASYNC_FUNCTION,
4819
+ CALL_ON_GLOBAL,
4820
+ FILL,
4821
+ INCR_CHAR,
4822
+ NODECONSTRUCTOR,
4823
+ SELF_OBJ
4824
+ ),
4825
+ define
4826
+ (
4827
+ 1,
4828
+ ARRAY_ITERATOR,
4829
+ ASYNC_FUNCTION,
4830
+ CALL_ON_GLOBAL,
4831
+ FILL,
4832
+ NODECONSTRUCTOR,
4833
+ NO_FF_SRC,
4834
+ SELF_OBJ
4835
+ ),
4836
+ define
4837
+ (
4838
+ 0,
4839
+ ARRAY_ITERATOR,
4840
+ ASYNC_FUNCTION,
4841
+ CALL_ON_GLOBAL,
4842
+ FROM_CODE_POINT,
4843
+ NAME,
4844
+ NODECONSTRUCTOR,
4845
+ SELF_OBJ
4846
+ ),
4847
+ define
4848
+ (
4849
+ 1,
4850
+ ARRAY_ITERATOR,
4851
+ ASYNC_FUNCTION,
4852
+ CALL_ON_GLOBAL,
4853
+ FLAT,
4854
+ NAME,
4855
+ NODECONSTRUCTOR,
4856
+ NO_FF_SRC,
4857
+ SELF_OBJ
4858
+ ),
4859
+ define
4860
+ (
4861
+ 1,
4862
+ ARRAY_ITERATOR,
4863
+ ASYNC_FUNCTION,
4864
+ CALL_ON_GLOBAL,
4865
+ FLAT,
4866
+ NAME,
4867
+ NODECONSTRUCTOR,
4868
+ NO_V8_SRC,
4869
+ SELF_OBJ
4870
+ ),
4871
+ define
4872
+ (
4873
+ 0,
4874
+ ARRAY_ITERATOR,
4875
+ ASYNC_FUNCTION,
4876
+ CALL_ON_GLOBAL,
4877
+ FLAT,
4878
+ FROM_CODE_POINT,
4879
+ IE_SRC,
4880
+ NAME,
4881
+ NODECONSTRUCTOR,
4882
+ SELF_OBJ
4883
+ ),
4884
+ define
4885
+ (
4886
+ 1,
4887
+ ARRAY_ITERATOR,
4888
+ ASYNC_FUNCTION,
4889
+ CALL_ON_GLOBAL,
4890
+ FILL,
4891
+ NODECONSTRUCTOR,
4892
+ NO_V8_SRC,
4893
+ SELF_OBJ
4894
+ ),
4895
+ define
4896
+ (
4897
+ 0,
4898
+ ARRAY_ITERATOR,
4899
+ ASYNC_FUNCTION,
4900
+ CALL_ON_GLOBAL,
4901
+ FILL,
4902
+ FROM_CODE_POINT,
4903
+ IE_SRC,
4904
+ NAME,
4905
+ NODECONSTRUCTOR,
4906
+ SELF_OBJ
4907
+ ),
4908
+ define
4909
+ (
4910
+ 1,
4911
+ ARRAY_ITERATOR,
4912
+ ASYNC_FUNCTION,
4913
+ AT,
4914
+ CALL_ON_GLOBAL,
4915
+ NAME,
4916
+ NODECONSTRUCTOR,
4917
+ NO_FF_SRC,
4918
+ SELF_OBJ
4919
+ ),
4920
+ define
4921
+ (
4922
+ 1,
4923
+ ARRAY_ITERATOR,
4924
+ ASYNC_FUNCTION,
4925
+ AT,
4926
+ CALL_ON_GLOBAL,
4927
+ NAME,
4928
+ NODECONSTRUCTOR,
4929
+ NO_V8_SRC,
4930
+ SELF_OBJ
4931
+ ),
4932
+ define(0, ASYNC_FUNCTION, FROM_CODE_POINT, ITERATOR_HELPER),
4933
+ define(1, ASYNC_FUNCTION, FLAT, ITERATOR_HELPER),
4934
+ define(1, ASYNC_FUNCTION, ITERATOR_HELPER, NO_V8_SRC),
4935
+ define(0, ASYNC_FUNCTION, FROM_CODE_POINT, INTL, ITERATOR_HELPER),
4936
+ define(1, ASYNC_FUNCTION, IE_SRC, INTL, ITERATOR_HELPER),
4937
+ define(1, ASYNC_FUNCTION, FLAT, INTL, ITERATOR_HELPER, NO_V8_SRC),
4938
+ define(0, ASYNC_FUNCTION, FROM_CODE_POINT, ITERATOR_HELPER, NODECONSTRUCTOR, NO_V8_SRC),
4939
+ define(1, ASYNC_FUNCTION, FILL, ITERATOR_HELPER, NODECONSTRUCTOR, NO_V8_SRC),
4940
+ define
4941
+ (0, ASYNC_FUNCTION, FROM_CODE_POINT, INTL, ITERATOR_HELPER, NODECONSTRUCTOR, NO_V8_SRC),
4942
+ define(1, ASYNC_FUNCTION, IE_SRC, ITERATOR_HELPER, NODECONSTRUCTOR),
4943
+ define(1, ASYNC_FUNCTION, FLAT, ITERATOR_HELPER, NODECONSTRUCTOR, NO_V8_SRC),
4944
+ define(0, ASYNC_FUNCTION, FLAT, FROM_CODE_POINT, ITERATOR_HELPER, SELF_OBJ),
4945
+ define(0, ASYNC_FUNCTION, FROM_CODE_POINT, ITERATOR_HELPER, NO_V8_SRC, SELF_OBJ),
4946
+ define(1, ASYNC_FUNCTION, IE_SRC, ITERATOR_HELPER, SELF_OBJ),
4947
+ define(1, ASYNC_FUNCTION, FLAT, ITERATOR_HELPER, NO_V8_SRC, SELF_OBJ),
4948
+ define
4949
+ (
4950
+ 0,
4951
+ ASYNC_FUNCTION,
4952
+ CALL_ON_GLOBAL,
4953
+ FROM_CODE_POINT,
4954
+ ITERATOR_HELPER,
4955
+ NO_V8_SRC,
4956
+ SELF_OBJ
4957
+ ),
4958
+ define(1, ASYNC_FUNCTION, ITERATOR_HELPER, NO_IE_SRC),
4959
+ define(0, ASYNC_FUNCTION, FROM_CODE_POINT, INTL, ITERATOR_HELPER, NO_IE_SRC),
4960
+ define(0, ASYNC_FUNCTION, FROM_CODE_POINT, ITERATOR_HELPER, NO_IE_SRC, SELF_OBJ),
4961
+ define(1, ASYNC_FUNCTION, ITERATOR_HELPER, V8_SRC),
4962
+ define(1, ASYNC_FUNCTION, FF_SRC, INTL, ITERATOR_HELPER),
4963
+ define(1, ASYNC_FUNCTION, FILL, INTL, ITERATOR_HELPER, NO_IE_SRC),
4964
+ define(1, ASYNC_FUNCTION, FLAT, INTL, ITERATOR_HELPER, NO_IE_SRC),
4965
+ define
4966
+ (0, ASYNC_FUNCTION, FROM_CODE_POINT, ITERATOR_HELPER, NAME, NODECONSTRUCTOR, NO_IE_SRC),
4967
+ define(1, ASYNC_FUNCTION, FF_SRC, ITERATOR_HELPER, SELF_OBJ),
4968
+ define(1, ASYNC_FUNCTION, FILL, ITERATOR_HELPER, NO_IE_SRC, SELF_OBJ),
4969
+ define(1, ASYNC_FUNCTION, FLAT, ITERATOR_HELPER, NO_IE_SRC, SELF_OBJ),
4970
+ define(1, ASYNC_FUNCTION, ITERATOR_HELPER, NAME, NODECONSTRUCTOR, V8_SRC),
4971
+ define(1, ASYNC_FUNCTION, FILL, ITERATOR_HELPER, NAME, NODECONSTRUCTOR, NO_IE_SRC),
4972
+ define(0, ASYNC_FUNCTION, FLAT, FROM_CODE_POINT, ITERATOR_HELPER, NAME),
4973
+ define
4974
+ (0, ASYNC_FUNCTION, CALL_ON_GLOBAL, FF_SRC, FROM_CODE_POINT, ITERATOR_HELPER, SELF_OBJ),
4975
+ define
4976
+ (0, ASYNC_FUNCTION, CALL_ON_GLOBAL, FROM_CODE_POINT, ITERATOR_HELPER, SELF_OBJ, V8_SRC),
4977
+ define
4978
+ (
4979
+ 0,
4980
+ ASYNC_FUNCTION,
4981
+ CALL_ON_GLOBAL,
4982
+ FILL,
4983
+ FROM_CODE_POINT,
4984
+ ITERATOR_HELPER,
4985
+ NO_IE_SRC,
4986
+ SELF_OBJ
4987
+ ),
4988
+ define
4989
+ (
4990
+ 0,
4991
+ ASYNC_FUNCTION,
4992
+ CALL_ON_GLOBAL,
4993
+ FLAT,
4994
+ FROM_CODE_POINT,
4995
+ ITERATOR_HELPER,
4996
+ NO_IE_SRC,
4997
+ SELF_OBJ
4998
+ ),
4999
+ define(1, ASYNC_FUNCTION, FLAT, ITERATOR_HELPER, NAME, NO_IE_SRC),
5000
+ define(0, ATOB, FROM_CODE_POINT, ITERATOR_HELPER, NAME),
5001
+ define
5002
+ (
5003
+ 0,
5004
+ ASYNC_FUNCTION,
5005
+ CALL_ON_GLOBAL,
5006
+ FLAT,
5007
+ FROM_CODE_POINT,
5008
+ ITERATOR_HELPER,
5009
+ NAME,
5010
+ SELF_OBJ
5011
+ ),
5012
+ define(1, ATOB, ITERATOR_HELPER, NAME, NO_V8_SRC),
5013
+ define(0, ATOB, FROM_CODE_POINT, ITERATOR_HELPER, NAME, NODECONSTRUCTOR),
5014
+ define(1, ATOB, INCR_CHAR, ITERATOR_HELPER, NAME),
5015
+ define(0, ATOB, FROM_CODE_POINT, INCR_CHAR, INTL, ITERATOR_HELPER, NAME),
5016
+ define(0, ATOB, FROM_CODE_POINT, INCR_CHAR, ITERATOR_HELPER, NAME, NODECONSTRUCTOR),
5017
+ define(0, ATOB, FROM_CODE_POINT, INCR_CHAR, ITERATOR_HELPER, NAME, NO_FF_SRC),
5018
+ define(0, ATOB, FROM_CODE_POINT, INCR_CHAR, ITERATOR_HELPER, NAME, SELF_OBJ),
5019
+ define(0, ATOB, FROM_CODE_POINT, INTL, ITERATOR_HELPER, NAME, NO_V8_SRC),
5020
+ define(1, ATOB, FILL, ITERATOR_HELPER, NAME),
5021
+ define(1, ATOB, IE_SRC, INTL, ITERATOR_HELPER, NAME),
5022
+ define(0, ATOB, FILL, FROM_CODE_POINT, INTL, ITERATOR_HELPER, NAME),
5023
+ define(1, ATOB, FILL, IE_SRC, ITERATOR_HELPER, NAME),
5024
+ define(0, ARRAY_ITERATOR, ATOB, FROM_CODE_POINT, INCR_CHAR, ITERATOR_HELPER, NAME),
5025
+ define(0, ATOB, FILL, FROM_CODE_POINT, ITERATOR_HELPER, NAME, SELF_OBJ),
5026
+ define(0, ATOB, FROM_CODE_POINT, ITERATOR_HELPER, NAME, NO_V8_SRC, SELF_OBJ),
5027
+ define(1, ATOB, IE_SRC, ITERATOR_HELPER, NAME, NODECONSTRUCTOR),
5028
+ define(0, ARRAY_ITERATOR, ATOB, FROM_CODE_POINT, ITERATOR_HELPER, NAME, NO_V8_SRC),
5029
+ define(1, ATOB, FLAT, ITERATOR_HELPER, NAME),
5030
+ define(0, ARRAY_ITERATOR, ATOB, FILL, FROM_CODE_POINT, ITERATOR_HELPER),
5031
+ define(1, ARRAY_ITERATOR, ATOB, FILL, ITERATOR_HELPER, NO_V8_SRC),
5032
+ define(1, ARRAY_ITERATOR, ATOB, CALL_ON_GLOBAL, FILL, ITERATOR_HELPER, SELF_OBJ),
5033
+ define
5034
+ (0, ARRAY_ITERATOR, ATOB, FILL, FROM_CODE_POINT, ITERATOR_HELPER, NAME, NO_V8_SRC),
5035
+ define(1, ARRAY_ITERATOR, ATOB, FILL, IE_SRC, ITERATOR_HELPER),
5036
+ define
5037
+ (
5038
+ 0,
5039
+ ASYNC_FUNCTION,
5040
+ CALL_ON_GLOBAL,
5041
+ FROM_CODE_POINT,
5042
+ NODECONSTRUCTOR,
5043
+ NO_IE_SRC,
5044
+ SELF_OBJ
5045
+ ),
5046
+ define(1, ASYNC_FUNCTION, CALL_ON_GLOBAL, FF_SRC, FLAT, NODECONSTRUCTOR, SELF_OBJ),
5047
+ define(1, ASYNC_FUNCTION, CALL_ON_GLOBAL, FLAT, NODECONSTRUCTOR, SELF_OBJ, V8_SRC),
5048
+ define
5049
+ (
5050
+ 0,
5051
+ ASYNC_FUNCTION,
5052
+ CALL_ON_GLOBAL,
5053
+ FROM_CODE_POINT,
5054
+ ITERATOR_HELPER,
5055
+ NODECONSTRUCTOR,
5056
+ NO_IE_SRC,
5057
+ SELF_OBJ
5058
+ ),
5059
+ define
5060
+ (
5061
+ 0,
5062
+ ASYNC_FUNCTION,
5063
+ CALL_ON_GLOBAL,
5064
+ FROM_CODE_POINT,
5065
+ NAME,
5066
+ NODECONSTRUCTOR,
5067
+ NO_IE_SRC,
5068
+ SELF_OBJ
5069
+ ),
5070
+ define(1, ASYNC_FUNCTION, AT, CALL_ON_GLOBAL, FF_SRC, NODECONSTRUCTOR, SELF_OBJ),
5071
+ define(1, ASYNC_FUNCTION, AT, CALL_ON_GLOBAL, NODECONSTRUCTOR, SELF_OBJ, V8_SRC),
5072
+ define(0, ARRAY_ITERATOR, ASYNC_FUNCTION, FLAT, FROM_CODE_POINT, ITERATOR_HELPER),
5073
+ define(0, ATOB, CALL_ON_GLOBAL, FLAT, FROM_CODE_POINT, ITERATOR_HELPER, NAME, SELF_OBJ),
5074
+ define(1, ATOB, IE_SRC, ITERATOR_HELPER, SELF_OBJ),
5075
+ define(0, ARRAY_ITERATOR, ATOB, FROM_CODE_POINT, IE_SRC, ITERATOR_HELPER, SELF_OBJ),
5076
+ define(1, ASYNC_FUNCTION, AT, ITERATOR_HELPER),
5077
+ define(1, ARRAY_ITERATOR, AT, ATOB, FILL, ITERATOR_HELPER),
5078
+ define(1, ARRAY_ITERATOR, ATOB, FILL, ITERATOR_HELPER, NO_IE_SRC),
5079
+ define(1, ATOB, CALL_ON_GLOBAL, IE_SRC, ITERATOR_HELPER, SELF_OBJ),
5080
+ define(1, ATOB, FILL, IE_SRC, ITERATOR_HELPER, SELF_OBJ),
5081
+ define
5082
+ (0, ASYNC_FUNCTION, AT, CALL_ON_GLOBAL, FROM_CODE_POINT, ITERATOR_HELPER, SELF_OBJ),
5083
+ define(1, ASYNC_FUNCTION, AT, IE_SRC, ITERATOR_HELPER),
5084
+ define(1, ASYNC_FUNCTION, AT, ITERATOR_HELPER, NO_IE_SRC),
5085
+ define
5086
+ (
5087
+ 0,
5088
+ ASYNC_FUNCTION,
5089
+ AT,
5090
+ CALL_ON_GLOBAL,
5091
+ FROM_CODE_POINT,
5092
+ ITERATOR_HELPER,
5093
+ NODECONSTRUCTOR,
5094
+ NO_IE_SRC,
5095
+ SELF_OBJ
5096
+ ),
5097
+ define(1, ASYNC_FUNCTION, AT, CALL_ON_GLOBAL, FF_SRC, ITERATOR_HELPER, SELF_OBJ),
5098
+ define(1, ASYNC_FUNCTION, AT, CALL_ON_GLOBAL, ITERATOR_HELPER, SELF_OBJ, V8_SRC),
5099
+ define(0, ARRAY_ITERATOR, ASYNC_FUNCTION, FROM_CODE_POINT, ITERATOR_HELPER, NO_IE_SRC),
5100
+ define(0, ASYNC_FUNCTION, FROM_CODE_POINT, ITERATOR_HELPER, NAME, NO_V8_SRC),
5101
+ define(1, ASYNC_FUNCTION, FILL, INCR_CHAR, ITERATOR_HELPER, NAME, NO_V8_SRC),
5102
+ define(0, ASYNC_FUNCTION, FROM_CODE_POINT, INTL, ITERATOR_HELPER, NAME, NO_V8_SRC),
5103
+ define(1, ASYNC_FUNCTION, FLAT, ITERATOR_HELPER, NAME, NO_V8_SRC),
5104
+ define
5105
+ (0, ASYNC_FUNCTION, FLAT, FROM_CODE_POINT, INTL, ITERATOR_HELPER, NAME, NO_V8_SRC),
5106
+ define
5107
+ (
5108
+ 0,
5109
+ ASYNC_FUNCTION,
5110
+ FILL,
5111
+ FROM_CODE_POINT,
5112
+ INCR_CHAR,
5113
+ ITERATOR_HELPER,
5114
+ NAME,
5115
+ NODECONSTRUCTOR,
5116
+ NO_V8_SRC
5117
+ ),
5118
+ define
5119
+ (
5120
+ 0,
5121
+ ASYNC_FUNCTION,
5122
+ FILL,
5123
+ FROM_CODE_POINT,
5124
+ INCR_CHAR,
5125
+ ITERATOR_HELPER,
5126
+ NAME,
5127
+ NO_V8_SRC,
5128
+ SELF_OBJ
5129
+ ),
5130
+ define(1, ASYNC_FUNCTION, IE_SRC, ITERATOR_HELPER, NAME),
5131
+ define(1, ASYNC_FUNCTION, AT, ITERATOR_HELPER, NAME, NO_V8_SRC),
5132
+ define
5133
+ (
5134
+ 0,
5135
+ ASYNC_FUNCTION,
5136
+ CALL_ON_GLOBAL,
5137
+ FROM_CODE_POINT,
5138
+ IE_SRC,
5139
+ ITERATOR_HELPER,
5140
+ NAME,
5141
+ SELF_OBJ
5142
+ ),
5143
+ define(1, ASYNC_FUNCTION, FF_SRC, ITERATOR_HELPER, NAME),
5144
+ define
5145
+ (
5146
+ 0,
5147
+ ASYNC_FUNCTION,
5148
+ CALL_ON_GLOBAL,
5149
+ FF_SRC,
5150
+ FROM_CODE_POINT,
5151
+ ITERATOR_HELPER,
5152
+ NAME,
5153
+ SELF_OBJ
5154
+ ),
5155
+ define
5156
+ (0, ASYNC_FUNCTION, FLAT, FROM_CODE_POINT, ITERATOR_HELPER, NAME, NO_V8_SRC, SELF_OBJ),
5157
+ define(1, ASYNC_FUNCTION, FLAT, IE_SRC, ITERATOR_HELPER, NAME, SELF_OBJ),
5158
+ define(1, ASYNC_FUNCTION, AT, FLAT, ITERATOR_HELPER, NAME, NO_V8_SRC, SELF_OBJ),
5159
+ define
5160
+ (
5161
+ 0,
5162
+ ASYNC_FUNCTION,
5163
+ CALL_ON_GLOBAL,
5164
+ FLAT,
5165
+ FROM_CODE_POINT,
5166
+ IE_SRC,
5167
+ ITERATOR_HELPER,
5168
+ NAME,
5169
+ SELF_OBJ
5170
+ ),
5171
+ define(1, ASYNC_FUNCTION, FF_SRC, FLAT, ITERATOR_HELPER, NAME, SELF_OBJ),
5172
+ define
5173
+ (
5174
+ 0,
5175
+ ASYNC_FUNCTION,
5176
+ AT,
5177
+ CALL_ON_GLOBAL,
5178
+ FROM_CODE_POINT,
5179
+ ITERATOR_HELPER,
5180
+ NAME,
5181
+ NO_V8_SRC,
5182
+ SELF_OBJ
5183
+ ),
5184
+ define
5185
+ (
5186
+ 0,
5187
+ ASYNC_FUNCTION,
5188
+ CALL_ON_GLOBAL,
5189
+ FF_SRC,
5190
+ FLAT,
5191
+ FROM_CODE_POINT,
5192
+ ITERATOR_HELPER,
5193
+ NAME,
5194
+ SELF_OBJ
5195
+ ),
5196
+ define(1, ASYNC_FUNCTION, AT, CALL_ON_GLOBAL, FF_SRC, ITERATOR_HELPER, NAME, SELF_OBJ),
5197
+ define(1, ASYNC_FUNCTION, AT, CALL_ON_GLOBAL, IE_SRC, ITERATOR_HELPER, NAME, SELF_OBJ),
5198
+ define(0, ARRAY_ITERATOR, ATOB, FLAT, FROM_CODE_POINT, ITERATOR_HELPER),
5199
+ define(1, ARRAY_ITERATOR, ATOB, FLAT, ITERATOR_HELPER, NO_V8_SRC),
5200
+ define
5201
+ (1, ARRAY_ITERATOR, ATOB, CALL_ON_GLOBAL, FLAT, INCR_CHAR, ITERATOR_HELPER, SELF_OBJ),
5202
+ define
5203
+ (0, ARRAY_ITERATOR, ATOB, FLAT, FROM_CODE_POINT, ITERATOR_HELPER, NAME, NO_V8_SRC),
5204
+ define(1, ATOB, ITERATOR_HELPER, NO_IE_SRC, SELF_OBJ),
5205
+ define(1, ARRAY_ITERATOR, AT, ATOB, FLAT, ITERATOR_HELPER),
5206
+ define(1, ARRAY_ITERATOR, ATOB, FLAT, IE_SRC, ITERATOR_HELPER),
5207
+ define(0, ARRAY_ITERATOR, ATOB, FROM_CODE_POINT, ITERATOR_HELPER, NO_IE_SRC, SELF_OBJ),
5208
+ define(1, ARRAY_ITERATOR, ATOB, FLAT, ITERATOR_HELPER, NO_IE_SRC),
5209
+ define(1, ATOB, CALL_ON_GLOBAL, ITERATOR_HELPER, NO_IE_SRC, SELF_OBJ),
5210
+ define(1, ATOB, FILL, ITERATOR_HELPER, NO_IE_SRC, SELF_OBJ),
5211
+ define(0, ARRAY_ITERATOR, ASYNC_FUNCTION, AT, FROM_CODE_POINT, ITERATOR_HELPER),
5212
+ define(1, ATOB, ITERATOR_HELPER, NAME, NO_IE_SRC),
5213
+ define(0, ARRAY_ITERATOR, ATOB, FROM_CODE_POINT, ITERATOR_HELPER, NAME, NO_IE_SRC),
5214
+ define(1, ATOB, FILL, ITERATOR_HELPER, NAME, NO_IE_SRC),
5215
+ define(1, ATOB, FLAT, ITERATOR_HELPER, NAME, NO_IE_SRC),
5216
+ define(1, ARRAY_ITERATOR, ATOB, CALL_ON_GLOBAL, ITERATOR_HELPER, NAME, SELF_OBJ),
5217
+ define
5218
+ (
5219
+ 0,
5220
+ ARRAY_ITERATOR,
5221
+ ATOB,
5222
+ CALL_ON_GLOBAL,
5223
+ FLAT,
5224
+ FROM_CODE_POINT,
5225
+ ITERATOR_HELPER,
5226
+ NAME,
5227
+ SELF_OBJ
5228
+ ),
5229
+ define
5230
+ (1, ARRAY_ITERATOR, ATOB, CALL_ON_GLOBAL, IE_SRC, ITERATOR_HELPER, NAME, SELF_OBJ),
5231
+ define
5232
+ (1, ARRAY_ITERATOR, ATOB, CALL_ON_GLOBAL, INCR_CHAR, ITERATOR_HELPER, NAME, SELF_OBJ),
5233
+ define
5234
+ (1, ARRAY_ITERATOR, ATOB, CALL_ON_GLOBAL, ITERATOR_HELPER, NAME, NO_IE_SRC, SELF_OBJ),
5235
+ define(0, ARRAY_ITERATOR, ASYNC_FUNCTION, FROM_CODE_POINT, ITERATOR_HELPER, NO_V8_SRC),
4550
5236
  define(1, CAPITAL_HTML),
5237
+ define(1, AT, ATOB, ITERATOR_HELPER, SELF_OBJ),
4551
5238
  define(0, ARRAY_ITERATOR, ATOB, CAPITAL_HTML, FROM_CODE_POINT),
5239
+ define(1, BARPROP),
5240
+ define(1, CAPITAL_HTML, ITERATOR_HELPER),
5241
+ define(1, AT, ATOB, ITERATOR_HELPER, NAME),
5242
+ define(0, ARRAY_ITERATOR, ATOB, BARPROP, CAPITAL_HTML, FROM_CODE_POINT),
4552
5243
  ]
4553
5244
  );
4554
5245
 
@@ -4679,15 +5370,24 @@
4679
5370
  define(0, NO_FF_SRC),
4680
5371
  define(0, NO_V8_SRC),
4681
5372
  define(1, ARRAY_ITERATOR, CAPITAL_HTML),
4682
- define(0, ARRAY_ITERATOR, AT, ATOB),
4683
- define(0, ARRAY_ITERATOR, AT, CAPITAL_HTML),
5373
+ define(1, ARRAY_ITERATOR, ATOB, CALL_ON_GLOBAL, SELF_OBJ),
4684
5374
  define(0, ARRAY_ITERATOR, ATOB, FILL),
4685
- define(0, ARRAY_ITERATOR, ATOB, FLAT),
4686
- define(0, ARRAY_ITERATOR, ATOB, NO_IE_SRC),
4687
5375
  define(0, ARRAY_ITERATOR, CAPITAL_HTML, FILL),
4688
- define(0, ARRAY_ITERATOR, CAPITAL_HTML, FLAT),
4689
5376
  define(0, ARRAY_ITERATOR, CAPITAL_HTML, IE_SRC),
5377
+ define(0, ARRAY_ITERATOR, ATOB, CALL_ON_GLOBAL, IE_SRC, SELF_OBJ),
5378
+ define(1, ARRAY_ITERATOR, ATOB, CALL_ON_GLOBAL, FILL, SELF_OBJ),
5379
+ define(0, ARRAY_ITERATOR, ATOB, NO_IE_SRC),
4690
5380
  define(0, ARRAY_ITERATOR, CAPITAL_HTML, NO_IE_SRC),
5381
+ define(0, ARRAY_ITERATOR, ATOB, FILL, IE_SRC),
5382
+ define(0, ARRAY_ITERATOR, ATOB, FILL, INCR_CHAR, NO_V8_SRC),
5383
+ define(1, ARRAY_ITERATOR, ATOB, CALL_ON_GLOBAL, NO_IE_SRC, SELF_OBJ),
5384
+ define(0, ARRAY_ITERATOR, AT, ATOB),
5385
+ define(0, ARRAY_ITERATOR, AT, CAPITAL_HTML),
5386
+ define(0, ARRAY_ITERATOR, ATOB, FF_SRC),
5387
+ define(0, ARRAY_ITERATOR, ATOB, FLAT),
5388
+ define(0, ARRAY_ITERATOR, ATOB, V8_SRC),
5389
+ define(0, ARRAY_ITERATOR, CAPITAL_HTML, FLAT),
5390
+ define(0, ARRAY_ITERATOR, ATOB, FILL, NO_IE_SRC),
4691
5391
  define(2),
4692
5392
  ]
4693
5393
  );
@@ -4707,9 +5407,11 @@
4707
5407
  [
4708
5408
  define(0),
4709
5409
  define(1, AT),
5410
+ define(0, FLAT),
4710
5411
  define(1, FILL, IE_SRC),
4711
5412
  define(1, FILL, NO_IE_SRC),
4712
- define(0, FLAT),
5413
+ define(0, FILL, FLAT, IE_SRC),
5414
+ define(0, FILL, FLAT, NO_IE_SRC),
4713
5415
  ]
4714
5416
  );
4715
5417
 
@@ -5827,7 +6529,7 @@
5827
6529
 
5828
6530
  var STATIC_CHAR_CACHE = createEmpty();
5829
6531
  var STATIC_CONST_CACHE = createEmpty();
5830
- var STATIC_ENCODER = new Encoder(maskNew());
6532
+ var STATIC_ENCODER = new Encoder(MASK_EMPTY);
5831
6533
 
5832
6534
  var BOND_STRENGTH_NONE = 0;
5833
6535
  var BOND_STRENGTH_WEAK = 1;
@@ -6101,7 +6803,9 @@
6101
6803
  function (str, index)
6102
6804
  {
6103
6805
  regExp.lastIndex = index;
6104
- var match = str.match(regExp);
6806
+ // String.prototype.match doesn't work well with sticky regular expressions in Node.js <
6807
+ // 6.5.
6808
+ var match = regExp.exec(str);
6105
6809
  if (match)
6106
6810
  return match[0];
6107
6811
  };
@@ -7232,7 +7936,7 @@
7232
7936
  var output = this._encodeByCodePoints(inputData, 4, maxLength);
7233
7937
  return output;
7234
7938
  },
7235
- 38,
7939
+ 30,
7236
7940
  undefined,
7237
7941
  Feature.FROM_CODE_POINT
7238
7942
  ),
@@ -7311,7 +8015,7 @@
7311
8015
  var output = this._encodeByDict(inputData, 3, 1, maxLength);
7312
8016
  return output;
7313
8017
  },
7314
- 153
8018
+ 136
7315
8019
  ),
7316
8020
 
7317
8021
  /* -------------------------------------------------------------------------------------- *\
@@ -7407,7 +8111,7 @@
7407
8111
  var output = this._encodeByDict(inputData, 4, 2, maxLength);
7408
8112
  return output;
7409
8113
  },
7410
- 279
8114
+ 263
7411
8115
  ),
7412
8116
 
7413
8117
  /* -------------------------------------------------------------------------------------- *\
@@ -7476,7 +8180,7 @@
7476
8180
  var output = this._encodeByDict(inputData, 5, 3, maxLength);
7477
8181
  return output;
7478
8182
  },
7479
- 602
8183
+ 570
7480
8184
  ),
7481
8185
 
7482
8186
  /* -------------------------------------------------------------------------------------- *\
@@ -8826,13 +9530,19 @@
8826
9530
  if (inputEntries)
8827
9531
  {
8828
9532
  if (_Array_isArray$1(inputEntries))
8829
- outputEntries = inputEntries.map(clone);
9533
+ outputEntries = inputEntries.map(cloneEntry);
8830
9534
  else
8831
- outputEntries = [createEntryClone(inputEntries, EMPTY_MASK)];
9535
+ outputEntries = [createEntryClone(inputEntries, MASK_EMPTY)];
8832
9536
  }
8833
9537
  return outputEntries;
8834
9538
  }
8835
9539
 
9540
+ function cloneEntry(inputEntry)
9541
+ {
9542
+ var outputEntry = createEntryClone(inputEntry.definition, inputEntry.mask);
9543
+ return outputEntry;
9544
+ }
9545
+
8836
9546
  function createEncoder(features)
8837
9547
  {
8838
9548
  var mask = getFeatureMask(features);
@@ -8879,7 +9589,7 @@
8879
9589
 
8880
9590
  function getComplexEntry(complex)
8881
9591
  {
8882
- var entry = clone(COMPLEX[complex]);
9592
+ var entry = cloneEntry(COMPLEX[complex]);
8883
9593
  return entry;
8884
9594
  }
8885
9595
 
@@ -8913,15 +9623,15 @@
8913
9623
  return STRATEGIES;
8914
9624
  }
8915
9625
 
8916
- var EMPTY_MASK = maskNew();
8917
-
8918
9626
  // Miscellaneous entries
8919
9627
  var ENTRIES = createEmpty();
8920
- ENTRIES['BASE64_ALPHABET_HI_4:0'] = BASE64_ALPHABET_HI_4[0];
8921
- ENTRIES['BASE64_ALPHABET_HI_4:4'] = BASE64_ALPHABET_HI_4[4];
8922
- ENTRIES['BASE64_ALPHABET_HI_4:5'] = BASE64_ALPHABET_HI_4[5];
8923
- ENTRIES['BASE64_ALPHABET_LO_4:1'] = BASE64_ALPHABET_LO_4[1];
8924
- ENTRIES['BASE64_ALPHABET_LO_4:3'] = BASE64_ALPHABET_LO_4[3];
9628
+
9629
+ ENTRIES['BASE64_ALPHABET_HI_4:0'] = BASE64_ALPHABET_HI_4[0];
9630
+ ENTRIES['BASE64_ALPHABET_HI_4:1'] = BASE64_ALPHABET_HI_4[1];
9631
+ ENTRIES['BASE64_ALPHABET_HI_4:4'] = BASE64_ALPHABET_HI_4[4];
9632
+ ENTRIES['BASE64_ALPHABET_HI_4:5'] = BASE64_ALPHABET_HI_4[5];
9633
+ ENTRIES['BASE64_ALPHABET_LO_4:1'] = BASE64_ALPHABET_LO_4[1];
9634
+ ENTRIES['BASE64_ALPHABET_LO_4:3'] = BASE64_ALPHABET_LO_4[3];
8925
9635
 
8926
9636
  var featureFromMask = Feature._fromMask;
8927
9637
  var getFeatureMask = Feature._getMask;