jscrewit 2.39.0 → 2.40.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.
@@ -232,16 +232,16 @@ export interface FeatureAll
232
232
  /**
233
233
  * Features available in the current stable version of Firefox.
234
234
  *
235
- * An alias for `FF_131`.
235
+ * An alias for `FF_134`.
236
236
  */
237
237
  FF: PredefinedFeature;
238
238
 
239
239
  /**
240
- * Features available in Firefox 131 or later.
240
+ * Features available in Firefox 131 to 133.
241
241
  *
242
242
  * @remarks
243
243
  *
244
- * This feature may be replaced or removed in the near future when current browser versions become obsolete. Use `FF` instead of `FF_131` for long term support.
244
+ * This feature may be replaced or removed in the near future when current browser versions become obsolete.
245
245
  *
246
246
  * @see
247
247
  *
@@ -249,12 +249,25 @@ export interface FeatureAll
249
249
  */
250
250
  FF_131: PredefinedFeature;
251
251
 
252
+ /**
253
+ * Features available in Firefox 134 or later.
254
+ *
255
+ * @remarks
256
+ *
257
+ * This feature may be replaced or removed in the near future when current browser versions become obsolete. Use `FF` or `FF_PREV` instead of `FF_134` for long term support.
258
+ *
259
+ * @see
260
+ *
261
+ * [Engine Support Policy](https://github.com/fasttime/JScrewIt#engine-support-policy)
262
+ */
263
+ FF_134: PredefinedFeature;
264
+
252
265
  /**
253
266
  * Features available in Firefox 90 to 130.
254
267
  *
255
268
  * @remarks
256
269
  *
257
- * This feature may be replaced or removed in the near future when current browser versions become obsolete. Use `FF_ESR` or `FF_PREV` instead of `FF_90` for long term support.
270
+ * This feature may be replaced or removed in the near future when current browser versions become obsolete. Use `FF_ESR` instead of `FF_90` for long term support.
258
271
  *
259
272
  * @see
260
273
  *
@@ -272,7 +285,7 @@ export interface FeatureAll
272
285
  /**
273
286
  * Features available in the previous to current version of Firefox.
274
287
  *
275
- * An alias for `FF_90`.
288
+ * An alias for `FF_134`.
276
289
  */
277
290
  FF_PREV: PredefinedFeature;
278
291
 
@@ -432,7 +445,7 @@ export interface FeatureAll
432
445
  *
433
446
  * @remarks
434
447
  *
435
- * Available in Chrome, Edge, Firefox 131+, Opera, and Node.js 22+.
448
+ * Available in Chrome, Edge, Firefox 131+, Safari 18.4+, Opera, and Node.js 22.0+.
436
449
  */
437
450
  ITERATOR_HELPER: ElementaryFeature;
438
451
 
@@ -463,14 +476,23 @@ export interface FeatureAll
463
476
  */
464
477
  LOCALE_NUMERALS: ElementaryFeature;
465
478
 
479
+ /**
480
+ * Localized number formatting for Bengali.
481
+ *
482
+ * @remarks
483
+ *
484
+ * Available in Chrome, Edge, Firefox, Internet Explorer 11 on Windows 10, Safari 10.0+ before 18.4, Opera, Android Browser 4.4, and Node.js 13+.
485
+ */
486
+ LOCALE_NUMERALS_BN: ElementaryFeature;
487
+
466
488
  /**
467
489
  * Extended localized number formatting.
468
490
  *
469
- * This includes all features of LOCALE_NUMERALS plus the output of the first three letters in the second word of the Arabic string representation of NaN \("رقم"\), Bengali digits, the letters in the Russian string representation of NaN \("не число"\) and the letters in the Persian string representation of NaN \("ناعدد"\).
491
+ * This includes all features of LOCALE_NUMERALS plus the output of the first three letters in the second word of the Arabic string representation of NaN \("رقم"\), the letters in the Russian string representation of NaN \("не число"\) and the letters in the Persian string representation of NaN \("ناعدد"\).
470
492
  *
471
493
  * @remarks
472
494
  *
473
- * Available in Chrome, Edge, Firefox, Internet Explorer 11 on Windows 10, Safari 10.0+, Opera, Android Browser 4.4, and Node.js 13+.
495
+ * Available in Chrome, Edge, Firefox, Internet Explorer 11 on Windows 10, Safari 10.0+, Opera, Android Browser 4.4, and Node.js 13+. This feature is not available inside web workers in Safari 18.4+.
474
496
  */
