jscrewit 2.33.1 → 2.35.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/Features.md +4 -4
- package/api-doc/README.md +86 -12
- package/api-doc/interfaces/CustomFeature.md +2 -2
- package/api-doc/interfaces/ElementaryFeature.md +2 -2
- package/api-doc/interfaces/EncodeOptions.md +4 -4
- package/api-doc/interfaces/Feature.md +7 -8
- package/api-doc/interfaces/FeatureAll.md +136 -161
- package/api-doc/interfaces/FeatureConstructor.md +162 -192
- package/api-doc/interfaces/PredefinedFeature.md +2 -2
- package/api-doc/interfaces/default.md +0 -2
- package/api-doc/interfaces/encode.md +1 -1
- package/lib/encode.d.ts +14 -7
- package/lib/feature-all.d.ts +10 -34
- package/lib/feature.d.ts +19 -15
- package/lib/jscrewit.d.ts +2 -2
- package/lib/jscrewit.js +456 -388
- package/lib/jscrewit.min.js +2 -2
- package/package.json +3 -5
- package/readme.md +1 -1
- package/ui/ui.js +1 -1
- package/api-doc/.nojekyll +0 -1
package/lib/jscrewit.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// JScrewIt 2.
|
|
1
|
+
// JScrewIt 2.35.0 – https://jscrew.it
|
|
2
2
|
|
|
3
3
|
(function () {
|
|
4
4
|
'use strict';
|
|
@@ -231,6 +231,22 @@
|
|
|
231
231
|
return plan;
|
|
232
232
|
}
|
|
233
233
|
|
|
234
|
+
/******************************************************************************
|
|
235
|
+
Copyright (c) Microsoft Corporation.
|
|
236
|
+
|
|
237
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
238
|
+
purpose with or without fee is hereby granted.
|
|
239
|
+
|
|
240
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
241
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
242
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
243
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
244
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
245
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
246
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
247
|
+
***************************************************************************** */
|
|
248
|
+
|
|
249
|
+
|
|
234
250
|
var extendStatics = function(d, b) {
|
|
235
251
|
extendStatics = Object.setPrototypeOf ||
|
|
236
252
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
@@ -310,18 +326,12 @@
|
|
|
310
326
|
return unionMask;
|
|
311
327
|
}
|
|
312
328
|
|
|
313
|
-
var keyFor = function (mask) { return "_"
|
|
329
|
+
var keyFor = function (mask) { return "_".concat(mask); };
|
|
314
330
|
var MaskIndex = /** @class */ (function () {
|
|
315
331
|
function MaskIndex() {
|
|
316
332
|
this._index = Object.create(null);
|
|
317
333
|
this._size = 0;
|
|
318
334
|
}
|
|
319
|
-
/** Determines whether the current collection contains an entry for a specified mask. */
|
|
320
|
-
MaskIndex.prototype.has = function (mask) {
|
|
321
|
-
var key = keyFor(mask);
|
|
322
|
-
var returnValue = key in this._index;
|
|
323
|
-
return returnValue;
|
|
324
|
-
};
|
|
325
335
|
Object.defineProperty(MaskIndex.prototype, "size", {
|
|
326
336
|
/* The number of entries in the current collection. */
|
|
327
337
|
get: function () {
|
|
@@ -330,6 +340,12 @@
|
|
|
330
340
|
enumerable: false,
|
|
331
341
|
configurable: true
|
|
332
342
|
});
|
|
343
|
+
/** Determines whether the current collection contains an entry for a specified mask. */
|
|
344
|
+
MaskIndex.prototype.has = function (mask) {
|
|
345
|
+
var key = keyFor(mask);
|
|
346
|
+
var returnValue = key in this._index;
|
|
347
|
+
return returnValue;
|
|
348
|
+
};
|
|
333
349
|
MaskIndex.prototype._setEntry = function (mask, value) {
|
|
334
350
|
var key = keyFor(mask);
|
|
335
351
|
var _index = this._index;
|
|
@@ -634,8 +650,8 @@
|
|
|
634
650
|
name: undefined,
|
|
635
651
|
toString: function () {
|
|
636
652
|
var _a;
|
|
637
|
-
var name = (_a = this.name) !== null && _a !== void 0 ? _a : "<"
|
|
638
|
-
var str = "[Feature "
|
|
653
|
+
var name = (_a = this.name) !== null && _a !== void 0 ? _a : "<".concat(this.canonicalNames.join(', '), ">");
|
|
654
|
+
var str = "[Feature ".concat(name, "]");
|
|
639
655
|
return str;
|
|
640
656
|
},
|
|
641
657
|
};
|
|
@@ -682,8 +698,7 @@
|
|
|
682
698
|
var aliasFor = esToString(info_1.aliasFor);
|
|
683
699
|
mask = completeFeature(aliasFor);
|
|
684
700
|
featureObj = ALL[aliasFor];
|
|
685
|
-
|
|
686
|
-
description = DESCRIPTION_MAP[aliasFor];
|
|
701
|
+
description !== null && description !== void 0 ? description : (description = DESCRIPTION_MAP[aliasFor]);
|
|
687
702
|
}
|
|
688
703
|
else {
|
|
689
704
|
var inherits = getInfoStringField('inherits');
|
|
@@ -760,8 +775,7 @@
|
|
|
760
775
|
familyCompatibilities.push(compatibility);
|
|
761
776
|
return compatibility;
|
|
762
777
|
});
|
|
763
|
-
|
|
764
|
-
description = formatEngineDescription === null || formatEngineDescription === void 0 ? void 0 : formatEngineDescription(compatibilities);
|
|
778
|
+
description !== null && description !== void 0 ? description : (description = formatEngineDescription === null || formatEngineDescription === void 0 ? void 0 : formatEngineDescription(compatibilities));
|
|
765
779
|
}
|
|
766
780
|
var attributes = createMap();
|
|
767
781
|
if (inherits != null) {
|
|
@@ -871,12 +885,12 @@
|
|
|
871
885
|
return false;
|
|
872
886
|
}
|
|
873
887
|
var str = parts.length && (!compact || isMultiline()) ?
|
|
874
|
-
intro
|
|
875
|
-
""
|
|
888
|
+
"".concat(intro, "\n").concat(indent(parts.join("".concat(partSeparator, "\n"))), "\n").concat(outro) :
|
|
889
|
+
"".concat(intro).concat(preSeparator).concat(parts.join("".concat(partSeparator, " "))).concat(outro);
|
|
876
890
|
return str;
|
|
877
891
|
}
|
|
878
892
|
function throwUnknownFeatureError(name) {
|
|
879
|
-
throw new _Error("Unknown feature "
|
|
893
|
+
throw new _Error("Unknown feature ".concat(_JSON_stringify(name)));
|
|
880
894
|
}
|
|
881
895
|
function wrapCheck(check) {
|
|
882
896
|
var wrappedCheck = function () { return !!check(); };
|
|
@@ -995,7 +1009,7 @@
|
|
|
995
1009
|
return available;
|
|
996
1010
|
}
|
|
997
1011
|
),
|
|
998
|
-
includes:
|
|
1012
|
+
includes: ['SELF_OBJ'],
|
|
999
1013
|
attributes: { 'web-worker': 'web-worker-restriction' },
|
|
1000
1014
|
},
|
|
1001
1015
|
ARRAY_ITERATOR:
|
|
@@ -1038,14 +1052,14 @@
|
|
|
1038
1052
|
},
|
|
1039
1053
|
ATOB:
|
|
1040
1054
|
{
|
|
1041
|
-
description:
|
|
1055
|
+
description: 'Existence of the global functions atob and btoa.',
|
|
1042
1056
|
check:
|
|
1043
1057
|
function ()
|
|
1044
1058
|
{
|
|
1045
1059
|
var available = typeof atob === 'function' && typeof btoa === 'function';
|
|
1046
1060
|
return available;
|
|
1047
1061
|
},
|
|
1048
|
-
attributes:
|
|
1062
|
+
attributes: { 'web-worker': 'old-safari-restriction' },
|
|
1049
1063
|
},
|
|
1050
1064
|
BARPROP:
|
|
1051
1065
|
{
|
|
@@ -1106,8 +1120,8 @@
|
|
|
1106
1120
|
var available = typeof document === 'object' && document + '' === '[object Document]';
|
|
1107
1121
|
return available;
|
|
1108
1122
|
},
|
|
1109
|
-
includes:
|
|
1110
|
-
excludes:
|
|
1123
|
+
includes: ['ANY_DOCUMENT'],
|
|
1124
|
+
excludes: ['HTMLDOCUMENT'],
|
|
1111
1125
|
attributes: { 'web-worker': 'web-worker-restriction' },
|
|
1112
1126
|
},
|
|
1113
1127
|
DOMWINDOW:
|
|
@@ -1124,8 +1138,8 @@
|
|
|
1124
1138
|
return available;
|
|
1125
1139
|
}
|
|
1126
1140
|
),
|
|
1127
|
-
includes:
|
|
1128
|
-
excludes:
|
|
1141
|
+
includes: ['ANY_WINDOW'],
|
|
1142
|
+
excludes: ['WINDOW'],
|
|
1129
1143
|
attributes: { 'web-worker': 'web-worker-restriction' },
|
|
1130
1144
|
},
|
|
1131
1145
|
ESC_HTML_ALL:
|
|
@@ -1326,7 +1340,7 @@
|
|
|
1326
1340
|
typeof Audio !== 'undefined' && /^function HTMLAudioElement/.test(Audio);
|
|
1327
1341
|
return available;
|
|
1328
1342
|
},
|
|
1329
|
-
includes:
|
|
1343
|
+
includes: ['NO_IE_SRC'],
|
|
1330
1344
|
attributes: { 'web-worker': 'web-worker-restriction' },
|
|
1331
1345
|
},
|
|
1332
1346
|
HTMLDOCUMENT:
|
|
@@ -1341,8 +1355,8 @@
|
|
|
1341
1355
|
typeof document === 'object' && document + '' === '[object HTMLDocument]';
|
|
1342
1356
|
return available;
|
|
1343
1357
|
},
|
|
1344
|
-
includes:
|
|
1345
|
-
excludes:
|
|
1358
|
+
includes: ['ANY_DOCUMENT'],
|
|
1359
|
+
excludes: ['DOCUMENT'],
|
|
1346
1360
|
attributes: { 'web-worker': 'web-worker-restriction' },
|
|
1347
1361
|
},
|
|
1348
1362
|
IE_SRC:
|
|
@@ -1610,7 +1624,8 @@
|
|
|
1610
1624
|
return available;
|
|
1611
1625
|
},
|
|
1612
1626
|
},
|
|
1613
|
-
SELF:
|
|
1627
|
+
SELF:
|
|
1628
|
+
{ aliasFor: 'ANY_WINDOW' },
|
|
1614
1629
|
SELF_OBJ:
|
|
1615
1630
|
{
|
|
1616
1631
|
description:
|
|
@@ -1645,14 +1660,14 @@
|
|
|
1645
1660
|
},
|
|
1646
1661
|
STATUS:
|
|
1647
1662
|
{
|
|
1648
|
-
description:
|
|
1663
|
+
description: 'Existence of the global string status.',
|
|
1649
1664
|
check:
|
|
1650
1665
|
function ()
|
|
1651
1666
|
{
|
|
1652
1667
|
var available = typeof status === 'string';
|
|
1653
1668
|
return available;
|
|
1654
1669
|
},
|
|
1655
|
-
attributes:
|
|
1670
|
+
attributes: { 'web-worker': 'web-worker-restriction' },
|
|
1656
1671
|
},
|
|
1657
1672
|
UNDEFINED:
|
|
1658
1673
|
{
|
|
@@ -1690,8 +1705,8 @@
|
|
|
1690
1705
|
return available;
|
|
1691
1706
|
}
|
|
1692
1707
|
),
|
|
1693
|
-
includes:
|
|
1694
|
-
excludes:
|
|
1708
|
+
includes: ['ANY_WINDOW'],
|
|
1709
|
+
excludes: ['DOMWINDOW'],
|
|
1695
1710
|
attributes: { 'web-worker': 'web-worker-restriction' },
|
|
1696
1711
|
},
|
|
1697
1712
|
|
|
@@ -1722,6 +1737,7 @@
|
|
|
1722
1737
|
includes:
|
|
1723
1738
|
[
|
|
1724
1739
|
'ARROW',
|
|
1740
|
+
'AT',
|
|
1725
1741
|
'ATOB',
|
|
1726
1742
|
'BARPROP',
|
|
1727
1743
|
'ESC_HTML_QUOT_ONLY',
|
|
@@ -1778,8 +1794,8 @@
|
|
|
1778
1794
|
},
|
|
1779
1795
|
ANDRO_4_4:
|
|
1780
1796
|
{
|
|
1781
|
-
inherits:
|
|
1782
|
-
versions:
|
|
1797
|
+
inherits: 'ANDRO_4_1',
|
|
1798
|
+
versions: ['4.4'],
|
|
1783
1799
|
includes:
|
|
1784
1800
|
{
|
|
1785
1801
|
BARPROP: true,
|
|
@@ -1795,13 +1811,13 @@
|
|
|
1795
1811
|
},
|
|
1796
1812
|
CHROME_PREV:
|
|
1797
1813
|
{
|
|
1798
|
-
description:
|
|
1799
|
-
aliasFor:
|
|
1814
|
+
description: describeEngine('the previous to current versions of Chrome and Edge'),
|
|
1815
|
+
aliasFor: 'CHROME_92',
|
|
1800
1816
|
},
|
|
1801
1817
|
CHROME:
|
|
1802
1818
|
{
|
|
1803
|
-
description:
|
|
1804
|
-
aliasFor:
|
|
1819
|
+
description: describeEngine('the current stable versions of Chrome, Edge and Opera'),
|
|
1820
|
+
aliasFor: 'CHROME_92',
|
|
1805
1821
|
},
|
|
1806
1822
|
CHROME_92:
|
|
1807
1823
|
{
|
|
@@ -1842,16 +1858,27 @@
|
|
|
1842
1858
|
},
|
|
1843
1859
|
FF_ESR:
|
|
1844
1860
|
{
|
|
1845
|
-
description:
|
|
1846
|
-
aliasFor:
|
|
1861
|
+
description: describeEngine('the current version of Firefox ESR'),
|
|
1862
|
+
aliasFor: 'FF_90',
|
|
1847
1863
|
},
|
|
1848
|
-
|
|
1864
|
+
FF_PREV:
|
|
1865
|
+
{
|
|
1866
|
+
description: describeEngine('the previous to current version of Firefox'),
|
|
1867
|
+
aliasFor: 'FF_90',
|
|
1868
|
+
},
|
|
1869
|
+
FF:
|
|
1870
|
+
{
|
|
1871
|
+
description: describeEngine('the current stable version of Firefox'),
|
|
1872
|
+
aliasFor: 'FF_90',
|
|
1873
|
+
},
|
|
1874
|
+
FF_90:
|
|
1849
1875
|
{
|
|
1850
1876
|
families: ['Firefox'],
|
|
1851
|
-
versions: [['
|
|
1877
|
+
versions: [['90']],
|
|
1852
1878
|
includes:
|
|
1853
1879
|
[
|
|
1854
1880
|
'ARROW',
|
|
1881
|
+
'AT',
|
|
1855
1882
|
'ATOB',
|
|
1856
1883
|
'BARPROP',
|
|
1857
1884
|
'ESC_HTML_QUOT_ONLY',
|
|
@@ -1868,12 +1895,12 @@
|
|
|
1868
1895
|
'HISTORY',
|
|
1869
1896
|
'HTMLDOCUMENT',
|
|
1870
1897
|
'INCR_CHAR',
|
|
1898
|
+
'INTL',
|
|
1871
1899
|
'LOCALE_INFINITY',
|
|
1872
1900
|
'LOCALE_NUMERALS_EXT',
|
|
1873
1901
|
'LOCATION',
|
|
1874
1902
|
'NAME',
|
|
1875
1903
|
'NO_OLD_SAFARI_ARRAY_ITERATOR',
|
|
1876
|
-
'PLAIN_INTL',
|
|
1877
1904
|
'REGEXP_STRING_ITERATOR',
|
|
1878
1905
|
'SHORT_LOCALES',
|
|
1879
1906
|
'STATUS',
|
|
@@ -1882,28 +1909,6 @@
|
|
|
1882
1909
|
attributes:
|
|
1883
1910
|
{ 'char-increment-restriction': null, 'unstable': null, 'web-worker-restriction': null },
|
|
1884
1911
|
},
|
|
1885
|
-
FF_83:
|
|
1886
|
-
{
|
|
1887
|
-
inherits: 'FF_78',
|
|
1888
|
-
versions: [['83',, '89']],
|
|
1889
|
-
includes: { INTL: true, PLAIN_INTL: false },
|
|
1890
|
-
},
|
|
1891
|
-
FF_PREV:
|
|
1892
|
-
{
|
|
1893
|
-
description: describeEngine('the previous to current version of Firefox'),
|
|
1894
|
-
aliasFor: 'FF_90',
|
|
1895
|
-
},
|
|
1896
|
-
FF:
|
|
1897
|
-
{
|
|
1898
|
-
description: describeEngine('the current stable version of Firefox'),
|
|
1899
|
-
aliasFor: 'FF_90',
|
|
1900
|
-
},
|
|
1901
|
-
FF_90:
|
|
1902
|
-
{
|
|
1903
|
-
inherits: 'FF_83',
|
|
1904
|
-
versions: [['90']],
|
|
1905
|
-
includes: { AT: true },
|
|
1906
|
-
},
|
|
1907
1912
|
IE_9:
|
|
1908
1913
|
{
|
|
1909
1914
|
families: ['Internet Explorer'],
|
|
@@ -1928,9 +1933,9 @@
|
|
|
1928
1933
|
},
|
|
1929
1934
|
IE_10:
|
|
1930
1935
|
{
|
|
1931
|
-
inherits:
|
|
1932
|
-
versions:
|
|
1933
|
-
includes:
|
|
1936
|
+
inherits: 'IE_9',
|
|
1937
|
+
versions: ['10'],
|
|
1938
|
+
includes: { ATOB: true, CONSOLE: true, OBJECT_UNDEFINED: true, UNDEFINED: false },
|
|
1934
1939
|
attributes: { 'char-increment-restriction': null, 'web-worker-restriction': null },
|
|
1935
1940
|
},
|
|
1936
1941
|
IE_11:
|
|
@@ -1949,11 +1954,12 @@
|
|
|
1949
1954
|
},
|
|
1950
1955
|
IE_11_WIN_10:
|
|
1951
1956
|
{
|
|
1952
|
-
inherits:
|
|
1953
|
-
versions:
|
|
1954
|
-
compatibilityTag:
|
|
1955
|
-
compatibilityShortTag:
|
|
1956
|
-
includes:
|
|
1957
|
+
inherits: 'IE_11',
|
|
1958
|
+
versions: ['11'],
|
|
1959
|
+
compatibilityTag: 'on Windows 10',
|
|
1960
|
+
compatibilityShortTag: 'W10',
|
|
1961
|
+
includes:
|
|
1962
|
+
{ LOCALE_INFINITY: true, LOCALE_NUMERALS: false, LOCALE_NUMERALS_EXT: true },
|
|
1957
1963
|
},
|
|
1958
1964
|
NODE_0_10:
|
|
1959
1965
|
{
|
|
@@ -1992,8 +1998,8 @@
|
|
|
1992
1998
|
},
|
|
1993
1999
|
NODE_5:
|
|
1994
2000
|
{
|
|
1995
|
-
inherits:
|
|
1996
|
-
versions:
|
|
2001
|
+
inherits: 'NODE_4',
|
|
2002
|
+
versions: [['5',, '9']],
|
|
1997
2003
|
attributes: { 'char-increment-restriction': null },
|
|
1998
2004
|
},
|
|
1999
2005
|
NODE_10:
|
|
@@ -2076,9 +2082,9 @@
|
|
|
2076
2082
|
},
|
|
2077
2083
|
SAFARI_7_1:
|
|
2078
2084
|
{
|
|
2079
|
-
inherits:
|
|
2080
|
-
versions:
|
|
2081
|
-
includes:
|
|
2085
|
+
inherits: 'SAFARI_7_0',
|
|
2086
|
+
versions: [['7.1', '8']],
|
|
2087
|
+
includes: { ARRAY_ITERATOR: true, FILL: true },
|
|
2082
2088
|
attributes: { 'no-console-in-web-worker': undefined, 'safari-bug-21820506': null },
|
|
2083
2089
|
},
|
|
2084
2090
|
SAFARI_9:
|
|
@@ -2095,8 +2101,8 @@
|
|
|
2095
2101
|
},
|
|
2096
2102
|
SAFARI_10:
|
|
2097
2103
|
{
|
|
2098
|
-
inherits:
|
|
2099
|
-
versions:
|
|
2104
|
+
inherits: 'SAFARI_9',
|
|
2105
|
+
versions: [['10', '11']],
|
|
2100
2106
|
includes:
|
|
2101
2107
|
{
|
|
2102
2108
|
ARROW: true,
|
|
@@ -2129,17 +2135,23 @@
|
|
|
2129
2135
|
versions: [['14.0.1',, '14.0.3']],
|
|
2130
2136
|
includes: { INTL: true, PLAIN_INTL: false },
|
|
2131
2137
|
},
|
|
2132
|
-
SAFARI:
|
|
2133
|
-
{
|
|
2134
|
-
description: describeEngine('the current stable version of Safari'),
|
|
2135
|
-
aliasFor: 'SAFARI_14_1',
|
|
2136
|
-
},
|
|
2137
2138
|
SAFARI_14_1:
|
|
2138
2139
|
{
|
|
2139
2140
|
inherits: 'SAFARI_14_0_1',
|
|
2140
|
-
versions: [['14.1']],
|
|
2141
|
+
versions: [['14.1',, '15.3']],
|
|
2141
2142
|
includes: { CONSOLE: false },
|
|
2142
2143
|
},
|
|
2144
|
+
SAFARI:
|
|
2145
|
+
{
|
|
2146
|
+
description: describeEngine('the current stable version of Safari'),
|
|
2147
|
+
aliasFor: 'SAFARI_15_4',
|
|
2148
|
+
},
|
|
2149
|
+
SAFARI_15_4:
|
|
2150
|
+
{
|
|
2151
|
+
inherits: 'SAFARI_14_1',
|
|
2152
|
+
versions: [['15.4']],
|
|
2153
|
+
includes: { AT: true },
|
|
2154
|
+
},
|
|
2143
2155
|
};
|
|
2144
2156
|
(function ()
|
|
2145
2157
|
{
|
|
@@ -2190,8 +2202,8 @@
|
|
|
2190
2202
|
);
|
|
2191
2203
|
featureInfos.AUTO =
|
|
2192
2204
|
{
|
|
2193
|
-
description:
|
|
2194
|
-
includes:
|
|
2205
|
+
description: describeEngine('the current environment'),
|
|
2206
|
+
includes: autoIncludes,
|
|
2195
2207
|
};
|
|
2196
2208
|
Feature = createFeatureClass(featureInfos, formatEngineDescription);
|
|
2197
2209
|
ELEMENTARY = Feature.ELEMENTARY;
|
|
@@ -2324,13 +2336,13 @@
|
|
|
2324
2336
|
function evalExpr$1(expr) {
|
|
2325
2337
|
var value = tryEvalExpr(expr);
|
|
2326
2338
|
if (value === INVALID_EXPR)
|
|
2327
|
-
throw SyntaxError("Invalid expression "
|
|
2339
|
+
throw SyntaxError("Invalid expression ".concat(expr));
|
|
2328
2340
|
return value;
|
|
2329
2341
|
}
|
|
2330
2342
|
function tryEvalExpr(expr) {
|
|
2331
2343
|
var fn;
|
|
2332
2344
|
try {
|
|
2333
|
-
fn = Function("return("
|
|
2345
|
+
fn = Function("return(".concat(expr, ");"));
|
|
2334
2346
|
}
|
|
2335
2347
|
catch (_a) {
|
|
2336
2348
|
return INVALID_EXPR;
|
|
@@ -2379,9 +2391,9 @@
|
|
|
2379
2391
|
}
|
|
2380
2392
|
}
|
|
2381
2393
|
};
|
|
2382
|
-
var isCombined = function (replacement, value) { return !value !== tryEvalExpr("!"
|
|
2383
|
-
var isPrefixed = function (replacement, value) { return "0"
|
|
2384
|
-
var isWeak$1 = function (replacement, value) { return ""
|
|
2394
|
+
var isCombined = function (replacement, value) { return !value !== tryEvalExpr("!".concat(replacement)); };
|
|
2395
|
+
var isPrefixed = function (replacement, value) { return "0".concat(value) !== tryEvalExpr("0+".concat(replacement)); };
|
|
2396
|
+
var isWeak$1 = function (replacement, value) { return "".concat(value) !== tryEvalExpr("\"\"+".concat(replacement)); };
|
|
2385
2397
|
|
|
2386
2398
|
function createTypeSet() {
|
|
2387
2399
|
var types = [];
|
|
@@ -2417,7 +2429,7 @@
|
|
|
2417
2429
|
createTypeSet(SolutionType.UNDEFINED),
|
|
2418
2430
|
createTypeSet(SolutionType.WEAK_ALGEBRAIC),
|
|
2419
2431
|
],
|
|
2420
|
-
replace: function (r1, r2, r3) { return r1
|
|
2432
|
+
replace: function (r1, r2, r3) { return "".concat(r1, "+(").concat(r2, "+[").concat(r3, "])"); },
|
|
2421
2433
|
solutionType: SolutionType.PREFIXED_STRING,
|
|
2422
2434
|
},
|
|
2423
2435
|
{
|
|
@@ -2426,7 +2438,7 @@
|
|
|
2426
2438
|
createTypeSet(SolutionType.UNDEFINED),
|
|
2427
2439
|
createTypeSet(SolutionType.WEAK_PREFIXED_STRING),
|
|
2428
2440
|
],
|
|
2429
|
-
replace: function (r1, r2, r3) { return r1
|
|
2441
|
+
replace: function (r1, r2, r3) { return "".concat(r1, "+(").concat(r2, "+(").concat(r3, "))"); },
|
|
2430
2442
|
solutionType: SolutionType.PREFIXED_STRING,
|
|
2431
2443
|
},
|
|
2432
2444
|
{
|
|
@@ -2435,7 +2447,7 @@
|
|
|
2435
2447
|
createTypeSet(SolutionType.UNDEFINED),
|
|
2436
2448
|
createTypeSet(SolutionType.OBJECT, SolutionType.STRING, SolutionType.COMBINED_STRING),
|
|
2437
2449
|
],
|
|
2438
|
-
replace: function (r1, r2, r3) { return r1
|
|
2450
|
+
replace: function (r1, r2, r3) { return "".concat(r1, "+(").concat(r2, "+").concat(r3, ")"); },
|
|
2439
2451
|
solutionType: SolutionType.PREFIXED_STRING,
|
|
2440
2452
|
},
|
|
2441
2453
|
{
|
|
@@ -2443,7 +2455,7 @@
|
|
|
2443
2455
|
createTypeSet(SolutionType.UNDEFINED),
|
|
2444
2456
|
createTypeSet(SolutionType.UNDEFINED),
|
|
2445
2457
|
],
|
|
2446
|
-
replace: function (r1, r2) { return "[]+"
|
|
2458
|
+
replace: function (r1, r2) { return "[]+".concat(r1, "+").concat(r2); },
|
|
2447
2459
|
solutionType: SolutionType.COMBINED_STRING,
|
|
2448
2460
|
},
|
|
2449
2461
|
{
|
|
@@ -2451,7 +2463,7 @@
|
|
|
2451
2463
|
createTypeSet(SolutionType.UNDEFINED),
|
|
2452
2464
|
createTypeSet(SolutionType.ALGEBRAIC, SolutionType.WEAK_ALGEBRAIC),
|
|
2453
2465
|
],
|
|
2454
|
-
replace: function (r1, r2) { return r1
|
|
2466
|
+
replace: function (r1, r2) { return "".concat(r1, "+[").concat(r2, "]"); },
|
|
2455
2467
|
solutionType: SolutionType.PREFIXED_STRING,
|
|
2456
2468
|
},
|
|
2457
2469
|
{
|
|
@@ -2459,7 +2471,7 @@
|
|
|
2459
2471
|
createTypeSet(SolutionType.UNDEFINED),
|
|
2460
2472
|
createTypeSet(SolutionType.PREFIXED_STRING),
|
|
2461
2473
|
],
|
|
2462
|
-
replace: function (r1, r2) { return r1
|
|
2474
|
+
replace: function (r1, r2) { return "".concat(r1, "+(").concat(r2, ")"); },
|
|
2463
2475
|
solutionType: SolutionType.PREFIXED_STRING,
|
|
2464
2476
|
},
|
|
2465
2477
|
{
|
|
@@ -2473,7 +2485,7 @@
|
|
|
2473
2485
|
createTypeSet(SolutionType.ALGEBRAIC),
|
|
2474
2486
|
createTypeSet(SolutionType.UNDEFINED, SolutionType.ALGEBRAIC, SolutionType.PREFIXED_STRING),
|
|
2475
2487
|
],
|
|
2476
|
-
replace: function (r1, r2) { return "["
|
|
2488
|
+
replace: function (r1, r2) { return "[".concat(r1, "]+").concat(r2); },
|
|
2477
2489
|
solutionType: SolutionType.COMBINED_STRING,
|
|
2478
2490
|
},
|
|
2479
2491
|
{
|
|
@@ -2481,7 +2493,7 @@
|
|
|
2481
2493
|
createTypeSet(SolutionType.ALGEBRAIC),
|
|
2482
2494
|
createTypeSet(SolutionType.WEAK_ALGEBRAIC),
|
|
2483
2495
|
],
|
|
2484
|
-
replace: function (r1, r2) { return r1
|
|
2496
|
+
replace: function (r1, r2) { return "".concat(r1, "+[").concat(r2, "]"); },
|
|
2485
2497
|
solutionType: SolutionType.PREFIXED_STRING,
|
|
2486
2498
|
},
|
|
2487
2499
|
{
|
|
@@ -2495,7 +2507,7 @@
|
|
|
2495
2507
|
createTypeSet(SolutionType.WEAK_ALGEBRAIC),
|
|
2496
2508
|
createTypeSet(SolutionType.UNDEFINED, SolutionType.ALGEBRAIC, SolutionType.PREFIXED_STRING),
|
|
2497
2509
|
],
|
|
2498
|
-
replace: function (r1, r2) { return "["
|
|
2510
|
+
replace: function (r1, r2) { return "[".concat(r1, "]+").concat(r2); },
|
|
2499
2511
|
solutionType: SolutionType.COMBINED_STRING,
|
|
2500
2512
|
},
|
|
2501
2513
|
{
|
|
@@ -2503,7 +2515,7 @@
|
|
|
2503
2515
|
createTypeSet(SolutionType.WEAK_ALGEBRAIC),
|
|
2504
2516
|
createTypeSet(SolutionType.WEAK_ALGEBRAIC),
|
|
2505
2517
|
],
|
|
2506
|
-
replace: function (r1, r2) { return r1
|
|
2518
|
+
replace: function (r1, r2) { return "".concat(r1, "+[").concat(r2, "]"); },
|
|
2507
2519
|
solutionType: SolutionType.WEAK_PREFIXED_STRING,
|
|
2508
2520
|
},
|
|
2509
2521
|
{
|
|
@@ -2576,18 +2588,10 @@
|
|
|
2576
2588
|
_this._solutions = [];
|
|
2577
2589
|
return _this;
|
|
2578
2590
|
}
|
|
2579
|
-
DynamicSolution.prototype.append = function (solution) {
|
|
2580
|
-
this._replacement = undefined;
|
|
2581
|
-
this._solutions.push(solution);
|
|
2582
|
-
};
|
|
2583
|
-
DynamicSolution.prototype.prepend = function (solution) {
|
|
2584
|
-
this._replacement = undefined;
|
|
2585
|
-
this._solutions.unshift(solution);
|
|
2586
|
-
};
|
|
2587
2591
|
Object.defineProperty(DynamicSolution.prototype, "replacement", {
|
|
2588
2592
|
get: function () {
|
|
2589
2593
|
var _a;
|
|
2590
|
-
var replacement = (_a = this._replacement) !== null && _a !== void 0 ? _a : (this._replacement = calculateReplacement(this._solutions));
|
|
2594
|
+
var replacement = (_a = this._replacement) !== null && _a !== void 0 ? _a : (this._replacement = this._replacement = calculateReplacement(this._solutions));
|
|
2591
2595
|
return replacement;
|
|
2592
2596
|
},
|
|
2593
2597
|
enumerable: false,
|
|
@@ -2626,6 +2630,14 @@
|
|
|
2626
2630
|
enumerable: false,
|
|
2627
2631
|
configurable: true
|
|
2628
2632
|
});
|
|
2633
|
+
DynamicSolution.prototype.append = function (solution) {
|
|
2634
|
+
this._replacement = undefined;
|
|
2635
|
+
this._solutions.push(solution);
|
|
2636
|
+
};
|
|
2637
|
+
DynamicSolution.prototype.prepend = function (solution) {
|
|
2638
|
+
this._replacement = undefined;
|
|
2639
|
+
this._solutions.unshift(solution);
|
|
2640
|
+
};
|
|
2629
2641
|
return DynamicSolution;
|
|
2630
2642
|
}(AbstractSolution));
|
|
2631
2643
|
var LazySolution = /** @class */ (function (_super) {
|
|
@@ -2647,7 +2659,7 @@
|
|
|
2647
2659
|
attributes.enumerable = true;
|
|
2648
2660
|
Object.defineProperty(this, 'replacement', attributes);
|
|
2649
2661
|
};
|
|
2650
|
-
return LazySolution;
|
|
2662
|
+
return (LazySolution);
|
|
2651
2663
|
}(AbstractSolution));
|
|
2652
2664
|
var SimpleSolution = /** @class */ (function (_super) {
|
|
2653
2665
|
__extends(SimpleSolution, _super);
|
|
@@ -2682,7 +2694,7 @@
|
|
|
2682
2694
|
}
|
|
2683
2695
|
var getAppendableReplacement = function (_a) {
|
|
2684
2696
|
var replacement = _a.replacement, type = _a.type;
|
|
2685
|
-
return isWeak(type) ? "+("
|
|
2697
|
+
return isWeak(type) ? "+(".concat(replacement, ")") : "+".concat(replacement);
|
|
2686
2698
|
};
|
|
2687
2699
|
var getReplacement = function (_a) {
|
|
2688
2700
|
var replacement = _a.replacement;
|
|
@@ -2769,40 +2781,40 @@
|
|
|
2769
2781
|
return otherArgName;
|
|
2770
2782
|
}
|
|
2771
2783
|
|
|
2772
|
-
function
|
|
2784
|
+
function createCharDefinitionInFn(expr, index, paddingEntries)
|
|
2773
2785
|
{
|
|
2774
|
-
function
|
|
2786
|
+
function charDefinitionInFn(char)
|
|
2775
2787
|
{
|
|
2776
2788
|
var solution =
|
|
2777
2789
|
this._resolveCharInExpr(char, expr, index, paddingEntries, FH_R_PADDING_SHIFTS);
|
|
2778
2790
|
return solution;
|
|
2779
2791
|
}
|
|
2780
2792
|
|
|
2781
|
-
return
|
|
2793
|
+
return charDefinitionInFn;
|
|
2782
2794
|
}
|
|
2783
2795
|
|
|
2784
|
-
function
|
|
2796
|
+
function createCharDefinitionInFnBody(offset)
|
|
2785
2797
|
{
|
|
2786
|
-
function
|
|
2798
|
+
function charDefinitionInFnBody(char)
|
|
2787
2799
|
{
|
|
2788
2800
|
var solution =
|
|
2789
2801
|
this._resolveCharInNativeFunction(char, offset, getFBPaddingEntries, FB_R_PADDING_SHIFTS);
|
|
2790
2802
|
return solution;
|
|
2791
2803
|
}
|
|
2792
2804
|
|
|
2793
|
-
return
|
|
2805
|
+
return charDefinitionInFnBody;
|
|
2794
2806
|
}
|
|
2795
2807
|
|
|
2796
|
-
function
|
|
2808
|
+
function createCharDefinitionInFnHead(offset)
|
|
2797
2809
|
{
|
|
2798
|
-
function
|
|
2810
|
+
function charDefinitionInFnHead(char)
|
|
2799
2811
|
{
|
|
2800
2812
|
var solution =
|
|
2801
2813
|
this._resolveCharInNativeFunction(char, offset, getFHPaddingEntries, FH_R_PADDING_SHIFTS);
|
|
2802
2814
|
return solution;
|
|
2803
2815
|
}
|
|
2804
2816
|
|
|
2805
|
-
return
|
|
2817
|
+
return charDefinitionInFnHead;
|
|
2806
2818
|
}
|
|
2807
2819
|
|
|
2808
2820
|
function createLazySolution(source, expr, type)
|
|
@@ -3119,14 +3131,6 @@
|
|
|
3119
3131
|
return charDefaultDefinition;
|
|
3120
3132
|
}
|
|
3121
3133
|
|
|
3122
|
-
function defineCharAtFnPos(expr, index)
|
|
3123
|
-
{
|
|
3124
|
-
var paddingEntries = getFHPaddingEntries(index);
|
|
3125
|
-
var definition = createCharAtFnPosDefinition(expr, index, paddingEntries);
|
|
3126
|
-
var entry = define._callWithFeatures(definition, arguments, 2);
|
|
3127
|
-
return entry;
|
|
3128
|
-
}
|
|
3129
|
-
|
|
3130
3134
|
function defineCharDefault(opts)
|
|
3131
3135
|
{
|
|
3132
3136
|
function checkOpt(optName)
|
|
@@ -3144,16 +3148,78 @@
|
|
|
3144
3148
|
return entry;
|
|
3145
3149
|
}
|
|
3146
3150
|
|
|
3147
|
-
|
|
3151
|
+
/**
|
|
3152
|
+
* Defines a character at a specified position in the string representation of a specified
|
|
3153
|
+
* native function.
|
|
3154
|
+
* Engine-dependent padding/shifting is used to account for spacing characters inserted before
|
|
3155
|
+
* the function head by specific engines.
|
|
3156
|
+
*
|
|
3157
|
+
* @param {string} expr
|
|
3158
|
+
* An expression that resolves to a native function.
|
|
3159
|
+
*
|
|
3160
|
+
* @param {number} index
|
|
3161
|
+
* The index of the character to be extracted in engines that do not insert any spacing
|
|
3162
|
+
* characters before the function head, e.g. V8.
|
|
3163
|
+
*
|
|
3164
|
+
* @param ...
|
|
3165
|
+
* Required features for the definition.
|
|
3166
|
+
*
|
|
3167
|
+
* @returns
|
|
3168
|
+
* A definition entry for the specified character.
|
|
3169
|
+
*/
|
|
3170
|
+
function defineCharInFn(expr, index)
|
|
3148
3171
|
{
|
|
3149
|
-
var
|
|
3172
|
+
var paddingEntries = getFHPaddingEntries(index);
|
|
3173
|
+
var definition = createCharDefinitionInFn(expr, index, paddingEntries);
|
|
3174
|
+
var entry = define._callWithFeatures(definition, arguments, 2);
|
|
3175
|
+
return entry;
|
|
3176
|
+
}
|
|
3177
|
+
|
|
3178
|
+
/**
|
|
3179
|
+
* Defines a character at a specified position in the string representation of an arbitrary
|
|
3180
|
+
* native function.
|
|
3181
|
+
* Engine-dependent padding/shifting is used to account for spacing characters inserted before
|
|
3182
|
+
* the function head and body by specific engines.
|
|
3183
|
+
*
|
|
3184
|
+
* @param {string} expr
|
|
3185
|
+
* An expression that resolves to a native function.
|
|
3186
|
+
*
|
|
3187
|
+
* @param {number} index
|
|
3188
|
+
* The index of the character to be extracted in engines that do not insert any spacing
|
|
3189
|
+
* characters before the function head and body, e.g. V8.
|
|
3190
|
+
*
|
|
3191
|
+
* @returns
|
|
3192
|
+
* A definition entry for the specified character.
|
|
3193
|
+
*/
|
|
3194
|
+
function defineCharInFnBody(offset)
|
|
3195
|
+
{
|
|
3196
|
+
var definition = createCharDefinitionInFnBody(offset);
|
|
3150
3197
|
var entry = define(definition);
|
|
3151
3198
|
return entry;
|
|
3152
3199
|
}
|
|
3153
3200
|
|
|
3154
|
-
|
|
3201
|
+
/**
|
|
3202
|
+
* Defines a character at a specified position in the string representation of an arbitrary
|
|
3203
|
+
* native function.
|
|
3204
|
+
* Engine-dependent padding/shifting is used to account for spacing characters inserted before
|
|
3205
|
+
* the function head by specific engines.
|
|
3206
|
+
*
|
|
3207
|
+
* @param {string} expr
|
|
3208
|
+
* An expression that resolves to a native function.
|
|
3209
|
+
*
|
|
3210
|
+
* @param {number} index
|
|
3211
|
+
* The index of the character to be extracted in engines that do not insert any spacing
|
|
3212
|
+
* characters before the function head, e.g. V8.
|
|
3213
|
+
*
|
|
3214
|
+
* @param ...
|
|
3215
|
+
* Required features for the definition.
|
|
3216
|
+
*
|
|
3217
|
+
* @returns
|
|
3218
|
+
* A definition entry for the specified character.
|
|
3219
|
+
*/
|
|
3220
|
+
function defineCharInFnHead(offset)
|
|
3155
3221
|
{
|
|
3156
|
-
var definition =
|
|
3222
|
+
var definition = createCharDefinitionInFnHead(offset);
|
|
3157
3223
|
var entry = define._callWithFeatures(definition, arguments, 1);
|
|
3158
3224
|
return entry;
|
|
3159
3225
|
}
|
|
@@ -3334,6 +3400,12 @@
|
|
|
3334
3400
|
CHARACTERS =
|
|
3335
3401
|
noProto
|
|
3336
3402
|
({
|
|
3403
|
+
// '\0'…'\x07'
|
|
3404
|
+
'\b':
|
|
3405
|
+
[
|
|
3406
|
+
define('Function("return\\"" + ESCAPING_BACKSLASH + "b\\"")()[0]'),
|
|
3407
|
+
defineCharDefault({ escSeq: false }),
|
|
3408
|
+
],
|
|
3337
3409
|
'\t':
|
|
3338
3410
|
[
|
|
3339
3411
|
define('Function("return\\"" + ESCAPING_BACKSLASH + "true\\"")()[0]'),
|
|
@@ -3345,9 +3417,13 @@
|
|
|
3345
3417
|
define('(RP_1_WA + Function())[20]', FUNCTION_19_LF),
|
|
3346
3418
|
define('(RP_0_S + Function())[22]', FUNCTION_22_LF),
|
|
3347
3419
|
define('(RP_0_S + ANY_FUNCTION)[0]', IE_SRC),
|
|
3348
|
-
|
|
3420
|
+
defineCharInFnHead(13, NO_V8_SRC),
|
|
3421
|
+
],
|
|
3422
|
+
'\v':
|
|
3423
|
+
[
|
|
3424
|
+
define('Function("return\\"" + ESCAPING_BACKSLASH + "v\\"")()[0]'),
|
|
3425
|
+
defineCharDefault({ escSeq: false }),
|
|
3349
3426
|
],
|
|
3350
|
-
|
|
3351
3427
|
'\f':
|
|
3352
3428
|
[
|
|
3353
3429
|
define('Function("return\\"" + ESCAPING_BACKSLASH + "false\\"")()[0]'),
|
|
@@ -3358,15 +3434,15 @@
|
|
|
3358
3434
|
define('Function("return\\"" + ESCAPING_BACKSLASH + "r\\"")()'),
|
|
3359
3435
|
defineCharDefault({ escSeq: false }),
|
|
3360
3436
|
],
|
|
3361
|
-
|
|
3437
|
+
// '\x0e'…'\x1d'
|
|
3362
3438
|
'\x1e':
|
|
3363
3439
|
[
|
|
3364
3440
|
define('(RP_5_A + atob("NaNfalse"))[10]', ATOB),
|
|
3365
3441
|
],
|
|
3366
|
-
|
|
3442
|
+
// '\x1f'
|
|
3367
3443
|
' ':
|
|
3368
3444
|
[
|
|
3369
|
-
|
|
3445
|
+
defineCharInFn('ANY_FUNCTION', 8),
|
|
3370
3446
|
define('(RP_3_WA + ARRAY_ITERATOR)[10]', ARRAY_ITERATOR),
|
|
3371
3447
|
define('(RP_0_S + FILTER)[20]', FF_SRC),
|
|
3372
3448
|
define('(+(RP_0_S + FILTER)[0] + FILTER)[22]', NO_FF_SRC),
|
|
@@ -3381,7 +3457,7 @@
|
|
|
3381
3457
|
define('(RP_5_A + FLAT)[20]', FLAT, NO_IE_SRC),
|
|
3382
3458
|
define('(RP_0_S + FLAT)[20]', FLAT, NO_V8_SRC),
|
|
3383
3459
|
],
|
|
3384
|
-
// '!'
|
|
3460
|
+
// '!'
|
|
3385
3461
|
'"':
|
|
3386
3462
|
[
|
|
3387
3463
|
define('"".fontcolor()[12]'),
|
|
@@ -3391,7 +3467,7 @@
|
|
|
3391
3467
|
define('document.nodeName[0]', ANY_DOCUMENT),
|
|
3392
3468
|
defineCharDefault(),
|
|
3393
3469
|
],
|
|
3394
|
-
// '$'
|
|
3470
|
+
// '$'
|
|
3395
3471
|
'%':
|
|
3396
3472
|
[
|
|
3397
3473
|
define('escape(FILTER)[20]'),
|
|
@@ -3409,16 +3485,16 @@
|
|
|
3409
3485
|
define('"".fontcolor("".fontcolor([]))[31]', ESC_HTML_QUOT_ONLY),
|
|
3410
3486
|
defineCharDefault(),
|
|
3411
3487
|
],
|
|
3412
|
-
// '\''
|
|
3488
|
+
// '\''
|
|
3413
3489
|
'(':
|
|
3414
3490
|
[
|
|
3415
|
-
|
|
3491
|
+
defineCharInFnHead(9),
|
|
3416
3492
|
],
|
|
3417
3493
|
')':
|
|
3418
3494
|
[
|
|
3419
|
-
|
|
3495
|
+
defineCharInFnHead(10),
|
|
3420
3496
|
],
|
|
3421
|
-
// '*'
|
|
3497
|
+
// '*'
|
|
3422
3498
|
'+': '(1e100 + [])[2]',
|
|
3423
3499
|
',':
|
|
3424
3500
|
[
|
|
@@ -3432,7 +3508,7 @@
|
|
|
3432
3508
|
define('"0false".italics()[10]'),
|
|
3433
3509
|
define('"true".sub()[10]'),
|
|
3434
3510
|
],
|
|
3435
|
-
// '0'…'9'
|
|
3511
|
+
// '0'…'9'
|
|
3436
3512
|
':':
|
|
3437
3513
|
[
|
|
3438
3514
|
define('(RP_0_S + RegExp())[3]'),
|
|
@@ -3465,15 +3541,15 @@
|
|
|
3465
3541
|
define('(RP_0_S + RegExp())[2]'),
|
|
3466
3542
|
defineCharDefault(),
|
|
3467
3543
|
],
|
|
3468
|
-
// '@'
|
|
3544
|
+
// '@'
|
|
3469
3545
|
'A':
|
|
3470
3546
|
[
|
|
3471
|
-
|
|
3547
|
+
defineCharInFn('Array', 9),
|
|
3472
3548
|
define('(RP_3_WA + ARRAY_ITERATOR)[11]', ARRAY_ITERATOR),
|
|
3473
3549
|
],
|
|
3474
3550
|
'B':
|
|
3475
3551
|
[
|
|
3476
|
-
|
|
3552
|
+
defineCharInFn('Boolean', 9),
|
|
3477
3553
|
define('"0".sub()[10]', CAPITAL_HTML),
|
|
3478
3554
|
],
|
|
3479
3555
|
'C':
|
|
@@ -3488,7 +3564,7 @@
|
|
|
3488
3564
|
],
|
|
3489
3565
|
'D':
|
|
3490
3566
|
[
|
|
3491
|
-
//
|
|
3567
|
+
// * The escaped character may be either "]" or "}".
|
|
3492
3568
|
define('escape((+("1000" + (RP_5_A + FILTER + 0)[40] + 0) + FILTER)[40])[2]'), // *
|
|
3493
3569
|
define('escape("]")[2]'),
|
|
3494
3570
|
define('escape("}")[2]'),
|
|
@@ -3514,7 +3590,7 @@
|
|
|
3514
3590
|
],
|
|
3515
3591
|
'E':
|
|
3516
3592
|
[
|
|
3517
|
-
|
|
3593
|
+
defineCharInFn('RegExp', 12),
|
|
3518
3594
|
define('btoa("0NaN")[1]', ATOB),
|
|
3519
3595
|
define('(RP_5_A + "".link())[10]', CAPITAL_HTML),
|
|
3520
3596
|
define('(RP_3_WA + Audio)[21]', HTMLAUDIOELEMENT),
|
|
@@ -3522,7 +3598,7 @@
|
|
|
3522
3598
|
],
|
|
3523
3599
|
'F':
|
|
3524
3600
|
[
|
|
3525
|
-
|
|
3601
|
+
defineCharInFn('Function', 9),
|
|
3526
3602
|
define('"".fontcolor()[1]', CAPITAL_HTML),
|
|
3527
3603
|
],
|
|
3528
3604
|
'G':
|
|
@@ -3533,6 +3609,7 @@
|
|
|
3533
3609
|
],
|
|
3534
3610
|
'H':
|
|
3535
3611
|
[
|
|
3612
|
+
define('(RP_3_WA + document.createElement(false))[11]', ANY_DOCUMENT),
|
|
3536
3613
|
define('btoa(true)[1]', ATOB),
|
|
3537
3614
|
define('"".link()[3]', CAPITAL_HTML),
|
|
3538
3615
|
define
|
|
@@ -3554,6 +3631,7 @@
|
|
|
3554
3631
|
],
|
|
3555
3632
|
'L':
|
|
3556
3633
|
[
|
|
3634
|
+
define('(RP_0_S + document.createElement(false))[11]', ANY_DOCUMENT),
|
|
3557
3635
|
define('btoa(".")[0]', ATOB),
|
|
3558
3636
|
define('(RP_3_WA + "".fontcolor())[11]', CAPITAL_HTML),
|
|
3559
3637
|
define('(RP_0_S + Audio)[12]', HTMLAUDIOELEMENT),
|
|
@@ -3561,7 +3639,8 @@
|
|
|
3561
3639
|
define
|
|
3562
3640
|
(
|
|
3563
3641
|
{
|
|
3564
|
-
expr:
|
|
3642
|
+
expr:
|
|
3643
|
+
'Function("return toString.call(location)")()[SLICE_OR_SUBSTR]("-10")[1]',
|
|
3565
3644
|
optimize: true,
|
|
3566
3645
|
},
|
|
3567
3646
|
LOCATION
|
|
@@ -3575,7 +3654,8 @@
|
|
|
3575
3654
|
define
|
|
3576
3655
|
(
|
|
3577
3656
|
{
|
|
3578
|
-
expr:
|
|
3657
|
+
expr:
|
|
3658
|
+
'(Function("return toString.call(location)")() + RP_1_WA).at("-10")',
|
|
3579
3659
|
optimize: true,
|
|
3580
3660
|
},
|
|
3581
3661
|
AT,
|
|
@@ -3598,6 +3678,7 @@
|
|
|
3598
3678
|
],
|
|
3599
3679
|
'M':
|
|
3600
3680
|
[
|
|
3681
|
+
define('(RP_0_S + document.createElement(false))[10]', ANY_DOCUMENT),
|
|
3601
3682
|
define('btoa(0)[0]', ATOB),
|
|
3602
3683
|
define('"".small()[2]', CAPITAL_HTML),
|
|
3603
3684
|
define('(RP_0_S + self)[10]', DOMWINDOW),
|
|
@@ -3608,7 +3689,7 @@
|
|
|
3608
3689
|
'N': '"NaN"[0]',
|
|
3609
3690
|
'O':
|
|
3610
3691
|
[
|
|
3611
|
-
|
|
3692
|
+
defineCharInFn('Object', 9),
|
|
3612
3693
|
define('(RP_3_WA + PLAIN_OBJECT)[11]'),
|
|
3613
3694
|
define('btoa(NaN)[3]', ATOB),
|
|
3614
3695
|
define('"".fontcolor()[2]', CAPITAL_HTML),
|
|
@@ -3632,14 +3713,14 @@
|
|
|
3632
3713
|
],
|
|
3633
3714
|
'R':
|
|
3634
3715
|
[
|
|
3635
|
-
|
|
3716
|
+
defineCharInFn('RegExp', 9),
|
|
3636
3717
|
define('btoa("0true")[2]', ATOB),
|
|
3637
3718
|
define('"".fontcolor()[10]', CAPITAL_HTML),
|
|
3638
3719
|
define('(RP_3_WA + REGEXP_STRING_ITERATOR)[11]', REGEXP_STRING_ITERATOR),
|
|
3639
3720
|
],
|
|
3640
3721
|
'S':
|
|
3641
3722
|
[
|
|
3642
|
-
|
|
3723
|
+
defineCharInFn('String', 9),
|
|
3643
3724
|
define('"".sub()[1]', CAPITAL_HTML),
|
|
3644
3725
|
],
|
|
3645
3726
|
'T':
|
|
@@ -3721,7 +3802,7 @@
|
|
|
3721
3802
|
],
|
|
3722
3803
|
'[':
|
|
3723
3804
|
[
|
|
3724
|
-
|
|
3805
|
+
defineCharInFnBody(14),
|
|
3725
3806
|
define('(RP_0_S + ARRAY_ITERATOR)[0]', ARRAY_ITERATOR),
|
|
3726
3807
|
],
|
|
3727
3808
|
'\\':
|
|
@@ -3731,24 +3812,24 @@
|
|
|
3731
3812
|
],
|
|
3732
3813
|
']':
|
|
3733
3814
|
[
|
|
3734
|
-
|
|
3815
|
+
defineCharInFnBody(26),
|
|
3735
3816
|
define('(RP_0_S + ARRAY_ITERATOR)[22]', NO_OLD_SAFARI_ARRAY_ITERATOR),
|
|
3736
3817
|
],
|
|
3737
3818
|
'^':
|
|
3738
3819
|
[
|
|
3739
3820
|
define('atob("undefined0")[2]', ATOB),
|
|
3740
3821
|
],
|
|
3741
|
-
// '_'
|
|
3742
|
-
// '`'
|
|
3822
|
+
// '_'
|
|
3823
|
+
// '`'
|
|
3743
3824
|
'a': '"false"[1]',
|
|
3744
3825
|
'b':
|
|
3745
3826
|
[
|
|
3746
|
-
|
|
3827
|
+
defineCharInFn('Number', 12),
|
|
3747
3828
|
define('(RP_0_S + ARRAY_ITERATOR)[2]', ARRAY_ITERATOR),
|
|
3748
3829
|
],
|
|
3749
3830
|
'c':
|
|
3750
3831
|
[
|
|
3751
|
-
|
|
3832
|
+
defineCharInFn('ANY_FUNCTION', 3),
|
|
3752
3833
|
define('(RP_5_A + ARRAY_ITERATOR)[10]', ARRAY_ITERATOR),
|
|
3753
3834
|
],
|
|
3754
3835
|
'd': '"undefined"[2]',
|
|
@@ -3756,7 +3837,7 @@
|
|
|
3756
3837
|
'f': '"false"[0]',
|
|
3757
3838
|
'g':
|
|
3758
3839
|
[
|
|
3759
|
-
|
|
3840
|
+
defineCharInFn('String', 14),
|
|
3760
3841
|
],
|
|
3761
3842
|
'h':
|
|
3762
3843
|
[
|
|
@@ -3781,13 +3862,13 @@
|
|
|
3781
3862
|
'l': '"false"[2]',
|
|
3782
3863
|
'm':
|
|
3783
3864
|
[
|
|
3784
|
-
|
|
3865
|
+
defineCharInFn('Number', 11),
|
|
3785
3866
|
define('(RP_6_S + Function())[20]'),
|
|
3786
3867
|
],
|
|
3787
3868
|
'n': '"undefined"[1]',
|
|
3788
3869
|
'o':
|
|
3789
3870
|
[
|
|
3790
|
-
|
|
3871
|
+
defineCharInFn('ANY_FUNCTION', 6),
|
|
3791
3872
|
define('(RP_0_S + ARRAY_ITERATOR)[1]', ARRAY_ITERATOR),
|
|
3792
3873
|
],
|
|
3793
3874
|
'p':
|
|
@@ -3809,7 +3890,7 @@
|
|
|
3809
3890
|
'u': '"undefined"[0]',
|
|
3810
3891
|
'v':
|
|
3811
3892
|
[
|
|
3812
|
-
|
|
3893
|
+
defineCharInFnBody(19),
|
|
3813
3894
|
],
|
|
3814
3895
|
'w':
|
|
3815
3896
|
[
|
|
@@ -3833,14 +3914,15 @@
|
|
|
3833
3914
|
],
|
|
3834
3915
|
'{':
|
|
3835
3916
|
[
|
|
3836
|
-
|
|
3917
|
+
defineCharInFnHead(12),
|
|
3837
3918
|
],
|
|
3838
|
-
// '|'
|
|
3919
|
+
// '|'
|
|
3839
3920
|
'}':
|
|
3840
3921
|
[
|
|
3841
|
-
|
|
3922
|
+
defineCharInFnBody(28),
|
|
3842
3923
|
],
|
|
3843
|
-
// '~'
|
|
3924
|
+
// '~'
|
|
3925
|
+
// '\x7f'
|
|
3844
3926
|
|
|
3845
3927
|
'\x8a':
|
|
3846
3928
|
[
|
|
@@ -4084,8 +4166,8 @@
|
|
|
4084
4166
|
define
|
|
4085
4167
|
(
|
|
4086
4168
|
{
|
|
4087
|
-
expr:
|
|
4088
|
-
solutionType:
|
|
4169
|
+
expr: '(+(RP_0_S + FILTER)[0] + RegExp(FILTER))[23]',
|
|
4170
|
+
solutionType: SolutionType.STRING,
|
|
4089
4171
|
},
|
|
4090
4172
|
ESC_REGEXP_LF,
|
|
4091
4173
|
NO_V8_SRC
|
|
@@ -4100,8 +4182,8 @@
|
|
|
4100
4182
|
define
|
|
4101
4183
|
(
|
|
4102
4184
|
{
|
|
4103
|
-
expr:
|
|
4104
|
-
solutionType:
|
|
4185
|
+
expr: '(RP_1_WA + [+(RP_0_S + AT)[0]] + RegExp(AT))[20]',
|
|
4186
|
+
solutionType: SolutionType.STRING,
|
|
4105
4187
|
},
|
|
4106
4188
|
AT,
|
|
4107
4189
|
ESC_REGEXP_LF,
|
|
@@ -4124,8 +4206,8 @@
|
|
|
4124
4206
|
define
|
|
4125
4207
|
(
|
|
4126
4208
|
{
|
|
4127
|
-
expr:
|
|
4128
|
-
solutionType:
|
|
4209
|
+
expr: '(+(RP_0_S + FILL)[0] + RegExp(FILL))[21]',
|
|
4210
|
+
solutionType: SolutionType.STRING,
|
|
4129
4211
|
},
|
|
4130
4212
|
ESC_REGEXP_LF,
|
|
4131
4213
|
FILL,
|
|
@@ -4134,8 +4216,8 @@
|
|
|
4134
4216
|
define
|
|
4135
4217
|
(
|
|
4136
4218
|
{
|
|
4137
|
-
expr:
|
|
4138
|
-
solutionType:
|
|
4219
|
+
expr: '(+(RP_0_S + FLAT)[0] + RegExp(FLAT))[21]',
|
|
4220
|
+
solutionType: SolutionType.STRING,
|
|
4139
4221
|
},
|
|
4140
4222
|
ESC_REGEXP_LF,
|
|
4141
4223
|
FLAT,
|
|
@@ -4191,9 +4273,9 @@
|
|
|
4191
4273
|
define
|
|
4192
4274
|
(
|
|
4193
4275
|
{
|
|
4194
|
-
expr:
|
|
4195
|
-
optimize:
|
|
4196
|
-
solutionType:
|
|
4276
|
+
expr: '"toLocaleString"',
|
|
4277
|
+
optimize: true,
|
|
4278
|
+
solutionType: SolutionType.COMBINED_STRING,
|
|
4197
4279
|
}
|
|
4198
4280
|
),
|
|
4199
4281
|
],
|
|
@@ -4202,22 +4284,16 @@
|
|
|
4202
4284
|
define
|
|
4203
4285
|
(
|
|
4204
4286
|
{
|
|
4205
|
-
expr:
|
|
4206
|
-
optimize:
|
|
4207
|
-
solutionType:
|
|
4287
|
+
expr: '"toString"',
|
|
4288
|
+
optimize: { toStringOpt: false },
|
|
4289
|
+
solutionType: SolutionType.COMBINED_STRING,
|
|
4208
4290
|
}
|
|
4209
4291
|
),
|
|
4210
4292
|
],
|
|
4211
4293
|
TO_UPPER_CASE:
|
|
4212
4294
|
[
|
|
4213
4295
|
define
|
|
4214
|
-
(
|
|
4215
|
-
{
|
|
4216
|
-
expr: '"toUpperCase"',
|
|
4217
|
-
optimize: true,
|
|
4218
|
-
solutionType: SolutionType.COMBINED_STRING,
|
|
4219
|
-
}
|
|
4220
|
-
),
|
|
4296
|
+
({ expr: '"toUpperCase"', optimize: true, solutionType: SolutionType.COMBINED_STRING }),
|
|
4221
4297
|
],
|
|
4222
4298
|
|
|
4223
4299
|
// Function body extra padding blocks: prepended to a function to align the function's body
|
|
@@ -4268,31 +4344,31 @@
|
|
|
4268
4344
|
define
|
|
4269
4345
|
(
|
|
4270
4346
|
{
|
|
4271
|
-
expr:
|
|
4272
|
-
solutionType:
|
|
4347
|
+
expr: '+("10" + [(RP_4_A + FILTER)[40]] + "00000")',
|
|
4348
|
+
solutionType: SolutionType.WEAK_ALGEBRAIC,
|
|
4273
4349
|
}
|
|
4274
4350
|
),
|
|
4275
4351
|
define
|
|
4276
4352
|
(
|
|
4277
4353
|
{
|
|
4278
|
-
expr:
|
|
4279
|
-
solutionType:
|
|
4354
|
+
expr: '+("10" + [(RP_0_S + AT)[32]] + "00000")',
|
|
4355
|
+
solutionType: SolutionType.WEAK_ALGEBRAIC,
|
|
4280
4356
|
},
|
|
4281
4357
|
AT
|
|
4282
4358
|
),
|
|
4283
4359
|
define
|
|
4284
4360
|
(
|
|
4285
4361
|
{
|
|
4286
|
-
expr:
|
|
4287
|
-
solutionType:
|
|
4362
|
+
expr: '+("10" + [(RP_6_S + FILL)[40]] + "00000")',
|
|
4363
|
+
solutionType: SolutionType.WEAK_ALGEBRAIC,
|
|
4288
4364
|
},
|
|
4289
4365
|
FILL
|
|
4290
4366
|
),
|
|
4291
4367
|
define
|
|
4292
4368
|
(
|
|
4293
4369
|
{
|
|
4294
|
-
expr:
|
|
4295
|
-
solutionType:
|
|
4370
|
+
expr: '+("10" + [(RP_6_S + FLAT)[40]] + "00000")',
|
|
4371
|
+
solutionType: SolutionType.WEAK_ALGEBRAIC,
|
|
4296
4372
|
},
|
|
4297
4373
|
FLAT
|
|
4298
4374
|
),
|
|
@@ -4302,31 +4378,31 @@
|
|
|
4302
4378
|
define
|
|
4303
4379
|
(
|
|
4304
4380
|
{
|
|
4305
|
-
expr:
|
|
4306
|
-
solutionType:
|
|
4381
|
+
expr: '+("1000" + (RP_5_A + FILTER + 0)[40] + "000")',
|
|
4382
|
+
solutionType: SolutionType.WEAK_ALGEBRAIC,
|
|
4307
4383
|
}
|
|
4308
4384
|
),
|
|
4309
4385
|
define
|
|
4310
4386
|
(
|
|
4311
4387
|
{
|
|
4312
|
-
expr:
|
|
4313
|
-
solutionType:
|
|
4388
|
+
expr: '+("1000" + (AT + 0)[31] + "000")',
|
|
4389
|
+
solutionType: SolutionType.WEAK_ALGEBRAIC,
|
|
4314
4390
|
},
|
|
4315
4391
|
AT
|
|
4316
4392
|
),
|
|
4317
4393
|
define
|
|
4318
4394
|
(
|
|
4319
4395
|
{
|
|
4320
|
-
expr:
|
|
4321
|
-
solutionType:
|
|
4396
|
+
expr: '+("1000" + (FILL + 0)[33] + "000")',
|
|
4397
|
+
solutionType: SolutionType.WEAK_ALGEBRAIC,
|
|
4322
4398
|
},
|
|
4323
4399
|
FILL
|
|
4324
4400
|
),
|
|
4325
4401
|
define
|
|
4326
4402
|
(
|
|
4327
4403
|
{
|
|
4328
|
-
expr:
|
|
4329
|
-
solutionType:
|
|
4404
|
+
expr: '+("1000" + (FLAT + 0)[33] + "000")',
|
|
4405
|
+
solutionType: SolutionType.WEAK_ALGEBRAIC,
|
|
4330
4406
|
},
|
|
4331
4407
|
FLAT
|
|
4332
4408
|
),
|
|
@@ -4336,8 +4412,8 @@
|
|
|
4336
4412
|
define
|
|
4337
4413
|
(
|
|
4338
4414
|
{
|
|
4339
|
-
expr:
|
|
4340
|
-
solutionType:
|
|
4415
|
+
expr: '[true][+(RP_0_S + ANY_FUNCTION)[0]]',
|
|
4416
|
+
solutionType: SolutionType.UNDEFINED,
|
|
4341
4417
|
},
|
|
4342
4418
|
NO_FF_SRC
|
|
4343
4419
|
),
|
|
@@ -4372,15 +4448,15 @@
|
|
|
4372
4448
|
define
|
|
4373
4449
|
(
|
|
4374
4450
|
{
|
|
4375
|
-
expr:
|
|
4376
|
-
solutionType:
|
|
4451
|
+
expr: '+(1 + [+(RP_0_S + ANY_FUNCTION)[0]])',
|
|
4452
|
+
solutionType: SolutionType.WEAK_ALGEBRAIC,
|
|
4377
4453
|
}
|
|
4378
4454
|
),
|
|
4379
4455
|
define
|
|
4380
4456
|
(
|
|
4381
4457
|
{
|
|
4382
|
-
expr:
|
|
4383
|
-
solutionType:
|
|
4458
|
+
expr: '+(++(RP_0_S + ANY_FUNCTION)[0] + [0])',
|
|
4459
|
+
solutionType: SolutionType.WEAK_ALGEBRAIC,
|
|
4384
4460
|
},
|
|
4385
4461
|
INCR_CHAR
|
|
4386
4462
|
),
|
|
@@ -4402,8 +4478,8 @@
|
|
|
4402
4478
|
define
|
|
4403
4479
|
(
|
|
4404
4480
|
{
|
|
4405
|
-
expr:
|
|
4406
|
-
solutionType:
|
|
4481
|
+
expr: '!![[]][+(RP_0_S + ANY_FUNCTION)[0]]',
|
|
4482
|
+
solutionType: SolutionType.ALGEBRAIC,
|
|
4407
4483
|
}
|
|
4408
4484
|
),
|
|
4409
4485
|
define
|
|
@@ -4678,16 +4754,6 @@
|
|
|
4678
4754
|
}
|
|
4679
4755
|
)();
|
|
4680
4756
|
|
|
4681
|
-
var APPEND_LENGTH_OF_DIGIT_0 = 6;
|
|
4682
|
-
var APPEND_LENGTH_OF_DOT = 73;
|
|
4683
|
-
var APPEND_LENGTH_OF_FALSE = 4;
|
|
4684
|
-
var APPEND_LENGTH_OF_EMPTY = 3; // Append length of the empty array.
|
|
4685
|
-
var APPEND_LENGTH_OF_MINUS = 136;
|
|
4686
|
-
var APPEND_LENGTH_OF_PLUS_SIGN = 71;
|
|
4687
|
-
var APPEND_LENGTH_OF_SMALL_E = 26;
|
|
4688
|
-
|
|
4689
|
-
var APPEND_LENGTH_OF_DIGITS = [APPEND_LENGTH_OF_DIGIT_0, 8, 12, 17, 22, 27, 32, 37, 42, 47];
|
|
4690
|
-
|
|
4691
4757
|
// Recognized syntax elements include:
|
|
4692
4758
|
//
|
|
4693
4759
|
// • The boolean literals "true" and "false"
|
|
@@ -5278,29 +5344,15 @@
|
|
|
5278
5344
|
|
|
5279
5345
|
var expressParseCached$1 = expressParseCached;
|
|
5280
5346
|
|
|
5281
|
-
|
|
5282
|
-
|
|
5283
|
-
|
|
5284
|
-
|
|
5285
|
-
|
|
5286
|
-
|
|
5287
|
-
|
|
5288
|
-
return definitionCache[cacheKey];
|
|
5289
|
-
var definition;
|
|
5290
|
-
for (var entryIndex = entries.length; entryIndex--;)
|
|
5291
|
-
{
|
|
5292
|
-
var entry = entries[entryIndex];
|
|
5293
|
-
if (this.hasFeatures(entry.mask))
|
|
5294
|
-
{
|
|
5295
|
-
definition = entry.definition;
|
|
5296
|
-
break;
|
|
5297
|
-
}
|
|
5298
|
-
}
|
|
5299
|
-
definitionCache[cacheKey] = definition;
|
|
5300
|
-
return definition;
|
|
5301
|
-
}
|
|
5347
|
+
var APPEND_LENGTH_OF_DIGIT_0 = 6;
|
|
5348
|
+
var APPEND_LENGTH_OF_DOT = 73;
|
|
5349
|
+
var APPEND_LENGTH_OF_FALSE = 4;
|
|
5350
|
+
var APPEND_LENGTH_OF_EMPTY = 3; // Append length of the empty array.
|
|
5351
|
+
var APPEND_LENGTH_OF_MINUS = 136;
|
|
5352
|
+
var APPEND_LENGTH_OF_PLUS_SIGN = 71;
|
|
5353
|
+
var APPEND_LENGTH_OF_SMALL_E = 26;
|
|
5302
5354
|
|
|
5303
|
-
var
|
|
5355
|
+
var APPEND_LENGTH_OF_DIGITS = [APPEND_LENGTH_OF_DIGIT_0, 8, 12, 17, 22, 27, 32, 37, 42, 47];
|
|
5304
5356
|
|
|
5305
5357
|
var SCREW_NORMAL = 0;
|
|
5306
5358
|
var SCREW_AS_STRING = 1;
|
|
@@ -5460,6 +5512,129 @@
|
|
|
5460
5512
|
);
|
|
5461
5513
|
}
|
|
5462
5514
|
|
|
5515
|
+
function findDefinition(entries)
|
|
5516
|
+
{
|
|
5517
|
+
var cacheKey = entries.cacheKey;
|
|
5518
|
+
if (cacheKey === undefined)
|
|
5519
|
+
entries.cacheKey = cacheKey = ++lastCacheKey;
|
|
5520
|
+
var definitionCache = this._definitionCache;
|
|
5521
|
+
if (cacheKey in definitionCache)
|
|
5522
|
+
return definitionCache[cacheKey];
|
|
5523
|
+
var definition;
|
|
5524
|
+
for (var entryIndex = entries.length; entryIndex--;)
|
|
5525
|
+
{
|
|
5526
|
+
var entry = entries[entryIndex];
|
|
5527
|
+
if (this.hasFeatures(entry.mask))
|
|
5528
|
+
{
|
|
5529
|
+
definition = entry.definition;
|
|
5530
|
+
break;
|
|
5531
|
+
}
|
|
5532
|
+
}
|
|
5533
|
+
definitionCache[cacheKey] = definition;
|
|
5534
|
+
return definition;
|
|
5535
|
+
}
|
|
5536
|
+
|
|
5537
|
+
var lastCacheKey = 0;
|
|
5538
|
+
|
|
5539
|
+
function evalNumber(preMantissa, lastDigit, exp)
|
|
5540
|
+
{
|
|
5541
|
+
var value = +(preMantissa + lastDigit + 'e' + exp);
|
|
5542
|
+
return value;
|
|
5543
|
+
}
|
|
5544
|
+
|
|
5545
|
+
function formatPositiveNumber(number)
|
|
5546
|
+
{
|
|
5547
|
+
function getMantissa()
|
|
5548
|
+
{
|
|
5549
|
+
var lastDigitIndex = usefulDigits - 1;
|
|
5550
|
+
var preMantissa = digits.slice(0, lastDigitIndex);
|
|
5551
|
+
var lastDigit = +digits[lastDigitIndex];
|
|
5552
|
+
var value = evalNumber(preMantissa, lastDigit, exp);
|
|
5553
|
+
for (;;)
|
|
5554
|
+
{
|
|
5555
|
+
var decreasedLastDigit = lastDigit - 1;
|
|
5556
|
+
var newValue = evalNumber(preMantissa, decreasedLastDigit, exp);
|
|
5557
|
+
if (newValue !== value)
|
|
5558
|
+
break;
|
|
5559
|
+
lastDigit = decreasedLastDigit;
|
|
5560
|
+
}
|
|
5561
|
+
var mantissa = preMantissa + lastDigit;
|
|
5562
|
+
return mantissa;
|
|
5563
|
+
}
|
|
5564
|
+
|
|
5565
|
+
var str;
|
|
5566
|
+
var match = /^(\d+)(?:\.(\d+))?(?:e(.+))?$/.exec(number);
|
|
5567
|
+
var digitsAfterDot = match[2] || '';
|
|
5568
|
+
var digits = (match[1] + digitsAfterDot).replace(/^0+/, '');
|
|
5569
|
+
var usefulDigits = digits.search(/0*$/);
|
|
5570
|
+
var exp = (match[3] | 0) - digitsAfterDot.length + digits.length - usefulDigits;
|
|
5571
|
+
var mantissa = getMantissa();
|
|
5572
|
+
if (exp >= 0)
|
|
5573
|
+
{
|
|
5574
|
+
if (exp < 10)
|
|
5575
|
+
str = mantissa + extraZeros(exp);
|
|
5576
|
+
else if (exp % 100 === 99 && (exp > 99 || mantissa[1]))
|
|
5577
|
+
str = mantissa.replace(/.$/, '.$&e') + (exp + 1);
|
|
5578
|
+
else
|
|
5579
|
+
str = mantissa + 'e' + exp;
|
|
5580
|
+
}
|
|
5581
|
+
else
|
|
5582
|
+
{
|
|
5583
|
+
if (exp >= -mantissa.length)
|
|
5584
|
+
str = mantissa.slice(0, exp) + '.' + mantissa.slice(exp);
|
|
5585
|
+
else
|
|
5586
|
+
{
|
|
5587
|
+
var extraZeroCount = -mantissa.length - exp;
|
|
5588
|
+
var extraLength = APPEND_LENGTH_OF_DOT + APPEND_LENGTH_OF_DIGIT_0 * extraZeroCount;
|
|
5589
|
+
str =
|
|
5590
|
+
replaceNegativeExponential(mantissa, exp, extraLength) ||
|
|
5591
|
+
'.' + extraZeros(extraZeroCount) + mantissa;
|
|
5592
|
+
}
|
|
5593
|
+
}
|
|
5594
|
+
return str;
|
|
5595
|
+
}
|
|
5596
|
+
|
|
5597
|
+
function getMultiDigitLength(str)
|
|
5598
|
+
{
|
|
5599
|
+
var appendLength = 0;
|
|
5600
|
+
_Array_prototype_forEach_call
|
|
5601
|
+
(
|
|
5602
|
+
str,
|
|
5603
|
+
function (digit)
|
|
5604
|
+
{
|
|
5605
|
+
var digitAppendLength = APPEND_LENGTH_OF_DIGITS[digit];
|
|
5606
|
+
appendLength += digitAppendLength;
|
|
5607
|
+
}
|
|
5608
|
+
);
|
|
5609
|
+
return appendLength;
|
|
5610
|
+
}
|
|
5611
|
+
|
|
5612
|
+
function replaceNegativeExponential(mantissa, exp, rivalExtraLength)
|
|
5613
|
+
{
|
|
5614
|
+
var extraZeroCount;
|
|
5615
|
+
if (exp % 100 > 7 - 100)
|
|
5616
|
+
{
|
|
5617
|
+
if (exp % 10 > -7)
|
|
5618
|
+
extraZeroCount = 0;
|
|
5619
|
+
else
|
|
5620
|
+
extraZeroCount = 10 + exp % 10;
|
|
5621
|
+
}
|
|
5622
|
+
else
|
|
5623
|
+
extraZeroCount = 100 + exp % 100;
|
|
5624
|
+
mantissa += extraZeros(extraZeroCount);
|
|
5625
|
+
exp -= extraZeroCount;
|
|
5626
|
+
var extraLength =
|
|
5627
|
+
APPEND_LENGTH_OF_DIGIT_0 * extraZeroCount +
|
|
5628
|
+
APPEND_LENGTH_OF_SMALL_E +
|
|
5629
|
+
APPEND_LENGTH_OF_MINUS +
|
|
5630
|
+
getMultiDigitLength(_String$1(-exp));
|
|
5631
|
+
if (extraLength < rivalExtraLength)
|
|
5632
|
+
{
|
|
5633
|
+
var str = mantissa + 'e' + exp;
|
|
5634
|
+
return str;
|
|
5635
|
+
}
|
|
5636
|
+
}
|
|
5637
|
+
|
|
5463
5638
|
function findBase64AlphabetDefinition(encoder, element)
|
|
5464
5639
|
{
|
|
5465
5640
|
var definition;
|
|
@@ -5677,12 +5852,6 @@
|
|
|
5677
5852
|
return solution;
|
|
5678
5853
|
}
|
|
5679
5854
|
|
|
5680
|
-
function evalNumber(preMantissa, lastDigit, exp)
|
|
5681
|
-
{
|
|
5682
|
-
var value = +(preMantissa + lastDigit + 'e' + exp);
|
|
5683
|
-
return value;
|
|
5684
|
-
}
|
|
5685
|
-
|
|
5686
5855
|
function findOptimalSolution(encoder, source, entries, defaultSolutionType)
|
|
5687
5856
|
{
|
|
5688
5857
|
var optimalSolution;
|
|
@@ -5706,73 +5875,6 @@
|
|
|
5706
5875
|
return optimalSolution;
|
|
5707
5876
|
}
|
|
5708
5877
|
|
|
5709
|
-
function formatPositiveNumber(number)
|
|
5710
|
-
{
|
|
5711
|
-
function getMantissa()
|
|
5712
|
-
{
|
|
5713
|
-
var lastDigitIndex = usefulDigits - 1;
|
|
5714
|
-
var preMantissa = digits.slice(0, lastDigitIndex);
|
|
5715
|
-
var lastDigit = +digits[lastDigitIndex];
|
|
5716
|
-
var value = evalNumber(preMantissa, lastDigit, exp);
|
|
5717
|
-
for (;;)
|
|
5718
|
-
{
|
|
5719
|
-
var decreasedLastDigit = lastDigit - 1;
|
|
5720
|
-
var newValue = evalNumber(preMantissa, decreasedLastDigit, exp);
|
|
5721
|
-
if (newValue !== value)
|
|
5722
|
-
break;
|
|
5723
|
-
lastDigit = decreasedLastDigit;
|
|
5724
|
-
}
|
|
5725
|
-
var mantissa = preMantissa + lastDigit;
|
|
5726
|
-
return mantissa;
|
|
5727
|
-
}
|
|
5728
|
-
|
|
5729
|
-
var str;
|
|
5730
|
-
var match = /^(\d+)(?:\.(\d+))?(?:e(.+))?$/.exec(number);
|
|
5731
|
-
var digitsAfterDot = match[2] || '';
|
|
5732
|
-
var digits = (match[1] + digitsAfterDot).replace(/^0+/, '');
|
|
5733
|
-
var usefulDigits = digits.search(/0*$/);
|
|
5734
|
-
var exp = (match[3] | 0) - digitsAfterDot.length + digits.length - usefulDigits;
|
|
5735
|
-
var mantissa = getMantissa();
|
|
5736
|
-
if (exp >= 0)
|
|
5737
|
-
{
|
|
5738
|
-
if (exp < 10)
|
|
5739
|
-
str = mantissa + extraZeros(exp);
|
|
5740
|
-
else if (exp % 100 === 99 && (exp > 99 || mantissa[1]))
|
|
5741
|
-
str = mantissa.replace(/.$/, '.$&e') + (exp + 1);
|
|
5742
|
-
else
|
|
5743
|
-
str = mantissa + 'e' + exp;
|
|
5744
|
-
}
|
|
5745
|
-
else
|
|
5746
|
-
{
|
|
5747
|
-
if (exp >= -mantissa.length)
|
|
5748
|
-
str = mantissa.slice(0, exp) + '.' + mantissa.slice(exp);
|
|
5749
|
-
else
|
|
5750
|
-
{
|
|
5751
|
-
var extraZeroCount = -mantissa.length - exp;
|
|
5752
|
-
var extraLength = APPEND_LENGTH_OF_DOT + APPEND_LENGTH_OF_DIGIT_0 * extraZeroCount;
|
|
5753
|
-
str =
|
|
5754
|
-
replaceNegativeExponential(mantissa, exp, extraLength) ||
|
|
5755
|
-
'.' + extraZeros(extraZeroCount) + mantissa;
|
|
5756
|
-
}
|
|
5757
|
-
}
|
|
5758
|
-
return str;
|
|
5759
|
-
}
|
|
5760
|
-
|
|
5761
|
-
function getMultiDigitLength(str)
|
|
5762
|
-
{
|
|
5763
|
-
var appendLength = 0;
|
|
5764
|
-
_Array_prototype_forEach_call
|
|
5765
|
-
(
|
|
5766
|
-
str,
|
|
5767
|
-
function (digit)
|
|
5768
|
-
{
|
|
5769
|
-
var digitAppendLength = APPEND_LENGTH_OF_DIGITS[digit];
|
|
5770
|
-
appendLength += digitAppendLength;
|
|
5771
|
-
}
|
|
5772
|
-
);
|
|
5773
|
-
return appendLength;
|
|
5774
|
-
}
|
|
5775
|
-
|
|
5776
5878
|
function getReplacers(optimize)
|
|
5777
5879
|
{
|
|
5778
5880
|
var replaceString =
|
|
@@ -5827,39 +5929,6 @@
|
|
|
5827
5929
|
return replacement;
|
|
5828
5930
|
}
|
|
5829
5931
|
|
|
5830
|
-
function replaceMultiDigitNumber(number)
|
|
5831
|
-
{
|
|
5832
|
-
var str = formatPositiveNumber(number);
|
|
5833
|
-
var replacement = replaceStaticString(str);
|
|
5834
|
-
return replacement;
|
|
5835
|
-
}
|
|
5836
|
-
|
|
5837
|
-
function replaceNegativeExponential(mantissa, exp, rivalExtraLength)
|
|
5838
|
-
{
|
|
5839
|
-
var extraZeroCount;
|
|
5840
|
-
if (exp % 100 > 7 - 100)
|
|
5841
|
-
{
|
|
5842
|
-
if (exp % 10 > -7)
|
|
5843
|
-
extraZeroCount = 0;
|
|
5844
|
-
else
|
|
5845
|
-
extraZeroCount = 10 + exp % 10;
|
|
5846
|
-
}
|
|
5847
|
-
else
|
|
5848
|
-
extraZeroCount = 100 + exp % 100;
|
|
5849
|
-
mantissa += extraZeros(extraZeroCount);
|
|
5850
|
-
exp -= extraZeroCount;
|
|
5851
|
-
var extraLength =
|
|
5852
|
-
APPEND_LENGTH_OF_DIGIT_0 * extraZeroCount +
|
|
5853
|
-
APPEND_LENGTH_OF_SMALL_E +
|
|
5854
|
-
APPEND_LENGTH_OF_MINUS +
|
|
5855
|
-
getMultiDigitLength(_String$1(-exp));
|
|
5856
|
-
if (extraLength < rivalExtraLength)
|
|
5857
|
-
{
|
|
5858
|
-
var str = mantissa + 'e' + exp;
|
|
5859
|
-
return str;
|
|
5860
|
-
}
|
|
5861
|
-
}
|
|
5862
|
-
|
|
5863
5932
|
function replacePrimaryExpr(encoder, unit, bondStrength, unitIndices, maxLength, replacers)
|
|
5864
5933
|
{
|
|
5865
5934
|
var MIN_APPEND_LENGTH = 3;
|
|
@@ -6078,11 +6147,11 @@
|
|
|
6078
6147
|
throwSyntaxError(this, 'Undefined regular padding block with length ' + length);
|
|
6079
6148
|
},
|
|
6080
6149
|
|
|
6081
|
-
_replaceCharByAtob:
|
|
6150
|
+
_replaceCharByAtob: replaceCharByAtob,
|
|
6082
6151
|
|
|
6083
6152
|
_replaceCharByCharCode: replaceCharByCharCode,
|
|
6084
6153
|
|
|
6085
|
-
_replaceCharByEscSeq:
|
|
6154
|
+
_replaceCharByEscSeq: replaceCharByEscSeq,
|
|
6086
6155
|
|
|
6087
6156
|
_replaceCharByUnescape: replaceCharByUnescape,
|
|
6088
6157
|
|
|
@@ -6188,9 +6257,9 @@
|
|
|
6188
6257
|
return solution;
|
|
6189
6258
|
},
|
|
6190
6259
|
|
|
6191
|
-
constantDefinitions:
|
|
6260
|
+
constantDefinitions: CONSTANTS,
|
|
6192
6261
|
|
|
6193
|
-
findDefinition:
|
|
6262
|
+
findDefinition: findDefinition,
|
|
6194
6263
|
|
|
6195
6264
|
hasFeatures:
|
|
6196
6265
|
function (mask)
|
|
@@ -6209,7 +6278,7 @@
|
|
|
6209
6278
|
// Internet Explorer on Windows Phone occasionally failed the extreme decoding test in a
|
|
6210
6279
|
// non-reproducible manner, although the issue seems to be related to the output size rather
|
|
6211
6280
|
// than the grouping threshold setting.
|
|
6212
|
-
maxGroupThreshold:
|
|
6281
|
+
maxGroupThreshold: 1800,
|
|
6213
6282
|
|
|
6214
6283
|
replaceExpr:
|
|
6215
6284
|
function (expr, optimize)
|
|
@@ -6288,7 +6357,6 @@
|
|
|
6288
6357
|
* @returns {string|undefined}
|
|
6289
6358
|
* The replacement string or `undefined`.
|
|
6290
6359
|
*/
|
|
6291
|
-
|
|
6292
6360
|
replaceString:
|
|
6293
6361
|
function (str, options)
|
|
6294
6362
|
{
|
|
@@ -7727,7 +7795,6 @@
|
|
|
7727
7795
|
* @returns {string|undefined}
|
|
7728
7796
|
* The replacement string or `undefined`.
|
|
7729
7797
|
*/
|
|
7730
|
-
|
|
7731
7798
|
replaceStringArray:
|
|
7732
7799
|
function (array, insertions, substitutions, forceString, maxLength)
|
|
7733
7800
|
{
|
|
@@ -8239,6 +8306,29 @@
|
|
|
8239
8306
|
var MIN_SOLUTION_SPAN = 2;
|
|
8240
8307
|
var RADIX_REPLACEMENTS = [];
|
|
8241
8308
|
|
|
8309
|
+
// DECIMAL_MIN_LENGTHS is indexed by decimalDigitMaxCount (the number of digits used to write
|
|
8310
|
+
// MAX_SAFE_INTEGER in base radix).
|
|
8311
|
+
// decimalDigitMaxCount may only range from 11 (for radix 36) to 15 (for radix 12).
|
|
8312
|
+
var DECIMAL_MIN_LENGTHS =
|
|
8313
|
+
[
|
|
8314
|
+
,
|
|
8315
|
+
,
|
|
8316
|
+
,
|
|
8317
|
+
,
|
|
8318
|
+
,
|
|
8319
|
+
,
|
|
8320
|
+
,
|
|
8321
|
+
,
|
|
8322
|
+
,
|
|
8323
|
+
,
|
|
8324
|
+
,
|
|
8325
|
+
48, // 1e10
|
|
8326
|
+
50, // 1e11
|
|
8327
|
+
54, // 1e12
|
|
8328
|
+
,
|
|
8329
|
+
64, // 1e14
|
|
8330
|
+
];
|
|
8331
|
+
|
|
8242
8332
|
function createOptimizer$1(toStringReplacement)
|
|
8243
8333
|
{
|
|
8244
8334
|
function appendLengthOf(solution)
|
|
@@ -8288,7 +8378,8 @@
|
|
|
8288
8378
|
var decimal = _parseInt(chars, radix);
|
|
8289
8379
|
if (decimal > MAX_SAFE_INTEGER)
|
|
8290
8380
|
return clusterAppendLength == null;
|
|
8291
|
-
var
|
|
8381
|
+
var decimalStr = formatPositiveNumber(decimal);
|
|
8382
|
+
var decimalReplacement = replaceStaticString(decimalStr);
|
|
8292
8383
|
// Adding 3 for leading "+(" and trailing ")".
|
|
8293
8384
|
var decimalLength = decimalReplacement.length + 3;
|
|
8294
8385
|
var radixReplacement = RADIX_REPLACEMENTS[radix];
|
|
@@ -8405,33 +8496,10 @@
|
|
|
8405
8496
|
var initialize =
|
|
8406
8497
|
function ()
|
|
8407
8498
|
{
|
|
8408
|
-
// DECIMAL_MIN_LENGTHS is indexed by decimalDigitMaxCount (the number of digits used to write
|
|
8409
|
-
// MAX_SAFE_INTEGER in base radix).
|
|
8410
|
-
// decimalDigitMaxCount may only range from 11 (for radix 36) to 15 (for radix 12).
|
|
8411
|
-
var DECIMAL_MIN_LENGTHS =
|
|
8412
|
-
[
|
|
8413
|
-
,
|
|
8414
|
-
,
|
|
8415
|
-
,
|
|
8416
|
-
,
|
|
8417
|
-
,
|
|
8418
|
-
,
|
|
8419
|
-
,
|
|
8420
|
-
,
|
|
8421
|
-
,
|
|
8422
|
-
,
|
|
8423
|
-
,
|
|
8424
|
-
48, // 1e10
|
|
8425
|
-
50, // 1e11
|
|
8426
|
-
54, // 1e12
|
|
8427
|
-
,
|
|
8428
|
-
64, // 1e14
|
|
8429
|
-
];
|
|
8430
|
-
|
|
8431
8499
|
var minLength = Infinity;
|
|
8432
8500
|
for (var radix = MAX_RADIX; radix >= 12; --radix)
|
|
8433
8501
|
{
|
|
8434
|
-
var replacement =
|
|
8502
|
+
var replacement = replaceStaticString(_String$1(radix));
|
|
8435
8503
|
var length = replacement.length;
|
|
8436
8504
|
if (length < minLength)
|
|
8437
8505
|
minLength = length;
|
|
@@ -8886,4 +8954,4 @@
|
|
|
8886
8954
|
)();
|
|
8887
8955
|
}
|
|
8888
8956
|
|
|
8889
|
-
}()
|
|
8957
|
+
})();
|