jass 0.9.1 → 0.9.3
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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/jass.rb +5 -0
- data/lib/jass/compiler.rb +5 -0
- data/lib/jass/plugin.rb +2 -1
- data/lib/jass/version.rb +1 -1
- data/vendor/node_modules/@types/estree/index.d.ts +4 -2
- data/vendor/node_modules/@types/estree/package.json +2 -2
- data/vendor/node_modules/acorn/bin/_acorn.js +12 -12
- data/vendor/node_modules/acorn/bin/run_test262.js +2 -3
- data/vendor/node_modules/acorn/bin/test262.whitelist +0 -5
- data/vendor/node_modules/acorn/dist/acorn.es.js +76 -68
- data/vendor/node_modules/acorn/dist/acorn.js +76 -68
- data/vendor/node_modules/acorn/dist/acorn_loose.es.js +42 -30
- data/vendor/node_modules/acorn/dist/acorn_loose.js +42 -30
- data/vendor/node_modules/acorn/dist/walk.es.js +47 -43
- data/vendor/node_modules/acorn/dist/walk.js +47 -43
- data/vendor/node_modules/acorn/package.json +9 -5
- data/vendor/node_modules/chalk/index.js.flow +93 -0
- data/vendor/node_modules/chalk/package.json +8 -3
- data/vendor/node_modules/color-convert/conversions.js +36 -29
- data/vendor/node_modules/color-convert/package.json +4 -4
- data/vendor/node_modules/estree-walker/index.d.ts +17 -0
- data/vendor/node_modules/estree-walker/package.json +2 -1
- data/vendor/node_modules/fill-range/index.js +2 -2
- data/vendor/node_modules/fill-range/package.json +24 -7
- data/vendor/node_modules/is-reference/node_modules/@types/estree/index.d.ts +546 -0
- data/vendor/node_modules/is-reference/node_modules/@types/estree/package.json +22 -0
- data/vendor/node_modules/math-random/browser.js +17 -0
- data/vendor/node_modules/math-random/node.js +13 -0
- data/vendor/node_modules/math-random/package.json +31 -0
- data/vendor/node_modules/math-random/test.js +26 -0
- data/vendor/node_modules/nodent-compiler/compiler.js +115 -11
- data/vendor/node_modules/nodent-compiler/{lib/output.js → output.js} +0 -0
- data/vendor/node_modules/nodent-compiler/package.json +8 -4
- data/vendor/node_modules/{nodent-compiler/lib → nodent-transform}/arboriculture.js +1340 -1107
- data/vendor/node_modules/nodent-transform/package.json +19 -0
- data/vendor/node_modules/path-parse/package.json +1 -1
- data/vendor/node_modules/pretty-ms/index.js +2 -1
- data/vendor/node_modules/pretty-ms/package.json +2 -3
- data/vendor/node_modules/randomatic/index.js +12 -2
- data/vendor/node_modules/randomatic/node_modules/is-number/index.js +6 -7
- data/vendor/node_modules/randomatic/node_modules/is-number/package.json +9 -16
- data/vendor/node_modules/randomatic/node_modules/kind-of/index.js +112 -102
- data/vendor/node_modules/randomatic/node_modules/kind-of/package.json +18 -20
- data/vendor/node_modules/randomatic/package.json +15 -13
- data/vendor/node_modules/repeat-element/index.js +1 -1
- data/vendor/node_modules/repeat-element/package.json +27 -22
- data/vendor/node_modules/resolve/lib/async.js +20 -17
- data/vendor/node_modules/resolve/lib/core.js +2 -2
- data/vendor/node_modules/resolve/lib/core.json +4 -1
- data/vendor/node_modules/resolve/lib/sync.js +52 -13
- data/vendor/node_modules/resolve/package.json +3 -3
- data/vendor/node_modules/rollup-plugin-commonjs/dist/rollup-plugin-commonjs.cjs.js +50 -12
- data/vendor/node_modules/rollup-plugin-commonjs/dist/rollup-plugin-commonjs.es.js +50 -12
- data/vendor/node_modules/rollup-plugin-commonjs/package.json +2 -2
- data/vendor/node_modules/rollup-plugin-commonjs/src/index.js +49 -11
- data/vendor/node_modules/rollup-plugin-commonjs/src/transform.js +1 -1
- data/vendor/node_modules/rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.cjs.js +82 -85
- data/vendor/node_modules/rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.es.js +82 -85
- data/vendor/node_modules/rollup-plugin-node-resolve/package.json +1 -1
- data/vendor/node_modules/rollup-plugin-node-resolve/src/index.js +81 -84
- data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.cjs.js +81 -2
- data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.es.js +81 -3
- data/vendor/node_modules/rollup-pluginutils/package.json +12 -6
- data/vendor/node_modules/rollup-pluginutils/src/attachScopes.js +10 -2
- data/vendor/node_modules/rollup-pluginutils/src/dataToEsm.js +69 -0
- data/vendor/node_modules/rollup-pluginutils/src/index.js +1 -0
- data/vendor/node_modules/supports-color/index.js +1 -5
- data/vendor/node_modules/supports-color/package.json +51 -51
- data/vendor/yarn.lock +65 -70
- metadata +16 -21
- data/vendor/node_modules/irregular-plurals/irregular-plurals.json +0 -146
- data/vendor/node_modules/irregular-plurals/package.json +0 -39
- data/vendor/node_modules/nodent-compiler/lib/parser.js +0 -291
- data/vendor/node_modules/path-parse/index.min.js +0 -1
- data/vendor/node_modules/path-parse/test.min.js +0 -1
- data/vendor/node_modules/plur/index.js +0 -20
- data/vendor/node_modules/plur/package.json +0 -42
- data/vendor/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/index.js +0 -116
- data/vendor/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/package.json +0 -90
- data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.es6.js +0 -217
- data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/dist/estree-walker.es.js +0 -55
- data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/dist/estree-walker.es6.js +0 -59
- data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/dist/estree-walker.umd.js +0 -65
- data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/package.json +0 -33
- data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/src/estree-walker.js +0 -49
|
@@ -33,8 +33,8 @@ var keywordRelationalOperator = /^in(stanceof)?$/;
|
|
|
33
33
|
// code point above 128.
|
|
34
34
|
// Generated by `bin/generate-identifier-regex.js`.
|
|
35
35
|
|
|
36
|
-
var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\
|
|
37
|
-
var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\
|
|
36
|
+
var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7b9\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
|
|
37
|
+
var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f";
|
|
38
38
|
|
|
39
39
|
var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
|
|
40
40
|
var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
|
|
@@ -48,10 +48,10 @@ nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
|
|
|
48
48
|
// generated by bin/generate-identifier-regex.js
|
|
49
49
|
|
|
50
50
|
// eslint-disable-next-line comma-spacing
|
|
51
|
-
var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,
|
|
51
|
+
var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,190,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,26,230,43,117,63,32,0,257,0,11,39,8,0,22,0,12,39,3,3,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,68,12,0,67,12,65,1,31,6129,15,754,9486,286,82,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541];
|
|
52
52
|
|
|
53
53
|
// eslint-disable-next-line comma-spacing
|
|
54
|
-
var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,
|
|
54
|
+
var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,280,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239];
|
|
55
55
|
|
|
56
56
|
// This has a complexity linear to the value of the code. The
|
|
57
57
|
// assumption is that looking up astral identifier characters is
|
|
@@ -250,8 +250,8 @@ var types = {
|
|
|
250
250
|
var lineBreak = /\r\n?|\n|\u2028|\u2029/;
|
|
251
251
|
var lineBreakG = new RegExp(lineBreak.source, "g");
|
|
252
252
|
|
|
253
|
-
function isNewLine(code) {
|
|
254
|
-
return code === 10 || code === 13 || code === 0x2028 || code === 0x2029
|
|
253
|
+
function isNewLine(code, ecma2019String) {
|
|
254
|
+
return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029))
|
|
255
255
|
}
|
|
256
256
|
|
|
257
257
|
var nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/;
|
|
@@ -342,6 +342,9 @@ var defaultOptions = {
|
|
|
342
342
|
// When enabled, import/export statements are not constrained to
|
|
343
343
|
// appearing at the top of the program.
|
|
344
344
|
allowImportExportEverywhere: false,
|
|
345
|
+
// When enabled, await identifiers are allowed to appear at the top-level scope,
|
|
346
|
+
// but they are still not allowed in non-async functions.
|
|
347
|
+
allowAwaitOutsideFunction: false,
|
|
345
348
|
// When enabled, hashbang directive in the beginning of file
|
|
346
349
|
// is allowed and treated as a line comment.
|
|
347
350
|
allowHashBang: false,
|
|
@@ -449,7 +452,7 @@ var Parser = function Parser(options, input, startPos) {
|
|
|
449
452
|
if (!options.allowReserved) {
|
|
450
453
|
for (var v = options.ecmaVersion;; v--)
|
|
451
454
|
{ if (reserved = reservedWords[v]) { break } }
|
|
452
|
-
if (options.sourceType
|
|
455
|
+
if (options.sourceType === "module") { reserved += " await"; }
|
|
453
456
|
}
|
|
454
457
|
this.reservedWords = keywordRegexp(reserved);
|
|
455
458
|
var reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict;
|
|
@@ -561,7 +564,7 @@ pp.strictDirective = function(start) {
|
|
|
561
564
|
start += skipWhiteSpace.exec(this$1.input)[0].length;
|
|
562
565
|
var match = literal.exec(this$1.input.slice(start));
|
|
563
566
|
if (!match) { return false }
|
|
564
|
-
if ((match[1] || match[2])
|
|
567
|
+
if ((match[1] || match[2]) === "use strict") { return true }
|
|
565
568
|
start += match[0].length;
|
|
566
569
|
}
|
|
567
570
|
};
|
|
@@ -622,7 +625,7 @@ pp.semicolon = function() {
|
|
|
622
625
|
};
|
|
623
626
|
|
|
624
627
|
pp.afterTrailingComma = function(tokType, notNext) {
|
|
625
|
-
if (this.type
|
|
628
|
+
if (this.type === tokType) {
|
|
626
629
|
if (this.options.onTrailingComma)
|
|
627
630
|
{ this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }
|
|
628
631
|
if (!notNext)
|
|
@@ -719,7 +722,7 @@ pp$1.isLet = function() {
|
|
|
719
722
|
skipWhiteSpace.lastIndex = this.pos;
|
|
720
723
|
var skip = skipWhiteSpace.exec(this.input);
|
|
721
724
|
var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);
|
|
722
|
-
if (nextCh === 91 || nextCh
|
|
725
|
+
if (nextCh === 91 || nextCh === 123) { return true } // '{' and '['
|
|
723
726
|
if (isIdentifierStart(nextCh, true)) {
|
|
724
727
|
var pos = next + 1;
|
|
725
728
|
while (isIdentifierChar(this.input.charCodeAt(pos), true)) { ++pos; }
|
|
@@ -741,7 +744,7 @@ pp$1.isAsyncFunction = function() {
|
|
|
741
744
|
var next = this.pos + skip[0].length;
|
|
742
745
|
return !lineBreak.test(this.input.slice(this.pos, next)) &&
|
|
743
746
|
this.input.slice(next, next + 8) === "function" &&
|
|
744
|
-
(next + 8
|
|
747
|
+
(next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8)))
|
|
745
748
|
};
|
|
746
749
|
|
|
747
750
|
// Parse a single statement.
|
|
@@ -781,7 +784,7 @@ pp$1.parseStatement = function(declaration, topLevel, exports) {
|
|
|
781
784
|
case types._try: return this.parseTryStatement(node)
|
|
782
785
|
case types._const: case types._var:
|
|
783
786
|
kind = kind || this.value;
|
|
784
|
-
if (!declaration && kind
|
|
787
|
+
if (!declaration && kind !== "var") { this.unexpected(); }
|
|
785
788
|
return this.parseVarStatement(node, kind)
|
|
786
789
|
case types._while: return this.parseWhileStatement(node)
|
|
787
790
|
case types._with: return this.parseWithStatement(node)
|
|
@@ -819,7 +822,7 @@ pp$1.parseStatement = function(declaration, topLevel, exports) {
|
|
|
819
822
|
pp$1.parseBreakContinueStatement = function(node, keyword) {
|
|
820
823
|
var this$1 = this;
|
|
821
824
|
|
|
822
|
-
var isBreak = keyword
|
|
825
|
+
var isBreak = keyword === "break";
|
|
823
826
|
this.next();
|
|
824
827
|
if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; }
|
|
825
828
|
else if (this.type !== types.name) { this.unexpected(); }
|
|
@@ -872,7 +875,7 @@ pp$1.parseDoStatement = function(node) {
|
|
|
872
875
|
|
|
873
876
|
pp$1.parseForStatement = function(node) {
|
|
874
877
|
this.next();
|
|
875
|
-
var awaitAt = (this.options.ecmaVersion >= 9 && this.inAsync && this.eatContextual("await")) ? this.lastTokStart : -1;
|
|
878
|
+
var awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual("await")) ? this.lastTokStart : -1;
|
|
876
879
|
this.labels.push(loopLabel);
|
|
877
880
|
this.enterLexicalScope();
|
|
878
881
|
this.expect(types.parenL);
|
|
@@ -925,8 +928,8 @@ pp$1.parseIfStatement = function(node) {
|
|
|
925
928
|
this.next();
|
|
926
929
|
node.test = this.parseParenExpression();
|
|
927
930
|
// allow function declarations in branches, but only in non-strict mode
|
|
928
|
-
node.consequent = this.parseStatement(!this.strict && this.type
|
|
929
|
-
node.alternate = this.eat(types._else) ? this.parseStatement(!this.strict && this.type
|
|
931
|
+
node.consequent = this.parseStatement(!this.strict && this.type === types._function);
|
|
932
|
+
node.alternate = this.eat(types._else) ? this.parseStatement(!this.strict && this.type === types._function) : null;
|
|
930
933
|
return this.finishNode(node, "IfStatement")
|
|
931
934
|
};
|
|
932
935
|
|
|
@@ -959,7 +962,7 @@ pp$1.parseSwitchStatement = function(node) {
|
|
|
959
962
|
// adding statements to.
|
|
960
963
|
|
|
961
964
|
var cur;
|
|
962
|
-
for (var sawDefault = false; this.type
|
|
965
|
+
for (var sawDefault = false; this.type !== types.braceR;) {
|
|
963
966
|
if (this$1.type === types._case || this$1.type === types._default) {
|
|
964
967
|
var isCase = this$1.type === types._case;
|
|
965
968
|
if (cur) { this$1.finishNode(cur, "SwitchCase"); }
|
|
@@ -1006,11 +1009,16 @@ pp$1.parseTryStatement = function(node) {
|
|
|
1006
1009
|
if (this.type === types._catch) {
|
|
1007
1010
|
var clause = this.startNode();
|
|
1008
1011
|
this.next();
|
|
1009
|
-
this.
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1012
|
+
if (this.eat(types.parenL)) {
|
|
1013
|
+
clause.param = this.parseBindingAtom();
|
|
1014
|
+
this.enterLexicalScope();
|
|
1015
|
+
this.checkLVal(clause.param, "let");
|
|
1016
|
+
this.expect(types.parenR);
|
|
1017
|
+
} else {
|
|
1018
|
+
if (this.options.ecmaVersion < 10) { this.unexpected(); }
|
|
1019
|
+
clause.param = null;
|
|
1020
|
+
this.enterLexicalScope();
|
|
1021
|
+
}
|
|
1014
1022
|
clause.body = this.parseBlock(false);
|
|
1015
1023
|
this.exitLexicalScope();
|
|
1016
1024
|
node.handler = this.finishNode(clause, "CatchClause");
|
|
@@ -1063,7 +1071,7 @@ pp$1.parseLabeledStatement = function(node, maybeName, expr) {
|
|
|
1063
1071
|
var kind = this.type.isLoop ? "loop" : this.type === types._switch ? "switch" : null;
|
|
1064
1072
|
for (var i = this.labels.length - 1; i >= 0; i--) {
|
|
1065
1073
|
var label$1 = this$1.labels[i];
|
|
1066
|
-
if (label$1.statementStart
|
|
1074
|
+
if (label$1.statementStart === node.start) {
|
|
1067
1075
|
// Update information about previous labels on this node
|
|
1068
1076
|
label$1.statementStart = this$1.start;
|
|
1069
1077
|
label$1.kind = kind;
|
|
@@ -1071,9 +1079,9 @@ pp$1.parseLabeledStatement = function(node, maybeName, expr) {
|
|
|
1071
1079
|
}
|
|
1072
1080
|
this.labels.push({name: maybeName, kind: kind, statementStart: this.start});
|
|
1073
1081
|
node.body = this.parseStatement(true);
|
|
1074
|
-
if (node.body.type
|
|
1075
|
-
node.body.type
|
|
1076
|
-
node.body.type
|
|
1082
|
+
if (node.body.type === "ClassDeclaration" ||
|
|
1083
|
+
node.body.type === "VariableDeclaration" && node.body.kind !== "var" ||
|
|
1084
|
+
node.body.type === "FunctionDeclaration" && (this.strict || node.body.generator || node.body.async))
|
|
1077
1085
|
{ this.raiseRecoverable(node.body.start, "Invalid labeled declaration"); }
|
|
1078
1086
|
this.labels.pop();
|
|
1079
1087
|
node.label = expr;
|
|
@@ -1133,14 +1141,14 @@ pp$1.parseFor = function(node, init) {
|
|
|
1133
1141
|
pp$1.parseForIn = function(node, init) {
|
|
1134
1142
|
var type = this.type === types._in ? "ForInStatement" : "ForOfStatement";
|
|
1135
1143
|
this.next();
|
|
1136
|
-
if (type
|
|
1144
|
+
if (type === "ForInStatement") {
|
|
1137
1145
|
if (init.type === "AssignmentPattern" ||
|
|
1138
1146
|
(init.type === "VariableDeclaration" && init.declarations[0].init != null &&
|
|
1139
1147
|
(this.strict || init.declarations[0].id.type !== "Identifier")))
|
|
1140
1148
|
{ this.raise(init.start, "Invalid assignment in for-in loop head"); }
|
|
1141
1149
|
}
|
|
1142
1150
|
node.left = init;
|
|
1143
|
-
node.right = type
|
|
1151
|
+
node.right = type === "ForInStatement" ? this.parseExpression() : this.parseMaybeAssign();
|
|
1144
1152
|
this.expect(types.parenR);
|
|
1145
1153
|
this.exitLexicalScope();
|
|
1146
1154
|
node.body = this.parseStatement(false);
|
|
@@ -1162,7 +1170,7 @@ pp$1.parseVar = function(node, isFor, kind) {
|
|
|
1162
1170
|
decl.init = this$1.parseMaybeAssign(isFor);
|
|
1163
1171
|
} else if (kind === "const" && !(this$1.type === types._in || (this$1.options.ecmaVersion >= 6 && this$1.isContextual("of")))) {
|
|
1164
1172
|
this$1.unexpected();
|
|
1165
|
-
} else if (decl.id.type
|
|
1173
|
+
} else if (decl.id.type !== "Identifier" && !(isFor && (this$1.type === types._in || this$1.isContextual("of")))) {
|
|
1166
1174
|
this$1.raise(this$1.lastTokEnd, "Complex binding patterns require an initialization value");
|
|
1167
1175
|
} else {
|
|
1168
1176
|
decl.init = null;
|
|
@@ -1189,9 +1197,9 @@ pp$1.parseFunction = function(node, isStatement, allowExpressionBody, isAsync) {
|
|
|
1189
1197
|
{ node.async = !!isAsync; }
|
|
1190
1198
|
|
|
1191
1199
|
if (isStatement) {
|
|
1192
|
-
node.id = isStatement === "nullableID" && this.type
|
|
1200
|
+
node.id = isStatement === "nullableID" && this.type !== types.name ? null : this.parseIdent();
|
|
1193
1201
|
if (node.id) {
|
|
1194
|
-
this.checkLVal(node.id, "var");
|
|
1202
|
+
this.checkLVal(node.id, this.inModule && !this.inFunction ? "let" : "var");
|
|
1195
1203
|
}
|
|
1196
1204
|
}
|
|
1197
1205
|
|
|
@@ -1205,7 +1213,7 @@ pp$1.parseFunction = function(node, isStatement, allowExpressionBody, isAsync) {
|
|
|
1205
1213
|
this.enterFunctionScope();
|
|
1206
1214
|
|
|
1207
1215
|
if (!isStatement)
|
|
1208
|
-
{ node.id = this.type
|
|
1216
|
+
{ node.id = this.type === types.name ? this.parseIdent() : null; }
|
|
1209
1217
|
|
|
1210
1218
|
this.parseFunctionParams(node);
|
|
1211
1219
|
this.parseFunctionBody(node, allowExpressionBody);
|
|
@@ -1389,28 +1397,28 @@ pp$1.checkPatternExport = function(exports, pat) {
|
|
|
1389
1397
|
var this$1 = this;
|
|
1390
1398
|
|
|
1391
1399
|
var type = pat.type;
|
|
1392
|
-
if (type
|
|
1400
|
+
if (type === "Identifier")
|
|
1393
1401
|
{ this.checkExport(exports, pat.name, pat.start); }
|
|
1394
|
-
else if (type
|
|
1402
|
+
else if (type === "ObjectPattern")
|
|
1395
1403
|
{ for (var i = 0, list = pat.properties; i < list.length; i += 1)
|
|
1396
1404
|
{
|
|
1397
1405
|
var prop = list[i];
|
|
1398
1406
|
|
|
1399
1407
|
this$1.checkPatternExport(exports, prop);
|
|
1400
1408
|
} }
|
|
1401
|
-
else if (type
|
|
1409
|
+
else if (type === "ArrayPattern")
|
|
1402
1410
|
{ for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {
|
|
1403
1411
|
var elt = list$1[i$1];
|
|
1404
1412
|
|
|
1405
1413
|
if (elt) { this$1.checkPatternExport(exports, elt); }
|
|
1406
1414
|
} }
|
|
1407
|
-
else if (type
|
|
1415
|
+
else if (type === "Property")
|
|
1408
1416
|
{ this.checkPatternExport(exports, pat.value); }
|
|
1409
|
-
else if (type
|
|
1417
|
+
else if (type === "AssignmentPattern")
|
|
1410
1418
|
{ this.checkPatternExport(exports, pat.left); }
|
|
1411
|
-
else if (type
|
|
1419
|
+
else if (type === "RestElement")
|
|
1412
1420
|
{ this.checkPatternExport(exports, pat.argument); }
|
|
1413
|
-
else if (type
|
|
1421
|
+
else if (type === "ParenthesizedExpression")
|
|
1414
1422
|
{ this.checkPatternExport(exports, pat.expression); }
|
|
1415
1423
|
};
|
|
1416
1424
|
|
|
@@ -1577,7 +1585,7 @@ pp$2.toAssignable = function(node, isBinding, refDestructuringErrors) {
|
|
|
1577
1585
|
break
|
|
1578
1586
|
|
|
1579
1587
|
case "Property":
|
|
1580
|
-
// AssignmentProperty has type
|
|
1588
|
+
// AssignmentProperty has type === "Property"
|
|
1581
1589
|
if (node.kind !== "init") { this.raise(node.key.start, "Object pattern can't contain getter or setter"); }
|
|
1582
1590
|
this.toAssignable(node.value, isBinding);
|
|
1583
1591
|
break
|
|
@@ -1767,7 +1775,7 @@ pp$2.checkLVal = function(expr, bindingType, checkClashes) {
|
|
|
1767
1775
|
break
|
|
1768
1776
|
|
|
1769
1777
|
case "Property":
|
|
1770
|
-
// AssignmentProperty has type
|
|
1778
|
+
// AssignmentProperty has type === "Property"
|
|
1771
1779
|
this.checkLVal(expr.value, bindingType, checkClashes);
|
|
1772
1780
|
break
|
|
1773
1781
|
|
|
@@ -1912,7 +1920,7 @@ pp$3.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) {
|
|
|
1912
1920
|
}
|
|
1913
1921
|
|
|
1914
1922
|
var startPos = this.start, startLoc = this.startLoc;
|
|
1915
|
-
if (this.type
|
|
1923
|
+
if (this.type === types.parenL || this.type === types.name)
|
|
1916
1924
|
{ this.potentialArrowAt = this.start; }
|
|
1917
1925
|
var left = this.parseMaybeConditional(noIn, refDestructuringErrors);
|
|
1918
1926
|
if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }
|
|
@@ -1957,7 +1965,7 @@ pp$3.parseExprOps = function(noIn, refDestructuringErrors) {
|
|
|
1957
1965
|
var startPos = this.start, startLoc = this.startLoc;
|
|
1958
1966
|
var expr = this.parseMaybeUnary(refDestructuringErrors, false);
|
|
1959
1967
|
if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }
|
|
1960
|
-
return expr.start
|
|
1968
|
+
return expr.start === startPos && expr.type === "ArrowFunctionExpression" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn)
|
|
1961
1969
|
};
|
|
1962
1970
|
|
|
1963
1971
|
// Parse binary operators with the operator precedence parsing
|
|
@@ -1996,7 +2004,7 @@ pp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary) {
|
|
|
1996
2004
|
var this$1 = this;
|
|
1997
2005
|
|
|
1998
2006
|
var startPos = this.start, startLoc = this.startLoc, expr;
|
|
1999
|
-
if (this.inAsync && this.
|
|
2007
|
+
if (this.isContextual("await") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) {
|
|
2000
2008
|
expr = this.parseAwait();
|
|
2001
2009
|
sawUnary = true;
|
|
2002
2010
|
} else if (this.type.prefix) {
|
|
@@ -2051,7 +2059,7 @@ pp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) {
|
|
|
2051
2059
|
var this$1 = this;
|
|
2052
2060
|
|
|
2053
2061
|
var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" &&
|
|
2054
|
-
this.lastTokEnd
|
|
2062
|
+
this.lastTokEnd === base.end && !this.canInsertSemicolon() && this.input.slice(base.start, base.end) === "async";
|
|
2055
2063
|
for (var computed = (void 0);;) {
|
|
2056
2064
|
if ((computed = this$1.eat(types.bracketL)) || this$1.eat(types.dot)) {
|
|
2057
2065
|
var node = this$1.startNodeAt(startPos, startLoc);
|
|
@@ -2096,7 +2104,7 @@ pp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) {
|
|
|
2096
2104
|
// or `{}`.
|
|
2097
2105
|
|
|
2098
2106
|
pp$3.parseExprAtom = function(refDestructuringErrors) {
|
|
2099
|
-
var node, canBeArrow = this.potentialArrowAt
|
|
2107
|
+
var node, canBeArrow = this.potentialArrowAt === this.start;
|
|
2100
2108
|
switch (this.type) {
|
|
2101
2109
|
case types._super:
|
|
2102
2110
|
if (!this.inFunction)
|
|
@@ -2441,7 +2449,7 @@ pp$3.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startP
|
|
|
2441
2449
|
} else if (!isPattern && !containsEsc &&
|
|
2442
2450
|
this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" &&
|
|
2443
2451
|
(prop.key.name === "get" || prop.key.name === "set") &&
|
|
2444
|
-
(this.type
|
|
2452
|
+
(this.type !== types.comma && this.type !== types.braceR)) {
|
|
2445
2453
|
if (isGenerator || isAsync) { this.unexpected(); }
|
|
2446
2454
|
prop.kind = prop.key.name;
|
|
2447
2455
|
this.parsePropertyName(prop);
|
|
@@ -2670,7 +2678,7 @@ pp$3.checkUnreserved = function(ref) {
|
|
|
2670
2678
|
if (this.isKeyword(name))
|
|
2671
2679
|
{ this.raise(start, ("Unexpected keyword '" + name + "'")); }
|
|
2672
2680
|
if (this.options.ecmaVersion < 6 &&
|
|
2673
|
-
this.input.slice(start, end).indexOf("\\")
|
|
2681
|
+
this.input.slice(start, end).indexOf("\\") !== -1) { return }
|
|
2674
2682
|
var re = this.strict ? this.reservedWordsStrict : this.reservedWords;
|
|
2675
2683
|
if (re.test(name)) {
|
|
2676
2684
|
if (!this.inAsync && name === "await")
|
|
@@ -2685,7 +2693,7 @@ pp$3.checkUnreserved = function(ref) {
|
|
|
2685
2693
|
|
|
2686
2694
|
pp$3.parseIdent = function(liberal, isBinding) {
|
|
2687
2695
|
var node = this.startNode();
|
|
2688
|
-
if (liberal && this.options.allowReserved
|
|
2696
|
+
if (liberal && this.options.allowReserved === "never") { liberal = false; }
|
|
2689
2697
|
if (this.type === types.name) {
|
|
2690
2698
|
node.name = this.value;
|
|
2691
2699
|
} else if (this.type.keyword) {
|
|
@@ -2715,7 +2723,7 @@ pp$3.parseYield = function() {
|
|
|
2715
2723
|
|
|
2716
2724
|
var node = this.startNode();
|
|
2717
2725
|
this.next();
|
|
2718
|
-
if (this.type
|
|
2726
|
+
if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) {
|
|
2719
2727
|
node.delegate = false;
|
|
2720
2728
|
node.argument = null;
|
|
2721
2729
|
} else {
|
|
@@ -2922,13 +2930,13 @@ pp$7.braceIsBlock = function(prevType) {
|
|
|
2922
2930
|
// The check for `tt.name && exprAllowed` detects whether we are
|
|
2923
2931
|
// after a `yield` or `of` construct. See the `updateContext` for
|
|
2924
2932
|
// `tt.name`.
|
|
2925
|
-
if (prevType === types._return || prevType
|
|
2933
|
+
if (prevType === types._return || prevType === types.name && this.exprAllowed)
|
|
2926
2934
|
{ return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }
|
|
2927
|
-
if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType
|
|
2935
|
+
if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow)
|
|
2928
2936
|
{ return true }
|
|
2929
|
-
if (prevType
|
|
2937
|
+
if (prevType === types.braceL)
|
|
2930
2938
|
{ return parent === types$1.b_stat }
|
|
2931
|
-
if (prevType
|
|
2939
|
+
if (prevType === types._var || prevType === types.name)
|
|
2932
2940
|
{ return false }
|
|
2933
2941
|
return !this.exprAllowed
|
|
2934
2942
|
};
|
|
@@ -2946,7 +2954,7 @@ pp$7.inGeneratorContext = function() {
|
|
|
2946
2954
|
|
|
2947
2955
|
pp$7.updateContext = function(prevType) {
|
|
2948
2956
|
var update, type = this.type;
|
|
2949
|
-
if (type.keyword && prevType
|
|
2957
|
+
if (type.keyword && prevType === types.dot)
|
|
2950
2958
|
{ this.exprAllowed = false; }
|
|
2951
2959
|
else if (update = type.updateContext)
|
|
2952
2960
|
{ update.call(this, prevType); }
|
|
@@ -2957,7 +2965,7 @@ pp$7.updateContext = function(prevType) {
|
|
|
2957
2965
|
// Token-specific context update code
|
|
2958
2966
|
|
|
2959
2967
|
types.parenR.updateContext = types.braceR.updateContext = function() {
|
|
2960
|
-
if (this.context.length
|
|
2968
|
+
if (this.context.length === 1) {
|
|
2961
2969
|
this.exprAllowed = true;
|
|
2962
2970
|
return
|
|
2963
2971
|
}
|
|
@@ -3006,7 +3014,7 @@ types.backQuote.updateContext = function() {
|
|
|
3006
3014
|
};
|
|
3007
3015
|
|
|
3008
3016
|
types.star.updateContext = function(prevType) {
|
|
3009
|
-
if (prevType
|
|
3017
|
+
if (prevType === types._function) {
|
|
3010
3018
|
var index = this.context.length - 1;
|
|
3011
3019
|
if (this.context[index] === types$1.f_expr)
|
|
3012
3020
|
{ this.context[index] = types$1.f_expr_gen; }
|
|
@@ -3019,8 +3027,8 @@ types.star.updateContext = function(prevType) {
|
|
|
3019
3027
|
types.name.updateContext = function(prevType) {
|
|
3020
3028
|
var allowed = false;
|
|
3021
3029
|
if (this.options.ecmaVersion >= 6) {
|
|
3022
|
-
if (this.value
|
|
3023
|
-
this.value
|
|
3030
|
+
if (this.value === "of" && !this.exprAllowed ||
|
|
3031
|
+
this.value === "yield" && this.inGeneratorContext())
|
|
3024
3032
|
{ allowed = true; }
|
|
3025
3033
|
}
|
|
3026
3034
|
this.exprAllowed = allowed;
|
|
@@ -3589,7 +3597,7 @@ pp$9.validateRegExpFlags = function(state) {
|
|
|
3589
3597
|
|
|
3590
3598
|
for (var i = 0; i < flags.length; i++) {
|
|
3591
3599
|
var flag = flags.charAt(i);
|
|
3592
|
-
if (validFlags.indexOf(flag)
|
|
3600
|
+
if (validFlags.indexOf(flag) === -1) {
|
|
3593
3601
|
this$1.raise(state.start, "Invalid regular expression flag");
|
|
3594
3602
|
}
|
|
3595
3603
|
if (flags.indexOf(flag, i + 1) > -1) {
|
|
@@ -4755,7 +4763,7 @@ pp$8.readToken_mult_modulo_exp = function(code) { // '%*'
|
|
|
4755
4763
|
var tokentype = code === 42 ? types.star : types.modulo;
|
|
4756
4764
|
|
|
4757
4765
|
// exponentiation operator ** and **=
|
|
4758
|
-
if (this.options.ecmaVersion >= 7 && code
|
|
4766
|
+
if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {
|
|
4759
4767
|
++size;
|
|
4760
4768
|
tokentype = types.starstar;
|
|
4761
4769
|
next = this.input.charCodeAt(this.pos + 2);
|
|
@@ -4781,7 +4789,7 @@ pp$8.readToken_caret = function() { // '^'
|
|
|
4781
4789
|
pp$8.readToken_plus_min = function(code) { // '+-'
|
|
4782
4790
|
var next = this.input.charCodeAt(this.pos + 1);
|
|
4783
4791
|
if (next === code) {
|
|
4784
|
-
if (next
|
|
4792
|
+
if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&
|
|
4785
4793
|
(this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {
|
|
4786
4794
|
// A `-->` line comment
|
|
4787
4795
|
this.skipLineComment(3);
|
|
@@ -4802,8 +4810,8 @@ pp$8.readToken_lt_gt = function(code) { // '<>'
|
|
|
4802
4810
|
if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) }
|
|
4803
4811
|
return this.finishOp(types.bitShift, size)
|
|
4804
4812
|
}
|
|
4805
|
-
if (next
|
|
4806
|
-
this.input.charCodeAt(this.pos + 3)
|
|
4813
|
+
if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&
|
|
4814
|
+
this.input.charCodeAt(this.pos + 3) === 45) {
|
|
4807
4815
|
// `<!--`, an XML-style comment that should be interpreted as a line comment
|
|
4808
4816
|
this.skipLineComment(4);
|
|
4809
4817
|
this.skipSpace();
|
|
@@ -5037,7 +5045,7 @@ pp$8.readString = function(quote) {
|
|
|
5037
5045
|
out += this$1.readEscapedChar(false);
|
|
5038
5046
|
chunkStart = this$1.pos;
|
|
5039
5047
|
} else {
|
|
5040
|
-
if (isNewLine(ch)) { this$1.raise(this$1.start, "Unterminated string constant"); }
|
|
5048
|
+
if (isNewLine(ch, this$1.options.ecmaVersion >= 10)) { this$1.raise(this$1.start, "Unterminated string constant"); }
|
|
5041
5049
|
++this$1.pos;
|
|
5042
5050
|
}
|
|
5043
5051
|
}
|
|
@@ -5173,7 +5181,7 @@ pp$8.readEscapedChar = function(inTemplate) {
|
|
|
5173
5181
|
}
|
|
5174
5182
|
this.pos += octalStr.length - 1;
|
|
5175
5183
|
ch = this.input.charCodeAt(this.pos);
|
|
5176
|
-
if ((octalStr !== "0" || ch
|
|
5184
|
+
if ((octalStr !== "0" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {
|
|
5177
5185
|
this.invalidStringToken(
|
|
5178
5186
|
this.pos - 1 - octalStr.length,
|
|
5179
5187
|
inTemplate
|
|
@@ -5216,7 +5224,7 @@ pp$8.readWord1 = function() {
|
|
|
5216
5224
|
this$1.containsEsc = true;
|
|
5217
5225
|
word += this$1.input.slice(chunkStart, this$1.pos);
|
|
5218
5226
|
var escStart = this$1.pos;
|
|
5219
|
-
if (this$1.input.charCodeAt(++this$1.pos)
|
|
5227
|
+
if (this$1.input.charCodeAt(++this$1.pos) !== 117) // "u"
|
|
5220
5228
|
{ this$1.invalidStringToken(this$1.pos, "Expecting Unicode escape sequence \\uXXXX"); }
|
|
5221
5229
|
++this$1.pos;
|
|
5222
5230
|
var esc = this$1.readCodePoint();
|
|
@@ -5266,7 +5274,7 @@ pp$8.readWord = function() {
|
|
|
5266
5274
|
// [dammit]: acorn_loose.js
|
|
5267
5275
|
// [walk]: util/walk.js
|
|
5268
5276
|
|
|
5269
|
-
var version = "5.
|
|
5277
|
+
var version = "5.7.2";
|
|
5270
5278
|
|
|
5271
5279
|
// The main exported interface (under `self.acorn` when in the
|
|
5272
5280
|
// browser) is a `parse` function that takes a code string and
|