475
497
  LOCALE_NUMERALS_EXT: ElementaryFeature;
476
498
 
@@ -537,9 +559,12 @@ export interface FeatureAll
537
559
  /** Features available in Node.js 16.6 to 21. */
538
560
  NODE_16_6: PredefinedFeature;
539
561
 
540
- /** Features available in Node.js 22 or later. */
562
+ /** Features available in Node.js 22.0 to 22.11 and Node.js 23.0 to 23.2. */
541
563
  NODE_22: PredefinedFeature;
542
564
 
565
+ /** Features available in Node.js 22.12 to 22.14 and Node.js 23.3 or later. */
566
+ NODE_22_12: PredefinedFeature;
567
+
543
568
  /** Features available in Node.js 4. */
544
569
  NODE_4: PredefinedFeature;
545
570
 
@@ -601,7 +626,7 @@ export interface FeatureAll
601
626
  *
602
627
  * @remarks
603
628
  *
604
- * Available in Firefox before 131, Safari 9+, and Node.js 0.12+ before 22.
629
+ * Available in Firefox before 131, Safari 9+ before 18.4, and Node.js 0.12+ before 22.0.
605
630
  */
606
631
  OBJECT_ARRAY_ENTRIES_CTOR: ElementaryFeature;
607
632
 
@@ -662,7 +687,7 @@ export interface FeatureAll
662
687
  /**
663
688
  * Features available in the current stable version of Safari.
664
689
  *
665
- * An alias for `SAFARI_18`.
690
+ * An alias for `SAFARI_18_4`.
666
691
  */
667
692
  SAFARI: PredefinedFeature;
668
693
 
@@ -690,8 +715,11 @@ export interface FeatureAll
690
715
  /** Features available in Safari 17.4 to 17.6. */
691
716
  SAFARI_17_4: PredefinedFeature;
692
717
 
693
- /** Features available in Safari 18 or later. */
694
- SAFARI_18: PredefinedFeature;
718
+ /** Features available in Safari 18.0 to 18.3. */
719
+ SAFARI_18_0: PredefinedFeature;
720
+
721
+ /** Features available in Safari 18.4 or later. */
722
+ SAFARI_18_4: PredefinedFeature;
695
723
 
696
724
  /** Features available in Safari 7.0. */
697
725
  SAFARI_7_0: PredefinedFeature;
@@ -719,7 +747,7 @@ export interface FeatureAll
719
747
  *
720
748
  * @remarks
721
749
  *
722
- * Available in Firefox, Internet Explorer 11, Safari 10.0+ before 18, Android Browser 4.4, and Node.js 13+.
750
+ * Available in Firefox before 134, Internet Explorer 11, Safari 10.0+ before 18.0, Android Browser 4.4, and Node.js 13+ before 22.12–22.14 and 23.3.
723
751
  */
724
752
  SHORT_LOCALES: ElementaryFeature;
725
753
 
@@ -802,6 +830,7 @@ type ElementaryFeatureName =
802
830
  | 'JAPANESE_INFINITY'
803
831
  | 'LOCALE_INFINITY'
804
832
  | 'LOCALE_NUMERALS'
833
+ | 'LOCALE_NUMERALS_BN'
805
834
  | 'LOCALE_NUMERALS_EXT'
806
835
  | 'LOCATION'
807
836
  | 'MOZILLA'
@@ -838,6 +867,7 @@ ElementaryFeatureName
838
867
  | 'COMPACT'
839
868
  | 'DEFAULT'
840
869
  | 'FF_131'
870
+ | 'FF_134'
841
871
  | 'FF_90'
842
872
  | 'IE_10'
843
873
  | 'IE_11'
@@ -853,6 +883,7 @@ ElementaryFeatureName
853
883
  | 'NODE_16_0'
854
884
  | 'NODE_16_6'
855
885
  | 'NODE_22'
886
+ | 'NODE_22_12'
856
887
  | 'NODE_4'
857
888
  | 'NODE_5'
858
889
  | 'NODE_7_6'
@@ -864,7 +895,8 @@ ElementaryFeatureName
864
895
  | 'SAFARI_14_1'
865
896
  | 'SAFARI_15_4'
866
897
  | 'SAFARI_17_4'
867
- | 'SAFARI_18'
898
+ | 'SAFARI_18_0'
899
+ | 'SAFARI_18_4'
868
900
  | 'SAFARI_7_0'
869
901
  | 'SAFARI_7_1'
870
902
  | 'SAFARI_9'
package/lib/jscrewit.d.ts CHANGED
@@ -3,9 +3,9 @@
3
3
  import type { encode } from './encode';
4
4
  import type { Feature } from './feature';
5
5
 
6
- export * from './encode';
7
- export * from './feature';
8
- export * from './feature-all';
6
+ export * from './encode';
7
+ export * from './feature';
8
+ export type * from './feature-all';
9
9
 
10
10
  interface JScrewIt
11
11
  {
package/lib/jscrewit.js CHANGED
@@ -1,4 +1,4 @@
1
- // JScrewIt 2.39.0 – https://jscrew.it
1
+ // JScrewIt 2.40.0 – https://jscrew.it
2
2
 
3
3
  (function () {
4
4
  'use strict';
@@ -558,12 +558,10 @@
558
558
  */
559
559
  // opts can be undefined in Node.js 0.10.0.
560
560
  function inspect(depth, opts) {
561
- var _a, _b;
561
+ var _a, _b, _c;
562
562
  var breakLength = (_a = opts === null || opts === void 0 ? void 0 : opts.breakLength) !== null && _a !== void 0 ? _a : 80;
563
563
  var compact = (_b = opts === null || opts === void 0 ? void 0 : opts.compact) !== null && _b !== void 0 ? _b : true;
564
- var name = this.name;
565
- if (name === undefined)
566
- name = joinParts(compact, '<', '', this.canonicalNames, ',', '>', breakLength - 3);
564
+ var name = (_c = this.name) !== null && _c !== void 0 ? _c : joinParts(compact, '<', '', this.canonicalNames, ',', '>', breakLength - 3);
567
565
  var parts = [name];
568
566
  if (this.elementary)
569
567
  parts.push('(elementary)');
@@ -613,9 +611,9 @@
613
611
  }
614
612
  var utilInspect;
615
613
  try {
616
- /* eslint-disable @typescript-eslint/no-require-imports */
614
+ /* eslint-disable @typescript-eslint/no-require-imports, n/prefer-node-protocol */
617
615
  utilInspect = require('util').inspect;
618
- /* eslint-enable @typescript-eslint/no-require-imports */
616
+ /* eslint-enable @typescript-eslint/no-require-imports, n/prefer-node-protocol */
619
617
  }
620
618
  catch (_a) { }
621
619
  {
@@ -762,7 +760,7 @@
762
760
  }
763
761
  if ('versions' in info_1) {
764
762
  var families = info_1.families;
765
- var versions_1 = info_1.versions;
763
+ var infoVersions_1 = info_1.versions;
766
764
  if (inherits != null)
767
765
  families !== null && families !== void 0 ? families : (families = familiesMap[inherits]);
768
766
  familiesMap[name] = families;
@@ -772,18 +770,18 @@
772
770
  families.map(function (family, index) {
773
771
  var _a;
774
772
  family = esToString(family);
775
- var versionInfo = versions_1[index];
776
- var version;
777
- if (_Array_isArray(versionInfo)) {
778
- var length_1 = versionInfo.length;
779
- var from = esToString(versionInfo[0]);
780
- var to = length_1 < 2 ? undefined : esToString(versionInfo[length_1 - 1]);
781
- var dense = versionInfo.length === 2;
782
- version = _Object_freeze({ from: from, to: to, dense: dense });
783
- }
784
- else
785
- version = esToString(versionInfo);
786
- var compatibility = _Object_freeze({ family: family, featureName: name, version: version, tag: tag_1, shortTag: shortTag_1 });
773
+ var versionInfo = esToString(infoVersions_1[index]);
774
+ var parts = versionInfo.split('|');
775
+ var versions = parts.map(function (part) {
776
+ var match = /^([^-]+)-(?:([^-]+))?$/.exec(part);
777
+ if (match) {
778
+ var from = match[1], to = match[2];
779
+ var engineVersion = _Object_freeze({ from: from, to: to });
780
+ return engineVersion;
781
+ }
782
+ return part;
783
+ });
784
+ var compatibility = _Object_freeze({ family: family, featureName: name, versions: versions, tag: tag_1, shortTag: shortTag_1 });
787
785
  var familyCompatibilities = (_a = FAMILIES[family]) !== null && _a !== void 0 ? _a : (FAMILIES[family] = []);
788
786
  familyCompatibilities.push(compatibility);
789
787
  return compatibility;
@@ -1468,28 +1466,39 @@
1468
1466
  return available;
1469
1467
  },
1470
1468
  },
1469
+ LOCALE_NUMERALS_BN:
1470
+ {
1471
+ description: 'Localized number formatting for Bengali.',
1472
+ check:
1473
+ function ()
1474
+ {
1475
+ var available = checkLocaleNumeral('bn', 1234567890, /^১,২৩,৪৫,৬৭,৮৯০/);
1476
+ return available;
1477
+ },
1478
+ },
1471
1479
  LOCALE_NUMERALS_EXT:
1472
1480
  {
1473
1481
  description:
1474
1482
  'Extended localized number formatting.\n' +
1475
1483
  'This includes all features of LOCALE_NUMERALS plus the output of the first three ' +
1476
- 'letters in the second word of the Arabic string representation of NaN ("رقم"), Bengali ' +
1477
- 'digits, the letters in the Russian string representation of NaN ("не\xa0число") and the ' +
1478
- 'letters in the Persian string representation of NaN ("ناعدد").',
1484
+ 'letters in the second word of the Arabic string representation of NaN ("رقم"), the ' +
1485
+ 'letters in the Russian string representation of NaN ("не\xa0число") and the letters in ' +
1486
+ 'the Persian string representation of NaN ("ناعدد").',
1479
1487
  check:
1480
1488
  function ()
1481
1489
  {
1482
1490
  var available =
1483
1491
  checkLocaleNumeral('ar', NaN, /^ليس.رقم/) &&
1484
1492
  checkLocaleNumeral('ar-td', 234567890.1, /^٢٣٤٬?٥٦٧٬?٨٩٠٫١/) &&
1485
- checkLocaleNumeral('bn', 1234567890, /^১,২৩,৪৫,৬৭,৮৯০/) &&
1486
1493
  checkLocaleNumeral('fa', 1234567890, /^۱٬۲۳۴٬۵۶۷٬۸۹۰/) &&
1487
1494
  checkLocaleNumeral('fa', NaN, /^ناعد/) &&
1488
1495
  checkLocaleNumeral('ru', NaN, /^не.число/);
1489
1496
  return available;
1490
1497
  },
1491
- includes: ['LOCALE_NUMERALS'],
1498
+ includes: ['LOCALE_NUMERALS'],
1499
+ attributes: { 'web-worker': 'locale-numerals-ext-restriction' },
1492
1500
  },
1501
+
1493
1502
  LOCATION:
1494
1503
  {
1495
1504
  description:
@@ -1807,6 +1816,7 @@
1807
1816
  'HISTORY',
1808
1817
  'INCR_CHAR',
1809
1818
  'INTL',
1819
+ 'ITERATOR_HELPER',
1810
1820
  'JAPANESE_INFINITY',
1811
1821
  'LOCALE_INFINITY',
1812
1822
  'LOCALE_NUMERALS_EXT',
@@ -1821,9 +1831,10 @@
1821
1831
  ],
1822
1832
  attributes:
1823
1833
  {
1824
- 'char-increment-restriction': null,
1825
- 'non-ie-restriction': null,
1826
- 'web-worker-restriction': null,
1834
+ 'char-increment-restriction': null,
1835
+ 'locale-numerals-ext-restriction': null,
1836
+ 'non-ie-restriction': null,
1837
+ 'web-worker-restriction': null,
1827
1838
  },
1828
1839
  },
1829
1840
  ANDRO_4_0:
@@ -1852,7 +1863,7 @@
1852
1863
  ANDRO_4_1:
1853
1864
  {
1854
1865
  inherits: 'ANDRO_4_0',
1855
- versions: [['4.1',, '4.3']],
1866
+ versions: ['4.1-4.3'],
1856
1867
  includes: { CALL_ON_GLOBAL: false, GENERIC_ARRAY_TO_STRING: true, OBJECT_UNDEFINED: true },
1857
1868
  },
1858
1869
  ANDRO_4_4:
@@ -1866,6 +1877,7 @@
1866
1877
  HTMLAUDIOELEMENT: true,
1867
1878
  JAPANESE_INFINITY: true,
1868
1879
  LOCALE_INFINITY: true,
1880
+ LOCALE_NUMERALS_BN: true,
1869
1881
  LOCALE_NUMERALS_EXT: true,
1870
1882
  PLAIN_INTL: true,
1871
1883
  SHORT_LOCALES: true,
@@ -1891,7 +1903,7 @@
1891
1903
  CHROME_122:
1892
1904
  {
1893
1905
  families: ['Chrome', 'Edge', 'Opera'],
1894
- versions: [['122'], ['122'], ['108']],
1906
+ versions: ['122-', '122-', '108-'],
1895
1907
  includes:
1896
1908
  [
1897
1909
  'ANY_DOCUMENT',
@@ -1916,6 +1928,7 @@
1916
1928
  'ITERATOR_HELPER',
1917
1929
  'JAPANESE_INFINITY',
1918
1930
  'LOCALE_INFINITY',
1931
+ 'LOCALE_NUMERALS_BN',
1919
1932
  'LOCALE_NUMERALS_EXT',
1920
1933
  'LOCATION',
1921
1934
  'MOZILLA',
@@ -1942,17 +1955,17 @@
1942
1955
  FF_PREV:
1943
1956
  {
1944
1957
  description: describeEngine('the previous to current version of Firefox'),
1945
- aliasFor: 'FF_90',
1958
+ aliasFor: 'FF_134',
1946
1959
  },
1947
1960
  FF:
1948
1961
  {
1949
1962
  description: describeEngine('the current stable version of Firefox'),
1950
- aliasFor: 'FF_131',
1963
+ aliasFor: 'FF_134',
1951
1964
  },
1952
1965
  FF_90:
1953
1966
  {
1954
1967
  families: ['Firefox'],
1955
- versions: [['90',, '130']],
1968
+ versions: ['90-130'],
1956
1969
  includes:
1957
1970
  [
1958
1971
  'ANY_DOCUMENT',
@@ -1977,6 +1990,7 @@
1977
1990
  'INTL',
1978
1991
  'JAPANESE_INFINITY',
1979
1992
  'LOCALE_INFINITY',
1993
+ 'LOCALE_NUMERALS_BN',
1980
1994
  'LOCALE_NUMERALS_EXT',
1981
1995
  'LOCATION',
1982
1996
  'MOZILLA',
@@ -1999,9 +2013,15 @@
1999
2013
  FF_131:
2000
2014
  {
2001
2015
  inherits: 'FF_90',
2002
- versions: [['131']],
2016
+ versions: ['131-133'],
2003
2017
  includes: { ITERATOR_HELPER: true, OBJECT_ARRAY_ENTRIES_CTOR: false },
2004
2018
  },
2019
+ FF_134:
2020
+ {
2021
+ inherits: 'FF_131',
2022
+ versions: ['134-'],
2023
+ includes: { SHORT_LOCALES: false },
2024
+ },
2005
2025
  IE_9:
2006
2026
  {
2007
2027
  families: ['Internet Explorer'],
@@ -2053,7 +2073,12 @@
2053
2073
  compatibilityTag: 'on Windows 10',
2054
2074
  compatibilityShortTag: 'W10',
2055
2075
  includes:
2056
- { LOCALE_INFINITY: true, LOCALE_NUMERALS: false, LOCALE_NUMERALS_EXT: true },
2076
+ {
2077
+ LOCALE_INFINITY: true,
2078
+ LOCALE_NUMERALS: false,
2079
+ LOCALE_NUMERALS_BN: true,
2080
+ LOCALE_NUMERALS_EXT: true,
2081
+ },
2057
2082
  },
2058
2083
  NODE_0_10:
2059
2084
  {
@@ -2095,13 +2120,13 @@
2095
2120
  NODE_5:
2096
2121
  {
2097
2122
  inherits: 'NODE_4',
2098
- versions: [['5',, '7.5']],
2123
+ versions: ['5-7.5'],
2099
2124
  attributes: { 'char-increment-restriction': null },
2100
2125
  },
2101
2126
  NODE_7_6:
2102
2127
  {
2103
2128
  inherits: 'NODE_5',
2104
- versions: [['7.6',, '9']],
2129
+ versions: ['7.6-9'],
2105
2130
  includes: { ASYNC_FUNCTION: true },
2106
2131
  },
2107
2132
  NODE_10:
@@ -2125,8 +2150,8 @@
2125
2150
  NODE_13:
2126
2151
  {
2127
2152
  inherits: 'NODE_12',
2128
- versions: [['13', '14']],
2129
- includes: { LOCALE_NUMERALS_EXT: true, SHORT_LOCALES: true },
2153
+ versions: ['13|14'],
2154
+ includes: { LOCALE_NUMERALS_BN: true, LOCALE_NUMERALS_EXT: true, SHORT_LOCALES: true },
2130
2155
  },
2131
2156
  NODE_15:
2132
2157
  {
@@ -2137,21 +2162,27 @@
2137
2162
  NODE_16_0:
2138
2163
  {
2139
2164
  inherits: 'NODE_15',
2140
- versions: [['16.0',, '16.5']],
2165
+ versions: ['16.0-16.5'],
2141
2166
  includes: { ATOB: true },
2142
2167
  },
2143
2168
  NODE_16_6:
2144
2169
  {
2145
2170
  inherits: 'NODE_16_0',
2146
- versions: [['16.6',, '21']],
2171
+ versions: ['16.6-21'],
2147
2172
  includes: { AT: true },
2148
2173
  },
2149
2174
  NODE_22:
2150
2175
  {
2151
2176
  inherits: 'NODE_16_6',
2152
- versions: [['22']],
2177
+ versions: ['22.0-22.11|23.0-23.2'],
2153
2178
  includes: { ITERATOR_HELPER: true, OBJECT_ARRAY_ENTRIES_CTOR: false },
2154
2179
  },
2180
+ NODE_22_12:
2181
+ {
2182
+ inherits: 'NODE_22',
2183
+ versions: ['22.12-22.14|23.3-'],
2184
+ includes: { SHORT_LOCALES: false },
2185
+ },
2155
2186
  SAFARI_7_0:
2156
2187
  {
2157
2188
  families: ['Safari'],
@@ -2192,7 +2223,7 @@
2192
2223
  SAFARI_7_1:
2193
2224
  {
2194
2225
  inherits: 'SAFARI_7_0',
2195
- versions: [['7.1', '8']],
2226
+ versions: ['7.1|8'],
2196
2227
  includes: { ARRAY_ITERATOR: true, FILL: true },
2197
2228
  attributes: { 'no-console-in-web-worker': undefined, 'safari-bug-21820506': null },
2198
2229
  },
@@ -2218,6 +2249,7 @@
2218
2249
  ARROW: true,
2219
2250
  JAPANESE_INFINITY: true,
2220
2251
  LOCALE_INFINITY: true,
2252
+ LOCALE_NUMERALS_BN: true,
2221
2253
  LOCALE_NUMERALS_EXT: true,
2222
2254
  NODECONSTRUCTOR: false,
2223
2255
  OBJECT_L_LOCATION_CTOR: false,
@@ -2230,7 +2262,7 @@
2230
2262
  SAFARI_10_1:
2231
2263
  {
2232
2264
  inherits: 'SAFARI_10_0',
2233
- versions: [['10.1', '11']],
2265
+ versions: ['10.1|11'],
2234
2266
  includes: { ASYNC_FUNCTION: true },
2235
2267
  },
2236
2268
  SAFARI_12:
@@ -2242,43 +2274,51 @@
2242
2274
  SAFARI_13:
2243
2275
  {
2244
2276
  inherits: 'SAFARI_12',
2245
- versions: [['13', '14.0.0']],
2277
+ versions: ['13|14.0.0'],
2246
2278
  includes: { REGEXP_STRING_ITERATOR: true },
2247
2279
  },
2248
2280
  SAFARI_14_0_1:
2249
2281
  {
2250
2282
  inherits: 'SAFARI_13',
2251
- versions: [['14.0.1',, '14.0.3']],
2283
+ versions: ['14.0.1-14.0.3'],
2252
2284
  includes: { INTL: true, PLAIN_INTL: false },
2253
2285
  },
2254
2286
  SAFARI_14_1:
2255
2287
  {
2256
2288
  inherits: 'SAFARI_14_0_1',
2257
- versions: [['14.1',, '15.3']],
2289
+ versions: ['14.1-15.3'],
2258
2290
  includes: { CONSOLE: false },
2259
2291
  },
2260
2292
  SAFARI_15_4:
2261
2293
  {
2262
2294
  inherits: 'SAFARI_14_1',
2263
- versions: [['15.4',, '17.3']],
2295
+ versions: ['15.4-17.3'],
2264
2296
  includes: { AT: true },
2265
2297
  },
2266
2298
  SAFARI_17_4:
2267
2299
  {
2268
2300
  inherits: 'SAFARI_15_4',
2269
- versions: [['17.4',, '17.6']],
2301
+ versions: ['17.4-17.6'],
2270
2302
  includes: { FUNCTION_19_LF: true, FUNCTION_22_LF: false },
2271
2303
  },
2304
+ SAFARI_18_0:
2305
+ {
2306
+ inherits: 'SAFARI_17_4',
2307
+ versions: ['18.0-18.3'],
2308
+ includes: { SHORT_LOCALES: false },
2309
+ },
2272
2310
  SAFARI:
2273
2311
  {
2274
2312
  description: describeEngine('the current stable version of Safari'),
2275
- aliasFor: 'SAFARI_18',
2313
+ aliasFor: 'SAFARI_18_4',
2276
2314
  },
2277
- SAFARI_18:
2315
+ SAFARI_18_4:
2278
2316
  {
2279
- inherits: 'SAFARI_17_4',
2280
- versions: [['18']],
2281
- includes: { SHORT_LOCALES: false },
2317
+ inherits: 'SAFARI_18_0',
2318
+ versions: ['18.4-'],
2319
+ includes:
2320
+ { ITERATOR_HELPER: true, LOCALE_NUMERALS_BN: false, OBJECT_ARRAY_ENTRIES_CTOR: false },
2321
+ attributes: { 'locale-numerals-ext-restriction': null },
2282
2322
  },
2283
2323
  };
2284
2324
  (function ()
@@ -2292,19 +2332,31 @@
2292
2332
  function (compatibility)
2293
2333
  {
2294
2334
  var family = compatibility.family;
2295
- var version = compatibility.version;
2296
- var part = family;
2297
- if (typeof version === 'string')
2298
- part += ' ' + version;
2299
- else
2300
- {
2301
- part += ' ' + version.from;
2302
- var to = version.to;
2303
- if (to != null)
2304
- part += (version.dense ? ' and ' + family + ' ' : ' to ') + to;
2305
- else
2306
- appendix = ' or later';
2307
- }
2335
+ var versions = compatibility.versions;
2336
+ var part =
2337
+ versions.map
2338
+ (
2339
+ function (version)
2340
+ {
2341
+ var versionText;
2342
+ if (typeof version === 'string')
2343
+ versionText = version;
2344
+ else
2345
+ {
2346
+ var from = version.from;
2347
+ var to = version.to;
2348
+ if (to != null)
2349
+ versionText = from + ' to ' + to;
2350
+ else
2351
+ {
2352
+ versionText = from;
2353
+ appendix = ' or later';
2354
+ }
2355
+ }
2356
+ return family + ' ' + versionText;
2357
+ }
2358
+ )
2359
+ .join(' and ');
2308
2360
  var tag = compatibility.tag;
2309
2361
  if (tag != null)
2310
2362
  part += ' ' + tag;
@@ -3230,6 +3282,7 @@
3230
3282
  var JAPANESE_INFINITY = Feature.JAPANESE_INFINITY;
3231
3283
  var LOCALE_INFINITY = Feature.LOCALE_INFINITY;
3232
3284
  var LOCALE_NUMERALS = Feature.LOCALE_NUMERALS;
3285
+ var LOCALE_NUMERALS_BN = Feature.LOCALE_NUMERALS_BN;
3233
3286
  var LOCALE_NUMERALS_EXT = Feature.LOCALE_NUMERALS_EXT;
3234
3287
  var LOCATION = Feature.LOCATION;
3235
3288
  var MOZILLA = Feature.MOZILLA;
@@ -5487,7 +5540,7 @@
5487
5540
  useLocaleNumeralDefinition('ر', '"ar"', NaN, 4, LOCALE_NUMERALS_EXT);
5488
5541
  useLocaleNumeralDefinition('ق', '"ar"', NaN, 5, LOCALE_NUMERALS_EXT);
5489
5542
  useLocaleNumeralDefinition('م', '"ar"', NaN, 6, LOCALE_NUMERALS_EXT);
5490
- useLocaleNumeralDigitDefinitions('"bn"', 0x09e6, LOCALE_NUMERALS_EXT);
5543
+ useLocaleNumeralDigitDefinitions('"bn"', 0x09e6, LOCALE_NUMERALS_BN);
5491
5544
  useLocaleNumeralDigitDefinitions('"fa"', 0x06f0);
5492
5545
  useLocaleNumeralDefinition('٬', '"fa"', 1000, 1);
5493
5546
  useLocaleNumeralDefinition('ن', '"fa"', NaN, 0, LOCALE_NUMERALS_EXT);
@@ -6151,7 +6204,7 @@
6151
6204
  this._optimizerList = optimizerList;
6152
6205
  this._screwMode = screwMode;
6153
6206
  this._solutions = [];
6154
- this._length = -APPEND_LENGTH_OF_EMPTY;
6207
+ this._length = -3;
6155
6208
  }
6156
6209
 
6157
6210
  assignNoEnum$1