From d25e11bee6ca5ca523884da132d18e1400e077b9 Mon Sep 17 00:00:00 2001 From: Minteck Date: Tue, 24 Aug 2021 14:41:48 +0200 Subject: Initial commit --- node_modules/meriyah/CHANGELOG.md | 520 ++ node_modules/meriyah/LICENSE.md | 7 + node_modules/meriyah/README.md | 186 + node_modules/meriyah/dist/meriyah.amd.js | 8792 +++++++++++++++++++ node_modules/meriyah/dist/meriyah.amd.min.js | 1 + node_modules/meriyah/dist/meriyah.cjs | 8790 +++++++++++++++++++ node_modules/meriyah/dist/meriyah.cjs.js | 8790 +++++++++++++++++++ node_modules/meriyah/dist/meriyah.cjs.min.js | 1 + node_modules/meriyah/dist/meriyah.esm.js | 8782 +++++++++++++++++++ node_modules/meriyah/dist/meriyah.esm.min.js | 1 + node_modules/meriyah/dist/meriyah.iife.js | 8795 +++++++++++++++++++ node_modules/meriyah/dist/meriyah.iife.min.js | 1 + node_modules/meriyah/dist/meriyah.min.cjs | 1 + node_modules/meriyah/dist/meriyah.system.js | 8796 +++++++++++++++++++ node_modules/meriyah/dist/meriyah.system.min.js | 1 + node_modules/meriyah/dist/meriyah.umd.cjs | 8796 +++++++++++++++++++ node_modules/meriyah/dist/meriyah.umd.es5.js | 8855 +++++++++++++++++++ node_modules/meriyah/dist/meriyah.umd.es5.min.js | 15 + node_modules/meriyah/dist/meriyah.umd.js | 8796 +++++++++++++++++++ node_modules/meriyah/dist/meriyah.umd.min.cjs | 1 + node_modules/meriyah/dist/meriyah.umd.min.js | 1 + node_modules/meriyah/dist/src/chars.d.ts | 136 + node_modules/meriyah/dist/src/chars.d.ts.map | 1 + node_modules/meriyah/dist/src/common.d.ts | 201 + node_modules/meriyah/dist/src/common.d.ts.map | 1 + node_modules/meriyah/dist/src/errors.d.ts | 187 + node_modules/meriyah/dist/src/errors.d.ts.map | 1 + node_modules/meriyah/dist/src/estree.d.ts | 503 ++ node_modules/meriyah/dist/src/estree.d.ts.map | 1 + .../meriyah/dist/src/lexer/charClassifier.d.ts | 25 + .../meriyah/dist/src/lexer/charClassifier.d.ts.map | 1 + node_modules/meriyah/dist/src/lexer/comments.d.ts | 15 + .../meriyah/dist/src/lexer/comments.d.ts.map | 1 + node_modules/meriyah/dist/src/lexer/common.d.ts | 27 + .../meriyah/dist/src/lexer/common.d.ts.map | 1 + .../meriyah/dist/src/lexer/decodeHTML.d.ts | 2 + .../meriyah/dist/src/lexer/decodeHTML.d.ts.map | 1 + .../meriyah/dist/src/lexer/identifier.d.ts | 9 + .../meriyah/dist/src/lexer/identifier.d.ts.map | 1 + node_modules/meriyah/dist/src/lexer/index.d.ts | 10 + node_modules/meriyah/dist/src/lexer/index.d.ts.map | 1 + node_modules/meriyah/dist/src/lexer/jsx.d.ts | 7 + node_modules/meriyah/dist/src/lexer/jsx.d.ts.map | 1 + node_modules/meriyah/dist/src/lexer/numeric.d.ts | 6 + .../meriyah/dist/src/lexer/numeric.d.ts.map | 1 + node_modules/meriyah/dist/src/lexer/regexp.d.ts | 4 + .../meriyah/dist/src/lexer/regexp.d.ts.map | 1 + node_modules/meriyah/dist/src/lexer/scan.d.ts | 7 + node_modules/meriyah/dist/src/lexer/scan.d.ts.map | 1 + node_modules/meriyah/dist/src/lexer/string.d.ts | 13 + .../meriyah/dist/src/lexer/string.d.ts.map | 1 + node_modules/meriyah/dist/src/lexer/template.d.ts | 5 + .../meriyah/dist/src/lexer/template.d.ts.map | 1 + node_modules/meriyah/dist/src/meriyah.d.ts | 8 + node_modules/meriyah/dist/src/meriyah.d.ts.map | 1 + node_modules/meriyah/dist/src/parser.d.ts | 119 + node_modules/meriyah/dist/src/parser.d.ts.map | 1 + node_modules/meriyah/dist/src/token.d.ts | 168 + node_modules/meriyah/dist/src/token.d.ts.map | 1 + node_modules/meriyah/dist/src/unicode.d.ts | 6 + node_modules/meriyah/dist/src/unicode.d.ts.map | 1 + node_modules/meriyah/package.json | 123 + node_modules/meriyah/src/chars.ts | 155 + node_modules/meriyah/src/common.ts | 835 ++ node_modules/meriyah/src/errors.ts | 417 + node_modules/meriyah/src/estree.ts | 809 ++ node_modules/meriyah/src/lexer/charClassifier.ts | 449 + node_modules/meriyah/src/lexer/comments.ts | 178 + node_modules/meriyah/src/lexer/common.ts | 140 + node_modules/meriyah/src/lexer/decodeHTML.ts | 2186 +++++ node_modules/meriyah/src/lexer/identifier.ts | 177 + node_modules/meriyah/src/lexer/index.ts | 32 + node_modules/meriyah/src/lexer/jsx.ts | 126 + node_modules/meriyah/src/lexer/numeric.ts | 259 + node_modules/meriyah/src/lexer/regexp.ts | 143 + node_modules/meriyah/src/lexer/scan.ts | 655 ++ node_modules/meriyah/src/lexer/string.ts | 242 + node_modules/meriyah/src/lexer/template.ts | 108 + node_modules/meriyah/src/meriyah.ts | 29 + node_modules/meriyah/src/parser.ts | 9165 ++++++++++++++++++++ node_modules/meriyah/src/token.ts | 307 + node_modules/meriyah/src/unicode.ts | 36 + 82 files changed, 97977 insertions(+) create mode 100644 node_modules/meriyah/CHANGELOG.md create mode 100644 node_modules/meriyah/LICENSE.md create mode 100644 node_modules/meriyah/README.md create mode 100644 node_modules/meriyah/dist/meriyah.amd.js create mode 100644 node_modules/meriyah/dist/meriyah.amd.min.js create mode 100644 node_modules/meriyah/dist/meriyah.cjs create mode 100644 node_modules/meriyah/dist/meriyah.cjs.js create mode 100644 node_modules/meriyah/dist/meriyah.cjs.min.js create mode 100644 node_modules/meriyah/dist/meriyah.esm.js create mode 100644 node_modules/meriyah/dist/meriyah.esm.min.js create mode 100644 node_modules/meriyah/dist/meriyah.iife.js create mode 100644 node_modules/meriyah/dist/meriyah.iife.min.js create mode 100644 node_modules/meriyah/dist/meriyah.min.cjs create mode 100644 node_modules/meriyah/dist/meriyah.system.js create mode 100644 node_modules/meriyah/dist/meriyah.system.min.js create mode 100644 node_modules/meriyah/dist/meriyah.umd.cjs create mode 100644 node_modules/meriyah/dist/meriyah.umd.es5.js create mode 100644 node_modules/meriyah/dist/meriyah.umd.es5.min.js create mode 100644 node_modules/meriyah/dist/meriyah.umd.js create mode 100644 node_modules/meriyah/dist/meriyah.umd.min.cjs create mode 100644 node_modules/meriyah/dist/meriyah.umd.min.js create mode 100644 node_modules/meriyah/dist/src/chars.d.ts create mode 100644 node_modules/meriyah/dist/src/chars.d.ts.map create mode 100644 node_modules/meriyah/dist/src/common.d.ts create mode 100644 node_modules/meriyah/dist/src/common.d.ts.map create mode 100644 node_modules/meriyah/dist/src/errors.d.ts create mode 100644 node_modules/meriyah/dist/src/errors.d.ts.map create mode 100644 node_modules/meriyah/dist/src/estree.d.ts create mode 100644 node_modules/meriyah/dist/src/estree.d.ts.map create mode 100644 node_modules/meriyah/dist/src/lexer/charClassifier.d.ts create mode 100644 node_modules/meriyah/dist/src/lexer/charClassifier.d.ts.map create mode 100644 node_modules/meriyah/dist/src/lexer/comments.d.ts create mode 100644 node_modules/meriyah/dist/src/lexer/comments.d.ts.map create mode 100644 node_modules/meriyah/dist/src/lexer/common.d.ts create mode 100644 node_modules/meriyah/dist/src/lexer/common.d.ts.map create mode 100644 node_modules/meriyah/dist/src/lexer/decodeHTML.d.ts create mode 100644 node_modules/meriyah/dist/src/lexer/decodeHTML.d.ts.map create mode 100644 node_modules/meriyah/dist/src/lexer/identifier.d.ts create mode 100644 node_modules/meriyah/dist/src/lexer/identifier.d.ts.map create mode 100644 node_modules/meriyah/dist/src/lexer/index.d.ts create mode 100644 node_modules/meriyah/dist/src/lexer/index.d.ts.map create mode 100644 node_modules/meriyah/dist/src/lexer/jsx.d.ts create mode 100644 node_modules/meriyah/dist/src/lexer/jsx.d.ts.map create mode 100644 node_modules/meriyah/dist/src/lexer/numeric.d.ts create mode 100644 node_modules/meriyah/dist/src/lexer/numeric.d.ts.map create mode 100644 node_modules/meriyah/dist/src/lexer/regexp.d.ts create mode 100644 node_modules/meriyah/dist/src/lexer/regexp.d.ts.map create mode 100644 node_modules/meriyah/dist/src/lexer/scan.d.ts create mode 100644 node_modules/meriyah/dist/src/lexer/scan.d.ts.map create mode 100644 node_modules/meriyah/dist/src/lexer/string.d.ts create mode 100644 node_modules/meriyah/dist/src/lexer/string.d.ts.map create mode 100644 node_modules/meriyah/dist/src/lexer/template.d.ts create mode 100644 node_modules/meriyah/dist/src/lexer/template.d.ts.map create mode 100644 node_modules/meriyah/dist/src/meriyah.d.ts create mode 100644 node_modules/meriyah/dist/src/meriyah.d.ts.map create mode 100644 node_modules/meriyah/dist/src/parser.d.ts create mode 100644 node_modules/meriyah/dist/src/parser.d.ts.map create mode 100644 node_modules/meriyah/dist/src/token.d.ts create mode 100644 node_modules/meriyah/dist/src/token.d.ts.map create mode 100644 node_modules/meriyah/dist/src/unicode.d.ts create mode 100644 node_modules/meriyah/dist/src/unicode.d.ts.map create mode 100644 node_modules/meriyah/package.json create mode 100644 node_modules/meriyah/src/chars.ts create mode 100644 node_modules/meriyah/src/common.ts create mode 100644 node_modules/meriyah/src/errors.ts create mode 100644 node_modules/meriyah/src/estree.ts create mode 100644 node_modules/meriyah/src/lexer/charClassifier.ts create mode 100644 node_modules/meriyah/src/lexer/comments.ts create mode 100644 node_modules/meriyah/src/lexer/common.ts create mode 100644 node_modules/meriyah/src/lexer/decodeHTML.ts create mode 100644 node_modules/meriyah/src/lexer/identifier.ts create mode 100644 node_modules/meriyah/src/lexer/index.ts create mode 100644 node_modules/meriyah/src/lexer/jsx.ts create mode 100644 node_modules/meriyah/src/lexer/numeric.ts create mode 100644 node_modules/meriyah/src/lexer/regexp.ts create mode 100644 node_modules/meriyah/src/lexer/scan.ts create mode 100644 node_modules/meriyah/src/lexer/string.ts create mode 100644 node_modules/meriyah/src/lexer/template.ts create mode 100644 node_modules/meriyah/src/meriyah.ts create mode 100644 node_modules/meriyah/src/parser.ts create mode 100644 node_modules/meriyah/src/token.ts create mode 100644 node_modules/meriyah/src/unicode.ts (limited to 'node_modules/meriyah') diff --git a/node_modules/meriyah/CHANGELOG.md b/node_modules/meriyah/CHANGELOG.md new file mode 100644 index 0000000..c1b070c --- /dev/null +++ b/node_modules/meriyah/CHANGELOG.md @@ -0,0 +1,520 @@ +# [4.2.0](https://github.com/meriyah/meriyah/compare/v4.1.5...v4.2.0) (2021-07-11) + + +### Bug Fixes + +* **parser:** keep InGlobal flag in parenthesized ([023ee0e](https://github.com/meriyah/meriyah/commit/023ee0e36fc28e75d0448739b8343ec801ac887f)) +* **parser:** rejects "await 2**2" ([9a75bf6](https://github.com/meriyah/meriyah/commit/9a75bf67c9a6d22d28accc782665ed614a5a66c1)), closes [#187](https://github.com/meriyah/meriyah/issues/187) + + +### Features + +* **parser:** support top-level await ([7b2a5bd](https://github.com/meriyah/meriyah/commit/7b2a5bd5832cfa4c98dac4219f22901c6eb28196)), closes [#186](https://github.com/meriyah/meriyah/issues/186) + + + +## [4.1.5](https://github.com/meriyah/meriyah/compare/v4.1.4...v4.1.5) (2021-03-05) + + +### Bug Fixes + +* **parser:** fix missing rejection on function name ([3327326](https://github.com/meriyah/meriyah/commit/332732676e4a55d8d1c3269d9354a8ed02facd68)), closes [#182](https://github.com/meriyah/meriyah/issues/182) + + + +## [4.1.4](https://github.com/meriyah/meriyah/compare/v4.1.3...v4.1.4) (2021-02-28) + + + +## [4.1.3](https://github.com/meriyah/meriyah/compare/v4.1.2...v4.1.3) (2021-02-28) + + + +## [4.1.2](https://github.com/meriyah/meriyah/compare/v4.1.1...v4.1.2) (2021-02-10) + + + +## [4.1.1](https://github.com/meriyah/meriyah/compare/v4.1.0...v4.1.1) (2021-02-09) + + +### Bug Fixes + +* avoid rollup typescript cache ([d6462be](https://github.com/meriyah/meriyah/commit/d6462be14519dae16f1543918fe752d4bca9514d)), closes [#176](https://github.com/meriyah/meriyah/issues/176) + + + +# [4.1.0](https://github.com/meriyah/meriyah/compare/v4.0.0...v4.1.0) (2021-02-07) + + +### Bug Fixes + +* **jsx:** decode html entities for JSXText value ([f8121f0](https://github.com/meriyah/meriyah/commit/f8121f04dbb000fc74b664496f7cf22d72477e1c)), closes [#133](https://github.com/meriyah/meriyah/issues/133) +* **parser:** fix wrong loc for BinaryExpression ([ab1ab37](https://github.com/meriyah/meriyah/commit/ab1ab37f36c449d7a1247debdd4457f94c62bf1f)), closes [#169](https://github.com/meriyah/meriyah/issues/169) +* **parser:** fix wrong loc for TemplateLiteral ([a893c16](https://github.com/meriyah/meriyah/commit/a893c1664fdc0b403aa8cb482f9443d9d97c7e1d)), closes [#167](https://github.com/meriyah/meriyah/issues/167) + + +### Features + +* add support of logical assignment ||=, &&=, and ??= ([2a5f12e](https://github.com/meriyah/meriyah/commit/2a5f12e2566f23ad280077c15dee16ca79e0d9ad)), closes [#168](https://github.com/meriyah/meriyah/issues/168) + + + +# [4.0.0](https://github.com/meriyah/meriyah/compare/v3.1.6...v4.0.0) (2021-01-14) + + +### Bug Fixes + +* **estree:** rename FieldDefinition -> PropertyDefinition, PrivateName -> PrivateIdentifier ([2a588e5](https://github.com/meriyah/meriyah/commit/2a588e5b420da50c81d0feccc82ce8adc9ca165a)), closes [#134](https://github.com/meriyah/meriyah/issues/134) +* **parser:** fixed 'async' as 'IsExpressionStart' ([5b7a592](https://github.com/meriyah/meriyah/commit/5b7a5929169bab10bf4dc31d64f2905414004964)) +* **parser:** fixed issue with 'yield expr' ([5cd7c1d](https://github.com/meriyah/meriyah/commit/5cd7c1d7743dc6d19c323727eb758cadcd3040e0)) + + +### chore + +* update deps, add previous missing breaking change note ([286863e](https://github.com/meriyah/meriyah/commit/286863ec5ec212958c39a2c790095cec70315068)) + + +### BREAKING CHANGES + +* updated estree node names: FieldDefinition -> PropertyDefinition, PrivateName -> PrivateIdentifier + + + +## [3.1.6](https://github.com/meriyah/meriyah/compare/v3.1.5...v3.1.6) (2020-11-07) + + +### Bug Fixes + +* bypass type def of package.json ([d267336](https://github.com/meriyah/meriyah/commit/d2673360724a541f5789cd003aa952be75dda9a0)), closes [#155](https://github.com/meriyah/meriyah/issues/155) + + + +## [3.1.5](https://github.com/meriyah/meriyah/compare/v3.1.4...v3.1.5) (2020-11-05) + + +### Bug Fixes + +* fix wrong CommentType type definition ([641b6ee](https://github.com/meriyah/meriyah/commit/641b6ee0d2028775b5473af4962c0b7e215e3683)) + + + +## [3.1.4](https://github.com/meriyah/meriyah/compare/v3.1.3...v3.1.4) (2020-11-05) + + +### Bug Fixes + +* fix wrong typescript def file location ([1ffac6e](https://github.com/meriyah/meriyah/commit/1ffac6e7dd475d696de6b726701a41cffc362f72)), closes [#153](https://github.com/meriyah/meriyah/issues/153) + + + +## [3.1.3](https://github.com/meriyah/meriyah/compare/v3.1.2...v3.1.3) (2020-11-04) + + +### Bug Fixes + +* fix wrong ParenthesizedExpression location ([db468c2](https://github.com/meriyah/meriyah/commit/db468c2c6a176afd44935ef94042fb8330dd600c)), closes [#152](https://github.com/meriyah/meriyah/issues/152) + + + +## [3.1.2](https://github.com/meriyah/meriyah/compare/v3.1.1...v3.1.2) (2020-10-30) + + +### Bug Fixes + +* **lexer:** fix line continuation with \r\n ([1423e81](https://github.com/meriyah/meriyah/commit/1423e8100075b66fa80624a9389aaaa12b809836)), closes [#146](https://github.com/meriyah/meriyah/issues/146) + + + +## [3.1.1](https://github.com/meriyah/meriyah/compare/v3.1.0...v3.1.1) (2020-10-29) + + +### Bug Fixes + +* **lexer:** \8 \9 are acceptable in web compatibility mode ([26a19a8](https://github.com/meriyah/meriyah/commit/26a19a86ce36df373c7ed3d3390a2d61570c06a6)), closes [#137](https://github.com/meriyah/meriyah/issues/137) +* bigint is a number literal ([2ad1a27](https://github.com/meriyah/meriyah/commit/2ad1a27c17161b78dc5883950b0b33088e00349a)), closes [#136](https://github.com/meriyah/meriyah/issues/136) +* fix ending loc of empty comment ([d62d0b8](https://github.com/meriyah/meriyah/commit/d62d0b8c158c819749840ed1756c35d90b00e670)), closes [#126](https://github.com/meriyah/meriyah/issues/126) +* fix infinite loop on broken class body ([22eb9f8](https://github.com/meriyah/meriyah/commit/22eb9f8ba4baed88e25f102e2642b79b95dc127a)), closes [#143](https://github.com/meriyah/meriyah/issues/143) +* fix range of ExportDeclaration/ClassDeclaration/ClassExpression after decorators ([81b07fb](https://github.com/meriyah/meriyah/commit/81b07fb92b70319033b44bd4b14c8470adebd4eb)), closes [#124](https://github.com/meriyah/meriyah/issues/124) +* fix wrongly captured directive with two literal expression statements ([9504b6a](https://github.com/meriyah/meriyah/commit/9504b6a0ab5c0ca340b328190bbfa113afd22ce9)), closes [#130](https://github.com/meriyah/meriyah/issues/130) +* **jsx:** fix JSXIdentifier literal value range and loc ([076e454](https://github.com/meriyah/meriyah/commit/076e454c231e788c0ff2778395924551747b4b71)), closes [#127](https://github.com/meriyah/meriyah/issues/127) +* **jsx:** fix missing raw for JSXAttribute.value ([bbd8b8a](https://github.com/meriyah/meriyah/commit/bbd8b8a2541e470b5799dbc78496e865df3b3382)), closes [#128](https://github.com/meriyah/meriyah/issues/128) +* **jsx:** fix wrong range and loc on JSXEmptyExpression ([11765ce](https://github.com/meriyah/meriyah/commit/11765ce5848efc689e3de5077766199cd4996146)), closes [#125](https://github.com/meriyah/meriyah/issues/125) +* **jsx:** JSXText node should have raw ([5ea7bda](https://github.com/meriyah/meriyah/commit/5ea7bdae48efc6afd843206cadb368b48375b5b7)), closes [#129](https://github.com/meriyah/meriyah/issues/129) + + + +# [3.1.0](https://github.com/meriyah/meriyah/compare/v3.0.5...v3.1.0) (2020-10-27) + + +### Bug Fixes + +* fix loc on hashbang comment ([f139dce](https://github.com/meriyah/meriyah/commit/f139dcec6b78690e39d6bc4a446a2a231850bebc)) +* fix range on HTMLClose comment on first line ([c445b90](https://github.com/meriyah/meriyah/commit/c445b90fa0f3c8373bfc4837c7d4b8473b1c80aa)) +* fix wrong loc in template expressions ([aa0e992](https://github.com/meriyah/meriyah/commit/aa0e9924016065800af6b2b52fabeeef634a13c0)), closes [#123](https://github.com/meriyah/meriyah/issues/123) +* properly support loc on HTMLClose comment ([f72dd4f](https://github.com/meriyah/meriyah/commit/f72dd4fdd9a581f5db866682a88475beb4cbd8b0)) + + +### Features + +* support loc flag for onComment and onToken ([287b77c](https://github.com/meriyah/meriyah/commit/287b77cd155e3c44d25b694bf47600883e5a0dca)), closes [#95](https://github.com/meriyah/meriyah/issues/95) + + +### Performance Improvements + +* **lexer:** improved lexer perf ([bc5e647](https://github.com/meriyah/meriyah/commit/bc5e6473312d2acee991b62a35be37fb24a1e533)) + + + +## [3.0.5](https://github.com/meriyah/meriyah/compare/v3.0.4...v3.0.5) (2020-10-25) + + +### Bug Fixes + +* move optional-chaining out of next ([7504c64](https://github.com/meriyah/meriyah/commit/7504c646e3d9960aed9fd0949110cb8cb65b7b05)), closes [#117](https://github.com/meriyah/meriyah/issues/117) + + + +## [3.0.4](https://github.com/meriyah/meriyah/compare/v3.0.3...v3.0.4) (2020-10-25) + + +### Bug Fixes + +* follow latest decorator proposal ([e27b9d6](https://github.com/meriyah/meriyah/commit/e27b9d6278f572d1e50ebb9804a060d1f5f1990f)), closes [#105](https://github.com/meriyah/meriyah/issues/105) +* ForInOfLoopInitializer only applies in strict mode ([5f6f0d8](https://github.com/meriyah/meriyah/commit/5f6f0d874c8dff69aae5e2cbc8396b18833df085)), closes [#116](https://github.com/meriyah/meriyah/issues/116) +* support decorator before and after "export" keyword ([f3898ff](https://github.com/meriyah/meriyah/commit/f3898fffad601f70148ce147bb0b7710641d2814)) + + + +## [3.0.3](https://github.com/meriyah/meriyah/compare/v3.0.2...v3.0.3) (2020-10-16) + + +### Bug Fixes + +* add missing optional flag on CallExpression ([903c7f5](https://github.com/meriyah/meriyah/commit/903c7f5d8c296a2517d695a1948d52e7b5115238)), closes [#110](https://github.com/meriyah/meriyah/issues/110) +* auto insert semicolon for do-while statement ([faa96bb](https://github.com/meriyah/meriyah/commit/faa96bb299f10bddfb05177ed89b94087eb4e71e)), closes [#102](https://github.com/meriyah/meriyah/issues/102) +* bigint property should exclude the ending 'n' ([e7ed3df](https://github.com/meriyah/meriyah/commit/e7ed3df61d20d185ee7afd955c019354959da10f)), closes [#111](https://github.com/meriyah/meriyah/issues/111) +* export version directly from package.json ([46a7d69](https://github.com/meriyah/meriyah/commit/46a7d6932ad83c431500a67bd967150920ab50af)), closes [#107](https://github.com/meriyah/meriyah/issues/107) +* fix [] and () inside the ChainExpression ([fa72f93](https://github.com/meriyah/meriyah/commit/fa72f933e1ca444a67b5640ab9d40b96b3102c29)) +* fix finally block start, follow other parsers on comment start and end ([fe00a67](https://github.com/meriyah/meriyah/commit/fe00a67ad192ec7d7b81088b3caabca1cef44ebf)), closes [#104](https://github.com/meriyah/meriyah/issues/104) +* fix missing static for computed class property ([bd00159](https://github.com/meriyah/meriyah/commit/bd00159c8f22875937237d2a0f5f7cba09b0150f)), closes [#106](https://github.com/meriyah/meriyah/issues/106) +* fix TemplateElement range and loc ([2a3632c](https://github.com/meriyah/meriyah/commit/2a3632cc2012067b897ffd7776c0bdaa904d20e9)) +* fix wrong cooked value in TemplateElement, fix wrong loc and range in various template nodes ([ff71744](https://github.com/meriyah/meriyah/commit/ff71744d5b20b87c3bfbba6534656d3768215207)), closes [#109](https://github.com/meriyah/meriyah/issues/109) [#108](https://github.com/meriyah/meriyah/issues/108) + + + +## [3.0.2](https://github.com/meriyah/meriyah/compare/v3.0.0...v3.0.2) (2020-10-06) + + +### Bug Fixes + +* **parser:** directive is only for statement consisting entirely of a string literal ([8186dc1](https://github.com/meriyah/meriyah/commit/8186dc122d9cc4f7df9ebf95fbb3206b5df42dc0)), closes [#99](https://github.com/meriyah/meriyah/issues/99) +* **parser:** follow latest estree spec on ExportAllDeclaration ([7a7fc76](https://github.com/meriyah/meriyah/commit/7a7fc76f2b59faf0b5db069094a3b2584bbbe77a)), closes [#97](https://github.com/meriyah/meriyah/issues/97) +* fix wrong ChainExpression wrapper ([a33771c](https://github.com/meriyah/meriyah/commit/a33771c308a47d37deb8c9c452b4cbb896b52379)), closes [#98](https://github.com/meriyah/meriyah/issues/98) + + + +## [3.0.1](https://github.com/meriyah/meriyah/compare/v3.0.0...v3.0.1) (2020-10-06) + + +### Bug Fixes + +* **parser:** directive is only for statement consisting entirely of a string literal ([8186dc1](https://github.com/meriyah/meriyah/commit/8186dc122d9cc4f7df9ebf95fbb3206b5df42dc0)), closes [#99](https://github.com/meriyah/meriyah/issues/99) +* **parser:** follow latest estree spec on ExportAllDeclaration ([7a7fc76](https://github.com/meriyah/meriyah/commit/7a7fc76f2b59faf0b5db069094a3b2584bbbe77a)), closes [#97](https://github.com/meriyah/meriyah/issues/97) +* fix wrong ChainExpression wrapper ([a33771c](https://github.com/meriyah/meriyah/commit/a33771c308a47d37deb8c9c452b4cbb896b52379)), closes [#98](https://github.com/meriyah/meriyah/issues/98) + + + +# [3.0.0](https://github.com/meriyah/meriyah/compare/v2.1.2...v3.0.0) (2020-09-21) + + + +## [2.1.2](https://github.com/meriyah/meriyah/compare/v2.1.1...v2.1.2) (2020-09-21) + + +### Bug Fixes + +* **estree:** fix the estree interface for BigIntLiteral, cleanup RegExpLiteral ([100c9ad](https://github.com/meriyah/meriyah/commit/100c9ad2b1c10d44f547b87d78626de09faaa2c4)) +* **lexer:** store correct bigint token value ([964e678](https://github.com/meriyah/meriyah/commit/964e678dea3676931409cfb3aec7bb1edd4a94c6)), closes [#93](https://github.com/meriyah/meriyah/issues/93) + + +### BREAKING CHANGES + +* **lexer:** upgraded ts target from es2018 to es2020, dropped nodejs v6 and v8 support + + + +## [2.1.1](https://github.com/meriyah/meriyah/compare/v1.9.6...v2.1.1) (2020-07-24) + + +### Bug Fixes + +* **lexer:** fix missed new line char in jsx parser ([f8be7de](https://github.com/meriyah/meriyah/commit/f8be7de10efc1b3235f4d45e6783635ae064398d)), closes [#90](https://github.com/meriyah/meriyah/issues/90) +* **parser:** fix endless loop on broken jsx ([9ee78ac](https://github.com/meriyah/meriyah/commit/9ee78ac84d9c58cb00def0fb32c2ae0f922291d7)), closes [#91](https://github.com/meriyah/meriyah/issues/91) +* rename CoalesceExpression ([2256168](https://github.com/meriyah/meriyah/commit/2256168c1bbe53b6c618764516e721c765eeb79f)) +* **lexer:** fix regexp char class \u{hhhh} which requires the u flag ([1fdffb6](https://github.com/meriyah/meriyah/commit/1fdffb6b17935916e058166b2ac6dee522f24b85)), closes [#79](https://github.com/meriyah/meriyah/issues/79) +* **parser:** fixes [#70](https://github.com/meriyah/meriyah/issues/70) ([2ded017](https://github.com/meriyah/meriyah/commit/2ded017436183eb29dd8e58d1d496c84a00b6853)) +* **scan:** token start should skip leading white spaces and comments ([64eea11](https://github.com/meriyah/meriyah/commit/64eea116bd197a5ebb34dfeab2100d1425a08857)), closes [#81](https://github.com/meriyah/meriyah/issues/81) + + +### Features + +* **all:** added Unicode v.13 support ([550f86f](https://github.com/meriyah/meriyah/commit/550f86fefbb6412b95f2f57dd5c598706291a060)) +* **parser:** add .range: [start, end] to improve compatibility with ESTree tools ([f60ae26](https://github.com/meriyah/meriyah/commit/f60ae26e8d7d999fcb13ac60cf1e16d8ae97f3df)) +* **parser:** support latest ESTree spec on optional chaining ([055eb1c](https://github.com/meriyah/meriyah/commit/055eb1c180c4922b5971c32e9e8e1fc079ef7c33)) + + + +## [1.9.6](https://github.com/meriyah/meriyah/compare/ade6e8f757beb2220783e7ab3bc6615d90bcdc91...v1.9.6) (2020-01-19) + + +### Bug Fixes + +* **all:** fixed issue with TS bundle 'const enum'. Values out of order and tokens got wrong values ([4ed317c](https://github.com/meriyah/meriyah/commit/4ed317cdeb4ee649e818c30212e448f331fc6596)) +* **all:** Improved ESTree compat ([4192641](https://github.com/meriyah/meriyah/commit/4192641c1ad45c4989965a6ee9ca81d92c6891ca)) +* **all:** used logical names to avoid confusions ([6f25b7b](https://github.com/meriyah/meriyah/commit/6f25b7b4fde7d35cb3ec84935dc8e8bbb6fbb815)) +* **chore:** improved line and coloumn tracking - [#46](https://github.com/meriyah/meriyah/issues/46) ([dc2f3be](https://github.com/meriyah/meriyah/commit/dc2f3bef49a32f5a3215522220f2b33f713eb6c3)) +* **lexer:** dedupe some code ([bc86b42](https://github.com/meriyah/meriyah/commit/bc86b422f3baa1e5e5cb83f2832eebf19f41a7c9)) +* **lexer:** fixed a optional chaining token bug introduced earlier ([79e8fa3](https://github.com/meriyah/meriyah/commit/79e8fa31c04458ad796653064cd17e9449c875c4)) +* **lexer:** fixed CRLF issues - [#46](https://github.com/meriyah/meriyah/issues/46) ([43bc755](https://github.com/meriyah/meriyah/commit/43bc7551af1d3b93453ae592c87b113e52f4252d)) +* **lexer:** fixed incorrect error messages ([1934295](https://github.com/meriyah/meriyah/commit/1934295c947ee70d857b56773d310428d485f257)) +* **lexer:** fixed issue with PS and LS between tokens ([3dd08b3](https://github.com/meriyah/meriyah/commit/3dd08b3ed6eb17247b90d021b8e38cee679dd249)) +* **lexer:** fixed issue with raw in numeric scanning ([db21faf](https://github.com/meriyah/meriyah/commit/db21faf09ca54a3766666fc5dfc9b65d519ca8a3)) +* **lexer:** fixed JSX issue break bundled build only and in the REPL ([32f347f](https://github.com/meriyah/meriyah/commit/32f347f5399e37e2ff5d7a009a76acede4145965)) +* **lexer:** fixed JSX issue in lexer. Caused only the bundled build to break on JSX parsing. ([0bc45af](https://github.com/meriyah/meriyah/commit/0bc45af2e562c1eebede23bf125ecad41c80a914)) +* **lexer:** fixed loc tracking for jsx and optimized jsx scanning ([708a1a6](https://github.com/meriyah/meriyah/commit/708a1a63374a4fdbbf422028d66b8e35f26a1247)) +* **lexer:** fixed potensial issue with BOM ([b380d62](https://github.com/meriyah/meriyah/commit/b380d6275293045808ca62951b3a5334b8536e31)) +* **lexer:** fixed WS skipping issue ([bf27362](https://github.com/meriyah/meriyah/commit/bf27362f06f15031aaa148f25643a60a941cdbf1)) +* **lexer:** fixed ZWJ issue in identifierPart validation ([3708214](https://github.com/meriyah/meriyah/commit/3708214121e8de4d74560755ed2b6fa673755f70)) +* **lexer:** improved identifier scanning ([bb65cd7](https://github.com/meriyah/meriyah/commit/bb65cd744415ed41fe690cb4cd6f298f5049a8f5)) +* **lexer:** improved identifier scanning performance ([29c1d3d](https://github.com/meriyah/meriyah/commit/29c1d3d993f9e345bf42ea9528464643f5dfa592)) +* **lexer:** improved identifier scanning performance ([15131d4](https://github.com/meriyah/meriyah/commit/15131d4738d293a72ee542d924531f67518236a1)) +* **lexer:** improved line counting ([c29be84](https://github.com/meriyah/meriyah/commit/c29be847f393d05fcc0bdcb322a5e4507da5d002)) +* **lexer:** improved punctuator scanning ([ddef09f](https://github.com/meriyah/meriyah/commit/ddef09f4ca1cc54c6fe431a93ad839b3b533d78b)) +* **lexer:** improved scanner performance ([c637ee5](https://github.com/meriyah/meriyah/commit/c637ee5ca277c5347690d4ba94ce919a969aaebd)) +* **lexer:** improved single line comment scanning ([9370535](https://github.com/meriyah/meriyah/commit/937053511de83f296befc510ca6ebc481a13ffcb)) +* **lexer:** improved template literal scanning ([68175f6](https://github.com/meriyah/meriyah/commit/68175f6114e2fd9eab099dfaba05c49505f2fdfc)) +* **lexer:** improved template scanning ([a2af86f](https://github.com/meriyah/meriyah/commit/a2af86ff88028fc3b6c3a22d9e0f8f53bd12150d)) +* **lexer:** improved unicode escape scanning ([61c471b](https://github.com/meriyah/meriyah/commit/61c471b53a12fb6c460fe961d4f37b925592ce86)) +* **lexer:** minor optimization tweaks ([20a118c](https://github.com/meriyah/meriyah/commit/20a118c67db5bbd179d9a328d47a268e40b50f6a)) +* **lexer:** optimized number scanning ([0a09e9e](https://github.com/meriyah/meriyah/commit/0a09e9ed7be4891b6cfa2c4e004cbc15eb7be399)) +* **lexer:** optimized WS skipping and comment scanning ([9f85539](https://github.com/meriyah/meriyah/commit/9f855395e9691c03cbeff3ea9d9c17a3f104d37b)) +* **lexer:** performance tweaks ([01557c8](https://github.com/meriyah/meriyah/commit/01557c8d1784fad68971fd52916927efee603e10)) +* **lexer:** performance tweaks ([109fdbb](https://github.com/meriyah/meriyah/commit/109fdbbd3a77e85392f49f9d68b699ebb25a0fb7)) +* **lexer:** simplified a few things in the lexer ([8415be7](https://github.com/meriyah/meriyah/commit/8415be7b7b8772e8d780a3e71d2a3aa67be95bb5)) +* **lexer:** simplified SMP scanning ([58f4a30](https://github.com/meriyah/meriyah/commit/58f4a30c3228e49c310c4abf398ea1c3c033e1b1)) +* **lexer:** tweaked ident scanning ([a205210](https://github.com/meriyah/meriyah/commit/a205210e66dcf2122b5a454979e398d2f9b8acf6)) +* **lexer:** tweaked number scanning ([e2d78cc](https://github.com/meriyah/meriyah/commit/e2d78ccb6df9cc5a5647cfedb1ef603729e361e0)) +* **lexer:** tweaked numeric separators implementation ([4cfcb28](https://github.com/meriyah/meriyah/commit/4cfcb28fb71a062d91a76e700374006780ee578f)) +* **lexer:** use direct lookup and avoid bitmasks for idStart & idContinue ([901bfb0](https://github.com/meriyah/meriyah/commit/901bfb083282304047fdfc72617a9bad6d5d74e3)) +* **parser:** fixed useless context definition, since its value is never read ([7eec823](https://github.com/meriyah/meriyah/commit/7eec823cdc54a2912202bcbcd52048f5d5aee8e4)) +* **parser:** swapped names on bitmasks for destruct and assign ([f3eb024](https://github.com/meriyah/meriyah/commit/f3eb02455c9ad8d0a62fbde052cd5b103b7f046f)) +* **parser:** added 'onComment' types ([3ce01f3](https://github.com/meriyah/meriyah/commit/3ce01f3a8704dc12301a1d790bd53a1a11aae23d)) +* **parser:** Adds error loc object to be Acorn compat. fixes [#43](https://github.com/meriyah/meriyah/issues/43) . ([a474cd7](https://github.com/meriyah/meriyah/commit/a474cd7cf69c5098c8c4685b23fa8e84cde58656)) +* **parser:** adjusted loc and ranges for JSX AST nodes ([7073fdd](https://github.com/meriyah/meriyah/commit/7073fddeafdb3d75845ffc9e7391d149b5225915)) +* **parser:** avoid 'push' in module parsing (performance) ([e99a8a8](https://github.com/meriyah/meriyah/commit/e99a8a8997ceea08aadc14dae78a228c616242bf)) +* **parser:** avoid reinterpretation to pattern if not needed ([671dc57](https://github.com/meriyah/meriyah/commit/671dc573cf5046fdf828bb955770561e380f2e16)) +* **parser:** avoid setting 'PropertyKind' if a field definition ([9498c55](https://github.com/meriyah/meriyah/commit/9498c5524d96179973e0d407273a4b0befbda04c)) +* **parser:** changed name on options to be Acorn compat ([43b0029](https://github.com/meriyah/meriyah/commit/43b00299bdd7bd14c2f42adfb74daf6e597cd5db)) +* **parser:** Context based escape keyword validation ([17d4649](https://github.com/meriyah/meriyah/commit/17d46497c7b75aa3d56009ecfb4df777430ab7b9)) +* **parser:** dedupe class field parsing ([4c61090](https://github.com/meriyah/meriyah/commit/4c610901cc7777cc7c3136b39d228c2aa71c1880)) +* **parser:** dedupe even more logic for perf reasons ([6af320c](https://github.com/meriyah/meriyah/commit/6af320c810c31af5ce8ba911d51469116097b737)) +* **parser:** dedupe some code ([21e4449](https://github.com/meriyah/meriyah/commit/21e4449cd70fec6c2d3c8e01af37f528dd4b771c)) +* **parser:** dedupe some code ([ca79f80](https://github.com/meriyah/meriyah/commit/ca79f80f8329f04a45dbbacf4a027aaa937d56f1)) +* **parser:** dedupe some code ([c41a671](https://github.com/meriyah/meriyah/commit/c41a671a8e03e6b84293f0eba16247feebaceb27)) +* **parser:** dedupe some code ([0a53f77](https://github.com/meriyah/meriyah/commit/0a53f77446eeeaa70e77f5ddfc02690ccc1817ec)) +* **parser:** dedupe some code ([91e0233](https://github.com/meriyah/meriyah/commit/91e023390a0a57170a62796d2a04368bc9216ad2)) +* **parser:** dedupe some code ([42f1afa](https://github.com/meriyah/meriyah/commit/42f1afa1f171aa19394734eeb5dc438151c7ab0a)) +* **parser:** dedupe some code ([16c95b1](https://github.com/meriyah/meriyah/commit/16c95b1111cd33115b2ef7fa8d5bc66a5e2aa183)) +* **parser:** dedupe some code ([82d9407](https://github.com/meriyah/meriyah/commit/82d9407882593a4af6eff13733128fc39ec255fc)) +* **parser:** dedupe some code ([3c1409a](https://github.com/meriyah/meriyah/commit/3c1409ad224ccb3092ebb33959800e79f388fc9c)) +* **parser:** dedupe some code ([5265848](https://github.com/meriyah/meriyah/commit/52658489e1896c07e97dae936e33c123400d1f67)) +* **parser:** dedupe some code ([51fcd14](https://github.com/meriyah/meriyah/commit/51fcd143baef72619074377bbc492cf97861c6e4)) +* **parser:** dedupe some code ([0858e3b](https://github.com/meriyah/meriyah/commit/0858e3bcdc2ae766b4e4c2b6f1f2a73605ce5f97)) +* **parser:** dedupe some code and improved performance ([b972e90](https://github.com/meriyah/meriyah/commit/b972e90bd19b11dd695af6ef7c8f273f3677e0d8)) +* **parser:** dedupe some logic ([de7d970](https://github.com/meriyah/meriyah/commit/de7d9706aeabf50327cabc756aab944058efd67f)) +* **parser:** dedupe some logic for perf reasons ([fd7f2d8](https://github.com/meriyah/meriyah/commit/fd7f2d8bdb73161f78b167dc32b38f59c9b3b9d6)) +* **parser:** Dedupe some logic to reduce branching ([a69476c](https://github.com/meriyah/meriyah/commit/a69476ca2003b7b771160b0ff6e01cd6df5a9bb3)) +* **parser:** export Options & ESTree TS types ([9e8ff6c](https://github.com/meriyah/meriyah/commit/9e8ff6c83731a5958d6e89ec6132db43da38a85d)) +* **parser:** Fix a bunch of edge cases ([96126e4](https://github.com/meriyah/meriyah/commit/96126e492b1b714edd2d08f3d4b788b14415bf12)) +* **parser:** Fix a bunch of edge cases ([edfe03c](https://github.com/meriyah/meriyah/commit/edfe03c891d3442b8368fd64567a7345c72e18f3)) +* **parser:** fixed __proto__ edge cases ([91cdefd](https://github.com/meriyah/meriyah/commit/91cdefd3630bd36fd84e611f7f82558183db23cd)) +* **parser:** Fixed "ecma262 PR 1174" implementation ([0bd2a60](https://github.com/meriyah/meriyah/commit/0bd2a605fa9a23bb88becb86f305423ba98ffbc9)) +* **parser:** fixed [#37](https://github.com/meriyah/meriyah/issues/37) ([6c28caf](https://github.com/meriyah/meriyah/commit/6c28cafec6823e86963fe8448781403e33c3e0e0)) +* **parser:** fixed a bunch of edge cases ([14160c5](https://github.com/meriyah/meriyah/commit/14160c59e9791b83d477a31ecb8569da77a1df37)) +* **parser:** fixed a bunch of edge cases ([1a100ba](https://github.com/meriyah/meriyah/commit/1a100bac63ec3bdf7d6488516d1d185c4031c59f)) +* **parser:** fixed a bunch of edge cases ([fe941bc](https://github.com/meriyah/meriyah/commit/fe941bc64d60a0fef3b4013afed52b3ab17a23a6)) +* **parser:** fixed a bunch of edge cases ([2fd9c4e](https://github.com/meriyah/meriyah/commit/2fd9c4e79a6058b7529aff54a3cc2a74b3c5771d)) +* **parser:** Fixed a bunch of edge cases ([d7e08fe](https://github.com/meriyah/meriyah/commit/d7e08fef14d7f6757d481041d030d1fb7623a242)) +* **parser:** Fixed a bunch of edge cases ([9854a83](https://github.com/meriyah/meriyah/commit/9854a83351f268431dd2d72763aa1dc94cd9200a)) +* **parser:** fixed a couple of edge cases ([f4de592](https://github.com/meriyah/meriyah/commit/f4de592ea791eef60fc84849fab77b830ad6b37a)) +* **parser:** fixed a few edge cases ([0a425ba](https://github.com/meriyah/meriyah/commit/0a425bac4f49734b042d4e05b1c0de0b0e1268fd)) +* **parser:** fixed a few edgy cases ([43130ac](https://github.com/meriyah/meriyah/commit/43130ac9ce7e0d822bc58f9d278709afd83ee33f)) +* **parser:** fixed a few edgy cases for escape keywords ([5165c2e](https://github.com/meriyah/meriyah/commit/5165c2e1bfc8287f8cb39749c03924c78b485660)) +* **parser:** fixed a few non-throwing edge cases ([c9e08cd](https://github.com/meriyah/meriyah/commit/c9e08cda3a608f5de40d52e16dac7febd9fda8e8)) +* **parser:** fixed a few non-throwing edge cases ([8977bd8](https://github.com/meriyah/meriyah/commit/8977bd8e57823225cf721990bf129ff49111dae1)) +* **parser:** fixed a slip up ([e9f5950](https://github.com/meriyah/meriyah/commit/e9f59507504379fcffce2e6dde46595d4a5b5684)) +* **parser:** fixed a slip-up ([7aab914](https://github.com/meriyah/meriyah/commit/7aab91440be28bbcd66a4199ee0f3649cb764014)) +* **parser:** fixed an issue where async as ident wasn't assignable ([48b67c3](https://github.com/meriyah/meriyah/commit/48b67c3560ce226f5d73a06d2ce817a28bc7141b)) +* **parser:** fixed AST output for optional chaining ([18d6735](https://github.com/meriyah/meriyah/commit/18d6735a888a15977018c9631733f145d660d3a0)) +* **parser:** fixed async arrow edge cases ([65e6c20](https://github.com/meriyah/meriyah/commit/65e6c203bd287b9320fe0144a591ec743679866b)) +* **parser:** fixed async await edge cases ([7ffdea3](https://github.com/meriyah/meriyah/commit/7ffdea3d6e97f4254ccae9b7a0e8a361c226efce)) +* **parser:** fixed bunch of class field edge cases ([48077ab](https://github.com/meriyah/meriyah/commit/48077ab9665713cd0c82833a452af3da56c81885)) +* **parser:** fixed bunch of class field edge cases ([75c881a](https://github.com/meriyah/meriyah/commit/75c881a1d2fcf39560904746722f4021b43db4b7)) +* **parser:** fixed bunch of edge cases ([f18f5b4](https://github.com/meriyah/meriyah/commit/f18f5b467eac24c5c0528a5b72edeaec68d91132)) +* **parser:** fixed class field edge cases ([de0d0b5](https://github.com/meriyah/meriyah/commit/de0d0b596497ef24da01e1b5f3c0258588b5e986)) +* **parser:** fixed computed property names - added missing "parseMemberOrUpdateExpression" ([01add5d](https://github.com/meriyah/meriyah/commit/01add5d07bbdff6fca1978cb50da07b49407ecc3)) +* **parser:** fixed confusing error message ([a6e0e71](https://github.com/meriyah/meriyah/commit/a6e0e71e17d4da1b9469abdc78e4d176d2524628)) +* **parser:** fixed const enum values and extended API tests to guard against TS issues ([c69ac52](https://github.com/meriyah/meriyah/commit/c69ac520d9dfeca8e9e1059012793f58c7d2e70f)) +* **parser:** fixed directive prologue edge cases ([9092515](https://github.com/meriyah/meriyah/commit/9092515322666e77402ac83802b10645e49329f2)) +* **parser:** fixed duplicate call to 2parseMemberOrUpdateExpression" ([501b76c](https://github.com/meriyah/meriyah/commit/501b76c41036210d035509b81f07f68700ca5bc3)) +* **parser:** fixed edge cases ([b7cc2f8](https://github.com/meriyah/meriyah/commit/b7cc2f827a2ce06dec6b8cb0ca7b489a77f42c61)) +* **parser:** fixed edge cases ([6397c0f](https://github.com/meriyah/meriyah/commit/6397c0fa4cff32d0ccd562054061c0923b3c5195)) +* **parser:** fixed edge cases and corrected a few tests ([c2c56da](https://github.com/meriyah/meriyah/commit/c2c56dad9e84038742156ffdf183a75184a28518)) +* **parser:** fixed edge cases and test coverage ([e1da2d2](https://github.com/meriyah/meriyah/commit/e1da2d29c38b3ce288d3c756de20c15d490da1f3)) +* **parser:** fixed edgy cases ([a4434ef](https://github.com/meriyah/meriyah/commit/a4434ef75c53158dcaf56f3ffaee21a177b4123f)) +* **parser:** fixed escape keyword edgy cases ([6c48765](https://github.com/meriyah/meriyah/commit/6c487651a2bf62a8c36c80803cb5922be34693c6)) +* **parser:** fixed escape keywords ([de9c43b](https://github.com/meriyah/meriyah/commit/de9c43b10dde8fce845fca9e1aa7f7d3274c67fb)) +* **parser:** fixed eval and arguments validations ([1a927be](https://github.com/meriyah/meriyah/commit/1a927be61aa05f1847db5878a4e829d684611811)) +* **parser:** Fixed for-statement edge case ([544a7e7](https://github.com/meriyah/meriyah/commit/544a7e7c99ec59a01e0ef0903ec37c57b1f08976)) +* **parser:** fixed for-statement ranges ([68481ee](https://github.com/meriyah/meriyah/commit/68481eee7c5d42e20ae75f271eb4b2aeda133fe3)) +* **parser:** fixed import call and added 'ImportExpression' AST node ([f735377](https://github.com/meriyah/meriyah/commit/f735377fe3eb9476e1c16f5e1dd83df4c0d8a70f)) +* **parser:** fixed import call implementation ([cb09a9c](https://github.com/meriyah/meriyah/commit/cb09a9cb1abb5819d781c8471380b542c851052a)) +* **parser:** Fixed incorrect capitalized option ([917a0f1](https://github.com/meriyah/meriyah/commit/917a0f17afbdeba20eacce4dbcc8bb2c2b963d3e)) +* **parser:** fixed incorrect error locations ([6d894e5](https://github.com/meriyah/meriyah/commit/6d894e5425a134a163ddfddd74a681b55308fa0f)) +* **parser:** fixed issue with OctalEscapeSequence discovered by fuzzer ([5d62f79](https://github.com/meriyah/meriyah/commit/5d62f79160c202a5d49648b2dcc6d912be3693c2)) +* **parser:** fixed issue with a directive preceding an 'use strict' directive containing an OctalEscapeSequence ([84bd498](https://github.com/meriyah/meriyah/commit/84bd4986de30bc407745a72bb5b5e27268e9030e)) +* **parser:** fixed issue with module code not in strict mode in a few cases ([c6d24b6](https://github.com/meriyah/meriyah/commit/c6d24b6883a738f74b31068ab06aa201bffdd464)) +* **parser:** fixed issue with private field didn't pass the 'kind' state ([bd6ec68](https://github.com/meriyah/meriyah/commit/bd6ec689cf4e582f2c7f405f4f7b948e9c5db07b)) +* **parser:** Fixed issue with single line comment extraction. Exposed parser obj instead of comment end value ([a9a8958](https://github.com/meriyah/meriyah/commit/a9a8958018c66feff8466cbd26b1babb7c92503b)) +* **parser:** fixed issue with template & sequence expr ([627cf3b](https://github.com/meriyah/meriyah/commit/627cf3b73ca99c76941516f08ac11af226d94915)) +* **parser:** fixed JSX non failing cases ([e5bc9de](https://github.com/meriyah/meriyah/commit/e5bc9defe5fe54499d7085e7397c4c156ade8b2b)) +* **parser:** fixed lexical edge case ([98c6ee7](https://github.com/meriyah/meriyah/commit/98c6ee796740feb12f635e47cc9b954bb9fa649d)) +* **parser:** fixed lgtm warnings ([558ba1f](https://github.com/meriyah/meriyah/commit/558ba1fcb9130c887c52ee24ac6f5f7addb092ca)) +* **parser:** fixed lgtm warnings ([e14cb97](https://github.com/meriyah/meriyah/commit/e14cb975f3ca5ac4b0d732c3da77910de4fe59ff)) +* **parser:** fixed lgtm warnings ([0d20e52](https://github.com/meriyah/meriyah/commit/0d20e5277ccc9ff375ec067458f5c304b2e95028)) +* **parser:** fixed LGTM warnings ([7746e25](https://github.com/meriyah/meriyah/commit/7746e25b9910d30b3170cefd2d295c85a261c5bc)) +* **parser:** fixed LGTM warnings ([d58536e](https://github.com/meriyah/meriyah/commit/d58536e123fe5d5a1ccb489b95edb5842487e035)) +* **parser:** fixed LGTM warnings ([c3efc64](https://github.com/meriyah/meriyah/commit/c3efc645b18743a9e09cbddce2d3786232efb422)) +* **parser:** Fixed LGTM warnings ([7d36ae3](https://github.com/meriyah/meriyah/commit/7d36ae3b0ab7dc6061d8d6716afe5a62f78e9edf)) +* **parser:** fixed negative bitmask values ([972a6f0](https://github.com/meriyah/meriyah/commit/972a6f01297c5c2268f15867349547a3c8e5ec67)) +* **parser:** Fixed non-failing cases ([2e3ff8d](https://github.com/meriyah/meriyah/commit/2e3ff8d8f7ae1702f7c9d9c077e4c23226bceb6b)) +* **parser:** Fixed object lit edge cases ([1c0c2e8](https://github.com/meriyah/meriyah/commit/1c0c2e8d1b8d7122a7a3dc12d5948487e740f054)) +* **parser:** fixed possible conflicts ([b72ffe2](https://github.com/meriyah/meriyah/commit/b72ffe22adfe2cec0511f69877cc82f4e14575d8)) +* **parser:** fixed possible performance regression ([80c75de](https://github.com/meriyah/meriyah/commit/80c75de7d1fe7f83fc12a697121a43df7fdd037d)) +* **parser:** fixed template expression edge cases ([281ad30](https://github.com/meriyah/meriyah/commit/281ad3071fc4b8289b32d144d443c3608a969012)) +* **parser:** fixed Test262 test suite edge cases ([c9545fe](https://github.com/meriyah/meriyah/commit/c9545fe968ffe32221af587f120aaeb8213993c7)) +* **parser:** fixed unused func params ([12ba7e6](https://github.com/meriyah/meriyah/commit/12ba7e6f84a5a9bb4168552e39a265ab72e8e88b)) +* **parser:** fixed wrong line count in single line comment ([c35b6d0](https://github.com/meriyah/meriyah/commit/c35b6d08b6c18df656aa8e5fbaebb1bf90b877d2)) +* **parser:** Fixes [#25](https://github.com/meriyah/meriyah/issues/25) ([c2b96cb](https://github.com/meriyah/meriyah/commit/c2b96cb3de7aabd10045f08b81539ef37bad71cc)) +* **parser:** fixes [#31](https://github.com/meriyah/meriyah/issues/31) ([7576780](https://github.com/meriyah/meriyah/commit/7576780a9467ac897fe7a69ebef93c613e0790dc)) +* **parser:** fixes [#38](https://github.com/meriyah/meriyah/issues/38) ([9834975](https://github.com/meriyah/meriyah/commit/9834975321cad92d1d79795354ae41dc600a0285)) +* **parser:** Fixes [#5](https://github.com/meriyah/meriyah/issues/5) ([7805610](https://github.com/meriyah/meriyah/commit/78056102d8ceb0e60a987c2b19ea6833c3f0b7a7)) +* **parser:** fixes [#58](https://github.com/meriyah/meriyah/issues/58) ([bbfc5c2](https://github.com/meriyah/meriyah/commit/bbfc5c2e1e9e5748ef496544a785d12454179a53)) +* **parser:** fixes assignment edge cases ([b2cf29f](https://github.com/meriyah/meriyah/commit/b2cf29f0b13d5a884295cd8d5238becb07a1325c)) +* **parser:** fixes do while edge cases ([024e459](https://github.com/meriyah/meriyah/commit/024e4595805af50b677bbb0d6092b0243dd902dc)) +* **parser:** fixes loc tracking for optional chaining ([e875e14](https://github.com/meriyah/meriyah/commit/e875e14579bab71df8fc00094f296c37dfea89db)) +* **parser:** fixes yield edge cases ([54d5669](https://github.com/meriyah/meriyah/commit/54d56691dde6e77c0c86555b638f8c6fb51fce86)) +* **parser:** implemented optional chaining ([cc334f3](https://github.com/meriyah/meriyah/commit/cc334f3ceafa77bd55187a8252962ce3c6369311)) +* **parser:** Improved a bunch of yield edge cases ([e58ea2b](https://github.com/meriyah/meriyah/commit/e58ea2b1c8f515ab03a6e4859bc983809aa7fc2c)) +* **parser:** improved comment extraction ([1f1daf9](https://github.com/meriyah/meriyah/commit/1f1daf926c37139ea72c98799c769819ec66f174)) +* **parser:** improved error reporting for duplicate bindings ([0483d25](https://github.com/meriyah/meriyah/commit/0483d25f3794f0b8d339f1e920d036b443e0eaca)) +* **parser:** improved module code parsing ([9ecef95](https://github.com/meriyah/meriyah/commit/9ecef95779b2de807bc54e59e8389dd30b387008)) +* **parser:** improved nullish coalescing performance ([83cbdd5](https://github.com/meriyah/meriyah/commit/83cbdd54323e467d7dfb626fd18646aa4f366ecf)) +* **parser:** improved optional chaing implementation ([c8532d9](https://github.com/meriyah/meriyah/commit/c8532d9a95fd611fe902771fe0a07eb7d5681b27)) +* **parser:** improved optional chaining implementation ([90c139c](https://github.com/meriyah/meriyah/commit/90c139ce36af5fdd2500e365f23ed305445bfdec)) +* **parser:** improved optional chaining implementation ([2766dd9](https://github.com/meriyah/meriyah/commit/2766dd9303a3775a09492f4ca9bfd68015b0dd0d)) +* **parser:** improved performance - create less lexical scopes ([8485cbb](https://github.com/meriyah/meriyah/commit/8485cbb9d6a75a2a4d9cbbfaef1b29278bc94ac7)) +* **parser:** improved performance for edgy cases ([c8a3677](https://github.com/meriyah/meriyah/commit/c8a3677cc1d834b6aa93e1ef67d8b30e2349b0f2)) +* **parser:** improved performance for import default ([e814e36](https://github.com/meriyah/meriyah/commit/e814e3603cafb6ec10b99c03744513b1e7310e43)) +* **parser:** JSX attributes must only be assigned a non-empty 'expression' ([712d8e6](https://github.com/meriyah/meriyah/commit/712d8e6030e4ab60714747e66bcfe9210eead021)) +* **parser:** make nested async arrow assignable ([83c8db0](https://github.com/meriyah/meriyah/commit/83c8db0514d3605a8ae5e7936e9d71bb0f583642)) +* **parser:** minor refactoring & performance tweaks ([39dc0e7](https://github.com/meriyah/meriyah/commit/39dc0e79000854cc35362f4e79b1c9bfdadc6910)) +* **parser:** minor tweaks ([6a14bab](https://github.com/meriyah/meriyah/commit/6a14babb6200c8d953ad00433ae095c78e7cdbf9)) +* **parser:** minor tweaks ([35ead44](https://github.com/meriyah/meriyah/commit/35ead44cb0fee7160ec0ce02e062a17a5cb83526)) +* **parser:** minor tweaks ([7080dee](https://github.com/meriyah/meriyah/commit/7080dee35b7bb64d40932df1a100b9e4783a1cd1)) +* **parser:** moved enums to common.ts for improved readability ([09683b4](https://github.com/meriyah/meriyah/commit/09683b4e83b704c146fe144c1c6aa3a0fa3f7c92)) +* **parser:** moved func flags to 'common.ts' ([21e771d](https://github.com/meriyah/meriyah/commit/21e771d4f4f165bc83f064a581afa02772256169)) +* **parser:** now unsets 'SimpleParameterList' masks correctly ([f48b486](https://github.com/meriyah/meriyah/commit/f48b486a1eb8b8de031725c62b3e0264fabadc44)) +* **parser:** optimization tweaks ([9e983a8](https://github.com/meriyah/meriyah/commit/9e983a8ed9e2a0e3cd7531ffbfedd74fa5a49702)) +* **parser:** optimization tweaks ([49b78e3](https://github.com/meriyah/meriyah/commit/49b78e3eac08c70c161275bbe009055a9829739f)) +* **parser:** optimized class field parsing ([2c1bf99](https://github.com/meriyah/meriyah/commit/2c1bf99d7e7f0911c423c30528dc97fcdb8e13c5)) +* **parser:** pass 'inClass' as function argument ([5129b0a](https://github.com/meriyah/meriyah/commit/5129b0a5ee6b99cee40504d0fbb17241c91b9605)) +* **parser:** performance improvements ([39f0a80](https://github.com/meriyah/meriyah/commit/39f0a802396d577d9dd3cb7153b4c158c660dd71)) +* **parser:** performance improvements ([5bd745a](https://github.com/meriyah/meriyah/commit/5bd745ab7069ca3cd74af1e21fcb85dfc7f6a201)) +* **parser:** performance improvements ([89c4006](https://github.com/meriyah/meriyah/commit/89c400678e18eb0814193964717f8af42c23e354)), closes [#21](https://github.com/meriyah/meriyah/issues/21) +* **parser:** performance improvements ([7f2c32f](https://github.com/meriyah/meriyah/commit/7f2c32ff7b657fc7764c1d22d021726d735804d6)) +* **parser:** performance improvements ([62c2d6f](https://github.com/meriyah/meriyah/commit/62c2d6f0f87e5e1770ac00656092e29624fc146f)) +* **parser:** permanently fixed yield edge cases ([6166b2b](https://github.com/meriyah/meriyah/commit/6166b2ba9703107ca0eb2c41e747e2970f51d770)) +* **parser:** prevented a possible var name conflict ([fc310db](https://github.com/meriyah/meriyah/commit/fc310dba10cf46824efe8856c9bfa615897bdacb)) +* **parser:** reduced branching and simplified for parenthesized arrow head & async arrow ([25a5bff](https://github.com/meriyah/meriyah/commit/25a5bffc4364f0d26f5903d55d4985d76e887c2b)) +* **parser:** refactored and simplified location tracking ([0899ad3](https://github.com/meriyah/meriyah/commit/0899ad37fab3cec42545727f7b79b77fa7d55c66)) +* **parser:** Refactoring SyntaxError messages ([66098ea](https://github.com/meriyah/meriyah/commit/66098ea443b91ae12b15e55a7d1577f9a2b81f66)) +* **parser:** removed reduntant empty binding validations ([cf98ab5](https://github.com/meriyah/meriyah/commit/cf98ab53a12915dfdc84e56e6ae49d7276643170)) +* **parser:** removed some unused code and simplified a few things ([4ffe12d](https://github.com/meriyah/meriyah/commit/4ffe12d597367dd75c45651558b406e390617730)) +* **parser:** removed some useless code ([597eaf2](https://github.com/meriyah/meriyah/commit/597eaf25d36ab4971a07df391321ec97fb0c911f)) +* **parser:** removed unnecessary func args ([6c44bb7](https://github.com/meriyah/meriyah/commit/6c44bb75d86ff269f5bfcf61c6bf7d5ebe43b3b6)) +* **parser:** removed unused code ([f423485](https://github.com/meriyah/meriyah/commit/f423485ea1a6af1ca75530a7d61fca7e3c10caf9)) +* **parser:** removed unused code ([db4231b](https://github.com/meriyah/meriyah/commit/db4231bd49e20f34fd6ef0ec7332e301c0fb018e)) +* **parser:** removed unused code and improved test coverage ([7b4b56f](https://github.com/meriyah/meriyah/commit/7b4b56fd1ee9a97cbcd1003652aff72895f0a5aa)) +* **parser:** rename 'OptionalChain' AST node to 'OptionalExpression'. ([a184f67](https://github.com/meriyah/meriyah/commit/a184f6782d86fd18192a32684f5ae9775905fcdb)) +* **parser:** renamed deFacto opt to "specDeviation" ([d2e7e08](https://github.com/meriyah/meriyah/commit/d2e7e08fc0c276de348e75f539d17eb739a0a0b8)) +* **parser:** simplified arrow parsing ([db388db](https://github.com/meriyah/meriyah/commit/db388db66fb8bbbaa1f41d989bfa07fc93553d21)) +* **parser:** simplified assignment expr parsing ([ce89217](https://github.com/meriyah/meriyah/commit/ce89217ec96d7d912fff747b4a0b6050963fc9de)) +* **parser:** simplified async arrow parsing ([fb046c7](https://github.com/meriyah/meriyah/commit/fb046c777d1a000b7e744140990468e6d422af10)), closes [#22](https://github.com/meriyah/meriyah/issues/22) +* **parser:** simplified DestructuringAssignmentTarget validation ([6f04c41](https://github.com/meriyah/meriyah/commit/6f04c41dd868caad00f1db0bdc35499f1e7e18b0)) +* **parser:** simplified DestructuringAssignmentTarget validation ([1ce5eb0](https://github.com/meriyah/meriyah/commit/1ce5eb04e2c614a2d205921d79fc6dc609212e8a)) +* **parser:** simplified some logic ([7978118](https://github.com/meriyah/meriyah/commit/79781187d51b5e4dc3bd139864c8eb7d2606c844)) +* **parser:** Skips one validation - Token.IsLogical will not "exist" unless "next" option enabled ([6941da7](https://github.com/meriyah/meriyah/commit/6941da78bde97a17ef084e5bfd69bc8577ac4387)) +* **parser:** small corrections to line offset ([99406ac](https://github.com/meriyah/meriyah/commit/99406acc075d69d1555927efb10bf9c316fd65d6)) +* **parser:** start with empty label set ([90d2d78](https://github.com/meriyah/meriyah/commit/90d2d78b423a7c7f5bfe9beeda4e7e02340c1fb5)) +* **parser:** test import call both for module and script code ([66fe1b0](https://github.com/meriyah/meriyah/commit/66fe1b0d8cd9bf03c835dfcb5d6117525359554e)) +* **parser:** throws on `super()` used in class field ([b659e5b](https://github.com/meriyah/meriyah/commit/b659e5b39f593814668b37392374fc74b77306c7)) +* **parser:** tweaked and optimized JSX lexer code ([a701555](https://github.com/meriyah/meriyah/commit/a701555fc8a77f0415a10b04e0fbf176f94fb7c6)) +* **parser:** tweaked await and yield parsing ([2bfe889](https://github.com/meriyah/meriyah/commit/2bfe8899c905f008c79f38c01c973ba087a715d3)) +* **parser:** tweaked bit masks ([2b623cd](https://github.com/meriyah/meriyah/commit/2b623cd1a1e31a9a9c8de2acf7a3a1b73500325d)) +* **parser:** tweaked bit masks ([1cb0718](https://github.com/meriyah/meriyah/commit/1cb0718828ea4cf518158dbe5e2b9e5c45aa7ada)) +* **parser:** tweaked bit masks and improved performance ([a1f41a5](https://github.com/meriyah/meriyah/commit/a1f41a5ed64f86a44482945600c3afc2a9d60969)) +* **parser:** tweaked performance ([4b7a9b5](https://github.com/meriyah/meriyah/commit/4b7a9b5daf970efece7ca1331b3b725ee2a74417)) +* **parser:** tweaked ranges implementation ([e443537](https://github.com/meriyah/meriyah/commit/e443537c600b83932b69f36287cd08b0331225a3)) +* **parser:** tweaked some code ([6acf9ad](https://github.com/meriyah/meriyah/commit/6acf9adb49ff72ed4cc486e1b607b7ca49f58335)) +* **parser:** tweaked the label tracking ([77702c8](https://github.com/meriyah/meriyah/commit/77702c85b4bd4b7f407a01c717e5c12dbd2455be)) +* **parser:** update group.ts ([cc915cc](https://github.com/meriyah/meriyah/commit/cc915cc4f502a424adf2d73cf068964b083d1dc3)) +* **parser:** Use 'const' instead of 'let' ([f1bc71f](https://github.com/meriyah/meriyah/commit/f1bc71fab231a632ecaede604a6d7fdc585a4142)) +* **parser:** WIP: fixed and optimized await edge cases ([7f006fc](https://github.com/meriyah/meriyah/commit/7f006fc0275bb17526563e72d3f1aab6c41be035)) +* **parser:** WIP! await & yield edge cases ([13ce4e6](https://github.com/meriyah/meriyah/commit/13ce4e692c7ed535ea99eeab6d51cdee1f5e721f)) +* **parser:** WIP! fixes bunch of yield edge case ([46b7cba](https://github.com/meriyah/meriyah/commit/46b7cba43ab2ebc482f387fd4c9d725de2bdc1f4)) +* **scanner:** dedupe some scanner code and tweaked bit masks ([1e9d1b1](https://github.com/meriyah/meriyah/commit/1e9d1b1f42709fbb5e97adecaacdcb0756958dcf)) + + +### Features + +* **all:** added benchmark ([8a525b3](https://github.com/meriyah/meriyah/commit/8a525b36e290d4d6f8c8dd0dafc55ea77c6dec3e)) +* **all:** Emit errors in standard format for compilers ([7f83f6a](https://github.com/meriyah/meriyah/commit/7f83f6a368c1b0fdd4d724f075887f140577bd0f)) +* **lexer:** added lexer souce code ([ade6e8f](https://github.com/meriyah/meriyah/commit/ade6e8f757beb2220783e7ab3bc6615d90bcdc91)) +* **lexer:** implement numeric literal scanning ([8ba7461](https://github.com/meriyah/meriyah/commit/8ba7461e9a2cfbafbf180da1792070b641c76e0a)) +* **parser:** enable line/column location information to each node ([75c43c7](https://github.com/meriyah/meriyah/commit/75c43c7005a8fc69fbbbf283556dec1c67ae354b)) +* **parser:** 'export' '*' 'as' IdentifierName 'from' ModuleSpecifier ';' ([01db03c](https://github.com/meriyah/meriyah/commit/01db03c08816ffdb092ebd890130bfd189f5e3eb)) +* **parser:** added 'sourceFile' option ([0c62a08](https://github.com/meriyah/meriyah/commit/0c62a08f9d176d37772f406cfac379cae4bdb599)) +* **parser:** added label tracking ([930f825](https://github.com/meriyah/meriyah/commit/930f8251171a7f9e2219916a3b007efa179d7ac1)) +* **parser:** added new option to allow edge cases that deviate from the spec ([30d8c23](https://github.com/meriyah/meriyah/commit/30d8c23bdb6d0a3b5f301e8c4b82d21c45f8c50f)) +* **parser:** added option to enable non-standard parenthesized expression node ([82d423d](https://github.com/meriyah/meriyah/commit/82d423dc72a13b7cc745e9bbc664a678bff879d2)) +* **parser:** added parser code ([866b546](https://github.com/meriyah/meriyah/commit/866b5460afa65a81cf4c6136352eb67db1629aec)) +* **parser:** Distinguish Identifier from IdentifierPattern ([68da76b](https://github.com/meriyah/meriyah/commit/68da76b209ac871bb9d4b6d8f7b186c7709c7ea2)) +* **parser:** Implemented Class Public Instance Fields (WIP) ([c08d907](https://github.com/meriyah/meriyah/commit/c08d907060f7f23d9fbdbae4804b83edd89c0fda)) +* **parser:** implemented dynamic import (stage 3) ([64a54a8](https://github.com/meriyah/meriyah/commit/64a54a80560870dec179e1e4003b911cd2526363)) +* **parser:** implemented import.meta as well ([e838c8e](https://github.com/meriyah/meriyah/commit/e838c8ea675bd9e2bc096fde87098275cf533873)) +* **parser:** implemented support for v8 Intrinsic ([5e41577](https://github.com/meriyah/meriyah/commit/5e41577ab64cebdd98623c787310410328ffd568)) +* **parser:** implements nullish coalescing (stage 3) ([f38480d](https://github.com/meriyah/meriyah/commit/f38480d3498da64270ed44c1802a75a9d3366b44)) +* **parser:** implements ranges ([73ede30](https://github.com/meriyah/meriyah/commit/73ede309f518430f53a1a5adb7b3a1ce648ec781)) +* **parser:** support latest TC39 specs ([82cb1f4](https://github.com/meriyah/meriyah/commit/82cb1f41209ea28792ceb4143007631b6dbd7295)) +* **parser:** WIP: Enable JSX parsing ([9dd80d4](https://github.com/meriyah/meriyah/commit/9dd80d448e9877323a2edf12a9cde9c48fde411d)) +* **parser:** WIP! Implements optional chaining ([09425fc](https://github.com/meriyah/meriyah/commit/09425fca1798fb2a82a893572005528dea301b62)) + + +### Reverts + +* Revert "Update parser.ts" ([9671b37](https://github.com/meriyah/meriyah/commit/9671b377b4089ee4ef69f6ab282b07c1d21fb974)) +* Revert "dsaf" ([74edb5b](https://github.com/meriyah/meriyah/commit/74edb5b618a72f722d133a017a7a1fca5c2b063c)) + + + diff --git a/node_modules/meriyah/LICENSE.md b/node_modules/meriyah/LICENSE.md new file mode 100644 index 0000000..86e8894 --- /dev/null +++ b/node_modules/meriyah/LICENSE.md @@ -0,0 +1,7 @@ +ISC License + +Copyright (c) 2019 and later, KFlash and others. + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/meriyah/README.md b/node_modules/meriyah/README.md new file mode 100644 index 0000000..2063718 --- /dev/null +++ b/node_modules/meriyah/README.md @@ -0,0 +1,186 @@ +

Meriyah

+ +

100% compliant, self-hosted javascript parser with high focus on both performance and stability. Stable and already used in production.

+ +

+ Meriyah NPM + GitHub license + Total alerts + Circle + License + +

+ +
+ +## [Demo](https://meriyah.github.io/meriyah) + +## Features + +* Conforms to the standard ECMAScript® 2021 (ECMA-262 11th Edition) language specification +* Support TC39 proposals via option +* Support for additional ECMAScript features for Web Browsers +* JSX support via option +* Optionally track syntactic node locations +* Emits an ESTree-compatible abstract syntax tree. +* No backtracking +* Low memory usage +* Very well tested (~99 000 unit tests with full code coverage) +* Lightweight - ~90 KB minified + +## ESNext features + +* [Decorators](https://github.com/tc39/proposal-decorators) +* [Class Public Instance Fields & Private Instance Fields](https://github.com/tc39/proposal-class-fields) +* [Hashbang grammar](https://github.com/tc39/proposal-hashbang) +* [Private methods](https://github.com/tc39/proposal-private-methods) +* [Static class fields and private static methods](https://github.com/tc39/proposal-static-class-features/) + +**Note:** These features need to be enabled with the `next` option. + +## Installation + +```sh +npm install meriyah --save-dev +``` + +## API + +Meriyah generates `AST` according to [ESTree AST format](https://github.com/estree/estree), and can be used to perform [syntactic analysis](https://en.wikipedia.org/wiki/Parsing) (parsing) of a JavaScript program, and with `ES2015` and later a JavaScript program can be either [a script or a module](https://tc39.github.io/ecma262/index.html#sec-ecmascript-language-scripts-and-modules). + +The `parse` method exposed by meriyah takes an optional `options` object which allows you to specify whether to parse in [`script`](https://tc39.github.io/ecma262/#sec-parse-script) mode (the default) or in [`module`](https://tc39.github.io/ecma262/#sec-parsemodule) mode. + +This is the available options: + +```js +{ + // The flag to allow module code + module: false; + + // The flag to enable stage 3 support (ESNext) + next: false; + + // The flag to enable start, end offsets and range: [start, end] to each node + ranges: false; + + // Enable web compatibility + webcompat: false; + + // The flag to enable line/column location information to each node + loc: false; + + // The flag to attach raw property to each literal and identifier node + raw: false; + + // Enabled directives + directives: false; + + // The flag to allow return in the global scope + globalReturn: false; + + // The flag to enable implied strict mode + impliedStrict: false; + + // Allows comment extraction. Accepts either a function or array + onComment: [] + + // Allows token extraction. Accepts either a function or array + onToken: [] + + // Enable non-standard parenthesized expression node + preserveParens: false; + + // Enable lexical binding and scope tracking + lexical: false; + + // Adds a source attribute in every node’s loc object when the locations option is `true` + source: false; + + // Distinguish Identifier from IdentifierPattern + identifierPattern: false; + + // Enable React JSX parsing + jsx: false + + // Allow edge cases that deviate from the spec + specDeviation: false +} + +``` + +### onComment and onToken +If an array is supplied, comments/tokens will be pushed to the array, the item in the array contains `start/end/range` information when ranges flag is true, it will also contain `loc` information when loc flag is true. + +If a function callback is supplied, the signature must be + +```ts +function onComment(type: string, value: string, start: number, end: number, loc: SourceLocation): void {} + +function onToken(token: string, start: number, end: number, loc: SourceLocation): void {} +``` + +Note the `start/end/loc` information are provided to the function callback regardless of the settings on ranges and loc flags. onComment callback has one extra argument `value: string` for the body string of the comment. + +## Example usage + +```js + +import { parseScript } from './meriyah'; + +parseScript('({x: [y] = 0} = 1)'); + +``` + +This will return when serialized in json: + +```js +{ + type: "Program", + sourceType: "script", + body: [ + { + type: "ExpressionStatement", + expression: { + type: "AssignmentExpression", + left: { + type: "ObjectPattern", + properties: [ + { + type: "Property", + key: { + type: "Identifier", + name: "x" + }, + value: { + type: "AssignmentPattern", + left: { + type: "ArrayPattern", + elements: [ + { + "type": "Identifier", + "name": "y" + } + ] + }, + right: { + type: "Literal", + value: 0 + } + }, + kind: "init", + computed: false, + method: false, + shorthand: false + } + ] + }, + operator: "=", + right: { + type: "Literal", + value: 1 + } + } + } + ] +} +``` diff --git a/node_modules/meriyah/dist/meriyah.amd.js b/node_modules/meriyah/dist/meriyah.amd.js new file mode 100644 index 0000000..fce9334 --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.amd.js @@ -0,0 +1,8792 @@ +define(['exports'], function (exports) { 'use strict'; + + const errorMessages = { + [0]: 'Unexpected token', + [28]: "Unexpected token: '%0'", + [1]: 'Octal escape sequences are not allowed in strict mode', + [2]: 'Octal escape sequences are not allowed in template strings', + [3]: 'Unexpected token `#`', + [4]: 'Illegal Unicode escape sequence', + [5]: 'Invalid code point %0', + [6]: 'Invalid hexadecimal escape sequence', + [8]: 'Octal literals are not allowed in strict mode', + [7]: 'Decimal integer literals with a leading zero are forbidden in strict mode', + [9]: 'Expected number in radix %0', + [145]: 'Invalid left-hand side assignment to a destructible right-hand side', + [10]: 'Non-number found after exponent indicator', + [11]: 'Invalid BigIntLiteral', + [12]: 'No identifiers allowed directly after numeric literal', + [13]: 'Escapes \\8 or \\9 are not syntactically valid escapes', + [14]: 'Unterminated string literal', + [15]: 'Unterminated template literal', + [16]: 'Multiline comment was not closed properly', + [17]: 'The identifier contained dynamic unicode escape that was not closed', + [18]: "Illegal character '%0'", + [19]: 'Missing hexadecimal digits', + [20]: 'Invalid implicit octal', + [21]: 'Invalid line break in string literal', + [22]: 'Only unicode escapes are legal in identifier names', + [23]: "Expected '%0'", + [24]: 'Invalid left-hand side in assignment', + [25]: 'Invalid left-hand side in async arrow', + [26]: 'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass', + [27]: 'Member access on super must be in a method', + [29]: 'Await expression not allowed in formal parameter', + [30]: 'Yield expression not allowed in formal parameter', + [92]: "Unexpected token: 'escaped keyword'", + [31]: 'Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses', + [119]: 'Async functions can only be declared at the top level or inside a block', + [32]: 'Unterminated regular expression', + [33]: 'Unexpected regular expression flag', + [34]: "Duplicate regular expression flag '%0'", + [35]: '%0 functions must have exactly %1 argument%2', + [36]: 'Setter function argument must not be a rest parameter', + [37]: '%0 declaration must have a name in this context', + [38]: 'Function name may not contain any reserved words or be eval or arguments in strict mode', + [39]: 'The rest operator is missing an argument', + [40]: 'A getter cannot be a generator', + [41]: 'A computed property name must be followed by a colon or paren', + [130]: 'Object literal keys that are strings or numbers must be a method or have a colon', + [43]: 'Found `* async x(){}` but this should be `async * x(){}`', + [42]: 'Getters and setters can not be generators', + [44]: "'%0' can not be generator method", + [45]: "No line break is allowed after '=>'", + [46]: 'The left-hand side of the arrow can only be destructed through assignment', + [47]: 'The binding declaration is not destructible', + [48]: 'Async arrow can not be followed by new expression', + [49]: "Classes may not have a static property named 'prototype'", + [50]: 'Class constructor may not be a %0', + [51]: 'Duplicate constructor method in class', + [52]: 'Invalid increment/decrement operand', + [53]: 'Invalid use of `new` keyword on an increment/decrement expression', + [54]: '`=>` is an invalid assignment target', + [55]: 'Rest element may not have a trailing comma', + [56]: 'Missing initializer in %0 declaration', + [57]: "'for-%0' loop head declarations can not have an initializer", + [58]: 'Invalid left-hand side in for-%0 loop: Must have a single binding', + [59]: 'Invalid shorthand property initializer', + [60]: 'Property name __proto__ appears more than once in object literal', + [61]: 'Let is disallowed as a lexically bound name', + [62]: "Invalid use of '%0' inside new expression", + [63]: "Illegal 'use strict' directive in function with non-simple parameter list", + [64]: 'Identifier "let" disallowed as left-hand side expression in strict mode', + [65]: 'Illegal continue statement', + [66]: 'Illegal break statement', + [67]: 'Cannot have `let[...]` as a var name in strict mode', + [68]: 'Invalid destructuring assignment target', + [69]: 'Rest parameter may not have a default initializer', + [70]: 'The rest argument must the be last parameter', + [71]: 'Invalid rest argument', + [73]: 'In strict mode code, functions can only be declared at top level or inside a block', + [74]: 'In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement', + [75]: 'Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement', + [76]: "Class declaration can't appear in single-statement context", + [77]: 'Invalid left-hand side in for-%0', + [78]: 'Invalid assignment in for-%0', + [79]: 'for await (... of ...) is only valid in async functions and async generators', + [80]: 'The first token after the template expression should be a continuation of the template', + [82]: '`let` declaration not allowed here and `let` cannot be a regular var name in strict mode', + [81]: '`let \n [` is a restricted production at the start of a statement', + [83]: 'Catch clause requires exactly one parameter, not more (and no trailing comma)', + [84]: 'Catch clause parameter does not support default values', + [85]: 'Missing catch or finally after try', + [86]: 'More than one default clause in switch statement', + [87]: 'Illegal newline after throw', + [88]: 'Strict mode code may not include a with statement', + [89]: 'Illegal return statement', + [90]: 'The left hand side of the for-header binding declaration is not destructible', + [91]: 'new.target only allowed within functions', + [93]: "'#' not followed by identifier", + [99]: 'Invalid keyword', + [98]: "Can not use 'let' as a class name", + [97]: "'A lexical declaration can't define a 'let' binding", + [96]: 'Can not use `let` as variable name in strict mode', + [94]: "'%0' may not be used as an identifier in this context", + [95]: 'Await is only valid in async functions', + [100]: 'The %0 keyword can only be used with the module goal', + [101]: 'Unicode codepoint must not be greater than 0x10FFFF', + [102]: '%0 source must be string', + [103]: 'Only a identifier can be used to indicate alias', + [104]: "Only '*' or '{...}' can be imported after default", + [105]: 'Trailing decorator may be followed by method', + [106]: "Decorators can't be used with a constructor", + [108]: 'HTML comments are only allowed with web compatibility (Annex B)', + [109]: "The identifier 'let' must not be in expression position in strict mode", + [110]: 'Cannot assign to `eval` and `arguments` in strict mode', + [111]: "The left-hand side of a for-of loop may not start with 'let'", + [112]: 'Block body arrows can not be immediately invoked without a group', + [113]: 'Block body arrows can not be immediately accessed without a group', + [114]: 'Unexpected strict mode reserved word', + [115]: 'Unexpected eval or arguments in strict mode', + [116]: 'Decorators must not be followed by a semicolon', + [117]: 'Calling delete on expression not allowed in strict mode', + [118]: 'Pattern can not have a tail', + [120]: 'Can not have a `yield` expression on the left side of a ternary', + [121]: 'An arrow function can not have a postfix update operator', + [122]: 'Invalid object literal key character after generator star', + [123]: 'Private fields can not be deleted', + [125]: 'Classes may not have a field called constructor', + [124]: 'Classes may not have a private element named constructor', + [126]: 'A class field initializer may not contain arguments', + [127]: 'Generators can only be declared at the top level or inside a block', + [128]: 'Async methods are a restricted production and cannot have a newline following it', + [129]: 'Unexpected character after object literal property name', + [131]: 'Invalid key token', + [132]: "Label '%0' has already been declared", + [133]: 'continue statement must be nested within an iteration statement', + [134]: "Undefined label '%0'", + [135]: 'Trailing comma is disallowed inside import(...) arguments', + [136]: 'import() requires exactly one argument', + [137]: 'Cannot use new with import(...)', + [138]: '... is not allowed in import()', + [139]: "Expected '=>'", + [140]: "Duplicate binding '%0'", + [141]: "Cannot export a duplicate name '%0'", + [144]: 'Duplicate %0 for-binding', + [142]: "Exported binding '%0' needs to refer to a top-level declared variable", + [143]: 'Unexpected private field', + [147]: 'Numeric separators are not allowed at the end of numeric literals', + [146]: 'Only one underscore is allowed as numeric separator', + [148]: 'JSX value should be either an expression or a quoted JSX text', + [149]: 'Expected corresponding JSX closing tag for %0', + [150]: 'Adjacent JSX elements must be wrapped in an enclosing tag', + [151]: "JSX attributes must only be assigned a non-empty 'expression'", + [152]: "'%0' has already been declared", + [153]: "'%0' shadowed a catch clause binding", + [154]: 'Dot property must be an identifier', + [155]: 'Encountered invalid input after spread/rest argument', + [156]: 'Catch without try', + [157]: 'Finally without try', + [158]: 'Expected corresponding closing tag for JSX fragment', + [159]: 'Coalescing and logical operators used together in the same expression must be disambiguated with parentheses', + [160]: 'Invalid tagged template on optional chain', + [161]: 'Invalid optional chain from super property', + [162]: 'Invalid optional chain from new expression', + [163]: 'Cannot use "import.meta" outside a module', + [164]: 'Leading decorators must be attached to a class declaration' + }; + class ParseError extends SyntaxError { + constructor(startindex, line, column, type, ...params) { + const message = '[' + line + ':' + column + ']: ' + errorMessages[type].replace(/%(\d+)/g, (_, i) => params[i]); + super(`${message}`); + this.index = startindex; + this.line = line; + this.column = column; + this.description = message; + this.loc = { + line, + column + }; + } + } + function report(parser, type, ...params) { + throw new ParseError(parser.index, parser.line, parser.column, type, ...params); + } + function reportScopeError(scope) { + throw new ParseError(scope.index, scope.line, scope.column, scope.type, scope.params); + } + function reportMessageAt(index, line, column, type, ...params) { + throw new ParseError(index, line, column, type, ...params); + } + function reportScannerError(index, line, column, type) { + throw new ParseError(index, line, column, type); + } + + const unicodeLookup = ((compressed, lookup) => { + const result = new Uint32Array(104448); + let index = 0; + let subIndex = 0; + while (index < 3540) { + const inst = compressed[index++]; + if (inst < 0) { + subIndex -= inst; + } + else { + let code = compressed[index++]; + if (inst & 2) + code = lookup[code]; + if (inst & 1) { + result.fill(code, subIndex, subIndex += compressed[index++]); + } + else { + result[subIndex++] = code; + } + } + } + return result; + })([-1, 2, 24, 2, 25, 2, 5, -1, 0, 77595648, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 16, 2, 60, 2, 0, 0, 4294836735, 0, 3221225471, 0, 4294901942, 2, 61, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 17, 2, 0, 0, 4294961151, 3, 0, 2, 2, 19, 2, 0, 0, 608174079, 2, 0, 2, 131, 2, 6, 2, 56, -1, 2, 37, 0, 4294443263, 2, 1, 3, 0, 3, 0, 4294901711, 2, 39, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2967484831, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 2, 194, 2, 3, 0, 3825204735, 0, 123747807, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1080049119, 0, 458703, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 66, 0, 4284449919, 0, 851904, 2, 4, 2, 11, 0, 67076095, -1, 2, 67, 0, 1073741743, 0, 4093591391, -1, 0, 50331649, 0, 3265266687, 2, 32, 0, 4294844415, 0, 4278190047, 2, 18, 2, 129, -1, 3, 0, 2, 2, 21, 2, 0, 2, 9, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 10, 0, 261632, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 2088959, 2, 27, 2, 8, 0, 909311, 3, 0, 2, 0, 814743551, 2, 41, 0, 67057664, 3, 0, 2, 2, 40, 2, 0, 2, 28, 2, 0, 2, 29, 2, 7, 0, 268374015, 2, 26, 2, 49, 2, 0, 2, 76, 0, 134153215, -1, 2, 6, 2, 0, 2, 7, 0, 2684354559, 0, 67044351, 0, 3221160064, 0, 1, -1, 3, 0, 2, 2, 42, 0, 1046528, 3, 0, 3, 2, 8, 2, 0, 2, 51, 0, 4294960127, 2, 9, 2, 38, 2, 10, 0, 4294377472, 2, 11, 3, 0, 7, 0, 4227858431, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -1, 2, 124, 0, 1048577, 2, 82, 2, 13, -1, 2, 13, 0, 131042, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 1046559, 2, 0, 2, 14, 2, 0, 0, 2147516671, 2, 20, 3, 86, 2, 2, 0, -16, 2, 87, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 2, 121, 2, 0, 0, 3220242431, 3, 0, 3, 2, 19, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 2, 0, 0, 4351, 2, 0, 2, 8, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 22, 2, 8, 2, 18, 3, 0, 2, 0, 67076097, 2, 7, 2, 0, 2, 20, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 3774349439, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, 2, 23, 0, 1638399, 2, 172, 2, 105, 3, 0, 3, 2, 18, 2, 24, 2, 25, 2, 5, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -3, 2, 150, -4, 2, 18, 2, 0, 2, 35, 0, 1, 2, 0, 2, 62, 2, 28, 2, 11, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 21, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277137519, 0, 2269118463, -1, 3, 18, 2, -1, 2, 32, 2, 36, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 46, -10, 2, 0, 0, 203775, -2, 2, 18, 2, 43, 2, 35, -2, 2, 17, 2, 117, 2, 20, 3, 0, 2, 2, 36, 0, 2147549120, 2, 0, 2, 11, 2, 17, 2, 135, 2, 0, 2, 37, 2, 52, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 120, 0, 1090519039, -2, 2, 122, 2, 38, 2, 0, 0, 67045375, 2, 39, 0, 4226678271, 0, 3766565279, 0, 2039759, -4, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 40, 2, 41, -1, 2, 10, 2, 42, -6, 2, 0, 2, 11, -3, 3, 0, 2, 0, 2147484671, 2, 125, 0, 4190109695, 2, 50, -2, 2, 126, 0, 4244635647, 0, 27, 2, 0, 2, 7, 2, 43, 2, 0, 2, 63, -1, 2, 0, 2, 40, -8, 2, 54, 2, 44, 0, 67043329, 2, 127, 2, 45, 0, 8388351, -2, 2, 128, 0, 3028287487, 2, 46, 2, 130, 0, 33259519, 2, 41, -9, 2, 20, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, 2, 41, -2, 2, 17, 2, 49, 2, 0, 2, 20, 2, 50, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 196635, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 0, 1677656575, -166, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 28, -13, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 88, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -42, 0, 4194303871, 0, 2011, -6, 2, 0, 0, 1073684479, 0, 17407, -11, 2, 0, 2, 31, -40, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 42, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -105, 2, 24, -32, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -22381, 3, 0, 7, 2, 23, -6130, 3, 5, 2, -1, 0, 69207040, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 16, 2, 60, 2, 0, 2, 33, -1, 2, 17, 2, 61, -1, 2, 0, 2, 56, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 23, 2, 62, 3, 0, 2, 0, 131135, 2, 95, 0, 70256639, 0, 71303167, 0, 272, 2, 40, 2, 56, -1, 2, 37, 2, 30, -1, 2, 96, 2, 63, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 65, 2, 64, 0, 33554435, 2, 123, 2, 65, 2, 151, 0, 131075, 0, 3594373096, 0, 67094296, 2, 64, -1, 0, 4294828000, 0, 603979263, 2, 160, 0, 3, 0, 4294828001, 0, 602930687, 2, 183, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 66, 2, 36, -1, 2, 4, 0, 917503, 2, 36, -1, 2, 67, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 32, 2, 68, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 11, -1, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 253951, 3, 19, 2, 0, 122879, 2, 0, 2, 8, 0, 276824064, -2, 3, 0, 2, 2, 40, 2, 0, 0, 4294903295, 2, 0, 2, 29, 2, 7, -1, 2, 17, 2, 49, 2, 0, 2, 76, 2, 41, -1, 2, 20, 2, 0, 2, 27, -2, 0, 128, -2, 2, 77, 2, 8, 0, 4064, -1, 2, 119, 0, 4227907585, 2, 0, 2, 118, 2, 0, 2, 48, 2, 173, 2, 9, 2, 38, 2, 10, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -3, 2, 82, 2, 13, -3, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 817183, 2, 0, 2, 14, 2, 0, 0, 33023, 2, 20, 3, 86, 2, -17, 2, 87, 0, 524157950, 2, 4, 2, 0, 2, 88, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 0, 3072, 2, 0, 0, 2147516415, 2, 9, 3, 0, 2, 2, 23, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 0, 4294965179, 0, 7, 2, 0, 2, 8, 2, 91, 2, 8, -1, 0, 1761345536, 2, 95, 0, 4294901823, 2, 36, 2, 18, 2, 96, 2, 34, 2, 166, 0, 2080440287, 2, 0, 2, 33, 2, 143, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 7, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 2700607615, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, -3, 2, 105, 3, 0, 3, 2, 18, -1, 3, 5, 2, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -8, 2, 18, 2, 0, 2, 35, -1, 2, 0, 2, 62, 2, 28, 2, 29, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 17, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277075969, 2, 29, -1, 3, 18, 2, -1, 2, 32, 2, 117, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 48, -10, 2, 0, 0, 197631, -2, 2, 18, 2, 43, 2, 118, -2, 2, 17, 2, 117, 2, 20, 2, 119, 2, 51, -2, 2, 119, 2, 23, 2, 17, 2, 33, 2, 119, 2, 36, 0, 4294901904, 0, 4718591, 2, 119, 2, 34, 0, 335544350, -1, 2, 120, 2, 121, -2, 2, 122, 2, 38, 2, 7, -1, 2, 123, 2, 65, 0, 3758161920, 0, 3, -4, 2, 0, 2, 27, 0, 2147485568, 0, 3, 2, 0, 2, 23, 0, 176, -5, 2, 0, 2, 47, 2, 186, -1, 2, 0, 2, 23, 2, 197, -1, 2, 0, 0, 16779263, -2, 2, 11, -7, 2, 0, 2, 121, -3, 3, 0, 2, 2, 124, 2, 125, 0, 2147549183, 0, 2, -2, 2, 126, 2, 35, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, -1, 2, 0, 2, 40, -8, 2, 54, 2, 47, 0, 1, 2, 127, 2, 23, -3, 2, 128, 2, 35, 2, 129, 2, 130, 0, 16778239, -10, 2, 34, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, -3, 2, 17, 2, 131, 2, 0, 2, 23, 2, 48, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 67583, -1, 2, 103, -2, 0, 11, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 2, 135, -187, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 2, 143, -73, 2, 0, 0, 1065361407, 0, 16384, -11, 2, 0, 2, 121, -40, 3, 0, 6, 2, 117, -1, 3, 0, 2, 0, 2063, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -138, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -28517, 2, 0, 0, 1, -1, 2, 124, 2, 0, 0, 8193, -21, 2, 193, 0, 10255, 0, 4, -11, 2, 64, 2, 171, -1, 0, 71680, -1, 2, 161, 0, 4292900864, 0, 805306431, -5, 2, 150, -1, 2, 157, -1, 0, 6144, -2, 2, 127, -1, 2, 154, -1, 0, 2147532800, 2, 151, 2, 165, 2, 0, 2, 164, 0, 524032, 0, 4, -4, 2, 190, 0, 205128192, 0, 1333757536, 0, 2147483696, 0, 423953, 0, 747766272, 0, 2717763192, 0, 4286578751, 0, 278545, 2, 152, 0, 4294886464, 0, 33292336, 0, 417809, 2, 152, 0, 1327482464, 0, 4278190128, 0, 700594195, 0, 1006647527, 0, 4286497336, 0, 4160749631, 2, 153, 0, 469762560, 0, 4171219488, 0, 8323120, 2, 153, 0, 202375680, 0, 3214918176, 0, 4294508592, 2, 153, -1, 0, 983584, 0, 48, 0, 58720273, 0, 3489923072, 0, 10517376, 0, 4293066815, 0, 1, 0, 2013265920, 2, 177, 2, 0, 0, 2089, 0, 3221225552, 0, 201375904, 2, 0, -2, 0, 256, 0, 122880, 0, 16777216, 2, 150, 0, 4160757760, 2, 0, -6, 2, 167, -11, 0, 3263218176, -1, 0, 49664, 0, 2160197632, 0, 8388802, -1, 0, 12713984, -1, 2, 154, 2, 159, 2, 178, -2, 2, 162, -20, 0, 3758096385, -2, 2, 155, 0, 4292878336, 2, 90, 2, 169, 0, 4294057984, -2, 2, 163, 2, 156, 2, 175, -2, 2, 155, -1, 2, 182, -1, 2, 170, 2, 124, 0, 4026593280, 0, 14, 0, 4292919296, -1, 2, 158, 0, 939588608, -1, 0, 805306368, -1, 2, 124, 0, 1610612736, 2, 156, 2, 157, 2, 4, 2, 0, -2, 2, 158, 2, 159, -3, 0, 267386880, -1, 2, 160, 0, 7168, -1, 0, 65024, 2, 154, 2, 161, 2, 179, -7, 2, 168, -8, 2, 162, -1, 0, 1426112704, 2, 163, -1, 2, 164, 0, 271581216, 0, 2149777408, 2, 23, 2, 161, 2, 124, 0, 851967, 2, 180, -1, 2, 23, 2, 181, -4, 2, 158, -20, 2, 195, 2, 165, -56, 0, 3145728, 2, 185, -4, 2, 166, 2, 124, -4, 0, 32505856, -1, 2, 167, -1, 0, 2147385088, 2, 90, 1, 2155905152, 2, -3, 2, 103, 2, 0, 2, 168, -2, 2, 169, -6, 2, 170, 0, 4026597375, 0, 1, -1, 0, 1, -1, 2, 171, -3, 2, 117, 2, 64, -2, 2, 166, -2, 2, 176, 2, 124, -878, 2, 159, -36, 2, 172, -1, 2, 201, -10, 2, 188, -5, 2, 174, -6, 0, 4294965251, 2, 27, -1, 2, 173, -1, 2, 174, -2, 0, 4227874752, -3, 0, 2146435072, 2, 159, -2, 0, 1006649344, 2, 124, -1, 2, 90, 0, 201375744, -3, 0, 134217720, 2, 90, 0, 4286677377, 0, 32896, -1, 2, 158, -3, 2, 175, -349, 2, 176, 0, 1920, 2, 177, 3, 0, 264, -11, 2, 157, -2, 2, 178, 2, 0, 0, 520617856, 0, 2692743168, 0, 36, -3, 0, 524284, -11, 2, 23, -1, 2, 187, -1, 2, 184, 0, 3221291007, 2, 178, -1, 2, 202, 0, 2158720, -3, 2, 159, 0, 1, -4, 2, 124, 0, 3808625411, 0, 3489628288, 2, 200, 0, 1207959680, 0, 3221274624, 2, 0, -3, 2, 179, 0, 120, 0, 7340032, -2, 2, 180, 2, 4, 2, 23, 2, 163, 3, 0, 4, 2, 159, -1, 2, 181, 2, 177, -1, 0, 8176, 2, 182, 2, 179, 2, 183, -1, 0, 4290773232, 2, 0, -4, 2, 163, 2, 189, 0, 15728640, 2, 177, -1, 2, 161, -1, 0, 4294934512, 3, 0, 4, -9, 2, 90, 2, 170, 2, 184, 3, 0, 4, 0, 704, 0, 1849688064, 2, 185, -1, 2, 124, 0, 4294901887, 2, 0, 0, 130547712, 0, 1879048192, 2, 199, 3, 0, 2, -1, 2, 186, 2, 187, -1, 0, 17829776, 0, 2025848832, 0, 4261477888, -2, 2, 0, -1, 0, 4286580608, -1, 0, 29360128, 2, 192, 0, 16252928, 0, 3791388672, 2, 38, 3, 0, 2, -2, 2, 196, 2, 0, -1, 2, 103, -1, 0, 66584576, -1, 2, 191, 3, 0, 9, 2, 124, -1, 0, 4294755328, 3, 0, 2, -1, 2, 161, 2, 178, 3, 0, 2, 2, 23, 2, 188, 2, 90, -2, 0, 245760, 0, 2147418112, -1, 2, 150, 2, 203, 0, 4227923456, -1, 2, 164, 2, 161, 2, 90, -3, 0, 4292870145, 0, 262144, 2, 124, 3, 0, 2, 0, 1073758848, 2, 189, -1, 0, 4227921920, 2, 190, 0, 68289024, 0, 528402016, 0, 4292927536, 3, 0, 4, -2, 0, 268435456, 2, 91, -2, 2, 191, 3, 0, 5, -1, 2, 192, 2, 163, 2, 0, -2, 0, 4227923936, 2, 62, -1, 2, 155, 2, 95, 2, 0, 2, 154, 2, 158, 3, 0, 6, -1, 2, 177, 3, 0, 3, -2, 0, 2146959360, 0, 9440640, 0, 104857600, 0, 4227923840, 3, 0, 2, 0, 768, 2, 193, 2, 77, -2, 2, 161, -2, 2, 119, -1, 2, 155, 3, 0, 8, 0, 512, 0, 8388608, 2, 194, 2, 172, 2, 187, 0, 4286578944, 3, 0, 2, 0, 1152, 0, 1266679808, 2, 191, 0, 576, 0, 4261707776, 2, 95, 3, 0, 9, 2, 155, 3, 0, 5, 2, 16, -1, 0, 2147221504, -28, 2, 178, 3, 0, 3, -3, 0, 4292902912, -6, 2, 96, 3, 0, 85, -33, 0, 4294934528, 3, 0, 126, -18, 2, 195, 3, 0, 269, -17, 2, 155, 2, 124, 2, 198, 3, 0, 2, 2, 23, 0, 4290822144, -2, 0, 67174336, 0, 520093700, 2, 17, 3, 0, 21, -2, 2, 179, 3, 0, 3, -2, 0, 30720, -1, 0, 32512, 3, 0, 2, 0, 4294770656, -191, 2, 174, -38, 2, 170, 2, 0, 2, 196, 3, 0, 279, -8, 2, 124, 2, 0, 0, 4294508543, 0, 65295, -11, 2, 177, 3, 0, 72, -3, 0, 3758159872, 0, 201391616, 3, 0, 155, -7, 2, 170, -1, 0, 384, -1, 0, 133693440, -3, 2, 196, -2, 2, 26, 3, 0, 4, 2, 169, -2, 2, 90, 2, 155, 3, 0, 4, -2, 2, 164, -1, 2, 150, 0, 335552923, 2, 197, -1, 0, 538974272, 0, 2214592512, 0, 132000, -10, 0, 192, -8, 0, 12288, -21, 0, 134213632, 0, 4294901761, 3, 0, 42, 0, 100663424, 0, 4294965284, 3, 0, 6, -1, 0, 3221282816, 2, 198, 3, 0, 11, -1, 2, 199, 3, 0, 40, -6, 0, 4286578784, 2, 0, -2, 0, 1006694400, 3, 0, 24, 2, 35, -1, 2, 94, 3, 0, 2, 0, 1, 2, 163, 3, 0, 6, 2, 197, 0, 4110942569, 0, 1432950139, 0, 2701658217, 0, 4026532864, 0, 4026532881, 2, 0, 2, 45, 3, 0, 8, -1, 2, 158, -2, 2, 169, 0, 98304, 0, 65537, 2, 170, -5, 0, 4294950912, 2, 0, 2, 118, 0, 65528, 2, 177, 0, 4294770176, 2, 26, 3, 0, 4, -30, 2, 174, 0, 3758153728, -3, 2, 169, -2, 2, 155, 2, 188, 2, 158, -1, 2, 191, -1, 2, 161, 0, 4294754304, 3, 0, 2, -3, 0, 33554432, -2, 2, 200, -3, 2, 169, 0, 4175478784, 2, 201, 0, 4286643712, 0, 4286644216, 2, 0, -4, 2, 202, -1, 2, 165, 0, 4227923967, 3, 0, 32, -1334, 2, 163, 2, 0, -129, 2, 94, -6, 2, 163, -180, 2, 203, -233, 2, 4, 3, 0, 96, -16, 2, 163, 3, 0, 47, -154, 2, 165, 3, 0, 22381, -7, 2, 17, 3, 0, 6128], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 268435455, 2147483647, 1048575, 1073741823, 3892314111, 134217727, 1061158911, 536805376, 4294910143, 4160749567, 4294901759, 4294901760, 536870911, 262143, 8388607, 4294902783, 4294918143, 65535, 67043328, 2281701374, 4294967232, 2097151, 4294903807, 4194303, 255, 67108863, 4294967039, 511, 524287, 131071, 127, 4292870143, 4294902271, 4294549487, 33554431, 1023, 67047423, 4294901888, 4286578687, 4294770687, 67043583, 32767, 15, 2047999, 67043343, 16777215, 4294902000, 4294934527, 4294966783, 4294967279, 2047, 262083, 20511, 4290772991, 41943039, 493567, 4294959104, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 4294967264, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 2044, 4292870144, 4294966272, 4294967280, 8289918, 4294934399, 4294901775, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4294966591, 2445279231, 3670015, 3238002687, 31, 63, 4294967288, 4294705151, 4095, 3221208447, 4294549472, 2147483648, 4285526655, 4294966527, 4294705152, 4294966143, 64, 4294966719, 16383, 3774873592, 458752, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967103, 4160749565, 4087, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901763, 536870912, 2952790016, 202506752, 139264, 402653184, 4261412864, 4227922944, 49152, 61440, 3758096384, 117440512, 65280, 3233808384, 3221225472, 2097152, 4294965248, 32768, 57152, 67108864, 4293918720, 4290772992, 25165824, 57344, 4227915776, 4278190080, 4227907584, 65520, 4026531840, 4227858432, 4160749568, 3758129152, 4294836224, 63488, 1073741824, 4294967040, 4194304, 251658240, 196608, 4294963200, 64512, 417808, 4227923712, 12582912, 50331648, 65472, 4294967168, 4294966784, 16, 4294917120, 2080374784, 4096, 65408, 524288, 65532]); + + function advanceChar(parser) { + parser.column++; + return (parser.currentChar = parser.source.charCodeAt(++parser.index)); + } + function consumeMultiUnitCodePoint(parser, hi) { + if ((hi & 0xfc00) !== 55296) + return 0; + const lo = parser.source.charCodeAt(parser.index + 1); + if ((lo & 0xfc00) !== 0xdc00) + return 0; + hi = parser.currentChar = 65536 + ((hi & 0x3ff) << 10) + (lo & 0x3ff); + if (((unicodeLookup[(hi >>> 5) + 0] >>> hi) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(hi)); + } + parser.index++; + parser.column++; + return 1; + } + function consumeLineFeed(parser, state) { + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.flags |= 1; + if ((state & 4) === 0) { + parser.column = 0; + parser.line++; + } + } + function scanNewLine(parser) { + parser.flags |= 1; + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.column = 0; + parser.line++; + } + function isExoticECMAScriptWhitespace(ch) { + return (ch === 160 || + ch === 65279 || + ch === 133 || + ch === 5760 || + (ch >= 8192 && ch <= 8203) || + ch === 8239 || + ch === 8287 || + ch === 12288 || + ch === 8201 || + ch === 65519); + } + function fromCodePoint(codePoint) { + return codePoint <= 65535 + ? String.fromCharCode(codePoint) + : String.fromCharCode(codePoint >>> 10) + String.fromCharCode(codePoint & 0x3ff); + } + function toHex(code) { + return code < 65 ? code - 48 : (code - 65 + 10) & 0xf; + } + function convertTokenType(t) { + switch (t) { + case 134283266: + return 'NumericLiteral'; + case 134283267: + return 'StringLiteral'; + case 86021: + case 86022: + return 'BooleanLiteral'; + case 86023: + return 'NullLiteral'; + case 65540: + return 'RegularExpression'; + case 67174408: + case 67174409: + case 132: + return 'TemplateLiteral'; + default: + if ((t & 143360) === 143360) + return 'Identifier'; + if ((t & 4096) === 4096) + return 'Keyword'; + return 'Punctuator'; + } + } + + const CharTypes = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8 | 1024, + 0, + 0, + 8 | 2048, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8192, + 0, + 1 | 2, + 0, + 0, + 8192, + 0, + 0, + 0, + 256, + 0, + 256 | 32768, + 0, + 0, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 512 | 64, + 2 | 16 | 512 | 64, + 0, + 0, + 16384, + 0, + 0, + 0, + 0, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 0, + 1, + 0, + 0, + 1 | 2 | 4096, + 0, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 16384, + 0, + 0, + 0, + 0 + ]; + const isIdStart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ]; + const isIdPart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ]; + function isIdentifierStart(code) { + return code <= 0x7F + ? isIdStart[code] + : (unicodeLookup[(code >>> 5) + 34816] >>> code) & 31 & 1; + } + function isIdentifierPart(code) { + return code <= 0x7F + ? isIdPart[code] + : (unicodeLookup[(code >>> 5) + 0] >>> code) & 31 & 1 || (code === 8204 || code === 8205); + } + + const CommentTypes = ['SingleLine', 'MultiLine', 'HTMLOpen', 'HTMLClose', 'HashbangComment']; + function skipHashBang(parser) { + const source = parser.source; + if (parser.currentChar === 35 && source.charCodeAt(parser.index + 1) === 33) { + advanceChar(parser); + advanceChar(parser); + skipSingleLineComment(parser, source, 0, 4, parser.tokenPos, parser.linePos, parser.colPos); + } + } + function skipSingleHTMLComment(parser, source, state, context, type, start, line, column) { + if (context & 2048) + report(parser, 0); + return skipSingleLineComment(parser, source, state, type, start, line, column); + } + function skipSingleLineComment(parser, source, state, type, start, line, column) { + const { index } = parser; + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + while (parser.index < parser.end) { + if (CharTypes[parser.currentChar] & 8) { + const isCR = parser.currentChar === 13; + scanNewLine(parser); + if (isCR && parser.index < parser.end && parser.currentChar === 10) + parser.currentChar = source.charCodeAt(++parser.index); + break; + } + else if ((parser.currentChar ^ 8232) <= 1) { + scanNewLine(parser); + break; + } + advanceChar(parser); + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + } + if (parser.onComment) { + const loc = { + start: { + line, + column + }, + end: { + line: parser.linePos, + column: parser.colPos + } + }; + parser.onComment(CommentTypes[type & 0xff], source.slice(index, parser.tokenPos), start, parser.tokenPos, loc); + } + return state | 1; + } + function skipMultiLineComment(parser, source, state) { + const { index } = parser; + while (parser.index < parser.end) { + if (parser.currentChar < 0x2b) { + let skippedOneAsterisk = false; + while (parser.currentChar === 42) { + if (!skippedOneAsterisk) { + state &= ~4; + skippedOneAsterisk = true; + } + if (advanceChar(parser) === 47) { + advanceChar(parser); + if (parser.onComment) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onComment(CommentTypes[1 & 0xff], source.slice(index, parser.index - 2), index - 2, parser.index, loc); + } + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + return state; + } + } + if (skippedOneAsterisk) { + continue; + } + if (CharTypes[parser.currentChar] & 8) { + if (parser.currentChar === 13) { + state |= 1 | 4; + scanNewLine(parser); + } + else { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + } + else { + advanceChar(parser); + } + } + else if ((parser.currentChar ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + } + else { + state &= ~4; + advanceChar(parser); + } + } + report(parser, 16); + } + + function scanRegularExpression(parser, context) { + const bodyStart = parser.index; + let preparseState = 0; + loop: while (true) { + const ch = parser.currentChar; + advanceChar(parser); + if (preparseState & 1) { + preparseState &= ~1; + } + else { + switch (ch) { + case 47: + if (!preparseState) + break loop; + else + break; + case 92: + preparseState |= 1; + break; + case 91: + preparseState |= 2; + break; + case 93: + preparseState &= 1; + break; + case 13: + case 10: + case 8232: + case 8233: + report(parser, 32); + } + } + if (parser.index >= parser.source.length) { + return report(parser, 32); + } + } + const bodyEnd = parser.index - 1; + let mask = 0; + let char = parser.currentChar; + const { index: flagStart } = parser; + while (isIdentifierPart(char)) { + switch (char) { + case 103: + if (mask & 2) + report(parser, 34, 'g'); + mask |= 2; + break; + case 105: + if (mask & 1) + report(parser, 34, 'i'); + mask |= 1; + break; + case 109: + if (mask & 4) + report(parser, 34, 'm'); + mask |= 4; + break; + case 117: + if (mask & 16) + report(parser, 34, 'g'); + mask |= 16; + break; + case 121: + if (mask & 8) + report(parser, 34, 'y'); + mask |= 8; + break; + case 115: + if (mask & 12) + report(parser, 34, 's'); + mask |= 12; + break; + default: + report(parser, 33); + } + char = advanceChar(parser); + } + const flags = parser.source.slice(flagStart, parser.index); + const pattern = parser.source.slice(bodyStart, bodyEnd); + parser.tokenRegExp = { pattern, flags }; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = validate(parser, pattern, flags); + return 65540; + } + function validate(parser, pattern, flags) { + try { + return new RegExp(pattern, flags); + } + catch (e) { + report(parser, 32); + } + } + + function scanString(parser, context, quote) { + const { index: start } = parser; + let ret = ''; + let char = advanceChar(parser); + let marker = parser.index; + while ((CharTypes[char] & 8) === 0) { + if (char === quote) { + ret += parser.source.slice(marker, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(start, parser.index); + parser.tokenValue = ret; + return 134283267; + } + if ((char & 8) === 8 && char === 92) { + ret += parser.source.slice(marker, parser.index); + char = advanceChar(parser); + if (char < 0x7f || char === 8232 || char === 8233) { + const code = parseEscape(parser, context, char); + if (code >= 0) + ret += fromCodePoint(code); + else + handleStringError(parser, code, 0); + } + else { + ret += fromCodePoint(char); + } + marker = parser.index + 1; + } + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + report(parser, 14); + } + function parseEscape(parser, context, first) { + switch (first) { + case 98: + return 8; + case 102: + return 12; + case 114: + return 13; + case 110: + return 10; + case 116: + return 9; + case 118: + return 11; + case 13: { + if (parser.index < parser.end) { + const nextChar = parser.source.charCodeAt(parser.index + 1); + if (nextChar === 10) { + parser.index = parser.index + 1; + parser.currentChar = nextChar; + } + } + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + return -1; + case 48: + case 49: + case 50: + case 51: { + let code = first - 48; + let index = parser.index + 1; + let column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if ((CharTypes[next] & 32) === 0) { + if ((code !== 0 || CharTypes[next] & 512) && context & 1024) + return -2; + } + else if (context & 1024) { + return -2; + } + else { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + } + } + parser.flags |= 64; + parser.index = index - 1; + parser.column = column - 1; + } + } + return code; + } + case 52: + case 53: + case 54: + case 55: { + if (context & 1024) + return -2; + let code = first - 48; + const index = parser.index + 1; + const column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + code = (code << 3) | (next - 48); + parser.currentChar = next; + parser.index = index; + parser.column = column; + } + } + parser.flags |= 64; + return code; + } + case 120: { + const ch1 = advanceChar(parser); + if ((CharTypes[ch1] & 64) === 0) + return -4; + const hi = toHex(ch1); + const ch2 = advanceChar(parser); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const lo = toHex(ch2); + return (hi << 4) | lo; + } + case 117: { + const ch = advanceChar(parser); + if (parser.currentChar === 123) { + let code = 0; + while ((CharTypes[advanceChar(parser)] & 64) !== 0) { + code = (code << 4) | toHex(parser.currentChar); + if (code > 1114111) + return -5; + } + if (parser.currentChar < 1 || parser.currentChar !== 125) { + return -4; + } + return code; + } + else { + if ((CharTypes[ch] & 64) === 0) + return -4; + const ch2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const ch3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[ch3] & 64) === 0) + return -4; + const ch4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[ch4] & 64) === 0) + return -4; + parser.index += 3; + parser.column += 3; + parser.currentChar = parser.source.charCodeAt(parser.index); + return (toHex(ch) << 12) | (toHex(ch2) << 8) | (toHex(ch3) << 4) | toHex(ch4); + } + } + case 56: + case 57: + if ((context & 256) === 0) + return -3; + default: + return first; + } + } + function handleStringError(state, code, isTemplate) { + switch (code) { + case -1: + return; + case -2: + report(state, isTemplate ? 2 : 1); + case -3: + report(state, 13); + case -4: + report(state, 6); + case -5: + report(state, 101); + } + } + + function scanTemplate(parser, context) { + const { index: start } = parser; + let token = 67174409; + let ret = ''; + let char = advanceChar(parser); + while (char !== 96) { + if (char === 36 && parser.source.charCodeAt(parser.index + 1) === 123) { + advanceChar(parser); + token = 67174408; + break; + } + else if ((char & 8) === 8 && char === 92) { + char = advanceChar(parser); + if (char > 0x7e) { + ret += fromCodePoint(char); + } + else { + const code = parseEscape(parser, context | 1024, char); + if (code >= 0) { + ret += fromCodePoint(code); + } + else if (code !== -1 && context & 65536) { + ret = undefined; + char = scanBadTemplate(parser, char); + if (char < 0) + token = 67174408; + break; + } + else { + handleStringError(parser, code, 1); + } + } + } + else { + if (parser.index < parser.end && + char === 13 && + parser.source.charCodeAt(parser.index) === 10) { + ret += fromCodePoint(char); + parser.currentChar = parser.source.charCodeAt(++parser.index); + } + if (((char & 83) < 3 && char === 10) || (char ^ 8232) <= 1) { + parser.column = -1; + parser.line++; + } + ret += fromCodePoint(char); + } + if (parser.index >= parser.end) + report(parser, 15); + char = advanceChar(parser); + } + advanceChar(parser); + parser.tokenValue = ret; + parser.tokenRaw = parser.source.slice(start + 1, parser.index - (token === 67174409 ? 1 : 2)); + return token; + } + function scanBadTemplate(parser, ch) { + while (ch !== 96) { + switch (ch) { + case 36: { + const index = parser.index + 1; + if (index < parser.end && parser.source.charCodeAt(index) === 123) { + parser.index = index; + parser.column++; + return -ch; + } + break; + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + } + if (parser.index >= parser.end) + report(parser, 15); + ch = advanceChar(parser); + } + return ch; + } + function scanTemplateTail(parser, context) { + if (parser.index >= parser.end) + report(parser, 0); + parser.index--; + parser.column--; + return scanTemplate(parser, context); + } + + function scanNumber(parser, context, kind) { + let char = parser.currentChar; + let value = 0; + let digit = 9; + let atStart = kind & 64 ? 0 : 1; + let digits = 0; + let allowSeparator = 0; + if (kind & 64) { + value = '.' + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 110) + report(parser, 11); + } + else { + if (char === 48) { + char = advanceChar(parser); + if ((char | 32) === 120) { + kind = 8 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (64 | 4096)) { + if (char === 95) { + if (!allowSeparator) + report(parser, 146); + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 0x10 + toHex(char); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 19 : 147); + } + } + else if ((char | 32) === 111) { + kind = 4 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (32 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 8 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if ((char | 32) === 98) { + kind = 2 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (128 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 2 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if (CharTypes[char] & 32) { + if (context & 1024) + report(parser, 1); + kind = 1; + while (CharTypes[char] & 16) { + if (CharTypes[char] & 512) { + kind = 32; + atStart = 0; + break; + } + value = value * 8 + (char - 48); + char = advanceChar(parser); + } + } + else if (CharTypes[char] & 512) { + if (context & 1024) + report(parser, 1); + parser.flags |= 64; + kind = 32; + } + else if (char === 95) { + report(parser, 0); + } + } + if (kind & 48) { + if (atStart) { + while (digit >= 0 && CharTypes[char] & (16 | 4096)) { + if (char === 95) { + char = advanceChar(parser); + if (char === 95 || kind & 32) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + continue; + } + allowSeparator = 0; + value = 10 * value + (char - 48); + char = advanceChar(parser); + --digit; + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + if (digit >= 0 && !isIdentifierStart(char) && char !== 46) { + parser.tokenValue = value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + } + value += scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 46) { + if (advanceChar(parser) === 95) + report(parser, 0); + kind = 64; + value += '.' + scanDecimalDigitsOrSeparator(parser, parser.currentChar); + char = parser.currentChar; + } + } + } + const end = parser.index; + let isBigInt = 0; + if (char === 110 && kind & 128) { + isBigInt = 1; + char = advanceChar(parser); + } + else { + if ((char | 32) === 101) { + char = advanceChar(parser); + if (CharTypes[char] & 256) + char = advanceChar(parser); + const { index } = parser; + if ((CharTypes[char] & 16) < 1) + report(parser, 10); + value += parser.source.substring(end, index) + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + } + } + if ((parser.index < parser.end && CharTypes[char] & 16) || isIdentifierStart(char)) { + report(parser, 12); + } + if (isBigInt) { + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = BigInt(value); + return 134283389; + } + parser.tokenValue = + kind & (1 | 2 | 8 | 4) + ? value + : kind & 32 + ? parseFloat(parser.source.substring(parser.tokenPos, parser.index)) + : +value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + function scanDecimalDigitsOrSeparator(parser, char) { + let allowSeparator = 0; + let start = parser.index; + let ret = ''; + while (CharTypes[char] & (16 | 4096)) { + if (char === 95) { + const { index } = parser; + char = advanceChar(parser); + if (char === 95) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + ret += parser.source.substring(start, index); + start = parser.index; + continue; + } + allowSeparator = 0; + char = advanceChar(parser); + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + return ret + parser.source.substring(start, parser.index); + } + + const KeywordDescTable = [ + 'end of source', + 'identifier', 'number', 'string', 'regular expression', + 'false', 'true', 'null', + 'template continuation', 'template tail', + '=>', '(', '{', '.', '...', '}', ')', ';', ',', '[', ']', ':', '?', '\'', '"', '', + '++', '--', + '=', '<<=', '>>=', '>>>=', '**=', '+=', '-=', '*=', '/=', '%=', '^=', '|=', + '&=', '||=', '&&=', '??=', + 'typeof', 'delete', 'void', '!', '~', '+', '-', 'in', 'instanceof', '*', '%', '/', '**', '&&', + '||', '===', '!==', '==', '!=', '<=', '>=', '<', '>', '<<', '>>', '>>>', '&', '|', '^', + 'var', 'let', 'const', + 'break', 'case', 'catch', 'class', 'continue', 'debugger', 'default', 'do', 'else', 'export', + 'extends', 'finally', 'for', 'function', 'if', 'import', 'new', 'return', 'super', 'switch', + 'this', 'throw', 'try', 'while', 'with', + 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield', + 'as', 'async', 'await', 'constructor', 'get', 'set', 'from', 'of', + 'enum', 'eval', 'arguments', 'escaped keyword', 'escaped future reserved keyword', 'reserved if strict', '#', + 'BigIntLiteral', '??', '?.', 'WhiteSpace', 'Illegal', 'LineTerminator', 'PrivateField', + 'Template', '@', 'target', 'meta', 'LineFeed', 'Escaped', 'JSXText' + ]; + const descKeywordTable = Object.create(null, { + this: { value: 86113 }, + function: { value: 86106 }, + if: { value: 20571 }, + return: { value: 20574 }, + var: { value: 86090 }, + else: { value: 20565 }, + for: { value: 20569 }, + new: { value: 86109 }, + in: { value: 8738868 }, + typeof: { value: 16863277 }, + while: { value: 20580 }, + case: { value: 20558 }, + break: { value: 20557 }, + try: { value: 20579 }, + catch: { value: 20559 }, + delete: { value: 16863278 }, + throw: { value: 86114 }, + switch: { value: 86112 }, + continue: { value: 20561 }, + default: { value: 20563 }, + instanceof: { value: 8476725 }, + do: { value: 20564 }, + void: { value: 16863279 }, + finally: { value: 20568 }, + async: { value: 209007 }, + await: { value: 209008 }, + class: { value: 86096 }, + const: { value: 86092 }, + constructor: { value: 12401 }, + debugger: { value: 20562 }, + export: { value: 20566 }, + extends: { value: 20567 }, + false: { value: 86021 }, + from: { value: 12404 }, + get: { value: 12402 }, + implements: { value: 36966 }, + import: { value: 86108 }, + interface: { value: 36967 }, + let: { value: 241739 }, + null: { value: 86023 }, + of: { value: 274549 }, + package: { value: 36968 }, + private: { value: 36969 }, + protected: { value: 36970 }, + public: { value: 36971 }, + set: { value: 12403 }, + static: { value: 36972 }, + super: { value: 86111 }, + true: { value: 86022 }, + with: { value: 20581 }, + yield: { value: 241773 }, + enum: { value: 86134 }, + eval: { value: 537079927 }, + as: { value: 77934 }, + arguments: { value: 537079928 }, + target: { value: 143494 }, + meta: { value: 143495 }, + }); + + function scanIdentifier(parser, context, isValidAsKeyword) { + while (isIdPart[advanceChar(parser)]) { } + parser.tokenValue = parser.source.slice(parser.tokenPos, parser.index); + return parser.currentChar !== 92 && parser.currentChar < 0x7e + ? descKeywordTable[parser.tokenValue] || 208897 + : scanIdentifierSlowCase(parser, context, 0, isValidAsKeyword); + } + function scanUnicodeIdentifier(parser, context) { + const cookedChar = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(cookedChar)) + report(parser, 4); + parser.tokenValue = fromCodePoint(cookedChar); + return scanIdentifierSlowCase(parser, context, 1, CharTypes[cookedChar] & 4); + } + function scanIdentifierSlowCase(parser, context, hasEscape, isValidAsKeyword) { + let start = parser.index; + while (parser.index < parser.end) { + if (parser.currentChar === 92) { + parser.tokenValue += parser.source.slice(start, parser.index); + hasEscape = 1; + const code = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(code)) + report(parser, 4); + isValidAsKeyword = isValidAsKeyword && CharTypes[code] & 4; + parser.tokenValue += fromCodePoint(code); + start = parser.index; + } + else if (isIdentifierPart(parser.currentChar) || consumeMultiUnitCodePoint(parser, parser.currentChar)) { + advanceChar(parser); + } + else { + break; + } + } + if (parser.index <= parser.end) { + parser.tokenValue += parser.source.slice(start, parser.index); + } + const length = parser.tokenValue.length; + if (isValidAsKeyword && length >= 2 && length <= 11) { + const token = descKeywordTable[parser.tokenValue]; + if (token === void 0) + return 208897; + if (!hasEscape) + return token; + if (context & 1024) { + return token === 209008 && (context & (2048 | 4194304)) === 0 + ? token + : token === 36972 + ? 122 + : (token & 36864) === 36864 + ? 122 + : 121; + } + if (context & 1073741824 && + (context & 8192) === 0 && + (token & 20480) === 20480) + return token; + if (token === 241773) { + return context & 1073741824 + ? 143483 + : context & 2097152 + ? 121 + : token; + } + return token === 209007 && context & 1073741824 + ? 143483 + : (token & 36864) === 36864 + ? token + : token === 209008 && (context & 4194304) === 0 + ? token + : 121; + } + return 208897; + } + function scanPrivateIdentifier(parser) { + if (!isIdentifierStart(advanceChar(parser))) + report(parser, 93); + return 131; + } + function scanIdentifierUnicodeEscape(parser) { + if (parser.source.charCodeAt(parser.index + 1) !== 117) { + report(parser, 4); + } + parser.currentChar = parser.source.charCodeAt((parser.index += 2)); + return scanUnicodeEscape(parser); + } + function scanUnicodeEscape(parser) { + let codePoint = 0; + const char = parser.currentChar; + if (char === 123) { + const begin = parser.index - 2; + while (CharTypes[advanceChar(parser)] & 64) { + codePoint = (codePoint << 4) | toHex(parser.currentChar); + if (codePoint > 1114111) + reportScannerError(begin, parser.line, parser.index + 1, 101); + } + if (parser.currentChar !== 125) { + reportScannerError(begin, parser.line, parser.index - 1, 6); + } + advanceChar(parser); + return codePoint; + } + if ((CharTypes[char] & 64) === 0) + report(parser, 6); + const char2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[char2] & 64) === 0) + report(parser, 6); + const char3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[char3] & 64) === 0) + report(parser, 6); + const char4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[char4] & 64) === 0) + report(parser, 6); + codePoint = (toHex(char) << 12) | (toHex(char2) << 8) | (toHex(char3) << 4) | toHex(char4); + parser.currentChar = parser.source.charCodeAt((parser.index += 4)); + return codePoint; + } + + const TokenLookup = [ + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 136, + 128, + 128, + 130, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 16842800, + 134283267, + 131, + 208897, + 8457015, + 8455751, + 134283267, + 67174411, + 16, + 8457014, + 25233970, + 18, + 25233971, + 67108877, + 8457016, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 21, + 1074790417, + 8456258, + 1077936157, + 8456259, + 22, + 133, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 69271571, + 137, + 20, + 8455497, + 208897, + 132, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 208897, + 4096, + 208897, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 4096, + 4096, + 208897, + 4096, + 4096, + 208897, + 4096, + 4096, + 2162700, + 8455240, + 1074790415, + 16842801, + 129 + ]; + function nextToken(parser, context) { + parser.flags = (parser.flags | 1) ^ 1; + parser.startPos = parser.index; + parser.startColumn = parser.column; + parser.startLine = parser.line; + parser.token = scanSingleToken(parser, context, 0); + if (parser.onToken && parser.token !== 1048576) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onToken(convertTokenType(parser.token), parser.tokenPos, parser.index, loc); + } + } + function scanSingleToken(parser, context, state) { + const isStartOfLine = parser.index === 0; + const source = parser.source; + let startPos = parser.index; + let startLine = parser.line; + let startColumn = parser.column; + while (parser.index < parser.end) { + parser.tokenPos = parser.index; + parser.colPos = parser.column; + parser.linePos = parser.line; + let char = parser.currentChar; + if (char <= 0x7e) { + const token = TokenLookup[char]; + switch (token) { + case 67174411: + case 16: + case 2162700: + case 1074790415: + case 69271571: + case 20: + case 21: + case 1074790417: + case 18: + case 16842801: + case 133: + case 129: + advanceChar(parser); + return token; + case 208897: + return scanIdentifier(parser, context, 0); + case 4096: + return scanIdentifier(parser, context, 1); + case 134283266: + return scanNumber(parser, context, 16 | 128); + case 134283267: + return scanString(parser, context, char); + case 132: + return scanTemplate(parser, context); + case 137: + return scanUnicodeIdentifier(parser, context); + case 131: + return scanPrivateIdentifier(parser); + case 128: + advanceChar(parser); + break; + case 130: + state |= 1 | 4; + scanNewLine(parser); + break; + case 136: + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + break; + case 8456258: + let ch = advanceChar(parser); + if (parser.index < parser.end) { + if (ch === 60) { + if (parser.index < parser.end && advanceChar(parser) === 61) { + advanceChar(parser); + return 4194334; + } + return 8456516; + } + else if (ch === 61) { + advanceChar(parser); + return 8456000; + } + if (ch === 33) { + const index = parser.index + 1; + if (index + 1 < parser.end && + source.charCodeAt(index) === 45 && + source.charCodeAt(index + 1) == 45) { + parser.column += 3; + parser.currentChar = source.charCodeAt((parser.index += 3)); + state = skipSingleHTMLComment(parser, source, state, context, 2, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 8456258; + } + if (ch === 47) { + if ((context & 16) < 1) + return 8456258; + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (ch === 42 || ch === 47) + break; + } + advanceChar(parser); + return 25; + } + } + return 8456258; + case 1077936157: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 8455996; + } + return 8455998; + } + if (ch === 62) { + advanceChar(parser); + return 10; + } + return 1077936157; + } + case 16842800: + if (advanceChar(parser) !== 61) { + return 16842800; + } + if (advanceChar(parser) !== 61) { + return 8455999; + } + advanceChar(parser); + return 8455997; + case 8457015: + if (advanceChar(parser) !== 61) + return 8457015; + advanceChar(parser); + return 4194342; + case 8457014: { + advanceChar(parser); + if (parser.index >= parser.end) + return 8457014; + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 4194340; + } + if (ch !== 42) + return 8457014; + if (advanceChar(parser) !== 61) + return 8457273; + advanceChar(parser); + return 4194337; + } + case 8455497: + if (advanceChar(parser) !== 61) + return 8455497; + advanceChar(parser); + return 4194343; + case 25233970: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 43) { + advanceChar(parser); + return 33619995; + } + if (ch === 61) { + advanceChar(parser); + return 4194338; + } + return 25233970; + } + case 25233971: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 45) { + advanceChar(parser); + if ((state & 1 || isStartOfLine) && parser.currentChar === 62) { + if ((context & 256) === 0) + report(parser, 108); + advanceChar(parser); + state = skipSingleHTMLComment(parser, source, state, context, 3, startPos, startLine, startColumn); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 33619996; + } + if (ch === 61) { + advanceChar(parser); + return 4194339; + } + return 25233971; + } + case 8457016: { + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 47) { + advanceChar(parser); + state = skipSingleLineComment(parser, source, state, 0, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (ch === 42) { + advanceChar(parser); + state = skipMultiLineComment(parser, source, state); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (context & 32768) { + return scanRegularExpression(parser, context); + } + if (ch === 61) { + advanceChar(parser); + return 4259877; + } + } + return 8457016; + } + case 67108877: + const next = advanceChar(parser); + if (next >= 48 && next <= 57) + return scanNumber(parser, context, 64 | 16); + if (next === 46) { + const index = parser.index + 1; + if (index < parser.end && source.charCodeAt(index) === 46) { + parser.column += 2; + parser.currentChar = source.charCodeAt((parser.index += 2)); + return 14; + } + } + return 67108877; + case 8455240: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 124) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194346; + } + return 8979003; + } + if (ch === 61) { + advanceChar(parser); + return 4194344; + } + return 8455240; + } + case 8456259: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 8456001; + } + if (ch !== 62) + return 8456259; + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 62) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 4194336; + } + return 8456518; + } + if (ch === 61) { + advanceChar(parser); + return 4194335; + } + } + return 8456517; + } + case 8455751: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 38) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194347; + } + return 8979258; + } + if (ch === 61) { + advanceChar(parser); + return 4194345; + } + return 8455751; + } + case 22: { + let ch = advanceChar(parser); + if (ch === 63) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194348; + } + return 276889982; + } + if (ch === 46) { + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (!(ch >= 48 && ch <= 57)) { + advanceChar(parser); + return 67108991; + } + } + } + return 22; + } + } + } + else { + if ((char ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + continue; + } + if ((char & 0xfc00) === 0xd800 || ((unicodeLookup[(char >>> 5) + 34816] >>> char) & 31 & 1) !== 0) { + if ((char & 0xfc00) === 0xdc00) { + char = ((char & 0x3ff) << 10) | (char & 0x3ff) | 0x10000; + if (((unicodeLookup[(char >>> 5) + 0] >>> char) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(char)); + } + parser.index++; + parser.currentChar = char; + } + parser.column++; + parser.tokenValue = ''; + return scanIdentifierSlowCase(parser, context, 0, 0); + } + if (isExoticECMAScriptWhitespace(char)) { + advanceChar(parser); + continue; + } + report(parser, 18, fromCodePoint(char)); + } + } + return 1048576; + } + + const entities = { + AElig: '\u00C6', + AMP: '\u0026', + Aacute: '\u00C1', + Abreve: '\u0102', + Acirc: '\u00C2', + Acy: '\u0410', + Afr: '\uD835\uDD04', + Agrave: '\u00C0', + Alpha: '\u0391', + Amacr: '\u0100', + And: '\u2A53', + Aogon: '\u0104', + Aopf: '\uD835\uDD38', + ApplyFunction: '\u2061', + Aring: '\u00C5', + Ascr: '\uD835\uDC9C', + Assign: '\u2254', + Atilde: '\u00C3', + Auml: '\u00C4', + Backslash: '\u2216', + Barv: '\u2AE7', + Barwed: '\u2306', + Bcy: '\u0411', + Because: '\u2235', + Bernoullis: '\u212C', + Beta: '\u0392', + Bfr: '\uD835\uDD05', + Bopf: '\uD835\uDD39', + Breve: '\u02D8', + Bscr: '\u212C', + Bumpeq: '\u224E', + CHcy: '\u0427', + COPY: '\u00A9', + Cacute: '\u0106', + Cap: '\u22D2', + CapitalDifferentialD: '\u2145', + Cayleys: '\u212D', + Ccaron: '\u010C', + Ccedil: '\u00C7', + Ccirc: '\u0108', + Cconint: '\u2230', + Cdot: '\u010A', + Cedilla: '\u00B8', + CenterDot: '\u00B7', + Cfr: '\u212D', + Chi: '\u03A7', + CircleDot: '\u2299', + CircleMinus: '\u2296', + CirclePlus: '\u2295', + CircleTimes: '\u2297', + ClockwiseContourIntegral: '\u2232', + CloseCurlyDoubleQuote: '\u201D', + CloseCurlyQuote: '\u2019', + Colon: '\u2237', + Colone: '\u2A74', + Congruent: '\u2261', + Conint: '\u222F', + ContourIntegral: '\u222E', + Copf: '\u2102', + Coproduct: '\u2210', + CounterClockwiseContourIntegral: '\u2233', + Cross: '\u2A2F', + Cscr: '\uD835\uDC9E', + Cup: '\u22D3', + CupCap: '\u224D', + DD: '\u2145', + DDotrahd: '\u2911', + DJcy: '\u0402', + DScy: '\u0405', + DZcy: '\u040F', + Dagger: '\u2021', + Darr: '\u21A1', + Dashv: '\u2AE4', + Dcaron: '\u010E', + Dcy: '\u0414', + Del: '\u2207', + Delta: '\u0394', + Dfr: '\uD835\uDD07', + DiacriticalAcute: '\u00B4', + DiacriticalDot: '\u02D9', + DiacriticalDoubleAcute: '\u02DD', + DiacriticalGrave: '\u0060', + DiacriticalTilde: '\u02DC', + Diamond: '\u22C4', + DifferentialD: '\u2146', + Dopf: '\uD835\uDD3B', + Dot: '\u00A8', + DotDot: '\u20DC', + DotEqual: '\u2250', + DoubleContourIntegral: '\u222F', + DoubleDot: '\u00A8', + DoubleDownArrow: '\u21D3', + DoubleLeftArrow: '\u21D0', + DoubleLeftRightArrow: '\u21D4', + DoubleLeftTee: '\u2AE4', + DoubleLongLeftArrow: '\u27F8', + DoubleLongLeftRightArrow: '\u27FA', + DoubleLongRightArrow: '\u27F9', + DoubleRightArrow: '\u21D2', + DoubleRightTee: '\u22A8', + DoubleUpArrow: '\u21D1', + DoubleUpDownArrow: '\u21D5', + DoubleVerticalBar: '\u2225', + DownArrow: '\u2193', + DownArrowBar: '\u2913', + DownArrowUpArrow: '\u21F5', + DownBreve: '\u0311', + DownLeftRightVector: '\u2950', + DownLeftTeeVector: '\u295E', + DownLeftVector: '\u21BD', + DownLeftVectorBar: '\u2956', + DownRightTeeVector: '\u295F', + DownRightVector: '\u21C1', + DownRightVectorBar: '\u2957', + DownTee: '\u22A4', + DownTeeArrow: '\u21A7', + Downarrow: '\u21D3', + Dscr: '\uD835\uDC9F', + Dstrok: '\u0110', + ENG: '\u014A', + ETH: '\u00D0', + Eacute: '\u00C9', + Ecaron: '\u011A', + Ecirc: '\u00CA', + Ecy: '\u042D', + Edot: '\u0116', + Efr: '\uD835\uDD08', + Egrave: '\u00C8', + Element: '\u2208', + Emacr: '\u0112', + EmptySmallSquare: '\u25FB', + EmptyVerySmallSquare: '\u25AB', + Eogon: '\u0118', + Eopf: '\uD835\uDD3C', + Epsilon: '\u0395', + Equal: '\u2A75', + EqualTilde: '\u2242', + Equilibrium: '\u21CC', + Escr: '\u2130', + Esim: '\u2A73', + Eta: '\u0397', + Euml: '\u00CB', + Exists: '\u2203', + ExponentialE: '\u2147', + Fcy: '\u0424', + Ffr: '\uD835\uDD09', + FilledSmallSquare: '\u25FC', + FilledVerySmallSquare: '\u25AA', + Fopf: '\uD835\uDD3D', + ForAll: '\u2200', + Fouriertrf: '\u2131', + Fscr: '\u2131', + GJcy: '\u0403', + GT: '\u003E', + Gamma: '\u0393', + Gammad: '\u03DC', + Gbreve: '\u011E', + Gcedil: '\u0122', + Gcirc: '\u011C', + Gcy: '\u0413', + Gdot: '\u0120', + Gfr: '\uD835\uDD0A', + Gg: '\u22D9', + Gopf: '\uD835\uDD3E', + GreaterEqual: '\u2265', + GreaterEqualLess: '\u22DB', + GreaterFullEqual: '\u2267', + GreaterGreater: '\u2AA2', + GreaterLess: '\u2277', + GreaterSlantEqual: '\u2A7E', + GreaterTilde: '\u2273', + Gscr: '\uD835\uDCA2', + Gt: '\u226B', + HARDcy: '\u042A', + Hacek: '\u02C7', + Hat: '\u005E', + Hcirc: '\u0124', + Hfr: '\u210C', + HilbertSpace: '\u210B', + Hopf: '\u210D', + HorizontalLine: '\u2500', + Hscr: '\u210B', + Hstrok: '\u0126', + HumpDownHump: '\u224E', + HumpEqual: '\u224F', + IEcy: '\u0415', + IJlig: '\u0132', + IOcy: '\u0401', + Iacute: '\u00CD', + Icirc: '\u00CE', + Icy: '\u0418', + Idot: '\u0130', + Ifr: '\u2111', + Igrave: '\u00CC', + Im: '\u2111', + Imacr: '\u012A', + ImaginaryI: '\u2148', + Implies: '\u21D2', + Int: '\u222C', + Integral: '\u222B', + Intersection: '\u22C2', + InvisibleComma: '\u2063', + InvisibleTimes: '\u2062', + Iogon: '\u012E', + Iopf: '\uD835\uDD40', + Iota: '\u0399', + Iscr: '\u2110', + Itilde: '\u0128', + Iukcy: '\u0406', + Iuml: '\u00CF', + Jcirc: '\u0134', + Jcy: '\u0419', + Jfr: '\uD835\uDD0D', + Jopf: '\uD835\uDD41', + Jscr: '\uD835\uDCA5', + Jsercy: '\u0408', + Jukcy: '\u0404', + KHcy: '\u0425', + KJcy: '\u040C', + Kappa: '\u039A', + Kcedil: '\u0136', + Kcy: '\u041A', + Kfr: '\uD835\uDD0E', + Kopf: '\uD835\uDD42', + Kscr: '\uD835\uDCA6', + LJcy: '\u0409', + LT: '\u003C', + Lacute: '\u0139', + Lambda: '\u039B', + Lang: '\u27EA', + Laplacetrf: '\u2112', + Larr: '\u219E', + Lcaron: '\u013D', + Lcedil: '\u013B', + Lcy: '\u041B', + LeftAngleBracket: '\u27E8', + LeftArrow: '\u2190', + LeftArrowBar: '\u21E4', + LeftArrowRightArrow: '\u21C6', + LeftCeiling: '\u2308', + LeftDoubleBracket: '\u27E6', + LeftDownTeeVector: '\u2961', + LeftDownVector: '\u21C3', + LeftDownVectorBar: '\u2959', + LeftFloor: '\u230A', + LeftRightArrow: '\u2194', + LeftRightVector: '\u294E', + LeftTee: '\u22A3', + LeftTeeArrow: '\u21A4', + LeftTeeVector: '\u295A', + LeftTriangle: '\u22B2', + LeftTriangleBar: '\u29CF', + LeftTriangleEqual: '\u22B4', + LeftUpDownVector: '\u2951', + LeftUpTeeVector: '\u2960', + LeftUpVector: '\u21BF', + LeftUpVectorBar: '\u2958', + LeftVector: '\u21BC', + LeftVectorBar: '\u2952', + Leftarrow: '\u21D0', + Leftrightarrow: '\u21D4', + LessEqualGreater: '\u22DA', + LessFullEqual: '\u2266', + LessGreater: '\u2276', + LessLess: '\u2AA1', + LessSlantEqual: '\u2A7D', + LessTilde: '\u2272', + Lfr: '\uD835\uDD0F', + Ll: '\u22D8', + Lleftarrow: '\u21DA', + Lmidot: '\u013F', + LongLeftArrow: '\u27F5', + LongLeftRightArrow: '\u27F7', + LongRightArrow: '\u27F6', + Longleftarrow: '\u27F8', + Longleftrightarrow: '\u27FA', + Longrightarrow: '\u27F9', + Lopf: '\uD835\uDD43', + LowerLeftArrow: '\u2199', + LowerRightArrow: '\u2198', + Lscr: '\u2112', + Lsh: '\u21B0', + Lstrok: '\u0141', + Lt: '\u226A', + Map: '\u2905', + Mcy: '\u041C', + MediumSpace: '\u205F', + Mellintrf: '\u2133', + Mfr: '\uD835\uDD10', + MinusPlus: '\u2213', + Mopf: '\uD835\uDD44', + Mscr: '\u2133', + Mu: '\u039C', + NJcy: '\u040A', + Nacute: '\u0143', + Ncaron: '\u0147', + Ncedil: '\u0145', + Ncy: '\u041D', + NegativeMediumSpace: '\u200B', + NegativeThickSpace: '\u200B', + NegativeThinSpace: '\u200B', + NegativeVeryThinSpace: '\u200B', + NestedGreaterGreater: '\u226B', + NestedLessLess: '\u226A', + NewLine: '\u000A', + Nfr: '\uD835\uDD11', + NoBreak: '\u2060', + NonBreakingSpace: '\u00A0', + Nopf: '\u2115', + Not: '\u2AEC', + NotCongruent: '\u2262', + NotCupCap: '\u226D', + NotDoubleVerticalBar: '\u2226', + NotElement: '\u2209', + NotEqual: '\u2260', + NotEqualTilde: '\u2242\u0338', + NotExists: '\u2204', + NotGreater: '\u226F', + NotGreaterEqual: '\u2271', + NotGreaterFullEqual: '\u2267\u0338', + NotGreaterGreater: '\u226B\u0338', + NotGreaterLess: '\u2279', + NotGreaterSlantEqual: '\u2A7E\u0338', + NotGreaterTilde: '\u2275', + NotHumpDownHump: '\u224E\u0338', + NotHumpEqual: '\u224F\u0338', + NotLeftTriangle: '\u22EA', + NotLeftTriangleBar: '\u29CF\u0338', + NotLeftTriangleEqual: '\u22EC', + NotLess: '\u226E', + NotLessEqual: '\u2270', + NotLessGreater: '\u2278', + NotLessLess: '\u226A\u0338', + NotLessSlantEqual: '\u2A7D\u0338', + NotLessTilde: '\u2274', + NotNestedGreaterGreater: '\u2AA2\u0338', + NotNestedLessLess: '\u2AA1\u0338', + NotPrecedes: '\u2280', + NotPrecedesEqual: '\u2AAF\u0338', + NotPrecedesSlantEqual: '\u22E0', + NotReverseElement: '\u220C', + NotRightTriangle: '\u22EB', + NotRightTriangleBar: '\u29D0\u0338', + NotRightTriangleEqual: '\u22ED', + NotSquareSubset: '\u228F\u0338', + NotSquareSubsetEqual: '\u22E2', + NotSquareSuperset: '\u2290\u0338', + NotSquareSupersetEqual: '\u22E3', + NotSubset: '\u2282\u20D2', + NotSubsetEqual: '\u2288', + NotSucceeds: '\u2281', + NotSucceedsEqual: '\u2AB0\u0338', + NotSucceedsSlantEqual: '\u22E1', + NotSucceedsTilde: '\u227F\u0338', + NotSuperset: '\u2283\u20D2', + NotSupersetEqual: '\u2289', + NotTilde: '\u2241', + NotTildeEqual: '\u2244', + NotTildeFullEqual: '\u2247', + NotTildeTilde: '\u2249', + NotVerticalBar: '\u2224', + Nscr: '\uD835\uDCA9', + Ntilde: '\u00D1', + Nu: '\u039D', + OElig: '\u0152', + Oacute: '\u00D3', + Ocirc: '\u00D4', + Ocy: '\u041E', + Odblac: '\u0150', + Ofr: '\uD835\uDD12', + Ograve: '\u00D2', + Omacr: '\u014C', + Omega: '\u03A9', + Omicron: '\u039F', + Oopf: '\uD835\uDD46', + OpenCurlyDoubleQuote: '\u201C', + OpenCurlyQuote: '\u2018', + Or: '\u2A54', + Oscr: '\uD835\uDCAA', + Oslash: '\u00D8', + Otilde: '\u00D5', + Otimes: '\u2A37', + Ouml: '\u00D6', + OverBar: '\u203E', + OverBrace: '\u23DE', + OverBracket: '\u23B4', + OverParenthesis: '\u23DC', + PartialD: '\u2202', + Pcy: '\u041F', + Pfr: '\uD835\uDD13', + Phi: '\u03A6', + Pi: '\u03A0', + PlusMinus: '\u00B1', + Poincareplane: '\u210C', + Popf: '\u2119', + Pr: '\u2ABB', + Precedes: '\u227A', + PrecedesEqual: '\u2AAF', + PrecedesSlantEqual: '\u227C', + PrecedesTilde: '\u227E', + Prime: '\u2033', + Product: '\u220F', + Proportion: '\u2237', + Proportional: '\u221D', + Pscr: '\uD835\uDCAB', + Psi: '\u03A8', + QUOT: '\u0022', + Qfr: '\uD835\uDD14', + Qopf: '\u211A', + Qscr: '\uD835\uDCAC', + RBarr: '\u2910', + REG: '\u00AE', + Racute: '\u0154', + Rang: '\u27EB', + Rarr: '\u21A0', + Rarrtl: '\u2916', + Rcaron: '\u0158', + Rcedil: '\u0156', + Rcy: '\u0420', + Re: '\u211C', + ReverseElement: '\u220B', + ReverseEquilibrium: '\u21CB', + ReverseUpEquilibrium: '\u296F', + Rfr: '\u211C', + Rho: '\u03A1', + RightAngleBracket: '\u27E9', + RightArrow: '\u2192', + RightArrowBar: '\u21E5', + RightArrowLeftArrow: '\u21C4', + RightCeiling: '\u2309', + RightDoubleBracket: '\u27E7', + RightDownTeeVector: '\u295D', + RightDownVector: '\u21C2', + RightDownVectorBar: '\u2955', + RightFloor: '\u230B', + RightTee: '\u22A2', + RightTeeArrow: '\u21A6', + RightTeeVector: '\u295B', + RightTriangle: '\u22B3', + RightTriangleBar: '\u29D0', + RightTriangleEqual: '\u22B5', + RightUpDownVector: '\u294F', + RightUpTeeVector: '\u295C', + RightUpVector: '\u21BE', + RightUpVectorBar: '\u2954', + RightVector: '\u21C0', + RightVectorBar: '\u2953', + Rightarrow: '\u21D2', + Ropf: '\u211D', + RoundImplies: '\u2970', + Rrightarrow: '\u21DB', + Rscr: '\u211B', + Rsh: '\u21B1', + RuleDelayed: '\u29F4', + SHCHcy: '\u0429', + SHcy: '\u0428', + SOFTcy: '\u042C', + Sacute: '\u015A', + Sc: '\u2ABC', + Scaron: '\u0160', + Scedil: '\u015E', + Scirc: '\u015C', + Scy: '\u0421', + Sfr: '\uD835\uDD16', + ShortDownArrow: '\u2193', + ShortLeftArrow: '\u2190', + ShortRightArrow: '\u2192', + ShortUpArrow: '\u2191', + Sigma: '\u03A3', + SmallCircle: '\u2218', + Sopf: '\uD835\uDD4A', + Sqrt: '\u221A', + Square: '\u25A1', + SquareIntersection: '\u2293', + SquareSubset: '\u228F', + SquareSubsetEqual: '\u2291', + SquareSuperset: '\u2290', + SquareSupersetEqual: '\u2292', + SquareUnion: '\u2294', + Sscr: '\uD835\uDCAE', + Star: '\u22C6', + Sub: '\u22D0', + Subset: '\u22D0', + SubsetEqual: '\u2286', + Succeeds: '\u227B', + SucceedsEqual: '\u2AB0', + SucceedsSlantEqual: '\u227D', + SucceedsTilde: '\u227F', + SuchThat: '\u220B', + Sum: '\u2211', + Sup: '\u22D1', + Superset: '\u2283', + SupersetEqual: '\u2287', + Supset: '\u22D1', + THORN: '\u00DE', + TRADE: '\u2122', + TSHcy: '\u040B', + TScy: '\u0426', + Tab: '\u0009', + Tau: '\u03A4', + Tcaron: '\u0164', + Tcedil: '\u0162', + Tcy: '\u0422', + Tfr: '\uD835\uDD17', + Therefore: '\u2234', + Theta: '\u0398', + ThickSpace: '\u205F\u200A', + ThinSpace: '\u2009', + Tilde: '\u223C', + TildeEqual: '\u2243', + TildeFullEqual: '\u2245', + TildeTilde: '\u2248', + Topf: '\uD835\uDD4B', + TripleDot: '\u20DB', + Tscr: '\uD835\uDCAF', + Tstrok: '\u0166', + Uacute: '\u00DA', + Uarr: '\u219F', + Uarrocir: '\u2949', + Ubrcy: '\u040E', + Ubreve: '\u016C', + Ucirc: '\u00DB', + Ucy: '\u0423', + Udblac: '\u0170', + Ufr: '\uD835\uDD18', + Ugrave: '\u00D9', + Umacr: '\u016A', + UnderBar: '\u005F', + UnderBrace: '\u23DF', + UnderBracket: '\u23B5', + UnderParenthesis: '\u23DD', + Union: '\u22C3', + UnionPlus: '\u228E', + Uogon: '\u0172', + Uopf: '\uD835\uDD4C', + UpArrow: '\u2191', + UpArrowBar: '\u2912', + UpArrowDownArrow: '\u21C5', + UpDownArrow: '\u2195', + UpEquilibrium: '\u296E', + UpTee: '\u22A5', + UpTeeArrow: '\u21A5', + Uparrow: '\u21D1', + Updownarrow: '\u21D5', + UpperLeftArrow: '\u2196', + UpperRightArrow: '\u2197', + Upsi: '\u03D2', + Upsilon: '\u03A5', + Uring: '\u016E', + Uscr: '\uD835\uDCB0', + Utilde: '\u0168', + Uuml: '\u00DC', + VDash: '\u22AB', + Vbar: '\u2AEB', + Vcy: '\u0412', + Vdash: '\u22A9', + Vdashl: '\u2AE6', + Vee: '\u22C1', + Verbar: '\u2016', + Vert: '\u2016', + VerticalBar: '\u2223', + VerticalLine: '\u007C', + VerticalSeparator: '\u2758', + VerticalTilde: '\u2240', + VeryThinSpace: '\u200A', + Vfr: '\uD835\uDD19', + Vopf: '\uD835\uDD4D', + Vscr: '\uD835\uDCB1', + Vvdash: '\u22AA', + Wcirc: '\u0174', + Wedge: '\u22C0', + Wfr: '\uD835\uDD1A', + Wopf: '\uD835\uDD4E', + Wscr: '\uD835\uDCB2', + Xfr: '\uD835\uDD1B', + Xi: '\u039E', + Xopf: '\uD835\uDD4F', + Xscr: '\uD835\uDCB3', + YAcy: '\u042F', + YIcy: '\u0407', + YUcy: '\u042E', + Yacute: '\u00DD', + Ycirc: '\u0176', + Ycy: '\u042B', + Yfr: '\uD835\uDD1C', + Yopf: '\uD835\uDD50', + Yscr: '\uD835\uDCB4', + Yuml: '\u0178', + ZHcy: '\u0416', + Zacute: '\u0179', + Zcaron: '\u017D', + Zcy: '\u0417', + Zdot: '\u017B', + ZeroWidthSpace: '\u200B', + Zeta: '\u0396', + Zfr: '\u2128', + Zopf: '\u2124', + Zscr: '\uD835\uDCB5', + aacute: '\u00E1', + abreve: '\u0103', + ac: '\u223E', + acE: '\u223E\u0333', + acd: '\u223F', + acirc: '\u00E2', + acute: '\u00B4', + acy: '\u0430', + aelig: '\u00E6', + af: '\u2061', + afr: '\uD835\uDD1E', + agrave: '\u00E0', + alefsym: '\u2135', + aleph: '\u2135', + alpha: '\u03B1', + amacr: '\u0101', + amalg: '\u2A3F', + amp: '\u0026', + and: '\u2227', + andand: '\u2A55', + andd: '\u2A5C', + andslope: '\u2A58', + andv: '\u2A5A', + ang: '\u2220', + ange: '\u29A4', + angle: '\u2220', + angmsd: '\u2221', + angmsdaa: '\u29A8', + angmsdab: '\u29A9', + angmsdac: '\u29AA', + angmsdad: '\u29AB', + angmsdae: '\u29AC', + angmsdaf: '\u29AD', + angmsdag: '\u29AE', + angmsdah: '\u29AF', + angrt: '\u221F', + angrtvb: '\u22BE', + angrtvbd: '\u299D', + angsph: '\u2222', + angst: '\u00C5', + angzarr: '\u237C', + aogon: '\u0105', + aopf: '\uD835\uDD52', + ap: '\u2248', + apE: '\u2A70', + apacir: '\u2A6F', + ape: '\u224A', + apid: '\u224B', + apos: '\u0027', + approx: '\u2248', + approxeq: '\u224A', + aring: '\u00E5', + ascr: '\uD835\uDCB6', + ast: '\u002A', + asymp: '\u2248', + asympeq: '\u224D', + atilde: '\u00E3', + auml: '\u00E4', + awconint: '\u2233', + awint: '\u2A11', + bNot: '\u2AED', + backcong: '\u224C', + backepsilon: '\u03F6', + backprime: '\u2035', + backsim: '\u223D', + backsimeq: '\u22CD', + barvee: '\u22BD', + barwed: '\u2305', + barwedge: '\u2305', + bbrk: '\u23B5', + bbrktbrk: '\u23B6', + bcong: '\u224C', + bcy: '\u0431', + bdquo: '\u201E', + becaus: '\u2235', + because: '\u2235', + bemptyv: '\u29B0', + bepsi: '\u03F6', + bernou: '\u212C', + beta: '\u03B2', + beth: '\u2136', + between: '\u226C', + bfr: '\uD835\uDD1F', + bigcap: '\u22C2', + bigcirc: '\u25EF', + bigcup: '\u22C3', + bigodot: '\u2A00', + bigoplus: '\u2A01', + bigotimes: '\u2A02', + bigsqcup: '\u2A06', + bigstar: '\u2605', + bigtriangledown: '\u25BD', + bigtriangleup: '\u25B3', + biguplus: '\u2A04', + bigvee: '\u22C1', + bigwedge: '\u22C0', + bkarow: '\u290D', + blacklozenge: '\u29EB', + blacksquare: '\u25AA', + blacktriangle: '\u25B4', + blacktriangledown: '\u25BE', + blacktriangleleft: '\u25C2', + blacktriangleright: '\u25B8', + blank: '\u2423', + blk12: '\u2592', + blk14: '\u2591', + blk34: '\u2593', + block: '\u2588', + bne: '\u003D\u20E5', + bnequiv: '\u2261\u20E5', + bnot: '\u2310', + bopf: '\uD835\uDD53', + bot: '\u22A5', + bottom: '\u22A5', + bowtie: '\u22C8', + boxDL: '\u2557', + boxDR: '\u2554', + boxDl: '\u2556', + boxDr: '\u2553', + boxH: '\u2550', + boxHD: '\u2566', + boxHU: '\u2569', + boxHd: '\u2564', + boxHu: '\u2567', + boxUL: '\u255D', + boxUR: '\u255A', + boxUl: '\u255C', + boxUr: '\u2559', + boxV: '\u2551', + boxVH: '\u256C', + boxVL: '\u2563', + boxVR: '\u2560', + boxVh: '\u256B', + boxVl: '\u2562', + boxVr: '\u255F', + boxbox: '\u29C9', + boxdL: '\u2555', + boxdR: '\u2552', + boxdl: '\u2510', + boxdr: '\u250C', + boxh: '\u2500', + boxhD: '\u2565', + boxhU: '\u2568', + boxhd: '\u252C', + boxhu: '\u2534', + boxminus: '\u229F', + boxplus: '\u229E', + boxtimes: '\u22A0', + boxuL: '\u255B', + boxuR: '\u2558', + boxul: '\u2518', + boxur: '\u2514', + boxv: '\u2502', + boxvH: '\u256A', + boxvL: '\u2561', + boxvR: '\u255E', + boxvh: '\u253C', + boxvl: '\u2524', + boxvr: '\u251C', + bprime: '\u2035', + breve: '\u02D8', + brvbar: '\u00A6', + bscr: '\uD835\uDCB7', + bsemi: '\u204F', + bsim: '\u223D', + bsime: '\u22CD', + bsol: '\u005C', + bsolb: '\u29C5', + bsolhsub: '\u27C8', + bull: '\u2022', + bullet: '\u2022', + bump: '\u224E', + bumpE: '\u2AAE', + bumpe: '\u224F', + bumpeq: '\u224F', + cacute: '\u0107', + cap: '\u2229', + capand: '\u2A44', + capbrcup: '\u2A49', + capcap: '\u2A4B', + capcup: '\u2A47', + capdot: '\u2A40', + caps: '\u2229\uFE00', + caret: '\u2041', + caron: '\u02C7', + ccaps: '\u2A4D', + ccaron: '\u010D', + ccedil: '\u00E7', + ccirc: '\u0109', + ccups: '\u2A4C', + ccupssm: '\u2A50', + cdot: '\u010B', + cedil: '\u00B8', + cemptyv: '\u29B2', + cent: '\u00A2', + centerdot: '\u00B7', + cfr: '\uD835\uDD20', + chcy: '\u0447', + check: '\u2713', + checkmark: '\u2713', + chi: '\u03C7', + cir: '\u25CB', + cirE: '\u29C3', + circ: '\u02C6', + circeq: '\u2257', + circlearrowleft: '\u21BA', + circlearrowright: '\u21BB', + circledR: '\u00AE', + circledS: '\u24C8', + circledast: '\u229B', + circledcirc: '\u229A', + circleddash: '\u229D', + cire: '\u2257', + cirfnint: '\u2A10', + cirmid: '\u2AEF', + cirscir: '\u29C2', + clubs: '\u2663', + clubsuit: '\u2663', + colon: '\u003A', + colone: '\u2254', + coloneq: '\u2254', + comma: '\u002C', + commat: '\u0040', + comp: '\u2201', + compfn: '\u2218', + complement: '\u2201', + complexes: '\u2102', + cong: '\u2245', + congdot: '\u2A6D', + conint: '\u222E', + copf: '\uD835\uDD54', + coprod: '\u2210', + copy: '\u00A9', + copysr: '\u2117', + crarr: '\u21B5', + cross: '\u2717', + cscr: '\uD835\uDCB8', + csub: '\u2ACF', + csube: '\u2AD1', + csup: '\u2AD0', + csupe: '\u2AD2', + ctdot: '\u22EF', + cudarrl: '\u2938', + cudarrr: '\u2935', + cuepr: '\u22DE', + cuesc: '\u22DF', + cularr: '\u21B6', + cularrp: '\u293D', + cup: '\u222A', + cupbrcap: '\u2A48', + cupcap: '\u2A46', + cupcup: '\u2A4A', + cupdot: '\u228D', + cupor: '\u2A45', + cups: '\u222A\uFE00', + curarr: '\u21B7', + curarrm: '\u293C', + curlyeqprec: '\u22DE', + curlyeqsucc: '\u22DF', + curlyvee: '\u22CE', + curlywedge: '\u22CF', + curren: '\u00A4', + curvearrowleft: '\u21B6', + curvearrowright: '\u21B7', + cuvee: '\u22CE', + cuwed: '\u22CF', + cwconint: '\u2232', + cwint: '\u2231', + cylcty: '\u232D', + dArr: '\u21D3', + dHar: '\u2965', + dagger: '\u2020', + daleth: '\u2138', + darr: '\u2193', + dash: '\u2010', + dashv: '\u22A3', + dbkarow: '\u290F', + dblac: '\u02DD', + dcaron: '\u010F', + dcy: '\u0434', + dd: '\u2146', + ddagger: '\u2021', + ddarr: '\u21CA', + ddotseq: '\u2A77', + deg: '\u00B0', + delta: '\u03B4', + demptyv: '\u29B1', + dfisht: '\u297F', + dfr: '\uD835\uDD21', + dharl: '\u21C3', + dharr: '\u21C2', + diam: '\u22C4', + diamond: '\u22C4', + diamondsuit: '\u2666', + diams: '\u2666', + die: '\u00A8', + digamma: '\u03DD', + disin: '\u22F2', + div: '\u00F7', + divide: '\u00F7', + divideontimes: '\u22C7', + divonx: '\u22C7', + djcy: '\u0452', + dlcorn: '\u231E', + dlcrop: '\u230D', + dollar: '\u0024', + dopf: '\uD835\uDD55', + dot: '\u02D9', + doteq: '\u2250', + doteqdot: '\u2251', + dotminus: '\u2238', + dotplus: '\u2214', + dotsquare: '\u22A1', + doublebarwedge: '\u2306', + downarrow: '\u2193', + downdownarrows: '\u21CA', + downharpoonleft: '\u21C3', + downharpoonright: '\u21C2', + drbkarow: '\u2910', + drcorn: '\u231F', + drcrop: '\u230C', + dscr: '\uD835\uDCB9', + dscy: '\u0455', + dsol: '\u29F6', + dstrok: '\u0111', + dtdot: '\u22F1', + dtri: '\u25BF', + dtrif: '\u25BE', + duarr: '\u21F5', + duhar: '\u296F', + dwangle: '\u29A6', + dzcy: '\u045F', + dzigrarr: '\u27FF', + eDDot: '\u2A77', + eDot: '\u2251', + eacute: '\u00E9', + easter: '\u2A6E', + ecaron: '\u011B', + ecir: '\u2256', + ecirc: '\u00EA', + ecolon: '\u2255', + ecy: '\u044D', + edot: '\u0117', + ee: '\u2147', + efDot: '\u2252', + efr: '\uD835\uDD22', + eg: '\u2A9A', + egrave: '\u00E8', + egs: '\u2A96', + egsdot: '\u2A98', + el: '\u2A99', + elinters: '\u23E7', + ell: '\u2113', + els: '\u2A95', + elsdot: '\u2A97', + emacr: '\u0113', + empty: '\u2205', + emptyset: '\u2205', + emptyv: '\u2205', + emsp13: '\u2004', + emsp14: '\u2005', + emsp: '\u2003', + eng: '\u014B', + ensp: '\u2002', + eogon: '\u0119', + eopf: '\uD835\uDD56', + epar: '\u22D5', + eparsl: '\u29E3', + eplus: '\u2A71', + epsi: '\u03B5', + epsilon: '\u03B5', + epsiv: '\u03F5', + eqcirc: '\u2256', + eqcolon: '\u2255', + eqsim: '\u2242', + eqslantgtr: '\u2A96', + eqslantless: '\u2A95', + equals: '\u003D', + equest: '\u225F', + equiv: '\u2261', + equivDD: '\u2A78', + eqvparsl: '\u29E5', + erDot: '\u2253', + erarr: '\u2971', + escr: '\u212F', + esdot: '\u2250', + esim: '\u2242', + eta: '\u03B7', + eth: '\u00F0', + euml: '\u00EB', + euro: '\u20AC', + excl: '\u0021', + exist: '\u2203', + expectation: '\u2130', + exponentiale: '\u2147', + fallingdotseq: '\u2252', + fcy: '\u0444', + female: '\u2640', + ffilig: '\uFB03', + fflig: '\uFB00', + ffllig: '\uFB04', + ffr: '\uD835\uDD23', + filig: '\uFB01', + fjlig: '\u0066\u006A', + flat: '\u266D', + fllig: '\uFB02', + fltns: '\u25B1', + fnof: '\u0192', + fopf: '\uD835\uDD57', + forall: '\u2200', + fork: '\u22D4', + forkv: '\u2AD9', + fpartint: '\u2A0D', + frac12: '\u00BD', + frac13: '\u2153', + frac14: '\u00BC', + frac15: '\u2155', + frac16: '\u2159', + frac18: '\u215B', + frac23: '\u2154', + frac25: '\u2156', + frac34: '\u00BE', + frac35: '\u2157', + frac38: '\u215C', + frac45: '\u2158', + frac56: '\u215A', + frac58: '\u215D', + frac78: '\u215E', + frasl: '\u2044', + frown: '\u2322', + fscr: '\uD835\uDCBB', + gE: '\u2267', + gEl: '\u2A8C', + gacute: '\u01F5', + gamma: '\u03B3', + gammad: '\u03DD', + gap: '\u2A86', + gbreve: '\u011F', + gcirc: '\u011D', + gcy: '\u0433', + gdot: '\u0121', + ge: '\u2265', + gel: '\u22DB', + geq: '\u2265', + geqq: '\u2267', + geqslant: '\u2A7E', + ges: '\u2A7E', + gescc: '\u2AA9', + gesdot: '\u2A80', + gesdoto: '\u2A82', + gesdotol: '\u2A84', + gesl: '\u22DB\uFE00', + gesles: '\u2A94', + gfr: '\uD835\uDD24', + gg: '\u226B', + ggg: '\u22D9', + gimel: '\u2137', + gjcy: '\u0453', + gl: '\u2277', + glE: '\u2A92', + gla: '\u2AA5', + glj: '\u2AA4', + gnE: '\u2269', + gnap: '\u2A8A', + gnapprox: '\u2A8A', + gne: '\u2A88', + gneq: '\u2A88', + gneqq: '\u2269', + gnsim: '\u22E7', + gopf: '\uD835\uDD58', + grave: '\u0060', + gscr: '\u210A', + gsim: '\u2273', + gsime: '\u2A8E', + gsiml: '\u2A90', + gt: '\u003E', + gtcc: '\u2AA7', + gtcir: '\u2A7A', + gtdot: '\u22D7', + gtlPar: '\u2995', + gtquest: '\u2A7C', + gtrapprox: '\u2A86', + gtrarr: '\u2978', + gtrdot: '\u22D7', + gtreqless: '\u22DB', + gtreqqless: '\u2A8C', + gtrless: '\u2277', + gtrsim: '\u2273', + gvertneqq: '\u2269\uFE00', + gvnE: '\u2269\uFE00', + hArr: '\u21D4', + hairsp: '\u200A', + half: '\u00BD', + hamilt: '\u210B', + hardcy: '\u044A', + harr: '\u2194', + harrcir: '\u2948', + harrw: '\u21AD', + hbar: '\u210F', + hcirc: '\u0125', + hearts: '\u2665', + heartsuit: '\u2665', + hellip: '\u2026', + hercon: '\u22B9', + hfr: '\uD835\uDD25', + hksearow: '\u2925', + hkswarow: '\u2926', + hoarr: '\u21FF', + homtht: '\u223B', + hookleftarrow: '\u21A9', + hookrightarrow: '\u21AA', + hopf: '\uD835\uDD59', + horbar: '\u2015', + hscr: '\uD835\uDCBD', + hslash: '\u210F', + hstrok: '\u0127', + hybull: '\u2043', + hyphen: '\u2010', + iacute: '\u00ED', + ic: '\u2063', + icirc: '\u00EE', + icy: '\u0438', + iecy: '\u0435', + iexcl: '\u00A1', + iff: '\u21D4', + ifr: '\uD835\uDD26', + igrave: '\u00EC', + ii: '\u2148', + iiiint: '\u2A0C', + iiint: '\u222D', + iinfin: '\u29DC', + iiota: '\u2129', + ijlig: '\u0133', + imacr: '\u012B', + image: '\u2111', + imagline: '\u2110', + imagpart: '\u2111', + imath: '\u0131', + imof: '\u22B7', + imped: '\u01B5', + in: '\u2208', + incare: '\u2105', + infin: '\u221E', + infintie: '\u29DD', + inodot: '\u0131', + int: '\u222B', + intcal: '\u22BA', + integers: '\u2124', + intercal: '\u22BA', + intlarhk: '\u2A17', + intprod: '\u2A3C', + iocy: '\u0451', + iogon: '\u012F', + iopf: '\uD835\uDD5A', + iota: '\u03B9', + iprod: '\u2A3C', + iquest: '\u00BF', + iscr: '\uD835\uDCBE', + isin: '\u2208', + isinE: '\u22F9', + isindot: '\u22F5', + isins: '\u22F4', + isinsv: '\u22F3', + isinv: '\u2208', + it: '\u2062', + itilde: '\u0129', + iukcy: '\u0456', + iuml: '\u00EF', + jcirc: '\u0135', + jcy: '\u0439', + jfr: '\uD835\uDD27', + jmath: '\u0237', + jopf: '\uD835\uDD5B', + jscr: '\uD835\uDCBF', + jsercy: '\u0458', + jukcy: '\u0454', + kappa: '\u03BA', + kappav: '\u03F0', + kcedil: '\u0137', + kcy: '\u043A', + kfr: '\uD835\uDD28', + kgreen: '\u0138', + khcy: '\u0445', + kjcy: '\u045C', + kopf: '\uD835\uDD5C', + kscr: '\uD835\uDCC0', + lAarr: '\u21DA', + lArr: '\u21D0', + lAtail: '\u291B', + lBarr: '\u290E', + lE: '\u2266', + lEg: '\u2A8B', + lHar: '\u2962', + lacute: '\u013A', + laemptyv: '\u29B4', + lagran: '\u2112', + lambda: '\u03BB', + lang: '\u27E8', + langd: '\u2991', + langle: '\u27E8', + lap: '\u2A85', + laquo: '\u00AB', + larr: '\u2190', + larrb: '\u21E4', + larrbfs: '\u291F', + larrfs: '\u291D', + larrhk: '\u21A9', + larrlp: '\u21AB', + larrpl: '\u2939', + larrsim: '\u2973', + larrtl: '\u21A2', + lat: '\u2AAB', + latail: '\u2919', + late: '\u2AAD', + lates: '\u2AAD\uFE00', + lbarr: '\u290C', + lbbrk: '\u2772', + lbrace: '\u007B', + lbrack: '\u005B', + lbrke: '\u298B', + lbrksld: '\u298F', + lbrkslu: '\u298D', + lcaron: '\u013E', + lcedil: '\u013C', + lceil: '\u2308', + lcub: '\u007B', + lcy: '\u043B', + ldca: '\u2936', + ldquo: '\u201C', + ldquor: '\u201E', + ldrdhar: '\u2967', + ldrushar: '\u294B', + ldsh: '\u21B2', + le: '\u2264', + leftarrow: '\u2190', + leftarrowtail: '\u21A2', + leftharpoondown: '\u21BD', + leftharpoonup: '\u21BC', + leftleftarrows: '\u21C7', + leftrightarrow: '\u2194', + leftrightarrows: '\u21C6', + leftrightharpoons: '\u21CB', + leftrightsquigarrow: '\u21AD', + leftthreetimes: '\u22CB', + leg: '\u22DA', + leq: '\u2264', + leqq: '\u2266', + leqslant: '\u2A7D', + les: '\u2A7D', + lescc: '\u2AA8', + lesdot: '\u2A7F', + lesdoto: '\u2A81', + lesdotor: '\u2A83', + lesg: '\u22DA\uFE00', + lesges: '\u2A93', + lessapprox: '\u2A85', + lessdot: '\u22D6', + lesseqgtr: '\u22DA', + lesseqqgtr: '\u2A8B', + lessgtr: '\u2276', + lesssim: '\u2272', + lfisht: '\u297C', + lfloor: '\u230A', + lfr: '\uD835\uDD29', + lg: '\u2276', + lgE: '\u2A91', + lhard: '\u21BD', + lharu: '\u21BC', + lharul: '\u296A', + lhblk: '\u2584', + ljcy: '\u0459', + ll: '\u226A', + llarr: '\u21C7', + llcorner: '\u231E', + llhard: '\u296B', + lltri: '\u25FA', + lmidot: '\u0140', + lmoust: '\u23B0', + lmoustache: '\u23B0', + lnE: '\u2268', + lnap: '\u2A89', + lnapprox: '\u2A89', + lne: '\u2A87', + lneq: '\u2A87', + lneqq: '\u2268', + lnsim: '\u22E6', + loang: '\u27EC', + loarr: '\u21FD', + lobrk: '\u27E6', + longleftarrow: '\u27F5', + longleftrightarrow: '\u27F7', + longmapsto: '\u27FC', + longrightarrow: '\u27F6', + looparrowleft: '\u21AB', + looparrowright: '\u21AC', + lopar: '\u2985', + lopf: '\uD835\uDD5D', + loplus: '\u2A2D', + lotimes: '\u2A34', + lowast: '\u2217', + lowbar: '\u005F', + loz: '\u25CA', + lozenge: '\u25CA', + lozf: '\u29EB', + lpar: '\u0028', + lparlt: '\u2993', + lrarr: '\u21C6', + lrcorner: '\u231F', + lrhar: '\u21CB', + lrhard: '\u296D', + lrm: '\u200E', + lrtri: '\u22BF', + lsaquo: '\u2039', + lscr: '\uD835\uDCC1', + lsh: '\u21B0', + lsim: '\u2272', + lsime: '\u2A8D', + lsimg: '\u2A8F', + lsqb: '\u005B', + lsquo: '\u2018', + lsquor: '\u201A', + lstrok: '\u0142', + lt: '\u003C', + ltcc: '\u2AA6', + ltcir: '\u2A79', + ltdot: '\u22D6', + lthree: '\u22CB', + ltimes: '\u22C9', + ltlarr: '\u2976', + ltquest: '\u2A7B', + ltrPar: '\u2996', + ltri: '\u25C3', + ltrie: '\u22B4', + ltrif: '\u25C2', + lurdshar: '\u294A', + luruhar: '\u2966', + lvertneqq: '\u2268\uFE00', + lvnE: '\u2268\uFE00', + mDDot: '\u223A', + macr: '\u00AF', + male: '\u2642', + malt: '\u2720', + maltese: '\u2720', + map: '\u21A6', + mapsto: '\u21A6', + mapstodown: '\u21A7', + mapstoleft: '\u21A4', + mapstoup: '\u21A5', + marker: '\u25AE', + mcomma: '\u2A29', + mcy: '\u043C', + mdash: '\u2014', + measuredangle: '\u2221', + mfr: '\uD835\uDD2A', + mho: '\u2127', + micro: '\u00B5', + mid: '\u2223', + midast: '\u002A', + midcir: '\u2AF0', + middot: '\u00B7', + minus: '\u2212', + minusb: '\u229F', + minusd: '\u2238', + minusdu: '\u2A2A', + mlcp: '\u2ADB', + mldr: '\u2026', + mnplus: '\u2213', + models: '\u22A7', + mopf: '\uD835\uDD5E', + mp: '\u2213', + mscr: '\uD835\uDCC2', + mstpos: '\u223E', + mu: '\u03BC', + multimap: '\u22B8', + mumap: '\u22B8', + nGg: '\u22D9\u0338', + nGt: '\u226B\u20D2', + nGtv: '\u226B\u0338', + nLeftarrow: '\u21CD', + nLeftrightarrow: '\u21CE', + nLl: '\u22D8\u0338', + nLt: '\u226A\u20D2', + nLtv: '\u226A\u0338', + nRightarrow: '\u21CF', + nVDash: '\u22AF', + nVdash: '\u22AE', + nabla: '\u2207', + nacute: '\u0144', + nang: '\u2220\u20D2', + nap: '\u2249', + napE: '\u2A70\u0338', + napid: '\u224B\u0338', + napos: '\u0149', + napprox: '\u2249', + natur: '\u266E', + natural: '\u266E', + naturals: '\u2115', + nbsp: '\u00A0', + nbump: '\u224E\u0338', + nbumpe: '\u224F\u0338', + ncap: '\u2A43', + ncaron: '\u0148', + ncedil: '\u0146', + ncong: '\u2247', + ncongdot: '\u2A6D\u0338', + ncup: '\u2A42', + ncy: '\u043D', + ndash: '\u2013', + ne: '\u2260', + neArr: '\u21D7', + nearhk: '\u2924', + nearr: '\u2197', + nearrow: '\u2197', + nedot: '\u2250\u0338', + nequiv: '\u2262', + nesear: '\u2928', + nesim: '\u2242\u0338', + nexist: '\u2204', + nexists: '\u2204', + nfr: '\uD835\uDD2B', + ngE: '\u2267\u0338', + nge: '\u2271', + ngeq: '\u2271', + ngeqq: '\u2267\u0338', + ngeqslant: '\u2A7E\u0338', + nges: '\u2A7E\u0338', + ngsim: '\u2275', + ngt: '\u226F', + ngtr: '\u226F', + nhArr: '\u21CE', + nharr: '\u21AE', + nhpar: '\u2AF2', + ni: '\u220B', + nis: '\u22FC', + nisd: '\u22FA', + niv: '\u220B', + njcy: '\u045A', + nlArr: '\u21CD', + nlE: '\u2266\u0338', + nlarr: '\u219A', + nldr: '\u2025', + nle: '\u2270', + nleftarrow: '\u219A', + nleftrightarrow: '\u21AE', + nleq: '\u2270', + nleqq: '\u2266\u0338', + nleqslant: '\u2A7D\u0338', + nles: '\u2A7D\u0338', + nless: '\u226E', + nlsim: '\u2274', + nlt: '\u226E', + nltri: '\u22EA', + nltrie: '\u22EC', + nmid: '\u2224', + nopf: '\uD835\uDD5F', + not: '\u00AC', + notin: '\u2209', + notinE: '\u22F9\u0338', + notindot: '\u22F5\u0338', + notinva: '\u2209', + notinvb: '\u22F7', + notinvc: '\u22F6', + notni: '\u220C', + notniva: '\u220C', + notnivb: '\u22FE', + notnivc: '\u22FD', + npar: '\u2226', + nparallel: '\u2226', + nparsl: '\u2AFD\u20E5', + npart: '\u2202\u0338', + npolint: '\u2A14', + npr: '\u2280', + nprcue: '\u22E0', + npre: '\u2AAF\u0338', + nprec: '\u2280', + npreceq: '\u2AAF\u0338', + nrArr: '\u21CF', + nrarr: '\u219B', + nrarrc: '\u2933\u0338', + nrarrw: '\u219D\u0338', + nrightarrow: '\u219B', + nrtri: '\u22EB', + nrtrie: '\u22ED', + nsc: '\u2281', + nsccue: '\u22E1', + nsce: '\u2AB0\u0338', + nscr: '\uD835\uDCC3', + nshortmid: '\u2224', + nshortparallel: '\u2226', + nsim: '\u2241', + nsime: '\u2244', + nsimeq: '\u2244', + nsmid: '\u2224', + nspar: '\u2226', + nsqsube: '\u22E2', + nsqsupe: '\u22E3', + nsub: '\u2284', + nsubE: '\u2AC5\u0338', + nsube: '\u2288', + nsubset: '\u2282\u20D2', + nsubseteq: '\u2288', + nsubseteqq: '\u2AC5\u0338', + nsucc: '\u2281', + nsucceq: '\u2AB0\u0338', + nsup: '\u2285', + nsupE: '\u2AC6\u0338', + nsupe: '\u2289', + nsupset: '\u2283\u20D2', + nsupseteq: '\u2289', + nsupseteqq: '\u2AC6\u0338', + ntgl: '\u2279', + ntilde: '\u00F1', + ntlg: '\u2278', + ntriangleleft: '\u22EA', + ntrianglelefteq: '\u22EC', + ntriangleright: '\u22EB', + ntrianglerighteq: '\u22ED', + nu: '\u03BD', + num: '\u0023', + numero: '\u2116', + numsp: '\u2007', + nvDash: '\u22AD', + nvHarr: '\u2904', + nvap: '\u224D\u20D2', + nvdash: '\u22AC', + nvge: '\u2265\u20D2', + nvgt: '\u003E\u20D2', + nvinfin: '\u29DE', + nvlArr: '\u2902', + nvle: '\u2264\u20D2', + nvlt: '\u003C\u20D2', + nvltrie: '\u22B4\u20D2', + nvrArr: '\u2903', + nvrtrie: '\u22B5\u20D2', + nvsim: '\u223C\u20D2', + nwArr: '\u21D6', + nwarhk: '\u2923', + nwarr: '\u2196', + nwarrow: '\u2196', + nwnear: '\u2927', + oS: '\u24C8', + oacute: '\u00F3', + oast: '\u229B', + ocir: '\u229A', + ocirc: '\u00F4', + ocy: '\u043E', + odash: '\u229D', + odblac: '\u0151', + odiv: '\u2A38', + odot: '\u2299', + odsold: '\u29BC', + oelig: '\u0153', + ofcir: '\u29BF', + ofr: '\uD835\uDD2C', + ogon: '\u02DB', + ograve: '\u00F2', + ogt: '\u29C1', + ohbar: '\u29B5', + ohm: '\u03A9', + oint: '\u222E', + olarr: '\u21BA', + olcir: '\u29BE', + olcross: '\u29BB', + oline: '\u203E', + olt: '\u29C0', + omacr: '\u014D', + omega: '\u03C9', + omicron: '\u03BF', + omid: '\u29B6', + ominus: '\u2296', + oopf: '\uD835\uDD60', + opar: '\u29B7', + operp: '\u29B9', + oplus: '\u2295', + or: '\u2228', + orarr: '\u21BB', + ord: '\u2A5D', + order: '\u2134', + orderof: '\u2134', + ordf: '\u00AA', + ordm: '\u00BA', + origof: '\u22B6', + oror: '\u2A56', + orslope: '\u2A57', + orv: '\u2A5B', + oscr: '\u2134', + oslash: '\u00F8', + osol: '\u2298', + otilde: '\u00F5', + otimes: '\u2297', + otimesas: '\u2A36', + ouml: '\u00F6', + ovbar: '\u233D', + par: '\u2225', + para: '\u00B6', + parallel: '\u2225', + parsim: '\u2AF3', + parsl: '\u2AFD', + part: '\u2202', + pcy: '\u043F', + percnt: '\u0025', + period: '\u002E', + permil: '\u2030', + perp: '\u22A5', + pertenk: '\u2031', + pfr: '\uD835\uDD2D', + phi: '\u03C6', + phiv: '\u03D5', + phmmat: '\u2133', + phone: '\u260E', + pi: '\u03C0', + pitchfork: '\u22D4', + piv: '\u03D6', + planck: '\u210F', + planckh: '\u210E', + plankv: '\u210F', + plus: '\u002B', + plusacir: '\u2A23', + plusb: '\u229E', + pluscir: '\u2A22', + plusdo: '\u2214', + plusdu: '\u2A25', + pluse: '\u2A72', + plusmn: '\u00B1', + plussim: '\u2A26', + plustwo: '\u2A27', + pm: '\u00B1', + pointint: '\u2A15', + popf: '\uD835\uDD61', + pound: '\u00A3', + pr: '\u227A', + prE: '\u2AB3', + prap: '\u2AB7', + prcue: '\u227C', + pre: '\u2AAF', + prec: '\u227A', + precapprox: '\u2AB7', + preccurlyeq: '\u227C', + preceq: '\u2AAF', + precnapprox: '\u2AB9', + precneqq: '\u2AB5', + precnsim: '\u22E8', + precsim: '\u227E', + prime: '\u2032', + primes: '\u2119', + prnE: '\u2AB5', + prnap: '\u2AB9', + prnsim: '\u22E8', + prod: '\u220F', + profalar: '\u232E', + profline: '\u2312', + profsurf: '\u2313', + prop: '\u221D', + propto: '\u221D', + prsim: '\u227E', + prurel: '\u22B0', + pscr: '\uD835\uDCC5', + psi: '\u03C8', + puncsp: '\u2008', + qfr: '\uD835\uDD2E', + qint: '\u2A0C', + qopf: '\uD835\uDD62', + qprime: '\u2057', + qscr: '\uD835\uDCC6', + quaternions: '\u210D', + quatint: '\u2A16', + quest: '\u003F', + questeq: '\u225F', + quot: '\u0022', + rAarr: '\u21DB', + rArr: '\u21D2', + rAtail: '\u291C', + rBarr: '\u290F', + rHar: '\u2964', + race: '\u223D\u0331', + racute: '\u0155', + radic: '\u221A', + raemptyv: '\u29B3', + rang: '\u27E9', + rangd: '\u2992', + range: '\u29A5', + rangle: '\u27E9', + raquo: '\u00BB', + rarr: '\u2192', + rarrap: '\u2975', + rarrb: '\u21E5', + rarrbfs: '\u2920', + rarrc: '\u2933', + rarrfs: '\u291E', + rarrhk: '\u21AA', + rarrlp: '\u21AC', + rarrpl: '\u2945', + rarrsim: '\u2974', + rarrtl: '\u21A3', + rarrw: '\u219D', + ratail: '\u291A', + ratio: '\u2236', + rationals: '\u211A', + rbarr: '\u290D', + rbbrk: '\u2773', + rbrace: '\u007D', + rbrack: '\u005D', + rbrke: '\u298C', + rbrksld: '\u298E', + rbrkslu: '\u2990', + rcaron: '\u0159', + rcedil: '\u0157', + rceil: '\u2309', + rcub: '\u007D', + rcy: '\u0440', + rdca: '\u2937', + rdldhar: '\u2969', + rdquo: '\u201D', + rdquor: '\u201D', + rdsh: '\u21B3', + real: '\u211C', + realine: '\u211B', + realpart: '\u211C', + reals: '\u211D', + rect: '\u25AD', + reg: '\u00AE', + rfisht: '\u297D', + rfloor: '\u230B', + rfr: '\uD835\uDD2F', + rhard: '\u21C1', + rharu: '\u21C0', + rharul: '\u296C', + rho: '\u03C1', + rhov: '\u03F1', + rightarrow: '\u2192', + rightarrowtail: '\u21A3', + rightharpoondown: '\u21C1', + rightharpoonup: '\u21C0', + rightleftarrows: '\u21C4', + rightleftharpoons: '\u21CC', + rightrightarrows: '\u21C9', + rightsquigarrow: '\u219D', + rightthreetimes: '\u22CC', + ring: '\u02DA', + risingdotseq: '\u2253', + rlarr: '\u21C4', + rlhar: '\u21CC', + rlm: '\u200F', + rmoust: '\u23B1', + rmoustache: '\u23B1', + rnmid: '\u2AEE', + roang: '\u27ED', + roarr: '\u21FE', + robrk: '\u27E7', + ropar: '\u2986', + ropf: '\uD835\uDD63', + roplus: '\u2A2E', + rotimes: '\u2A35', + rpar: '\u0029', + rpargt: '\u2994', + rppolint: '\u2A12', + rrarr: '\u21C9', + rsaquo: '\u203A', + rscr: '\uD835\uDCC7', + rsh: '\u21B1', + rsqb: '\u005D', + rsquo: '\u2019', + rsquor: '\u2019', + rthree: '\u22CC', + rtimes: '\u22CA', + rtri: '\u25B9', + rtrie: '\u22B5', + rtrif: '\u25B8', + rtriltri: '\u29CE', + ruluhar: '\u2968', + rx: '\u211E', + sacute: '\u015B', + sbquo: '\u201A', + sc: '\u227B', + scE: '\u2AB4', + scap: '\u2AB8', + scaron: '\u0161', + sccue: '\u227D', + sce: '\u2AB0', + scedil: '\u015F', + scirc: '\u015D', + scnE: '\u2AB6', + scnap: '\u2ABA', + scnsim: '\u22E9', + scpolint: '\u2A13', + scsim: '\u227F', + scy: '\u0441', + sdot: '\u22C5', + sdotb: '\u22A1', + sdote: '\u2A66', + seArr: '\u21D8', + searhk: '\u2925', + searr: '\u2198', + searrow: '\u2198', + sect: '\u00A7', + semi: '\u003B', + seswar: '\u2929', + setminus: '\u2216', + setmn: '\u2216', + sext: '\u2736', + sfr: '\uD835\uDD30', + sfrown: '\u2322', + sharp: '\u266F', + shchcy: '\u0449', + shcy: '\u0448', + shortmid: '\u2223', + shortparallel: '\u2225', + shy: '\u00AD', + sigma: '\u03C3', + sigmaf: '\u03C2', + sigmav: '\u03C2', + sim: '\u223C', + simdot: '\u2A6A', + sime: '\u2243', + simeq: '\u2243', + simg: '\u2A9E', + simgE: '\u2AA0', + siml: '\u2A9D', + simlE: '\u2A9F', + simne: '\u2246', + simplus: '\u2A24', + simrarr: '\u2972', + slarr: '\u2190', + smallsetminus: '\u2216', + smashp: '\u2A33', + smeparsl: '\u29E4', + smid: '\u2223', + smile: '\u2323', + smt: '\u2AAA', + smte: '\u2AAC', + smtes: '\u2AAC\uFE00', + softcy: '\u044C', + sol: '\u002F', + solb: '\u29C4', + solbar: '\u233F', + sopf: '\uD835\uDD64', + spades: '\u2660', + spadesuit: '\u2660', + spar: '\u2225', + sqcap: '\u2293', + sqcaps: '\u2293\uFE00', + sqcup: '\u2294', + sqcups: '\u2294\uFE00', + sqsub: '\u228F', + sqsube: '\u2291', + sqsubset: '\u228F', + sqsubseteq: '\u2291', + sqsup: '\u2290', + sqsupe: '\u2292', + sqsupset: '\u2290', + sqsupseteq: '\u2292', + squ: '\u25A1', + square: '\u25A1', + squarf: '\u25AA', + squf: '\u25AA', + srarr: '\u2192', + sscr: '\uD835\uDCC8', + ssetmn: '\u2216', + ssmile: '\u2323', + sstarf: '\u22C6', + star: '\u2606', + starf: '\u2605', + straightepsilon: '\u03F5', + straightphi: '\u03D5', + strns: '\u00AF', + sub: '\u2282', + subE: '\u2AC5', + subdot: '\u2ABD', + sube: '\u2286', + subedot: '\u2AC3', + submult: '\u2AC1', + subnE: '\u2ACB', + subne: '\u228A', + subplus: '\u2ABF', + subrarr: '\u2979', + subset: '\u2282', + subseteq: '\u2286', + subseteqq: '\u2AC5', + subsetneq: '\u228A', + subsetneqq: '\u2ACB', + subsim: '\u2AC7', + subsub: '\u2AD5', + subsup: '\u2AD3', + succ: '\u227B', + succapprox: '\u2AB8', + succcurlyeq: '\u227D', + succeq: '\u2AB0', + succnapprox: '\u2ABA', + succneqq: '\u2AB6', + succnsim: '\u22E9', + succsim: '\u227F', + sum: '\u2211', + sung: '\u266A', + sup1: '\u00B9', + sup2: '\u00B2', + sup3: '\u00B3', + sup: '\u2283', + supE: '\u2AC6', + supdot: '\u2ABE', + supdsub: '\u2AD8', + supe: '\u2287', + supedot: '\u2AC4', + suphsol: '\u27C9', + suphsub: '\u2AD7', + suplarr: '\u297B', + supmult: '\u2AC2', + supnE: '\u2ACC', + supne: '\u228B', + supplus: '\u2AC0', + supset: '\u2283', + supseteq: '\u2287', + supseteqq: '\u2AC6', + supsetneq: '\u228B', + supsetneqq: '\u2ACC', + supsim: '\u2AC8', + supsub: '\u2AD4', + supsup: '\u2AD6', + swArr: '\u21D9', + swarhk: '\u2926', + swarr: '\u2199', + swarrow: '\u2199', + swnwar: '\u292A', + szlig: '\u00DF', + target: '\u2316', + tau: '\u03C4', + tbrk: '\u23B4', + tcaron: '\u0165', + tcedil: '\u0163', + tcy: '\u0442', + tdot: '\u20DB', + telrec: '\u2315', + tfr: '\uD835\uDD31', + there4: '\u2234', + therefore: '\u2234', + theta: '\u03B8', + thetasym: '\u03D1', + thetav: '\u03D1', + thickapprox: '\u2248', + thicksim: '\u223C', + thinsp: '\u2009', + thkap: '\u2248', + thksim: '\u223C', + thorn: '\u00FE', + tilde: '\u02DC', + times: '\u00D7', + timesb: '\u22A0', + timesbar: '\u2A31', + timesd: '\u2A30', + tint: '\u222D', + toea: '\u2928', + top: '\u22A4', + topbot: '\u2336', + topcir: '\u2AF1', + topf: '\uD835\uDD65', + topfork: '\u2ADA', + tosa: '\u2929', + tprime: '\u2034', + trade: '\u2122', + triangle: '\u25B5', + triangledown: '\u25BF', + triangleleft: '\u25C3', + trianglelefteq: '\u22B4', + triangleq: '\u225C', + triangleright: '\u25B9', + trianglerighteq: '\u22B5', + tridot: '\u25EC', + trie: '\u225C', + triminus: '\u2A3A', + triplus: '\u2A39', + trisb: '\u29CD', + tritime: '\u2A3B', + trpezium: '\u23E2', + tscr: '\uD835\uDCC9', + tscy: '\u0446', + tshcy: '\u045B', + tstrok: '\u0167', + twixt: '\u226C', + twoheadleftarrow: '\u219E', + twoheadrightarrow: '\u21A0', + uArr: '\u21D1', + uHar: '\u2963', + uacute: '\u00FA', + uarr: '\u2191', + ubrcy: '\u045E', + ubreve: '\u016D', + ucirc: '\u00FB', + ucy: '\u0443', + udarr: '\u21C5', + udblac: '\u0171', + udhar: '\u296E', + ufisht: '\u297E', + ufr: '\uD835\uDD32', + ugrave: '\u00F9', + uharl: '\u21BF', + uharr: '\u21BE', + uhblk: '\u2580', + ulcorn: '\u231C', + ulcorner: '\u231C', + ulcrop: '\u230F', + ultri: '\u25F8', + umacr: '\u016B', + uml: '\u00A8', + uogon: '\u0173', + uopf: '\uD835\uDD66', + uparrow: '\u2191', + updownarrow: '\u2195', + upharpoonleft: '\u21BF', + upharpoonright: '\u21BE', + uplus: '\u228E', + upsi: '\u03C5', + upsih: '\u03D2', + upsilon: '\u03C5', + upuparrows: '\u21C8', + urcorn: '\u231D', + urcorner: '\u231D', + urcrop: '\u230E', + uring: '\u016F', + urtri: '\u25F9', + uscr: '\uD835\uDCCA', + utdot: '\u22F0', + utilde: '\u0169', + utri: '\u25B5', + utrif: '\u25B4', + uuarr: '\u21C8', + uuml: '\u00FC', + uwangle: '\u29A7', + vArr: '\u21D5', + vBar: '\u2AE8', + vBarv: '\u2AE9', + vDash: '\u22A8', + vangrt: '\u299C', + varepsilon: '\u03F5', + varkappa: '\u03F0', + varnothing: '\u2205', + varphi: '\u03D5', + varpi: '\u03D6', + varpropto: '\u221D', + varr: '\u2195', + varrho: '\u03F1', + varsigma: '\u03C2', + varsubsetneq: '\u228A\uFE00', + varsubsetneqq: '\u2ACB\uFE00', + varsupsetneq: '\u228B\uFE00', + varsupsetneqq: '\u2ACC\uFE00', + vartheta: '\u03D1', + vartriangleleft: '\u22B2', + vartriangleright: '\u22B3', + vcy: '\u0432', + vdash: '\u22A2', + vee: '\u2228', + veebar: '\u22BB', + veeeq: '\u225A', + vellip: '\u22EE', + verbar: '\u007C', + vert: '\u007C', + vfr: '\uD835\uDD33', + vltri: '\u22B2', + vnsub: '\u2282\u20D2', + vnsup: '\u2283\u20D2', + vopf: '\uD835\uDD67', + vprop: '\u221D', + vrtri: '\u22B3', + vscr: '\uD835\uDCCB', + vsubnE: '\u2ACB\uFE00', + vsubne: '\u228A\uFE00', + vsupnE: '\u2ACC\uFE00', + vsupne: '\u228B\uFE00', + vzigzag: '\u299A', + wcirc: '\u0175', + wedbar: '\u2A5F', + wedge: '\u2227', + wedgeq: '\u2259', + weierp: '\u2118', + wfr: '\uD835\uDD34', + wopf: '\uD835\uDD68', + wp: '\u2118', + wr: '\u2240', + wreath: '\u2240', + wscr: '\uD835\uDCCC', + xcap: '\u22C2', + xcirc: '\u25EF', + xcup: '\u22C3', + xdtri: '\u25BD', + xfr: '\uD835\uDD35', + xhArr: '\u27FA', + xharr: '\u27F7', + xi: '\u03BE', + xlArr: '\u27F8', + xlarr: '\u27F5', + xmap: '\u27FC', + xnis: '\u22FB', + xodot: '\u2A00', + xopf: '\uD835\uDD69', + xoplus: '\u2A01', + xotime: '\u2A02', + xrArr: '\u27F9', + xrarr: '\u27F6', + xscr: '\uD835\uDCCD', + xsqcup: '\u2A06', + xuplus: '\u2A04', + xutri: '\u25B3', + xvee: '\u22C1', + xwedge: '\u22C0', + yacute: '\u00FD', + yacy: '\u044F', + ycirc: '\u0177', + ycy: '\u044B', + yen: '\u00A5', + yfr: '\uD835\uDD36', + yicy: '\u0457', + yopf: '\uD835\uDD6A', + yscr: '\uD835\uDCCE', + yucy: '\u044E', + yuml: '\u00FF', + zacute: '\u017A', + zcaron: '\u017E', + zcy: '\u0437', + zdot: '\u017C', + zeetrf: '\u2128', + zeta: '\u03B6', + zfr: '\uD835\uDD37', + zhcy: '\u0436', + zigrarr: '\u21DD', + zopf: '\uD835\uDD6B', + zscr: '\uD835\uDCCF', + zwj: '\u200D', + zwnj: '\u200C' + }; + const decodeMap = { + '0': 65533, + '128': 8364, + '130': 8218, + '131': 402, + '132': 8222, + '133': 8230, + '134': 8224, + '135': 8225, + '136': 710, + '137': 8240, + '138': 352, + '139': 8249, + '140': 338, + '142': 381, + '145': 8216, + '146': 8217, + '147': 8220, + '148': 8221, + '149': 8226, + '150': 8211, + '151': 8212, + '152': 732, + '153': 8482, + '154': 353, + '155': 8250, + '156': 339, + '158': 382, + '159': 376 + }; + function decodeHTMLStrict(text) { + return text.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, (key) => { + if (key.charAt(1) === '#') { + const secondChar = key.charAt(2); + const codePoint = secondChar === 'X' || secondChar === 'x' + ? parseInt(key.slice(3), 16) + : parseInt(key.slice(2), 10); + return decodeCodePoint(codePoint); + } + return entities[key.slice(1, -1)] || key; + }); + } + function decodeCodePoint(codePoint) { + if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { + return '\uFFFD'; + } + if (codePoint in decodeMap) { + codePoint = decodeMap[codePoint]; + } + return String.fromCodePoint(codePoint); + } + + function scanJSXAttributeValue(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + parser.token = + CharTypes[parser.currentChar] & 8192 + ? scanJSXString(parser, context) + : scanSingleToken(parser, context, 0); + return parser.token; + } + function scanJSXString(parser, context) { + const quote = parser.currentChar; + let char = advanceChar(parser); + const start = parser.index; + while (char !== quote) { + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + if (char !== quote) + report(parser, 14); + parser.tokenValue = parser.source.slice(start, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283267; + } + function scanJSXToken(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + if (parser.index >= parser.end) + return (parser.token = 1048576); + const token = TokenLookup[parser.source.charCodeAt(parser.index)]; + switch (token) { + case 8456258: { + advanceChar(parser); + if (parser.currentChar === 47) { + advanceChar(parser); + parser.token = 25; + } + else { + parser.token = 8456258; + } + break; + } + case 2162700: { + advanceChar(parser); + parser.token = 2162700; + break; + } + default: { + let state = 0; + while (parser.index < parser.end) { + const type = CharTypes[parser.source.charCodeAt(parser.index)]; + if (type & 1024) { + state |= 1 | 4; + scanNewLine(parser); + } + else if (type & 2048) { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + else { + advanceChar(parser); + } + if (CharTypes[parser.currentChar] & 16384) + break; + } + const raw = parser.source.slice(parser.tokenPos, parser.index); + if (context & 512) + parser.tokenRaw = raw; + parser.tokenValue = decodeHTMLStrict(raw); + parser.token = 138; + } + } + return parser.token; + } + function scanJSXIdentifier(parser) { + if ((parser.token & 143360) === 143360) { + const { index } = parser; + let char = parser.currentChar; + while (CharTypes[char] & (32768 | 2)) { + char = advanceChar(parser); + } + parser.tokenValue += parser.source.slice(index, parser.index); + } + parser.token = 208897; + return parser.token; + } + + function matchOrInsertSemicolon(parser, context, specDeviation) { + if ((parser.flags & 1) === 0 && + (parser.token & 1048576) !== 1048576 && + !specDeviation) { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + consumeOpt(parser, context, 1074790417); + } + function isValidStrictMode(parser, index, tokenPos, tokenValue) { + if (index - tokenPos < 13 && tokenValue === 'use strict') { + if ((parser.token & 1048576) === 1048576 || parser.flags & 1) { + return 1; + } + } + return 0; + } + function optionalBit(parser, context, t) { + if (parser.token !== t) + return 0; + nextToken(parser, context); + return 1; + } + function consumeOpt(parser, context, t) { + if (parser.token !== t) + return false; + nextToken(parser, context); + return true; + } + function consume(parser, context, t) { + if (parser.token !== t) + report(parser, 23, KeywordDescTable[t & 255]); + nextToken(parser, context); + } + function reinterpretToPattern(state, node) { + switch (node.type) { + case 'ArrayExpression': + node.type = 'ArrayPattern'; + const elements = node.elements; + for (let i = 0, n = elements.length; i < n; ++i) { + const element = elements[i]; + if (element) + reinterpretToPattern(state, element); + } + return; + case 'ObjectExpression': + node.type = 'ObjectPattern'; + const properties = node.properties; + for (let i = 0, n = properties.length; i < n; ++i) { + reinterpretToPattern(state, properties[i]); + } + return; + case 'AssignmentExpression': + node.type = 'AssignmentPattern'; + if (node.operator !== '=') + report(state, 68); + delete node.operator; + reinterpretToPattern(state, node.left); + return; + case 'Property': + reinterpretToPattern(state, node.value); + return; + case 'SpreadElement': + node.type = 'RestElement'; + reinterpretToPattern(state, node.argument); + } + } + function validateBindingIdentifier(parser, context, kind, t, skipEvalArgCheck) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if (!skipEvalArgCheck && (t & 537079808) === 537079808) { + report(parser, 115); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (kind & (8 | 16) && t === 241739) { + report(parser, 97); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } + } + function validateFunctionName(parser, context, t) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if ((t & 537079808) === 537079808) { + report(parser, 115); + } + if (t === 122) { + report(parser, 92); + } + if (t === 121) { + report(parser, 92); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } + } + function isStrictReservedWord(parser, context, t) { + if (t === 209008) { + if (context & (4194304 | 2048)) + report(parser, 95); + parser.destructible |= 128; + } + if (t === 241773 && context & 2097152) + report(parser, 94, 'yield'); + return ((t & 20480) === 20480 || + (t & 36864) === 36864 || + t == 122); + } + function isPropertyWithPrivateFieldKey(expr) { + return !expr.property ? false : expr.property.type === 'PrivateIdentifier'; + } + function isValidLabel(parser, labels, name, isIterationStatement) { + while (labels) { + if (labels['$' + name]) { + if (isIterationStatement) + report(parser, 133); + return 1; + } + if (isIterationStatement && labels.loop) + isIterationStatement = 0; + labels = labels['$']; + } + return 0; + } + function validateAndDeclareLabel(parser, labels, name) { + let set = labels; + while (set) { + if (set['$' + name]) + report(parser, 132, name); + set = set['$']; + } + labels['$' + name] = 1; + } + function finishNode(parser, context, start, line, column, node) { + if (context & 2) { + node.start = start; + node.end = parser.startPos; + node.range = [start, parser.startPos]; + } + if (context & 4) { + node.loc = { + start: { + line, + column + }, + end: { + line: parser.startLine, + column: parser.startColumn + } + }; + if (parser.sourceFile) { + node.loc.source = parser.sourceFile; + } + } + return node; + } + function isEqualTagName(elementName) { + switch (elementName.type) { + case 'JSXIdentifier': + return elementName.name; + case 'JSXNamespacedName': + return elementName.namespace + ':' + elementName.name; + case 'JSXMemberExpression': + return isEqualTagName(elementName.object) + '.' + isEqualTagName(elementName.property); + } + } + function createArrowHeadParsingScope(parser, context, value) { + const scope = addChildScope(createScope(), 1024); + addBlockName(parser, context, scope, value, 1, 0); + return scope; + } + function recordScopeError(parser, type, ...params) { + const { index, line, column } = parser; + return { + type, + params, + index, + line, + column + }; + } + function createScope() { + return { + parent: void 0, + type: 2 + }; + } + function addChildScope(parent, type) { + return { + parent, + type, + scopeError: void 0 + }; + } + function addVarOrBlock(parser, context, scope, name, kind, origin) { + if (kind & 4) { + addVarName(parser, context, scope, name, kind); + } + else { + addBlockName(parser, context, scope, name, kind, origin); + } + if (origin & 64) { + declareUnboundVariable(parser, name); + } + } + function addBlockName(parser, context, scope, name, kind, origin) { + const value = scope['#' + name]; + if (value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + else if (context & 256 && + value & 64 && + origin & 2) ; + else { + report(parser, 140, name); + } + } + if (scope.type & 128 && + (scope.parent['#' + name] && (scope.parent['#' + name] & 2) === 0)) { + report(parser, 140, name); + } + if (scope.type & 1024 && value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + } + if (scope.type & 64) { + if (scope.parent['#' + name] & 768) + report(parser, 153, name); + } + scope['#' + name] = kind; + } + function addVarName(parser, context, scope, name, kind) { + let currentScope = scope; + while (currentScope && (currentScope.type & 256) === 0) { + const value = currentScope['#' + name]; + if (value & 248) { + if (context & 256 && + (context & 1024) === 0 && + ((kind & 128 && value & 68) || + (value & 128 && kind & 68))) ; + else { + report(parser, 140, name); + } + } + if (currentScope === scope) { + if (value & 1 && kind & 1) { + currentScope.scopeError = recordScopeError(parser, 140, name); + } + } + if (value & (512 | 256)) { + if ((value & 512) === 0 || + (context & 256) === 0 || + context & 1024) { + report(parser, 140, name); + } + } + currentScope['#' + name] = kind; + currentScope = currentScope.parent; + } + } + function declareUnboundVariable(parser, name) { + if (parser.exportedNames !== void 0 && name !== '') { + if (parser.exportedNames['#' + name]) { + report(parser, 141, name); + } + parser.exportedNames['#' + name] = 1; + } + } + function addBindingToExports(parser, name) { + if (parser.exportedBindings !== void 0 && name !== '') { + parser.exportedBindings['#' + name] = 1; + } + } + function pushComment(context, array) { + return function (type, value, start, end, loc) { + const comment = { + type, + value + }; + if (context & 2) { + comment.start = start; + comment.end = end; + comment.range = [start, end]; + } + if (context & 4) { + comment.loc = loc; + } + array.push(comment); + }; + } + function pushToken(context, array) { + return function (token, start, end, loc) { + const tokens = { + token + }; + if (context & 2) { + tokens.start = start; + tokens.end = end; + tokens.range = [start, end]; + } + if (context & 4) { + tokens.loc = loc; + } + array.push(tokens); + }; + } + function isValidIdentifier(context, t) { + if (context & (1024 | 2097152)) { + if (context & 2048 && t === 209008) + return false; + if (context & 2097152 && t === 241773) + return false; + return (t & 143360) === 143360 || (t & 12288) === 12288; + } + return ((t & 143360) === 143360 || + (t & 12288) === 12288 || + (t & 36864) === 36864); + } + function classifyIdentifier(parser, context, t, isArrow) { + if ((t & 537079808) === 537079808) { + if (context & 1024) + report(parser, 115); + if (isArrow) + parser.flags |= 512; + } + if (!isValidIdentifier(context, t)) + report(parser, 0); + } + + function create(source, sourceFile, onComment, onToken) { + return { + source, + flags: 0, + index: 0, + line: 1, + column: 0, + startPos: 0, + end: source.length, + tokenPos: 0, + startColumn: 0, + colPos: 0, + linePos: 1, + startLine: 1, + sourceFile, + tokenValue: '', + token: 1048576, + tokenRaw: '', + tokenRegExp: void 0, + currentChar: source.charCodeAt(0), + exportedNames: [], + exportedBindings: [], + assignable: 1, + destructible: 0, + onComment, + onToken, + leadingDecorators: [] + }; + } + function parseSource(source, options, context) { + let sourceFile = ''; + let onComment; + let onToken; + if (options != null) { + if (options.module) + context |= 2048 | 1024; + if (options.next) + context |= 1; + if (options.loc) + context |= 4; + if (options.ranges) + context |= 2; + if (options.uniqueKeyInPattern) + context |= -2147483648; + if (options.lexical) + context |= 64; + if (options.webcompat) + context |= 256; + if (options.directives) + context |= 8 | 512; + if (options.globalReturn) + context |= 32; + if (options.raw) + context |= 512; + if (options.preserveParens) + context |= 128; + if (options.impliedStrict) + context |= 1024; + if (options.jsx) + context |= 16; + if (options.identifierPattern) + context |= 268435456; + if (options.specDeviation) + context |= 536870912; + if (options.source) + sourceFile = options.source; + if (options.onComment != null) { + onComment = Array.isArray(options.onComment) ? pushComment(context, options.onComment) : options.onComment; + } + if (options.onToken != null) { + onToken = Array.isArray(options.onToken) ? pushToken(context, options.onToken) : options.onToken; + } + } + const parser = create(source, sourceFile, onComment, onToken); + if (context & 1) + skipHashBang(parser); + const scope = context & 64 ? createScope() : void 0; + let body = []; + let sourceType = 'script'; + if (context & 2048) { + sourceType = 'module'; + body = parseModuleItemList(parser, context | 8192, scope); + if (scope) { + for (const key in parser.exportedBindings) { + if (key[0] === '#' && !scope[key]) + report(parser, 142, key.slice(1)); + } + } + } + else { + body = parseStatementList(parser, context | 8192, scope); + } + const node = { + type: 'Program', + sourceType, + body + }; + if (context & 2) { + node.start = 0; + node.end = source.length; + node.range = [0, source.length]; + } + if (context & 4) { + node.loc = { + start: { line: 1, column: 0 }, + end: { line: parser.line, column: parser.column } + }; + if (parser.sourceFile) + node.loc.source = sourceFile; + } + return node; + } + function parseStatementList(parser, context, scope) { + nextToken(parser, context | 32768 | 1073741824); + const statements = []; + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, linePos, colPos, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) + context |= 1024; + statements.push(parseDirective(parser, context, expr, token, tokenPos, linePos, colPos)); + } + while (parser.token !== 1048576) { + statements.push(parseStatementListItem(parser, context, scope, 4, {})); + } + return statements; + } + function parseModuleItemList(parser, context, scope) { + nextToken(parser, context | 32768); + const statements = []; + if (context & 8) { + while (parser.token === 134283267) { + const { tokenPos, linePos, colPos, token } = parser; + statements.push(parseDirective(parser, context, parseLiteral(parser, context), token, tokenPos, linePos, colPos)); + } + } + while (parser.token !== 1048576) { + statements.push(parseModuleItem(parser, context, scope)); + } + return statements; + } + function parseModuleItem(parser, context, scope) { + parser.leadingDecorators = parseDecorators(parser, context); + let moduleItem; + switch (parser.token) { + case 20566: + moduleItem = parseExportDeclaration(parser, context, scope); + break; + case 86108: + moduleItem = parseImportDeclaration(parser, context, scope); + break; + default: + moduleItem = parseStatementListItem(parser, context, scope, 4, {}); + } + if (parser.leadingDecorators.length) { + report(parser, 164); + } + return moduleItem; + } + function parseStatementListItem(parser, context, scope, origin, labels) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + switch (parser.token) { + case 86106: + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 0, start, line, column); + case 133: + case 86096: + return parseClassDeclaration(parser, context, scope, 0, start, line, column); + case 86092: + return parseLexicalDeclaration(parser, context, scope, 16, 0, start, line, column); + case 241739: + return parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column); + case 20566: + report(parser, 100, 'export'); + case 86108: + nextToken(parser, context); + switch (parser.token) { + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 100, 'import'); + } + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 1, start, line, column); + default: + return parseStatement(parser, context, scope, origin, labels, 1, start, line, column); + } + } + function parseStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + switch (parser.token) { + case 86090: + return parseVariableStatement(parser, context, scope, 0, start, line, column); + case 20574: + return parseReturnStatement(parser, context, start, line, column); + case 20571: + return parseIfStatement(parser, context, scope, labels, start, line, column); + case 20569: + return parseForStatement(parser, context, scope, labels, start, line, column); + case 20564: + return parseDoWhileStatement(parser, context, scope, labels, start, line, column); + case 20580: + return parseWhileStatement(parser, context, scope, labels, start, line, column); + case 86112: + return parseSwitchStatement(parser, context, scope, labels, start, line, column); + case 1074790417: + return parseEmptyStatement(parser, context, start, line, column); + case 2162700: + return parseBlock(parser, context, scope ? addChildScope(scope, 2) : scope, labels, start, line, column); + case 86114: + return parseThrowStatement(parser, context, start, line, column); + case 20557: + return parseBreakStatement(parser, context, labels, start, line, column); + case 20561: + return parseContinueStatement(parser, context, labels, start, line, column); + case 20579: + return parseTryStatement(parser, context, scope, labels, start, line, column); + case 20581: + return parseWithStatement(parser, context, scope, labels, start, line, column); + case 20562: + return parseDebuggerStatement(parser, context, start, line, column); + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 0, start, line, column); + case 20559: + report(parser, 156); + case 20568: + report(parser, 157); + case 86106: + report(parser, context & 1024 + ? 73 + : (context & 256) < 1 + ? 75 + : 74); + case 86096: + report(parser, 76); + default: + return parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column); + } + } + function parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { tokenValue, token } = parser; + let expr; + switch (token) { + case 241739: + expr = parseIdentifier(parser, context, 0); + if (context & 1024) + report(parser, 82); + if (parser.token === 69271571) + report(parser, 81); + break; + default: + expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + if (token & 143360 && parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, allowFuncDecl, start, line, column); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseBlock(parser, context, scope, labels, start, line, column) { + const body = []; + consume(parser, context | 32768, 2162700); + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 2, { $: labels })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'BlockStatement', + body + }); + } + function parseReturnStatement(parser, context, start, line, column) { + if ((context & 32) < 1 && context & 8192) + report(parser, 89); + nextToken(parser, context | 32768); + const argument = parser.flags & 1 || parser.token & 1048576 + ? null + : parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.column); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ReturnStatement', + argument + }); + } + function parseExpressionStatement(parser, context, expression, start, line, column) { + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); + } + function parseLabelledStatement(parser, context, scope, origin, labels, value, expr, token, allowFuncDecl, start, line, column) { + validateBindingIdentifier(parser, context, 0, token, 1); + validateAndDeclareLabel(parser, labels, value); + nextToken(parser, context | 32768); + const body = allowFuncDecl && + (context & 1024) < 1 && + context & 256 && + parser.token === 86106 + ? parseFunctionDeclaration(parser, context, addChildScope(scope, 2), origin, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseStatement(parser, context, scope, origin, labels, allowFuncDecl, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'LabeledStatement', + label: expr, + body + }); + } + function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, 1, start, line, column); + } + const asyncNewLine = parser.flags & 1; + if (!asyncNewLine) { + if (parser.token === 86106) { + if (!allowFuncDecl) + report(parser, 119); + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 1, start, line, column); + } + if ((parser.token & 143360) === 143360) { + expr = parseAsyncArrowAfterIdent(parser, context, 1, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + } + if (parser.token === 67174411) { + expr = parseAsyncArrowOrCallExpression(parser, context, expr, 1, 1, 0, asyncNewLine, start, line, column); + } + else { + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + expr = parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, 0, 1, 0, start, line, column); + } + parser.assignable = 1; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + parser.assignable = 1; + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseDirective(parser, context, expression, token, start, line, column) { + if (token !== 1074790417) { + parser.assignable = 2; + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + if (parser.token !== 1074790417) { + expression = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expression); + if (parser.token === 18) { + expression = parseSequenceExpression(parser, context, 0, start, line, column, expression); + } + } + matchOrInsertSemicolon(parser, context | 32768); + } + return context & 8 && expression.type === 'Literal' && typeof expression.value === 'string' + ? finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression, + directive: expression.raw.slice(1, -1) + }) + : finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); + } + function parseEmptyStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'EmptyStatement' + }); + } + function parseThrowStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + if (parser.flags & 1) + report(parser, 87); + const argument = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ThrowStatement', + argument + }); + } + function parseIfStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + parser.assignable = 1; + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.colPos); + consume(parser, context | 32768, 16); + const consequent = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + let alternate = null; + if (parser.token === 20565) { + nextToken(parser, context | 32768); + alternate = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + } + return finishNode(parser, context, start, line, column, { + type: 'IfStatement', + test, + consequent, + alternate + }); + } + function parseConsequentOrAlternative(parser, context, scope, labels, start, line, column) { + return context & 1024 || + (context & 256) < 1 || + parser.token !== 86106 + ? parseStatement(parser, context, scope, 0, { $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseFunctionDeclaration(parser, context, addChildScope(scope, 2), 0, 0, 0, 0, start, line, column); + } + function parseSwitchStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const discriminant = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + consume(parser, context, 2162700); + const cases = []; + let seenDefault = 0; + if (scope) + scope = addChildScope(scope, 8); + while (parser.token !== 1074790415) { + const { tokenPos, linePos, colPos } = parser; + let test = null; + const consequent = []; + if (consumeOpt(parser, context | 32768, 20558)) { + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + consume(parser, context | 32768, 20563); + if (seenDefault) + report(parser, 86); + seenDefault = 1; + } + consume(parser, context | 32768, 21); + while (parser.token !== 20558 && + parser.token !== 1074790415 && + parser.token !== 20563) { + consequent.push(parseStatementListItem(parser, context | 4096, scope, 2, { + $: labels + })); + } + cases.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'SwitchCase', + test, + consequent + })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'SwitchStatement', + discriminant, + cases + }); + } + function parseWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'WhileStatement', + test, + body + }); + } + function parseIterationStatementBody(parser, context, scope, labels) { + return parseStatement(parser, ((context | 134217728) ^ 134217728) | 131072, scope, 0, { loop: 1, $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + function parseContinueStatement(parser, context, labels, start, line, column) { + if ((context & 131072) < 1) + report(parser, 65); + nextToken(parser, context); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 1)) + report(parser, 134, tokenValue); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ContinueStatement', + label + }); + } + function parseBreakStatement(parser, context, labels, start, line, column) { + nextToken(parser, context | 32768); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 0)) + report(parser, 134, tokenValue); + } + else if ((context & (4096 | 131072)) < 1) { + report(parser, 66); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'BreakStatement', + label + }); + } + function parseWithStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + if (context & 1024) + report(parser, 88); + consume(parser, context | 32768, 67174411); + const object = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseStatement(parser, context, scope, 2, labels, 0, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'WithStatement', + object, + body + }); + } + function parseDebuggerStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'DebuggerStatement' + }); + } + function parseTryStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const firstScope = scope ? addChildScope(scope, 32) : void 0; + const block = parseBlock(parser, context, firstScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + const { tokenPos, linePos, colPos } = parser; + const handler = consumeOpt(parser, context | 32768, 20559) + ? parseCatchBlock(parser, context, scope, labels, tokenPos, linePos, colPos) + : null; + let finalizer = null; + if (parser.token === 20568) { + nextToken(parser, context | 32768); + const finalizerScope = firstScope ? addChildScope(scope, 4) : void 0; + finalizer = parseBlock(parser, context, finalizerScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + } + if (!handler && !finalizer) { + report(parser, 85); + } + return finishNode(parser, context, start, line, column, { + type: 'TryStatement', + block, + handler, + finalizer + }); + } + function parseCatchBlock(parser, context, scope, labels, start, line, column) { + let param = null; + let additionalScope = scope; + if (consumeOpt(parser, context, 67174411)) { + if (scope) + scope = addChildScope(scope, 4); + param = parseBindingPattern(parser, context, scope, (parser.token & 2097152) === 2097152 + ? 256 + : 512, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 18) { + report(parser, 83); + } + else if (parser.token === 1077936157) { + report(parser, 84); + } + consume(parser, context | 32768, 16); + if (scope) + additionalScope = addChildScope(scope, 64); + } + const body = parseBlock(parser, context, additionalScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'CatchClause', + param, + body + }); + } + function parseDoWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const body = parseIterationStatementBody(parser, context, scope, labels); + consume(parser, context, 20580); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + consumeOpt(parser, context, 1074790417); + return finishNode(parser, context, start, line, column, { + type: 'DoWhileStatement', + body, + test + }); + } + function parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + const declarations = parseVariableDeclarationList(parser, context, scope, 8, 0); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'let', + declarations + }); + } + parser.assignable = 1; + if (context & 1024) + report(parser, 82); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, {}, tokenValue, expr, token, 0, start, line, column); + } + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + expr = parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + else { + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + } + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseLexicalDeclaration(parser, context, scope, kind, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, kind, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: kind & 8 ? 'let' : 'const', + declarations + }); + } + function parseVariableStatement(parser, context, scope, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, 4, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'var', + declarations + }); + } + function parseVariableDeclarationList(parser, context, scope, kind, origin) { + let bindingCount = 1; + const list = [parseVariableDeclaration(parser, context, scope, kind, origin)]; + while (consumeOpt(parser, context, 18)) { + bindingCount++; + list.push(parseVariableDeclaration(parser, context, scope, kind, origin)); + } + if (bindingCount > 1 && origin & 32 && parser.token & 262144) { + report(parser, 58, KeywordDescTable[parser.token & 255]); + } + return list; + } + function parseVariableDeclaration(parser, context, scope, kind, origin) { + const { token, tokenPos, linePos, colPos } = parser; + let init = null; + const id = parseBindingPattern(parser, context, scope, kind, origin, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + init = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (origin & 32 || (token & 2097152) < 1) { + if (parser.token === 274549 || + (parser.token === 8738868 && + (token & 2097152 || (kind & 4) < 1 || context & 1024))) { + reportMessageAt(tokenPos, parser.line, parser.index - 3, 57, parser.token === 274549 ? 'of' : 'in'); + } + } + } + else if ((kind & 16 || (token & 2097152) > 0) && + (parser.token & 262144) !== 262144) { + report(parser, 56, kind & 16 ? 'const' : 'destructuring'); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclarator', + id, + init + }); + } + function parseForStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + const forAwait = (context & 4194304) > 0 && consumeOpt(parser, context, 209008); + consume(parser, context | 32768, 67174411); + if (scope) + scope = addChildScope(scope, 1); + let test = null; + let update = null; + let destructible = 0; + let init = null; + let isVarDecl = parser.token === 86090 || parser.token === 241739 || parser.token === 86092; + let right; + const { token, tokenPos, linePos, colPos } = parser; + if (isVarDecl) { + if (token === 241739) { + init = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + if (parser.token === 8738868) { + if (context & 1024) + report(parser, 64); + } + else { + init = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclaration', + kind: 'let', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 8, 32) + }); + } + parser.assignable = 1; + } + else if (context & 1024) { + report(parser, 64); + } + else { + isVarDecl = false; + parser.assignable = 1; + init = parseMemberOrUpdateExpression(parser, context, init, 0, 0, tokenPos, linePos, colPos); + if (parser.token === 274549) + report(parser, 111); + } + } + else { + nextToken(parser, context); + init = finishNode(parser, context, tokenPos, linePos, colPos, token === 86090 + ? { + type: 'VariableDeclaration', + kind: 'var', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 4, 32) + } + : { + type: 'VariableDeclaration', + kind: 'const', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 16, 32) + }); + parser.assignable = 1; + } + } + else if (token === 1074790417) { + if (forAwait) + report(parser, 79); + } + else if ((token & 2097152) === 2097152) { + init = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos); + destructible = parser.destructible; + if (context & 256 && destructible & 64) { + report(parser, 60); + } + parser.assignable = + destructible & 16 ? 2 : 1; + init = parseMemberOrUpdateExpression(parser, context | 134217728, init, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + init = parseLeftHandSideExpression(parser, context | 134217728, 1, 0, 1, tokenPos, linePos, colPos); + } + if ((parser.token & 262144) === 262144) { + if (parser.token === 274549) { + if (parser.assignable & 2) + report(parser, 77, forAwait ? 'await' : 'of'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + right = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForOfStatement', + left: init, + right, + body, + await: forAwait + }); + } + if (parser.assignable & 2) + report(parser, 77, 'in'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + if (forAwait) + report(parser, 79); + right = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForInStatement', + body, + left: init, + right + }); + } + if (forAwait) + report(parser, 79); + if (!isVarDecl) { + if (destructible & 8 && parser.token !== 1077936157) { + report(parser, 77, 'loop'); + } + init = parseAssignmentExpression(parser, context | 134217728, 0, 0, tokenPos, linePos, colPos, init); + } + if (parser.token === 18) + init = parseSequenceExpression(parser, context, 0, parser.tokenPos, parser.linePos, parser.colPos, init); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 1074790417) + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 16) + update = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForStatement', + init, + test, + update, + body + }); + } + function parseRestrictedIdentifier(parser, context, scope) { + if (!isValidIdentifier(context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) + report(parser, 115); + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 8, 0); + return parseIdentifier(parser, context, 0); + } + function parseImportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context); + let source = null; + const { tokenPos, linePos, colPos } = parser; + let specifiers = []; + if (parser.token === 134283267) { + source = parseLiteral(parser, context); + } + else { + if (parser.token & 143360) { + const local = parseRestrictedIdentifier(parser, context, scope); + specifiers = [ + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportDefaultSpecifier', + local + }) + ]; + if (consumeOpt(parser, context, 18)) { + switch (parser.token) { + case 8457014: + specifiers.push(parseImportNamespaceSpecifier(parser, context, scope)); + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + default: + report(parser, 104); + } + } + } + else { + switch (parser.token) { + case 8457014: + specifiers = [parseImportNamespaceSpecifier(parser, context, scope)]; + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + source = parseModuleSpecifier(parser, context); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ImportDeclaration', + specifiers, + source + }); + } + function parseImportNamespaceSpecifier(parser, context, scope) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + consume(parser, context, 77934); + if ((parser.token & 134217728) === 134217728) { + reportMessageAt(tokenPos, parser.line, parser.index, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportNamespaceSpecifier', + local: parseRestrictedIdentifier(parser, context, scope) + }); + } + function parseModuleSpecifier(parser, context) { + consumeOpt(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Import'); + return parseLiteral(parser, context); + } + function parseImportSpecifierOrNamedImports(parser, context, scope, specifiers) { + nextToken(parser, context); + while (parser.token & 143360) { + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + const imported = parseIdentifier(parser, context, 0); + let local; + if (consumeOpt(parser, context, 77934)) { + if ((parser.token & 134217728) === 134217728 || parser.token === 18) { + report(parser, 103); + } + else { + validateBindingIdentifier(parser, context, 16, parser.token, 0); + } + tokenValue = parser.tokenValue; + local = parseIdentifier(parser, context, 0); + } + else { + validateBindingIdentifier(parser, context, 16, token, 0); + local = imported; + } + if (scope) + addBlockName(parser, context, scope, tokenValue, 8, 0); + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportSpecifier', + local, + imported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + return specifiers; + } + function parseImportMetaDeclaration(parser, context, start, line, column) { + let expr = parseImportMetaExpression(parser, context, finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: 'import' + }), start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseImportCallDeclaration(parser, context, start, line, column) { + let expr = parseImportExpression(parser, context, 0, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseExportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context | 32768); + const specifiers = []; + let declaration = null; + let source = null; + let key; + if (consumeOpt(parser, context | 32768, 20563)) { + switch (parser.token) { + case 86106: { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + } + case 133: + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 1, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + declaration = parseIdentifier(parser, context, 0); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 1, tokenPos, linePos, colPos); + } + else { + if (parser.token === 67174411) { + declaration = parseAsyncArrowOrCallExpression(parser, context, declaration, 1, 1, 0, flags, tokenPos, linePos, colPos); + declaration = parseMemberOrUpdateExpression(parser, context, declaration, 0, 0, tokenPos, linePos, colPos); + declaration = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, declaration); + } + else if (parser.token & 143360) { + if (scope) + scope = createArrowHeadParsingScope(parser, context, parser.tokenValue); + declaration = parseIdentifier(parser, context, 0); + declaration = parseArrowFunctionExpression(parser, context, scope, [declaration], 1, tokenPos, linePos, colPos); + } + } + } + break; + default: + declaration = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + } + if (scope) + declareUnboundVariable(parser, 'default'); + return finishNode(parser, context, start, line, column, { + type: 'ExportDefaultDeclaration', + declaration + }); + } + switch (parser.token) { + case 8457014: { + nextToken(parser, context); + let exported = null; + const isNamedDeclaration = consumeOpt(parser, context, 77934); + if (isNamedDeclaration) { + if (scope) + declareUnboundVariable(parser, parser.tokenValue); + exported = parseIdentifier(parser, context, 0); + } + consume(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExportAllDeclaration', + source, + exported + }); + } + case 2162700: { + nextToken(parser, context); + const tmpExportedNames = []; + const tmpExportedBindings = []; + while (parser.token & 143360) { + const { tokenPos, tokenValue, linePos, colPos } = parser; + const local = parseIdentifier(parser, context, 0); + let exported; + if (parser.token === 77934) { + nextToken(parser, context); + if ((parser.token & 134217728) === 134217728) { + report(parser, 103); + } + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(tokenValue); + } + exported = parseIdentifier(parser, context, 0); + } + else { + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(parser.tokenValue); + } + exported = local; + } + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ExportSpecifier', + local, + exported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + if (consumeOpt(parser, context, 12404)) { + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + } + else if (scope) { + let i = 0; + let iMax = tmpExportedNames.length; + for (; i < iMax; i++) { + declareUnboundVariable(parser, tmpExportedNames[i]); + } + i = 0; + iMax = tmpExportedBindings.length; + for (; i < iMax; i++) { + addBindingToExports(parser, tmpExportedBindings[i]); + } + } + matchOrInsertSemicolon(parser, context | 32768); + break; + } + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 2, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86106: + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 241739: + declaration = parseLexicalDeclaration(parser, context, scope, 8, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86092: + declaration = parseLexicalDeclaration(parser, context, scope, 16, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86090: + declaration = parseVariableStatement(parser, context, scope, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + if ((parser.flags & 1) < 1 && parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 1, tokenPos, linePos, colPos); + if (scope) { + key = declaration.id ? declaration.id.name : ''; + declareUnboundVariable(parser, key); + } + break; + } + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, start, line, column, { + type: 'ExportNamedDeclaration', + declaration, + specifiers, + source + }); + } + function parseExpression(parser, context, canAssign, isPattern, inGroup, start, line, column) { + let expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, isPattern, inGroup, 1, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + return parseAssignmentExpression(parser, context, inGroup, 0, start, line, column, expr); + } + function parseSequenceExpression(parser, context, inGroup, start, line, column, expr) { + const expressions = [expr]; + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + return finishNode(parser, context, start, line, column, { + type: 'SequenceExpression', + expressions + }); + } + function parseExpressions(parser, context, inGroup, canAssign, start, line, column) { + const expr = parseExpression(parser, context, canAssign, 0, inGroup, start, line, column); + return parser.token === 18 + ? parseSequenceExpression(parser, context, inGroup, start, line, column, expr) + : expr; + } + function parseAssignmentExpression(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + if ((token & 4194304) === 4194304) { + if (parser.assignable & 2) + report(parser, 24); + if ((!isPattern && token === 1077936157 && left.type === 'ArrayExpression') || + left.type === 'ObjectExpression') { + reinterpretToPattern(parser, left); + } + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + } + if ((token & 8454144) === 8454144) { + left = parseBinaryExpression(parser, context, inGroup, start, line, column, 4, token, left); + } + if (consumeOpt(parser, context | 32768, 22)) { + left = parseConditionalExpression(parser, context, left, start, line, column); + } + return left; + } + function parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + parser.assignable = 2; + return left; + } + function parseConditionalExpression(parser, context, test, start, line, column) { + const consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 21); + parser.assignable = 1; + const alternate = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ConditionalExpression', + test, + consequent, + alternate + }); + } + function parseBinaryExpression(parser, context, inGroup, start, line, column, minPrec, operator, left) { + const bit = -((context & 134217728) > 0) & 8738868; + let t; + let prec; + parser.assignable = 2; + while (parser.token & 8454144) { + t = parser.token; + prec = t & 3840; + if ((t & 524288 && operator & 268435456) || (operator & 524288 && t & 268435456)) { + report(parser, 159); + } + if (prec + ((t === 8457273) << 8) - ((bit === t) << 12) <= minPrec) + break; + nextToken(parser, context | 32768); + left = finishNode(parser, context, start, line, column, { + type: t & 524288 || t & 268435456 ? 'LogicalExpression' : 'BinaryExpression', + left, + right: parseBinaryExpression(parser, context, inGroup, parser.tokenPos, parser.linePos, parser.colPos, prec, t, parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos)), + operator: KeywordDescTable[t & 255] + }); + } + if (parser.token === 1077936157) + report(parser, 24); + return left; + } + function parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup) { + if (!isLHS) + report(parser, 0); + const unaryOperator = parser.token; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + if (context & 1024 && unaryOperator === 16863278) { + if (arg.type === 'Identifier') { + report(parser, 117); + } + else if (isPropertyWithPrivateFieldKey(arg)) { + report(parser, 123); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UnaryExpression', + operator: KeywordDescTable[unaryOperator & 255], + argument: arg, + prefix: true + }); + } + function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column) { + const { token } = parser; + const expr = parseIdentifier(parser, context, isPattern); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + return parseFunctionExpression(parser, context, 1, inGroup, start, line, column); + } + if ((parser.token & 143360) === 143360) { + if (!isLHS) + report(parser, 0); + return parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column); + } + } + if (!inNew && parser.token === 67174411) { + return parseAsyncArrowOrCallExpression(parser, context, expr, canAssign, 1, 0, flags, start, line, column); + } + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + if (inNew) + report(parser, 48); + return parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + return expr; + } + function parseYieldExpression(parser, context, inGroup, canAssign, start, line, column) { + if (inGroup) + parser.destructible |= 256; + if (context & 2097152) { + nextToken(parser, context | 32768); + if (context & 8388608) + report(parser, 30); + if (!canAssign) + report(parser, 24); + if (parser.token === 22) + report(parser, 120); + let argument = null; + let delegate = false; + if ((parser.flags & 1) < 1) { + delegate = consumeOpt(parser, context | 32768, 8457014); + if (parser.token & (12288 | 65536) || delegate) { + argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'YieldExpression', + argument, + delegate + }); + } + if (context & 1024) + report(parser, 94, 'yield'); + return parseIdentifierOrArrow(parser, context, start, line, column); + } + function parseAwaitExpression(parser, context, inNew, inGroup, start, line, column) { + if (inGroup) + parser.destructible |= 128; + if (context & 4194304 || (context & 2048 && context & 8192)) { + if (inNew) + report(parser, 0); + if (context & 8388608) { + reportMessageAt(parser.index, parser.line, parser.index, 29); + } + nextToken(parser, context | 32768); + const argument = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'AwaitExpression', + argument + }); + } + if (context & 2048) + report(parser, 95); + return parseIdentifierOrArrow(parser, context, start, line, column); + } + function parseFunctionBody(parser, context, scope, origin, firstRestricted, scopeError) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + const body = []; + const prevContext = context; + if (parser.token !== 1074790415) { + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) { + context |= 1024; + if (parser.flags & 128) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 63); + } + if (parser.flags & 64) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 8); + } + } + body.push(parseDirective(parser, context, expr, token, tokenPos, parser.linePos, parser.colPos)); + } + if (context & 1024) { + if (firstRestricted) { + if ((firstRestricted & 537079808) === 537079808) { + report(parser, 115); + } + if ((firstRestricted & 36864) === 36864) { + report(parser, 38); + } + } + if (parser.flags & 512) + report(parser, 115); + if (parser.flags & 256) + report(parser, 114); + } + if (context & 64 && + scope && + scopeError !== void 0 && + (prevContext & 1024) < 1 && + (context & 8192) < 1) { + reportScopeError(scopeError); + } + } + parser.flags = + (parser.flags | 512 | 256 | 64) ^ + (512 | 256 | 64); + parser.destructible = (parser.destructible | 256) ^ 256; + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 4, {})); + } + consume(parser, origin & (16 | 8) ? context | 32768 : context, 1074790415); + parser.flags &= ~(128 | 64); + if (parser.token === 1077936157) + report(parser, 24); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'BlockStatement', + body + }); + } + function parseSuperExpression(parser, context, start, line, column) { + nextToken(parser, context); + switch (parser.token) { + case 67108991: + report(parser, 161); + case 67174411: { + if ((context & 524288) < 1) + report(parser, 26); + if (context & 16384) + report(parser, 143); + parser.assignable = 2; + break; + } + case 69271571: + case 67108877: { + if ((context & 262144) < 1) + report(parser, 27); + if (context & 16384) + report(parser, 143); + parser.assignable = 1; + break; + } + default: + report(parser, 28, 'super'); + } + return finishNode(parser, context, start, line, column, { type: 'Super' }); + } + function parseLeftHandSideExpression(parser, context, canAssign, inGroup, isLHS, start, line, column) { + const expression = parsePrimaryExpression(parser, context, 2, 0, canAssign, 0, inGroup, isLHS, start, line, column); + return parseMemberOrUpdateExpression(parser, context, expression, inGroup, 0, start, line, column); + } + function parseUpdateExpression(parser, context, expr, start, line, column) { + if (parser.assignable & 2) + report(parser, 52); + const { token } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: expr, + operator: KeywordDescTable[token & 255], + prefix: false + }); + } + function parseMemberOrUpdateExpression(parser, context, expr, inGroup, inChain, start, line, column) { + if ((parser.token & 33619968) === 33619968 && (parser.flags & 1) < 1) { + expr = parseUpdateExpression(parser, context, expr, start, line, column); + } + else if ((parser.token & 67108864) === 67108864) { + context = (context | 134217728 | 8192) ^ (134217728 | 8192); + switch (parser.token) { + case 67108877: { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }); + break; + } + case 69271571: { + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67174411: { + if ((parser.flags & 1024) === 1024) { + parser.flags = (parser.flags | 1024) ^ 1024; + return expr; + } + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + const args = parseArguments(parser, context, inGroup); + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67108991: { + nextToken(parser, context); + parser.flags |= 2048; + parser.assignable = 2; + expr = parseOptionalChain(parser, context, expr, start, line, column); + break; + } + default: + if ((parser.flags & 2048) === 2048) { + report(parser, 160); + } + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 1, start, line, column); + } + if (inChain === 0 && (parser.flags & 2048) === 2048) { + parser.flags = (parser.flags | 2048) ^ 2048; + expr = finishNode(parser, context, start, line, column, { + type: 'ChainExpression', + expression: expr + }); + } + return expr; + } + function parseOptionalChain(parser, context, expr, start, line, column) { + let restoreHasOptionalChaining = false; + let node; + if (parser.token === 69271571 || parser.token === 67174411) { + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + } + if (parser.token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, 0, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + optional: true, + property + }); + } + else if (parser.token === 67174411) { + const args = parseArguments(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args, + optional: true + }); + } + else { + if ((parser.token & (143360 | 4096)) < 1) + report(parser, 154); + const property = parseIdentifier(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + optional: true, + property + }); + } + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + return node; + } + function parsePropertyOrPrivatePropertyName(parser, context) { + if ((parser.token & (143360 | 4096)) < 1 && parser.token !== 131) { + report(parser, 154); + } + return context & 1 && parser.token === 131 + ? parsePrivateIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + : parseIdentifier(parser, context, 0); + } + function parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column) { + if (inNew) + report(parser, 53); + if (!isLHS) + report(parser, 0); + const { token } = parser; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.assignable & 2) { + report(parser, 52); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: arg, + operator: KeywordDescTable[token & 255], + prefix: true + }); + } + function parsePrimaryExpression(parser, context, kind, inNew, canAssign, isPattern, inGroup, isLHS, start, line, column) { + if ((parser.token & 143360) === 143360) { + switch (parser.token) { + case 209008: + return parseAwaitExpression(parser, context, inNew, inGroup, start, line, column); + case 241773: + return parseYieldExpression(parser, context, inGroup, canAssign, start, line, column); + case 209007: + return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column); + } + const { token, tokenValue } = parser; + const expr = parseIdentifier(parser, context | 65536, isPattern); + if (parser.token === 10) { + if (!isLHS) + report(parser, 0); + classifyIdentifier(parser, context, token, 1); + return parseArrowFromIdentifier(parser, context, tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + if (context & 16384 && token === 537079928) + report(parser, 126); + if (token === 241739) { + if (context & 1024) + report(parser, 109); + if (kind & (8 | 16)) + report(parser, 97); + } + parser.assignable = + context & 1024 && (token & 537079808) === 537079808 + ? 2 + : 1; + return expr; + } + if ((parser.token & 134217728) === 134217728) { + return parseLiteral(parser, context); + } + switch (parser.token) { + case 33619995: + case 33619996: + return parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column); + case 16863278: + case 16842800: + case 16842801: + case 25233970: + case 25233971: + case 16863277: + case 16863279: + return parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup); + case 86106: + return parseFunctionExpression(parser, context, 0, inGroup, start, line, column); + case 2162700: + return parseObjectLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 69271571: + return parseArrayLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 67174411: + return parseParenthesizedExpression(parser, context, canAssign, 1, 0, start, line, column); + case 86021: + case 86022: + case 86023: + return parseNullOrTrueOrFalseLiteral(parser, context, start, line, column); + case 86113: + return parseThisExpression(parser, context); + case 65540: + return parseRegExpLiteral(parser, context, start, line, column); + case 133: + case 86096: + return parseClassExpression(parser, context, inGroup, start, line, column); + case 86111: + return parseSuperExpression(parser, context, start, line, column); + case 67174409: + return parseTemplateLiteral(parser, context, start, line, column); + case 67174408: + return parseTemplate(parser, context); + case 86109: + return parseNewExpression(parser, context, inGroup, start, line, column); + case 134283389: + return parseBigIntLiteral(parser, context, start, line, column); + case 131: + return parsePrivateIdentifier(parser, context, start, line, column); + case 86108: + return parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column); + case 8456258: + if (context & 16) + return parseJSXRootElementOrFragment(parser, context, 1, start, line, column); + default: + if (isValidIdentifier(context, parser.token)) + return parseIdentifierOrArrow(parser, context, start, line, column); + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + function parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column) { + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 67108877) { + return parseImportMetaExpression(parser, context, expr, start, line, column); + } + if (inNew) + report(parser, 137); + expr = parseImportExpression(parser, context, inGroup, start, line, column); + parser.assignable = 2; + return parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + } + function parseImportMetaExpression(parser, context, meta, start, line, column) { + if ((context & 2048) === 0) + report(parser, 163); + nextToken(parser, context); + if (parser.token !== 143495 && parser.tokenValue !== 'meta') + report(parser, 28, KeywordDescTable[parser.token & 255]); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property: parseIdentifier(parser, context, 0) + }); + } + function parseImportExpression(parser, context, inGroup, start, line, column) { + consume(parser, context | 32768, 67174411); + if (parser.token === 14) + report(parser, 138); + const source = parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + return finishNode(parser, context, start, line, column, { + type: 'ImportExpression', + source + }); + } + function parseBigIntLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1), + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1) + }); + } + function parseTemplateLiteral(parser, context, start, line, column) { + parser.assignable = 2; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + const quasis = [parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)]; + return finishNode(parser, context, start, line, column, { + type: 'TemplateLiteral', + expressions: [], + quasis + }); + } + function parseTemplate(parser, context) { + context = (context | 134217728) ^ 134217728; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + const quasis = [ + parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false) + ]; + const expressions = [parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)]; + if (parser.token !== 1074790415) + report(parser, 80); + while ((parser.token = scanTemplateTail(parser, context)) !== 67174409) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false)); + expressions.push(parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + if (parser.token !== 1074790415) + report(parser, 80); + } + { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'TemplateLiteral', + expressions, + quasis + }); + } + function parseTemplateElement(parser, context, cooked, raw, start, line, col, tail) { + const node = finishNode(parser, context, start, line, col, { + type: 'TemplateElement', + value: { + cooked, + raw + }, + tail + }); + const tailSize = tail ? 1 : 2; + if (context & 2) { + node.start += 1; + node.range[0] += 1; + node.end -= tailSize; + node.range[1] -= tailSize; + } + if (context & 4) { + node.loc.start.column += 1; + node.loc.end.column -= tailSize; + } + return node; + } + function parseSpreadElement(parser, context, start, line, column) { + context = (context | 134217728) ^ 134217728; + consume(parser, context | 32768, 14); + const argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 1; + return finishNode(parser, context, start, line, column, { + type: 'SpreadElement', + argument + }); + } + function parseArguments(parser, context, inGroup) { + nextToken(parser, context | 32768); + const args = []; + if (parser.token === 16) { + nextToken(parser, context); + return args; + } + while (parser.token !== 16) { + if (parser.token === 14) { + args.push(parseSpreadElement(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + else { + args.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + if (parser.token !== 18) + break; + nextToken(parser, context | 32768); + if (parser.token === 16) + break; + } + consume(parser, context, 16); + return args; + } + function parseIdentifier(parser, context, isPattern) { + const { tokenValue, tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + return finishNode(parser, context, tokenPos, linePos, colPos, context & 268435456 + ? { + type: 'Identifier', + name: tokenValue, + pattern: isPattern === 1 + } + : { + type: 'Identifier', + name: tokenValue + }); + } + function parseLiteral(parser, context) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + if (parser.token === 134283389) { + return parseBigIntLiteral(parser, context, tokenPos, linePos, colPos); + } + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, context & 512 + ? { + type: 'Literal', + value: tokenValue, + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue + }); + } + function parseNullOrTrueOrFalseLiteral(parser, context, start, line, column) { + const raw = KeywordDescTable[parser.token & 255]; + const value = parser.token === 86023 ? null : raw === 'true'; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value, + raw + } + : { + type: 'Literal', + value + }); + } + function parseThisExpression(parser, context) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ThisExpression' + }); + } + function parseFunctionDeclaration(parser, context, scope, origin, allowGen, flags, isAsync, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = allowGen ? optionalBit(parser, context, 8457014) : 0; + let id = null; + let firstRestricted; + let functionScope = scope ? createScope() : void 0; + if (parser.token === 67174411) { + if ((flags & 1) < 1) + report(parser, 37, 'Function'); + } + else { + const kind = origin & 4 && ((context & 8192) < 1 || (context & 2048) < 1) + ? 4 + : 64; + validateFunctionName(parser, context | ((context & 3072) << 11), parser.token); + if (scope) { + if (kind & 4) { + addVarName(parser, context, scope, parser.tokenValue, kind); + } + else { + addBlockName(parser, context, scope, parser.tokenValue, kind, origin); + } + functionScope = addChildScope(functionScope, 256); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, parser.tokenValue); + } + } + } + firstRestricted = parser.token; + if (parser.token & 143360) { + id = parseIdentifier(parser, context, 0); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + ((isAsync * 2 + isGenerator) << 21) | + (isGenerator ? 0 : 1073741824); + if (scope) + functionScope = addChildScope(functionScope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, functionScope, 0, 1); + const body = parseFunctionBody(parser, (context | 8192 | 4096 | 131072) ^ + (8192 | 4096 | 131072), scope ? addChildScope(functionScope, 128) : functionScope, 8, firstRestricted, scope ? functionScope.scopeError : void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionDeclaration', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); + } + function parseFunctionExpression(parser, context, isAsync, inGroup, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = optionalBit(parser, context, 8457014); + const generatorAndAsyncFlags = (isAsync * 2 + isGenerator) << 21; + let id = null; + let firstRestricted; + let scope = context & 64 ? createScope() : void 0; + if ((parser.token & (143360 | 4096 | 36864)) > 0) { + validateFunctionName(parser, ((context | 0x1ec0000) ^ 0x1ec0000) | generatorAndAsyncFlags, parser.token); + if (scope) + scope = addChildScope(scope, 256); + firstRestricted = parser.token; + id = parseIdentifier(parser, context, 0); + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + generatorAndAsyncFlags | + (isGenerator ? 0 : 1073741824); + if (scope) + scope = addChildScope(scope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, scope, inGroup, 1); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192 | 4096 | 131072 | 16384), scope ? addChildScope(scope, 128) : scope, 0, firstRestricted, void 0); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); + } + function parseArrayLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseArrayExpressionOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; + } + function parseArrayExpressionOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context | 32768); + const elements = []; + let destructible = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 20) { + if (consumeOpt(parser, context | 32768, 18)) { + elements.push(null); + } + else { + let left; + const { token, tokenPos, linePos, colPos, tokenValue } = parser; + if (token & 143360) { + left = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + if (parser.assignable & 2) + report(parser, 24); + nextToken(parser, context | 32768); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + operator: '=', + left, + right + }); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else { + destructible |= + kind & 1 + ? 32 + : (kind & 2) < 1 + ? 16 + : 0; + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + if (parser.token !== 1077936157) + destructible |= 16; + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token & 2097152) { + left = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + parser.assignable = + parser.destructible & 16 + ? 2 + : 1; + if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 20, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos); + destructible |= parser.destructible; + if (parser.token !== 18 && parser.token !== 20) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + left = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + if ((kind & (2 | 1)) < 1 && token === 67174411) + destructible |= 16; + } + else if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === 67174411) { + destructible |= + parser.assignable & 1 && kind & (2 | 1) + ? 32 + : 16; + } + } + elements.push(left); + if (consumeOpt(parser, context | 32768, 18)) { + if (parser.token === 20) + break; + } + else + break; + } + } + consume(parser, context, 20); + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ArrayPattern' : 'ArrayExpression', + elements + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; + } + function parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node) { + if (parser.token !== 1077936157) + report(parser, 24); + nextToken(parser, context | 32768); + if (destructible & 16) + report(parser, 24); + if (!isPattern) + reinterpretToPattern(parser, node); + const { tokenPos, linePos, colPos } = parser; + const right = parseExpression(parser, context, 1, 1, inGroup, tokenPos, linePos, colPos); + parser.destructible = + ((destructible | 64 | 8) ^ + (8 | 64)) | + (parser.destructible & 128 ? 128 : 0) | + (parser.destructible & 256 ? 256 : 0); + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left: node, + right + } + : { + type: 'AssignmentExpression', + left: node, + operator: '=', + right + }); + } + function parseSpreadOrRestElement(parser, context, scope, closingToken, kind, origin, isAsync, inGroup, isPattern, start, line, column) { + nextToken(parser, context | 32768); + let argument = null; + let destructible = 0; + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + if (token & (4096 | 143360)) { + parser.assignable = 1; + argument = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + token = parser.token; + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== closingToken) { + if (parser.assignable & 2 && parser.token === 1077936157) + report(parser, 68); + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === closingToken || token === 18) { + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + else { + destructible |= 32; + } + destructible |= parser.destructible & 128 ? 128 : 0; + } + else if (token === closingToken) { + report(parser, 39); + } + else if (token & 2097152) { + argument = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + token = parser.token; + if (token !== 1077936157 && token !== closingToken && token !== 18) { + if (parser.destructible & 8) + report(parser, 68); + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + destructible |= parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + else { + if ((parser.token & 8454144) === 8454144) { + argument = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, argument); + } + if (consumeOpt(parser, context | 32768, 22)) { + argument = parseConditionalExpression(parser, context, argument, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + else { + destructible |= + closingToken === 1074790415 && token !== 1077936157 + ? 16 + : parser.destructible; + } + } + else { + destructible |= 32; + argument = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + const { token, tokenPos, linePos, colPos } = parser; + if (token === 1077936157 && token !== closingToken && token !== 18) { + if (parser.assignable & 2) + report(parser, 24); + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + destructible |= 16; + } + else { + if (token === 18) { + destructible |= 16; + } + else if (token !== closingToken) { + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + destructible |= + parser.assignable & 1 ? 32 : 16; + } + parser.destructible = destructible; + if (parser.token !== closingToken && parser.token !== 18) + report(parser, 155); + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + if (parser.token !== closingToken) { + if (kind & 1) + destructible |= isAsync ? 16 : 32; + if (consumeOpt(parser, context | 32768, 1077936157)) { + if (destructible & 16) + report(parser, 24); + reinterpretToPattern(parser, argument); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + argument = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left: argument, + right + } + : { + type: 'AssignmentExpression', + left: argument, + operator: '=', + right + }); + destructible = 16; + } + else { + destructible |= 16; + } + } + parser.destructible = destructible; + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + function parseMethodDefinition(parser, context, kind, inGroup, start, line, column) { + const modifierFlags = (kind & 64) < 1 ? 31981568 : 14680064; + context = + ((context | modifierFlags) ^ modifierFlags) | + ((kind & 88) << 18) | + 100925440; + let scope = context & 64 ? addChildScope(createScope(), 512) : void 0; + const params = parseMethodFormals(parser, context | 8388608, scope, kind, 1, inGroup); + if (scope) + scope = addChildScope(scope, 128); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192), scope, 0, void 0, void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + params, + body, + async: (kind & 16) > 0, + generator: (kind & 8) > 0, + id: null + }); + } + function parseObjectLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseObjectLiteralOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; + } + function parseObjectLiteralOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context); + const properties = []; + let destructible = 0; + let prototypeCount = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 1074790415) { + const { token, tokenValue, linePos, colPos, tokenPos } = parser; + if (token === 14) { + properties.push(parseSpreadOrRestElement(parser, context, scope, 1074790415, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos)); + } + else { + let state = 0; + let key = null; + let value; + const t = parser.token; + if (parser.token & (143360 | 4096) || parser.token === 121) { + key = parseIdentifier(parser, context, 0); + if (parser.token === 18 || parser.token === 1074790415 || parser.token === 1077936157) { + state |= 4; + if (context & 1024 && (token & 537079808) === 537079808) { + destructible |= 16; + } + else { + validateBindingIdentifier(parser, context, kind, token, 0); + } + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + if (consumeOpt(parser, context | 32768, 1077936157)) { + destructible |= 8; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + value = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: context & -2147483648 ? Object.assign({}, key) : key, + right + }); + } + else { + destructible |= + (token === 209008 ? 128 : 0) | + (token === 121 ? 16 : 0); + value = context & -2147483648 ? Object.assign({}, key) : key; + } + } + else if (consumeOpt(parser, context | 32768, 21)) { + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + const tokenAfterColon = parser.token; + const valueAfterColon = parser.tokenValue; + destructible |= t === 121 ? 16 : 0; + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + destructible |= parser.destructible & 128 ? 128 : 0; + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if ((parser.token & 4194304) === 4194304) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token !== 1077936157) { + destructible |= 32; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 69271571) { + destructible |= 16; + if (token === 209007) + state |= 16; + state |= + (token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1) | 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token & (143360 | 4096)) { + destructible |= 16; + if (token === 121) + report(parser, 92); + if (token === 209007) { + if (parser.flags & 1) + report(parser, 128); + state |= 16; + } + key = parseIdentifier(parser, context, 0); + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 67174411) { + destructible |= 16; + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 8457014) { + destructible |= 16; + if (token === 12402 || token === 12403) { + report(parser, 40); + } + else if (token === 143483) { + report(parser, 92); + } + nextToken(parser, context); + state |= + 8 | 1 | (token === 209007 ? 16 : 0); + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + state |= 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if ((parser.token & 134217728) === 134217728) { + if (token === 209007) + state |= 16; + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + destructible |= 16; + key = parseLiteral(parser, context); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 129); + } + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + if (parser.token === 21) { + consume(parser, context | 32768, 21); + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token, tokenValue: valueAfterColon } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if (parser.token === 1077936157) { + if (parser.assignable & 2) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if ((parser.destructible & 8) !== 8) { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible = parser.assignable | 16; + } + else { + report(parser, 130); + } + } + else if (parser.token === 69271571) { + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.destructible & 256 ? 256 : 0; + state |= 2; + if (parser.token === 21) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos, tokenValue, token: tokenAfterColon } = parser; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if ((parser.token & 4194304) === 4194304) { + destructible |= + parser.assignable & 2 + ? 16 + : token === 1077936157 + ? 0 + : 32; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (destructible & 8) { + report(parser, 59); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = + parser.assignable & 2 ? destructible | 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, linePos, colPos); + destructible = 16; + } + else { + report(parser, 41); + } + } + else if (token === 8457014) { + consume(parser, context | 32768, 8457014); + state |= 8; + if (parser.token & 143360) { + const { token, line, index } = parser; + key = parseIdentifier(parser, context, 0); + state |= 1; + if (parser.token === 67174411) { + destructible |= 16; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + reportMessageAt(index, line, index, token === 209007 + ? 43 + : token === 12402 || parser.token === 12403 + ? 42 + : 44, KeywordDescTable[token & 255]); + } + } + else if ((parser.token & 134217728) === 134217728) { + destructible |= 16; + key = parseLiteral(parser, context); + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + destructible |= 16; + state |= 2 | 1; + key = parseComputedPropertyName(parser, context, inGroup); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 122); + } + } + else { + report(parser, 28, KeywordDescTable[token & 255]); + } + destructible |= parser.destructible & 128 ? 128 : 0; + parser.destructible = destructible; + properties.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'Property', + key: key, + value, + kind: !(state & 768) ? 'init' : state & 512 ? 'set' : 'get', + computed: (state & 2) > 0, + method: (state & 1) > 0, + shorthand: (state & 4) > 0 + })); + } + destructible |= parser.destructible; + if (parser.token !== 18) + break; + nextToken(parser, context); + } + consume(parser, context, 1074790415); + if (prototypeCount > 1) + destructible |= 64; + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ObjectPattern' : 'ObjectExpression', + properties + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; + } + function parseMethodFormals(parser, context, scope, kind, type, inGroup) { + consume(parser, context, 67174411); + const params = []; + parser.flags = (parser.flags | 128) ^ 128; + if (parser.token === 16) { + if (kind & 512) { + report(parser, 35, 'Setter', 'one', ''); + } + nextToken(parser, context); + return params; + } + if (kind & 256) { + report(parser, 35, 'Getter', 'no', 's'); + } + if (kind & 512 && parser.token === 14) { + report(parser, 36); + } + context = (context | 134217728) ^ 134217728; + let setterArgs = 0; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left = null; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, type, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) + report(parser, 47); + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: left, + right + }); + } + setterArgs++; + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (kind & 512 && setterArgs !== 1) { + report(parser, 35, 'Setter', 'one', ''); + } + if (scope && scope.scopeError !== void 0) + reportScopeError(scope.scopeError); + if (isSimpleParameterList) + parser.flags |= 128; + consume(parser, context, 16); + return params; + } + function parseComputedPropertyName(parser, context, inGroup) { + nextToken(parser, context | 32768); + const key = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 20); + return key; + } + function parseParenthesizedExpression(parser, context, canAssign, kind, origin, start, line, column) { + parser.flags = (parser.flags | 128) ^ 128; + const { tokenPos: piStart, linePos: plStart, colPos: pcStart } = parser; + nextToken(parser, context | 32768 | 1073741824); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 0, start, line, column); + } + let destructible = 0; + parser.destructible &= ~(256 | 128); + let expr; + let expressions = []; + let isSequence = 0; + let isSimpleParameterList = 0; + const { tokenPos: iStart, linePos: lStart, colPos: cStart } = parser; + parser.assignable = 1; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 1, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808 || + (token & 36864) === 36864) { + isSimpleParameterList = 1; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if ((token & 2097152) === 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + parser.assignable = 2; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 0, 1, 0, tokenPos, linePos, colPos); + if (parser.destructible & 16) + report(parser, 71); + isSimpleParameterList = 1; + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + destructible |= 8; + break; + } + else { + destructible |= 16; + expr = parseExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (parser.token === 18) { + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + } + if (isSequence) { + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + } + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + parser.destructible = destructible; + return expr; + } + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (!consumeOpt(parser, context | 32768, 18)) + break; + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + if (parser.token === 16) { + destructible |= 8; + break; + } + } + if (isSequence) { + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + if (destructible & 16 && destructible & 8) + report(parser, 145); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 46); + if (context & (4194304 | 2048) && destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) { + report(parser, 30); + } + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, isSequence ? expressions : [expr], canAssign, 0, start, line, column); + } + else if (destructible & 8) { + report(parser, 139); + } + parser.destructible = ((parser.destructible | 256) ^ 256) | destructible; + return context & 128 + ? finishNode(parser, context, piStart, plStart, pcStart, { + type: 'ParenthesizedExpression', + expression: expr + }) + : expr; + } + function parseIdentifierOrArrow(parser, context, start, line, column) { + const { tokenValue } = parser; + const expr = parseIdentifier(parser, context, 0); + parser.assignable = 1; + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + return parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + return expr; + } + function parseArrowFromIdentifier(parser, context, value, expr, inNew, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + if (inNew) + report(parser, 48); + parser.flags &= ~128; + const scope = context & 64 ? createArrowHeadParsingScope(parser, context, value) : void 0; + return parseArrowFunctionExpression(parser, context, scope, [expr], isAsync, start, line, column); + } + function parseParenthesizedArrow(parser, context, scope, params, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + for (let i = 0; i < params.length; ++i) + reinterpretToPattern(parser, params[i]); + return parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column); + } + function parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column) { + if (parser.flags & 1) + report(parser, 45); + consume(parser, context | 32768, 10); + context = ((context | 15728640) ^ 15728640) | (isAsync << 22); + const expression = parser.token !== 2162700; + let body; + if (scope && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + if (expression) { + body = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + if (scope) + scope = addChildScope(scope, 128); + body = parseFunctionBody(parser, (context | 134221824 | 8192 | 16384) ^ + (134221824 | 8192 | 16384), scope, 16, void 0, void 0); + switch (parser.token) { + case 69271571: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + break; + case 67108877: + case 67174409: + case 22: + report(parser, 113); + case 67174411: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + parser.flags |= 1024; + break; + } + if ((parser.token & 8454144) === 8454144 && (parser.flags & 1) < 1) + report(parser, 28, KeywordDescTable[parser.token & 255]); + if ((parser.token & 33619968) === 33619968) + report(parser, 121); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ArrowFunctionExpression', + params, + body, + async: isAsync === 1, + expression + }); + } + function parseFormalParametersOrFormalList(parser, context, scope, inGroup, kind) { + consume(parser, context, 67174411); + parser.flags = (parser.flags | 128) ^ 128; + const params = []; + if (consumeOpt(parser, context, 16)) + return params; + context = (context | 134217728) ^ 134217728; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, kind, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) { + report(parser, 47); + } + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left, + right + }); + } + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (isSimpleParameterList) + parser.flags |= 128; + if (scope && (isSimpleParameterList || context & 1024) && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + consume(parser, context, 16); + return params; + } + function parseMembeExpressionNoCall(parser, context, expr, inGroup, start, line, column) { + const { token } = parser; + if (token & 67108864) { + if (token === 67108877) { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }), 0, start, line, column); + } + else if (token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }), 0, start, line, column); + } + else if (token === 67174408 || token === 67174409) { + parser.assignable = 2; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }), 0, start, line, column); + } + } + return expr; + } + function parseNewExpression(parser, context, inGroup, start, line, column) { + const id = parseIdentifier(parser, context | 32768, 0); + const { tokenPos, linePos, colPos } = parser; + if (consumeOpt(parser, context, 67108877)) { + if (context & 67108864 && parser.token === 143494) { + parser.assignable = 2; + return parseMetaProperty(parser, context, id, start, line, column); + } + report(parser, 91); + } + parser.assignable = 2; + if ((parser.token & 16842752) === 16842752) { + report(parser, 62, KeywordDescTable[parser.token & 255]); + } + const expr = parsePrimaryExpression(parser, context, 2, 1, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + context = (context | 134217728) ^ 134217728; + if (parser.token === 67108991) + report(parser, 162); + const callee = parseMembeExpressionNoCall(parser, context, expr, inGroup, tokenPos, linePos, colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'NewExpression', + callee, + arguments: parser.token === 67174411 ? parseArguments(parser, context, inGroup) : [] + }); + } + function parseMetaProperty(parser, context, meta, start, line, column) { + const property = parseIdentifier(parser, context, 0); + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property + }); + } + function parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column) { + if (parser.token === 209008) + report(parser, 29); + if (context & (1024 | 2097152) && parser.token === 241773) { + report(parser, 30); + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context, 0), 0, canAssign, 1, start, line, column); + } + function parseAsyncArrowOrCallExpression(parser, context, callee, canAssign, kind, origin, flags, start, line, column) { + nextToken(parser, context | 32768); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + if (parser.token === 10) { + if (flags & 1) + report(parser, 45); + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 1, start, line, column); + } + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: [] + }); + } + let destructible = 0; + let expr = null; + let isSimpleParameterList = 0; + parser.destructible = + (parser.destructible | 256 | 128) ^ + (256 | 128); + const params = []; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, kind, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808) { + parser.flags |= 512; + } + else if ((token & 36864) === 36864) { + parser.flags |= 256; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token & 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + expr = parseBinaryExpression(parser, context, 1, start, line, column, 4, token, expr); + } + if (consumeOpt(parser, context | 32768, 22)) { + expr = parseConditionalExpression(parser, context, expr, start, line, column); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 1, 1, 0, tokenPos, linePos, colPos); + destructible |= (parser.token === 16 ? 0 : 16) | parser.destructible; + isSimpleParameterList = 1; + } + else { + expr = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + destructible = parser.assignable; + params.push(expr); + while (consumeOpt(parser, context | 32768, 18)) { + params.push(parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos)); + } + destructible |= parser.assignable; + consume(parser, context, 16); + parser.destructible = destructible | 16; + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + params.push(expr); + if (!consumeOpt(parser, context | 32768, 18)) + break; + } + consume(parser, context, 16); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 25); + if (parser.flags & 1 || flags & 1) + report(parser, 45); + if (destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) + report(parser, 30); + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, params, canAssign, 1, start, line, column); + } + else if (destructible & 8) { + report(parser, 59); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + function parseRegExpLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenRegExp, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return context & 512 + ? finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp, + raw: tokenRaw + }) + : finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp + }); + } + function parseClassDeclaration(parser, context, scope, flags, start, line, column) { + context = (context | 16777216 | 1024) ^ 16777216; + let decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + if (parser.leadingDecorators.length) { + parser.leadingDecorators.push(...decorators); + decorators = parser.leadingDecorators; + parser.leadingDecorators = []; + } + nextToken(parser, context); + let id = null; + let superClass = null; + const { tokenValue } = parser; + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) { + report(parser, 114); + } + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + if (scope) { + addBlockName(parser, context, scope, tokenValue, 32, 0); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, tokenValue); + } + } + } + id = parseIdentifier(parser, context, 0); + } + else { + if ((flags & 1) < 1) + report(parser, 37, 'Class'); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, scope, 2, 8, 0); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassDeclaration', + id, + superClass, + decorators, + body + } + : { + type: 'ClassDeclaration', + id, + superClass, + body + }); + } + function parseClassExpression(parser, context, inGroup, start, line, column) { + let id = null; + let superClass = null; + context = (context | 1024 | 16777216) ^ 16777216; + const decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + nextToken(parser, context); + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + id = parseIdentifier(parser, context, 0); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, inGroup, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, void 0, 2, 0, inGroup); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassExpression', + id, + superClass, + decorators, + body + } + : { + type: 'ClassExpression', + id, + superClass, + body + }); + } + function parseDecorators(parser, context) { + const list = []; + if (context & 1) { + while (parser.token === 133) { + list.push(parseDecoratorList(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + } + return list; + } + function parseDecoratorList(parser, context, start, line, column) { + nextToken(parser, context | 32768); + let expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, start, line, column); + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + return finishNode(parser, context, start, line, column, { + type: 'Decorator', + expression + }); + } + function parseClassBody(parser, context, inheritedContext, scope, kind, origin, inGroup) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + context = (context | 134217728) ^ 134217728; + parser.flags = (parser.flags | 32) ^ 32; + const body = []; + let decorators; + while (parser.token !== 1074790415) { + let length = 0; + decorators = parseDecorators(parser, context); + length = decorators.length; + if (length > 0 && parser.tokenValue === 'constructor') { + report(parser, 106); + } + if (parser.token === 1074790415) + report(parser, 105); + if (consumeOpt(parser, context, 1074790417)) { + if (length > 0) + report(parser, 116); + continue; + } + body.push(parseClassElementList(parser, context, scope, inheritedContext, kind, decorators, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + consume(parser, origin & 8 ? context | 32768 : context, 1074790415); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ClassBody', + body + }); + } + function parseClassElementList(parser, context, scope, inheritedContext, type, decorators, isStatic, inGroup, start, line, column) { + let kind = isStatic ? 32 : 0; + let key = null; + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 36864)) { + key = parseIdentifier(parser, context, 0); + switch (token) { + case 36972: + if (!isStatic && parser.token !== 67174411) { + return parseClassElementList(parser, context, scope, inheritedContext, type, decorators, 1, inGroup, start, line, column); + } + break; + case 209007: + if (parser.token !== 67174411 && (parser.flags & 1) < 1) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 16 | (optionalBit(parser, context, 8457014) ? 8 : 0); + } + break; + case 12402: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 256; + } + break; + case 12403: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 512; + } + break; + } + } + else if (token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, inheritedContext, inGroup); + } + else if ((token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (token === 8457014) { + kind |= 8; + nextToken(parser, context); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + context = context | 16384; + } + else if (context & 1 && (parser.token & 1073741824) === 1073741824) { + kind |= 128; + context = context | 16384; + } + else if (token === 122) { + key = parseIdentifier(parser, context, 0); + if (parser.token !== 67174411) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + if (kind & (8 | 16 | 768)) { + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, context, 0); + } + else if (parser.token === 122) { + key = parseIdentifier(parser, context, 0); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + } + else + report(parser, 131); + } + if ((kind & 2) < 1) { + if (parser.tokenValue === 'constructor') { + if ((parser.token & 1073741824) === 1073741824) { + report(parser, 125); + } + else if ((kind & 32) < 1 && parser.token === 67174411) { + if (kind & (768 | 16 | 128 | 8)) { + report(parser, 50, 'accessor'); + } + else if ((context & 524288) < 1) { + if (parser.flags & 32) + report(parser, 51); + else + parser.flags |= 32; + } + } + kind |= 64; + } + else if ((kind & 4096) < 1 && + kind & (32 | 768 | 8 | 16) && + parser.tokenValue === 'prototype') { + report(parser, 49); + } + } + if (context & 1 && parser.token !== 67174411) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + const value = parseMethodDefinition(parser, context, kind, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + decorators, + value + } + : { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + value + }); + } + function parsePrivateIdentifier(parser, context, start, line, column) { + nextToken(parser, context); + const { tokenValue } = parser; + if (tokenValue === 'constructor') + report(parser, 124); + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'PrivateIdentifier', + name: tokenValue + }); + } + function parsePropertyDefinition(parser, context, key, state, decorators, start, line, column) { + let value = null; + if (state & 8) + report(parser, 0); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 537079928) + report(parser, 115); + value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 0, 1, tokenPos, linePos, colPos); + if ((parser.token & 1073741824) !== 1073741824) { + value = parseMemberOrUpdateExpression(parser, context | 16384, value, 0, 0, tokenPos, linePos, colPos); + value = parseAssignmentExpression(parser, context | 16384, 0, 0, tokenPos, linePos, colPos, value); + if (parser.token === 18) { + value = parseSequenceExpression(parser, context, 0, start, line, column, value); + } + } + } + return finishNode(parser, context, start, line, column, { + type: 'PropertyDefinition', + key, + value, + static: (state & 32) > 0, + computed: (state & 2) > 0, + decorators + }); + } + function parseBindingPattern(parser, context, scope, type, origin, start, line, column) { + if (parser.token & 143360) + return parseAndClassifyIdentifier(parser, context, scope, type, origin, start, line, column); + if ((parser.token & 2097152) !== 2097152) + report(parser, 28, KeywordDescTable[parser.token & 255]); + const left = parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column) + : parseObjectLiteralOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column); + if (parser.destructible & 16) + report(parser, 47); + if (parser.destructible & 32) + report(parser, 47); + return left; + } + function parseAndClassifyIdentifier(parser, context, scope, kind, origin, start, line, column) { + const { tokenValue, token } = parser; + if (context & 1024) { + if ((token & 537079808) === 537079808) { + report(parser, 115); + } + else if ((token & 36864) === 36864) { + report(parser, 114); + } + } + if ((token & 20480) === 20480) { + report(parser, 99); + } + if (context & (2048 | 2097152) && token === 241773) { + report(parser, 30); + } + if (token === 241739) { + if (kind & (8 | 16)) + report(parser, 97); + } + if (context & (4194304 | 2048) && token === 209008) { + report(parser, 95); + } + nextToken(parser, context); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + return finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: tokenValue + }); + } + function parseJSXRootElementOrFragment(parser, context, inJSXChild, start, line, column) { + nextToken(parser, context); + if (parser.token === 8456259) { + return finishNode(parser, context, start, line, column, { + type: 'JSXFragment', + openingFragment: parseOpeningFragment(parser, context, start, line, column), + children: parseJSXChildren(parser, context), + closingFragment: parseJSXClosingFragment(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + let closingElement = null; + let children = []; + const openingElement = parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column); + if (!openingElement.selfClosing) { + children = parseJSXChildren(parser, context); + closingElement = parseJSXClosingElement(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos); + const close = isEqualTagName(closingElement.name); + if (isEqualTagName(openingElement.name) !== close) + report(parser, 149, close); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXElement', + children, + openingElement, + closingElement + }); + } + function parseOpeningFragment(parser, context, start, line, column) { + scanJSXToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningFragment' + }); + } + function parseJSXClosingElement(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + const name = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + parser.token = scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingElement', + name + }); + } + function parseJSXClosingFragment(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + consume(parser, context, 8456259); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingFragment' + }); + } + function parseJSXChildren(parser, context) { + const children = []; + while (parser.token !== 25) { + parser.index = parser.tokenPos = parser.startPos; + parser.column = parser.colPos = parser.startColumn; + parser.line = parser.linePos = parser.startLine; + scanJSXToken(parser, context); + children.push(parseJSXChild(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return children; + } + function parseJSXChild(parser, context, start, line, column) { + if (parser.token === 138) + return parseJSXText(parser, context, start, line, column); + if (parser.token === 2162700) + return parseJSXExpressionContainer(parser, context, 0, 0, start, line, column); + if (parser.token === 8456258) + return parseJSXRootElementOrFragment(parser, context, 0, start, line, column); + report(parser, 0); + } + function parseJSXText(parser, context, start, line, column) { + scanJSXToken(parser, context); + const node = { + type: 'JSXText', + value: parser.tokenValue + }; + if (context & 512) { + node.raw = parser.tokenRaw; + } + return finishNode(parser, context, start, line, column, node); + } + function parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column) { + if ((parser.token & 143360) !== 143360 && (parser.token & 4096) !== 4096) + report(parser, 0); + const tagName = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + const attributes = parseJSXAttributes(parser, context); + const selfClosing = parser.token === 8457016; + if (parser.token === 8456259) { + scanJSXToken(parser, context); + } + else { + consume(parser, context, 8457016); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + scanJSXToken(parser, context); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningElement', + name: tagName, + attributes, + selfClosing + }); + } + function parseJSXElementName(parser, context, start, line, column) { + scanJSXIdentifier(parser); + let key = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) + return parseJSXNamespacedName(parser, context, key, start, line, column); + while (consumeOpt(parser, context, 67108877)) { + scanJSXIdentifier(parser); + key = parseJSXMemberExpression(parser, context, key, start, line, column); + } + return key; + } + function parseJSXMemberExpression(parser, context, object, start, line, column) { + const property = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXMemberExpression', + object, + property + }); + } + function parseJSXAttributes(parser, context) { + const attributes = []; + while (parser.token !== 8457016 && parser.token !== 8456259 && parser.token !== 1048576) { + attributes.push(parseJsxAttribute(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return attributes; + } + function parseJSXSpreadAttribute(parser, context, start, line, column) { + nextToken(parser, context); + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadAttribute', + argument: expression + }); + } + function parseJsxAttribute(parser, context, start, line, column) { + if (parser.token === 2162700) + return parseJSXSpreadAttribute(parser, context, start, line, column); + scanJSXIdentifier(parser); + let value = null; + let name = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) { + name = parseJSXNamespacedName(parser, context, name, start, line, column); + } + if (parser.token === 1077936157) { + const token = scanJSXAttributeValue(parser, context); + const { tokenPos, linePos, colPos } = parser; + switch (token) { + case 134283267: + value = parseLiteral(parser, context); + break; + case 8456258: + value = parseJSXRootElementOrFragment(parser, context, 1, tokenPos, linePos, colPos); + break; + case 2162700: + value = parseJSXExpressionContainer(parser, context, 1, 1, tokenPos, linePos, colPos); + break; + default: + report(parser, 148); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXAttribute', + value, + name + }); + } + function parseJSXNamespacedName(parser, context, namespace, start, line, column) { + consume(parser, context, 21); + const name = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXNamespacedName', + namespace, + name + }); + } + function parseJSXExpressionContainer(parser, context, inJSXChild, isAttr, start, line, column) { + nextToken(parser, context); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 14) + return parseJSXSpreadChild(parser, context, tokenPos, linePos, colPos); + let expression = null; + if (parser.token === 1074790415) { + if (isAttr) + report(parser, 151); + expression = parseJSXEmptyExpression(parser, context, parser.startPos, parser.startLine, parser.startColumn); + } + else { + expression = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + } + if (inJSXChild) { + consume(parser, context, 1074790415); + } + else { + scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXExpressionContainer', + expression + }); + } + function parseJSXSpreadChild(parser, context, start, line, column) { + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadChild', + expression + }); + } + function parseJSXEmptyExpression(parser, context, start, line, column) { + parser.startPos = parser.tokenPos; + parser.startLine = parser.linePos; + parser.startColumn = parser.colPos; + return finishNode(parser, context, start, line, column, { + type: 'JSXEmptyExpression' + }); + } + function parseJSXIdentifier(parser, context, start, line, column) { + const { tokenValue } = parser; + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXIdentifier', + name: tokenValue + }); + } + + var estree = /*#__PURE__*/Object.freeze({ + __proto__: null + }); + + var version$1 = "4.2.0"; + + const version = version$1; + function parseScript(source, options) { + return parseSource(source, options, 0); + } + function parseModule(source, options) { + return parseSource(source, options, 1024 | 2048); + } + function parse(source, options) { + return parseSource(source, options, 0); + } + + exports.ESTree = estree; + exports.parse = parse; + exports.parseModule = parseModule; + exports.parseScript = parseScript; + exports.version = version; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}); diff --git a/node_modules/meriyah/dist/meriyah.amd.min.js b/node_modules/meriyah/dist/meriyah.amd.min.js new file mode 100644 index 0000000..7bcae10 --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.amd.min.js @@ -0,0 +1 @@ +define(["exports"],(function(e){"use strict";const t={0:"Unexpected token",28:"Unexpected token: '%0'",1:"Octal escape sequences are not allowed in strict mode",2:"Octal escape sequences are not allowed in template strings",3:"Unexpected token `#`",4:"Illegal Unicode escape sequence",5:"Invalid code point %0",6:"Invalid hexadecimal escape sequence",8:"Octal literals are not allowed in strict mode",7:"Decimal integer literals with a leading zero are forbidden in strict mode",9:"Expected number in radix %0",145:"Invalid left-hand side assignment to a destructible right-hand side",10:"Non-number found after exponent indicator",11:"Invalid BigIntLiteral",12:"No identifiers allowed directly after numeric literal",13:"Escapes \\8 or \\9 are not syntactically valid escapes",14:"Unterminated string literal",15:"Unterminated template literal",16:"Multiline comment was not closed properly",17:"The identifier contained dynamic unicode escape that was not closed",18:"Illegal character '%0'",19:"Missing hexadecimal digits",20:"Invalid implicit octal",21:"Invalid line break in string literal",22:"Only unicode escapes are legal in identifier names",23:"Expected '%0'",24:"Invalid left-hand side in assignment",25:"Invalid left-hand side in async arrow",26:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',27:"Member access on super must be in a method",29:"Await expression not allowed in formal parameter",30:"Yield expression not allowed in formal parameter",92:"Unexpected token: 'escaped keyword'",31:"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses",119:"Async functions can only be declared at the top level or inside a block",32:"Unterminated regular expression",33:"Unexpected regular expression flag",34:"Duplicate regular expression flag '%0'",35:"%0 functions must have exactly %1 argument%2",36:"Setter function argument must not be a rest parameter",37:"%0 declaration must have a name in this context",38:"Function name may not contain any reserved words or be eval or arguments in strict mode",39:"The rest operator is missing an argument",40:"A getter cannot be a generator",41:"A computed property name must be followed by a colon or paren",130:"Object literal keys that are strings or numbers must be a method or have a colon",43:"Found `* async x(){}` but this should be `async * x(){}`",42:"Getters and setters can not be generators",44:"'%0' can not be generator method",45:"No line break is allowed after '=>'",46:"The left-hand side of the arrow can only be destructed through assignment",47:"The binding declaration is not destructible",48:"Async arrow can not be followed by new expression",49:"Classes may not have a static property named 'prototype'",50:"Class constructor may not be a %0",51:"Duplicate constructor method in class",52:"Invalid increment/decrement operand",53:"Invalid use of `new` keyword on an increment/decrement expression",54:"`=>` is an invalid assignment target",55:"Rest element may not have a trailing comma",56:"Missing initializer in %0 declaration",57:"'for-%0' loop head declarations can not have an initializer",58:"Invalid left-hand side in for-%0 loop: Must have a single binding",59:"Invalid shorthand property initializer",60:"Property name __proto__ appears more than once in object literal",61:"Let is disallowed as a lexically bound name",62:"Invalid use of '%0' inside new expression",63:"Illegal 'use strict' directive in function with non-simple parameter list",64:'Identifier "let" disallowed as left-hand side expression in strict mode',65:"Illegal continue statement",66:"Illegal break statement",67:"Cannot have `let[...]` as a var name in strict mode",68:"Invalid destructuring assignment target",69:"Rest parameter may not have a default initializer",70:"The rest argument must the be last parameter",71:"Invalid rest argument",73:"In strict mode code, functions can only be declared at top level or inside a block",74:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement",75:"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement",76:"Class declaration can't appear in single-statement context",77:"Invalid left-hand side in for-%0",78:"Invalid assignment in for-%0",79:"for await (... of ...) is only valid in async functions and async generators",80:"The first token after the template expression should be a continuation of the template",82:"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode",81:"`let \n [` is a restricted production at the start of a statement",83:"Catch clause requires exactly one parameter, not more (and no trailing comma)",84:"Catch clause parameter does not support default values",85:"Missing catch or finally after try",86:"More than one default clause in switch statement",87:"Illegal newline after throw",88:"Strict mode code may not include a with statement",89:"Illegal return statement",90:"The left hand side of the for-header binding declaration is not destructible",91:"new.target only allowed within functions",93:"'#' not followed by identifier",99:"Invalid keyword",98:"Can not use 'let' as a class name",97:"'A lexical declaration can't define a 'let' binding",96:"Can not use `let` as variable name in strict mode",94:"'%0' may not be used as an identifier in this context",95:"Await is only valid in async functions",100:"The %0 keyword can only be used with the module goal",101:"Unicode codepoint must not be greater than 0x10FFFF",102:"%0 source must be string",103:"Only a identifier can be used to indicate alias",104:"Only '*' or '{...}' can be imported after default",105:"Trailing decorator may be followed by method",106:"Decorators can't be used with a constructor",108:"HTML comments are only allowed with web compatibility (Annex B)",109:"The identifier 'let' must not be in expression position in strict mode",110:"Cannot assign to `eval` and `arguments` in strict mode",111:"The left-hand side of a for-of loop may not start with 'let'",112:"Block body arrows can not be immediately invoked without a group",113:"Block body arrows can not be immediately accessed without a group",114:"Unexpected strict mode reserved word",115:"Unexpected eval or arguments in strict mode",116:"Decorators must not be followed by a semicolon",117:"Calling delete on expression not allowed in strict mode",118:"Pattern can not have a tail",120:"Can not have a `yield` expression on the left side of a ternary",121:"An arrow function can not have a postfix update operator",122:"Invalid object literal key character after generator star",123:"Private fields can not be deleted",125:"Classes may not have a field called constructor",124:"Classes may not have a private element named constructor",126:"A class field initializer may not contain arguments",127:"Generators can only be declared at the top level or inside a block",128:"Async methods are a restricted production and cannot have a newline following it",129:"Unexpected character after object literal property name",131:"Invalid key token",132:"Label '%0' has already been declared",133:"continue statement must be nested within an iteration statement",134:"Undefined label '%0'",135:"Trailing comma is disallowed inside import(...) arguments",136:"import() requires exactly one argument",137:"Cannot use new with import(...)",138:"... is not allowed in import()",139:"Expected '=>'",140:"Duplicate binding '%0'",141:"Cannot export a duplicate name '%0'",144:"Duplicate %0 for-binding",142:"Exported binding '%0' needs to refer to a top-level declared variable",143:"Unexpected private field",147:"Numeric separators are not allowed at the end of numeric literals",146:"Only one underscore is allowed as numeric separator",148:"JSX value should be either an expression or a quoted JSX text",149:"Expected corresponding JSX closing tag for %0",150:"Adjacent JSX elements must be wrapped in an enclosing tag",151:"JSX attributes must only be assigned a non-empty 'expression'",152:"'%0' has already been declared",153:"'%0' shadowed a catch clause binding",154:"Dot property must be an identifier",155:"Encountered invalid input after spread/rest argument",156:"Catch without try",157:"Finally without try",158:"Expected corresponding closing tag for JSX fragment",159:"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses",160:"Invalid tagged template on optional chain",161:"Invalid optional chain from super property",162:"Invalid optional chain from new expression",163:'Cannot use "import.meta" outside a module',164:"Leading decorators must be attached to a class declaration"};class n extends SyntaxError{constructor(e,n,o,r,...s){const a="["+n+":"+o+"]: "+t[r].replace(/%(\d+)/g,((e,t)=>s[t]));super(`${a}`),this.index=e,this.line=n,this.column=o,this.description=a,this.loc={line:n,column:o}}}function o(e,t,...o){throw new n(e.index,e.line,e.column,t,...o)}function r(e){throw new n(e.index,e.line,e.column,e.type,e.params)}function s(e,t,o,r,...s){throw new n(e,t,o,r,...s)}function a(e,t,o,r){throw new n(e,t,o,r)}const i=((e,t)=>{const n=new Uint32Array(104448);let o=0,r=0;for(;o<3540;){const s=e[o++];if(s<0)r-=s;else{let a=e[o++];2&s&&(a=t[a]),1&s?n.fill(a,r,r+=e[o++]):n[r++]=a}}return n})([-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828e3,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902e3,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532]);function l(e){return e.column++,e.currentChar=e.source.charCodeAt(++e.index)}function c(e,t){if(55296!=(64512&t))return 0;const n=e.source.charCodeAt(e.index+1);return 56320!=(64512&n)?0:(t=e.currentChar=65536+((1023&t)<<10)+(1023&n),0==(1&i[0+(t>>>5)]>>>t)&&o(e,18,p(t)),e.index++,e.column++,1)}function u(e,t){e.currentChar=e.source.charCodeAt(++e.index),e.flags|=1,0==(4&t)&&(e.column=0,e.line++)}function d(e){e.flags|=1,e.currentChar=e.source.charCodeAt(++e.index),e.column=0,e.line++}function p(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(e>>>10)+String.fromCharCode(1023&e)}function f(e){return e<65?e-48:e-65+10&15}const k=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],g=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],m=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function b(e){return e<=127?g[e]:1&i[34816+(e>>>5)]>>>e}function h(e){return e<=127?m[e]:1&i[0+(e>>>5)]>>>e||8204===e||8205===e}const P=["SingleLine","MultiLine","HTMLOpen","HTMLClose","HashbangComment"];function y(e,t,n,r,s,a,i,l){return 2048&r&&o(e,0),x(e,t,n,s,a,i,l)}function x(e,t,n,o,r,s,a){const{index:i}=e;for(e.tokenPos=e.index,e.linePos=e.line,e.colPos=e.column;e.index=e.source.length)return o(e,32)}const s=e.index-1;let a=0,i=e.currentChar;const{index:c}=e;for(;h(i);){switch(i){case 103:2&a&&o(e,34,"g"),a|=2;break;case 105:1&a&&o(e,34,"i"),a|=1;break;case 109:4&a&&o(e,34,"m"),a|=4;break;case 117:16&a&&o(e,34,"g"),a|=16;break;case 121:8&a&&o(e,34,"y"),a|=8;break;case 115:12&a&&o(e,34,"s"),a|=12;break;default:o(e,33)}i=l(e)}const u=e.source.slice(c,e.index),d=e.source.slice(n,s);return e.tokenRegExp={pattern:d,flags:u},512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),e.tokenValue=function(e,t,n){try{return new RegExp(t,n)}catch(t){o(e,32)}}(e,d,u),65540}function q(e,t,n){const{index:r}=e;let s="",a=l(e),i=e.index;for(;0==(8&k[a]);){if(a===n)return s+=e.source.slice(i,e.index),l(e),512&t&&(e.tokenRaw=e.source.slice(r,e.index)),e.tokenValue=s,134283267;if(8==(8&a)&&92===a){if(s+=e.source.slice(i,e.index),a=l(e),a<127||8232===a||8233===a){const n=C(e,t,a);n>=0?s+=p(n):E(e,n,0)}else s+=p(a);i=e.index+1}e.index>=e.end&&o(e,14),a=l(e)}o(e,14)}function C(e,t,n){switch(n){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(e.index1114111)return-5;return e.currentChar<1||125!==e.currentChar?-4:t}{if(0==(64&k[t]))return-4;const n=e.source.charCodeAt(e.index+1);if(0==(64&k[n]))return-4;const o=e.source.charCodeAt(e.index+2);if(0==(64&k[o]))return-4;const r=e.source.charCodeAt(e.index+3);return 0==(64&k[r])?-4:(e.index+=3,e.column+=3,e.currentChar=e.source.charCodeAt(e.index),f(t)<<12|f(n)<<8|f(o)<<4|f(r))}}case 56:case 57:if(0==(256&t))return-3;default:return n}}function E(e,t,n){switch(t){case-1:return;case-2:o(e,n?2:1);case-3:o(e,13);case-4:o(e,6);case-5:o(e,101)}}function A(e,t){const{index:n}=e;let r=67174409,s="",a=l(e);for(;96!==a;){if(36===a&&123===e.source.charCodeAt(e.index+1)){l(e),r=67174408;break}if(8==(8&a)&&92===a)if(a=l(e),a>126)s+=p(a);else{const n=C(e,1024|t,a);if(n>=0)s+=p(n);else{if(-1!==n&&65536&t){s=void 0,a=S(e,a),a<0&&(r=67174408);break}E(e,n,1)}}else e.index=e.end&&o(e,15),a=l(e)}return l(e),e.tokenValue=s,e.tokenRaw=e.source.slice(n+1,e.index-(67174409===r?1:2)),r}function S(e,t){for(;96!==t;){switch(t){case 36:{const n=e.index+1;if(n=e.end&&o(e,15),t=l(e)}return t}function D(e,t){return e.index>=e.end&&o(e,0),e.index--,e.column--,A(e,t)}function L(e,t,n){let r=e.currentChar,s=0,i=9,c=64&n?0:1,u=0,d=0;if(64&n)s="."+V(e,r),r=e.currentChar,110===r&&o(e,11);else{if(48===r)if(r=l(e),120==(32|r)){for(n=136,r=l(e);4160&k[r];)95!==r?(d=1,s=16*s+f(r),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?19:147)}else if(111==(32|r)){for(n=132,r=l(e);4128&k[r];)95!==r?(d=1,s=8*s+(r-48),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?0:147)}else if(98==(32|r)){for(n=130,r=l(e);4224&k[r];)95!==r?(d=1,s=2*s+(r-48),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?0:147)}else if(32&k[r])for(1024&t&&o(e,1),n=1;16&k[r];){if(512&k[r]){n=32,c=0;break}s=8*s+(r-48),r=l(e)}else 512&k[r]?(1024&t&&o(e,1),e.flags|=64,n=32):95===r&&o(e,0);if(48&n){if(c){for(;i>=0&&4112&k[r];)95!==r?(d=0,s=10*s+(r-48),r=l(e),--i):(r=l(e),(95===r||32&n)&&a(e.index,e.line,e.index+1,146),d=1);if(d&&a(e.index,e.line,e.index+1,147),i>=0&&!b(r)&&46!==r)return e.tokenValue=s,512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),134283266}s+=V(e,r),r=e.currentChar,46===r&&(95===l(e)&&o(e,0),n=64,s+="."+V(e,e.currentChar),r=e.currentChar)}}const p=e.index;let g=0;if(110===r&&128&n)g=1,r=l(e);else if(101==(32|r)){r=l(e),256&k[r]&&(r=l(e));const{index:t}=e;(16&k[r])<1&&o(e,10),s+=e.source.substring(p,t)+V(e,r),r=e.currentChar}return(e.index","(","{",".","...","}",")",";",",","[","]",":","?","'",'"',"","++","--","=","<<=",">>=",">>>=","**=","+=","-=","*=","/=","%=","^=","|=","&=","||=","&&=","??=","typeof","delete","void","!","~","+","-","in","instanceof","*","%","/","**","&&","||","===","!==","==","!=","<=",">=","<",">","<<",">>",">>>","&","|","^","var","let","const","break","case","catch","class","continue","debugger","default","do","else","export","extends","finally","for","function","if","import","new","return","super","switch","this","throw","try","while","with","implements","interface","package","private","protected","public","static","yield","as","async","await","constructor","get","set","from","of","enum","eval","arguments","escaped keyword","escaped future reserved keyword","reserved if strict","#","BigIntLiteral","??","?.","WhiteSpace","Illegal","LineTerminator","PrivateField","Template","@","target","meta","LineFeed","Escaped","JSXText"],R=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function N(e,t,n){for(;m[l(e)];);return e.tokenValue=e.source.slice(e.tokenPos,e.index),92!==e.currentChar&&e.currentChar<126?R[e.tokenValue]||208897:U(e,t,0,n)}function I(e,t){const n=O(e);return h(n)||o(e,4),e.tokenValue=p(n),U(e,t,1,4&k[n])}function U(e,t,n,r){let s=e.index;for(;e.index=2&&a<=11){const o=R[e.tokenValue];return void 0===o?208897:n?1024&t?209008===o&&0==(4196352&t)?o:36972===o||36864==(36864&o)?122:121:1073741824&t&&0==(8192&t)&&20480==(20480&o)?o:241773===o?1073741824&t?143483:2097152&t?121:o:209007===o&&1073741824&t?143483:36864==(36864&o)||209008===o&&0==(4194304&t)?o:121:o}return 208897}function B(e){return b(l(e))||o(e,93),131}function O(e){return 117!==e.source.charCodeAt(e.index+1)&&o(e,4),e.currentChar=e.source.charCodeAt(e.index+=2),function(e){let t=0;const n=e.currentChar;if(123===n){const n=e.index-2;for(;64&k[l(e)];)t=t<<4|f(e.currentChar),t>1114111&&a(n,e.line,e.index+1,101);return 125!==e.currentChar&&a(n,e.line,e.index-1,6),l(e),t}0==(64&k[n])&&o(e,6);const r=e.source.charCodeAt(e.index+1);0==(64&k[r])&&o(e,6);const s=e.source.charCodeAt(e.index+2);0==(64&k[s])&&o(e,6);const i=e.source.charCodeAt(e.index+3);0==(64&k[i])&&o(e,6);return t=f(n)<<12|f(r)<<8|f(s)<<4|f(i),e.currentChar=e.source.charCodeAt(e.index+=4),t}(e)}const G=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function F(e,t){if(e.flags=1^(1|e.flags),e.startPos=e.index,e.startColumn=e.column,e.startLine=e.line,e.token=j(e,t,0),e.onToken&&1048576!==e.token){const t={start:{line:e.linePos,column:e.colPos},end:{line:e.line,column:e.column}};e.onToken(function(e){switch(e){case 134283266:return"NumericLiteral";case 134283267:return"StringLiteral";case 86021:case 86022:return"BooleanLiteral";case 86023:return"NullLiteral";case 65540:return"RegularExpression";case 67174408:case 67174409:case 132:return"TemplateLiteral";default:return 143360==(143360&e)?"Identifier":4096==(4096&e)?"Keyword":"Punctuator"}}(e.token),e.tokenPos,e.index,t)}}function j(e,t,n){const r=0===e.index,s=e.source;let a=e.index,c=e.line,f=e.column;for(;e.index=e.end)return 8457014;const t=e.currentChar;return 61===t?(l(e),4194340):42!==t?8457014:61!==l(e)?8457273:(l(e),4194337)}case 8455497:return 61!==l(e)?8455497:(l(e),4194343);case 25233970:{l(e);const t=e.currentChar;return 43===t?(l(e),33619995):61===t?(l(e),4194338):25233970}case 25233971:{l(e);const i=e.currentChar;if(45===i){if(l(e),(1&n||r)&&62===e.currentChar){0==(256&t)&&o(e,108),l(e),n=y(e,s,n,t,3,a,c,f),a=e.tokenPos,c=e.linePos,f=e.colPos;continue}return 33619996}return 61===i?(l(e),4194339):25233971}case 8457016:if(l(e),e.index=48&&k<=57)return L(e,t,80);if(46===k){const t=e.index+1;if(t=48&&t<=57)))return l(e),67108991}return 22}}}else{if((8232^g)<=1){n=-5&n|1,d(e);continue}if(55296==(64512&g)||0!=(1&i[34816+(g>>>5)]>>>g))return 56320==(64512&g)&&(g=(1023&g)<<10|1023&g|65536,0==(1&i[0+(g>>>5)]>>>g)&&o(e,18,p(g)),e.index++,e.currentChar=g),e.column++,e.tokenValue="",U(e,t,0,0);if(160===(k=g)||65279===k||133===k||5760===k||k>=8192&&k<=8203||8239===k||8287===k||12288===k||8201===k||65519===k){l(e);continue}o(e,18,p(g))}}var k;return 1048576}const H={AElig:"Æ",AMP:"&",Aacute:"Á",Abreve:"Ă",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atilde:"Ã",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ETH:"Ð",Eacute:"É",Ecaron:"Ě",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"Í",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"â",acute:"´",acy:"а",aelig:"æ",af:"⁡",afr:"𝔞",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"ð",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"í",ic:"⁣",icirc:"î",icy:"и",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"ó",oast:"⊛",ocir:"⊚",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"ø",osol:"⊘",otilde:"õ",otimes:"⊗",otimesas:"⨶",ouml:"ö",ovbar:"⌽",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"þ",tilde:"˜",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"},J={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function M(e){return e.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g,(e=>{if("#"===e.charAt(1)){const t=e.charAt(2);return function(e){if(e>=55296&&e<=57343||e>1114111)return"�";e in J&&(e=J[e]);return String.fromCodePoint(e)}("X"===t||"x"===t?parseInt(e.slice(3),16):parseInt(e.slice(2),10))}return H[e.slice(1,-1)]||e}))}function z(e,t){return e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.token=8192&k[e.currentChar]?function(e,t){const n=e.currentChar;let r=l(e);const s=e.index;for(;r!==n;)e.index>=e.end&&o(e,14),r=l(e);r!==n&&o(e,14);e.tokenValue=e.source.slice(s,e.index),l(e),512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index));return 134283267}(e,t):j(e,t,0),e.token}function X(e,t){if(e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.index>=e.end)return e.token=1048576;switch(G[e.source.charCodeAt(e.index)]){case 8456258:l(e),47===e.currentChar?(l(e),e.token=25):e.token=8456258;break;case 2162700:l(e),e.token=2162700;break;default:{let n=0;for(;e.index0&&W(e,t,209008);K(e,32768|t,67174411),n&&(n=le(n,1));let c,u=null,d=null,p=0,f=null,k=86090===e.token||241739===e.token||86092===e.token;const{token:g,tokenPos:m,linePos:b,colPos:h}=e;k?241739===g?(f=nt(e,t,0),2240512&e.token?(8738868===e.token?1024&t&&o(e,64):f=re(e,t,m,b,h,{type:"VariableDeclaration",kind:"let",declarations:De(e,134217728|t,n,8,32)}),e.assignable=1):1024&t?o(e,64):(k=!1,e.assignable=1,f=ze(e,t,f,0,0,m,b,h),274549===e.token&&o(e,111))):(F(e,t),f=re(e,t,m,b,h,86090===g?{type:"VariableDeclaration",kind:"var",declarations:De(e,134217728|t,n,4,32)}:{type:"VariableDeclaration",kind:"const",declarations:De(e,134217728|t,n,16,32)}),e.assignable=1):1074790417===g?l&&o(e,79):2097152==(2097152&g)?(f=2162700===g?ut(e,t,void 0,1,0,0,2,32,m,b,h):at(e,t,void 0,1,0,0,2,32,m,b,h),p=e.destructible,256&t&&64&p&&o(e,60),e.assignable=16&p?2:1,f=ze(e,134217728|t,f,0,0,e.tokenPos,e.linePos,e.colPos)):f=Me(e,134217728|t,1,0,1,m,b,h);if(262144==(262144&e.token)){if(274549===e.token){2&e.assignable&&o(e,77,l?"await":"of"),Q(e,f),F(e,32768|t),c=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),K(e,32768|t,16);return re(e,t,s,a,i,{type:"ForOfStatement",left:f,right:c,body:Ee(e,t,n,r),await:l})}2&e.assignable&&o(e,77,"in"),Q(e,f),F(e,32768|t),l&&o(e,79),c=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos),K(e,32768|t,16);return re(e,t,s,a,i,{type:"ForInStatement",body:Ee(e,t,n,r),left:f,right:c})}l&&o(e,79);k||(8&p&&1077936157!==e.token&&o(e,77,"loop"),f=Ge(e,134217728|t,0,0,m,b,h,f));18===e.token&&(f=Be(e,t,0,e.tokenPos,e.linePos,e.colPos,f));K(e,32768|t,1074790417),1074790417!==e.token&&(u=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos));K(e,32768|t,1074790417),16!==e.token&&(d=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos));K(e,32768|t,16);const P=Ee(e,t,n,r);return re(e,t,s,a,i,{type:"ForStatement",init:f,test:u,update:d,body:P})}(e,t,n,s,i,l,c);case 20564:return function(e,t,n,o,r,s,a){F(e,32768|t);const i=Ee(e,t,n,o);K(e,t,20580),K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return K(e,32768|t,16),W(e,t,1074790417),re(e,t,r,s,a,{type:"DoWhileStatement",body:i,test:l})}(e,t,n,s,i,l,c);case 20580:return function(e,t,n,o,r,s,a){F(e,t),K(e,32768|t,67174411);const i=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,16);const l=Ee(e,t,n,o);return re(e,t,r,s,a,{type:"WhileStatement",test:i,body:l})}(e,t,n,s,i,l,c);case 86112:return function(e,t,n,r,s,a,i){F(e,t),K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,t,16),K(e,t,2162700);const c=[];let u=0;n&&(n=le(n,8));for(;1074790415!==e.token;){const{tokenPos:s,linePos:a,colPos:i}=e;let l=null;const d=[];for(W(e,32768|t,20558)?l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos):(K(e,32768|t,20563),u&&o(e,86),u=1),K(e,32768|t,21);20558!==e.token&&1074790415!==e.token&&20563!==e.token;)d.push(he(e,4096|t,n,2,{$:r}));c.push(re(e,t,s,a,i,{type:"SwitchCase",test:l,consequent:d}))}return K(e,32768|t,1074790415),re(e,t,s,a,i,{type:"SwitchStatement",discriminant:l,cases:c})}(e,t,n,s,i,l,c);case 1074790417:return function(e,t,n,o,r){return F(e,32768|t),re(e,t,n,o,r,{type:"EmptyStatement"})}(e,t,i,l,c);case 2162700:return ye(e,t,n?le(n,2):n,s,i,l,c);case 86114:return function(e,t,n,r,s){F(e,32768|t),1&e.flags&&o(e,87);const a=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return $(e,32768|t),re(e,t,n,r,s,{type:"ThrowStatement",argument:a})}(e,t,i,l,c);case 20557:return function(e,t,n,r,s,a){F(e,32768|t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=nt(e,32768|t,0),oe(e,n,r,0)||o(e,134,r)}else(135168&t)<1&&o(e,66);return $(e,32768|t),re(e,t,r,s,a,{type:"BreakStatement",label:i})}(e,t,s,i,l,c);case 20561:return function(e,t,n,r,s,a){(131072&t)<1&&o(e,65);F(e,t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=nt(e,32768|t,0),oe(e,n,r,1)||o(e,134,r)}return $(e,32768|t),re(e,t,r,s,a,{type:"ContinueStatement",label:i})}(e,t,s,i,l,c);case 20579:return function(e,t,n,r,s,a,i){F(e,32768|t);const l=n?le(n,32):void 0,c=ye(e,t,l,{$:r},e.tokenPos,e.linePos,e.colPos),{tokenPos:u,linePos:d,colPos:p}=e,f=W(e,32768|t,20559)?function(e,t,n,r,s,a,i){let l=null,c=n;W(e,t,67174411)&&(n&&(n=le(n,4)),l=At(e,t,n,2097152==(2097152&e.token)?256:512,0,e.tokenPos,e.linePos,e.colPos),18===e.token?o(e,83):1077936157===e.token&&o(e,84),K(e,32768|t,16),n&&(c=le(n,64)));const u=ye(e,t,c,{$:r},e.tokenPos,e.linePos,e.colPos);return re(e,t,s,a,i,{type:"CatchClause",param:l,body:u})}(e,t,n,r,u,d,p):null;let k=null;if(20568===e.token){F(e,32768|t);k=ye(e,t,l?le(n,4):void 0,{$:r},e.tokenPos,e.linePos,e.colPos)}f||k||o(e,85);return re(e,t,s,a,i,{type:"TryStatement",block:c,handler:f,finalizer:k})}(e,t,n,s,i,l,c);case 20581:return function(e,t,n,r,s,a,i){F(e,t),1024&t&&o(e,88);K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,16);const c=Pe(e,t,n,2,r,0,e.tokenPos,e.linePos,e.colPos);return re(e,t,s,a,i,{type:"WithStatement",object:l,body:c})}(e,t,n,s,i,l,c);case 20562:return function(e,t,n,o,r){return F(e,32768|t),$(e,32768|t),re(e,t,n,o,r,{type:"DebuggerStatement"})}(e,t,i,l,c);case 209007:return we(e,t,n,r,s,0,i,l,c);case 20559:o(e,156);case 20568:o(e,157);case 86106:o(e,1024&t?73:(256&t)<1?75:74);case 86096:o(e,76);default:return function(e,t,n,r,s,a,i,l,c){const{tokenValue:u,token:d}=e;let p;switch(d){case 241739:p=nt(e,t,0),1024&t&&o(e,82),69271571===e.token&&o(e,81);break;default:p=_e(e,t,2,0,1,0,0,1,e.tokenPos,e.linePos,e.colPos)}if(143360&d&&21===e.token)return ve(e,t,n,r,s,u,p,d,a,i,l,c);p=ze(e,t,p,0,0,i,l,c),p=Ge(e,t,0,0,i,l,c,p),18===e.token&&(p=Be(e,t,0,i,l,c,p));return xe(e,t,p,i,l,c)}(e,t,n,r,s,a,i,l,c)}}function ye(e,t,n,o,r,s,a){const i=[];for(K(e,32768|t,2162700);1074790415!==e.token;)i.push(he(e,t,n,2,{$:o}));return K(e,32768|t,1074790415),re(e,t,r,s,a,{type:"BlockStatement",body:i})}function xe(e,t,n,o,r,s){return $(e,32768|t),re(e,t,o,r,s,{type:"ExpressionStatement",expression:n})}function ve(e,t,n,r,s,a,i,l,c,u,d,p){ee(e,t,0,l,1),function(e,t,n){let r=t;for(;r;)r["$"+n]&&o(e,132,n),r=r.$;t["$"+n]=1}(e,s,a),F(e,32768|t);return re(e,t,u,d,p,{type:"LabeledStatement",label:i,body:c&&(1024&t)<1&&256&t&&86106===e.token?rt(e,t,le(n,2),r,0,0,0,e.tokenPos,e.linePos,e.colPos):Pe(e,t,n,r,s,c,e.tokenPos,e.linePos,e.colPos)})}function we(e,t,n,r,s,a,i,l,c){const{token:u,tokenValue:d}=e;let p=nt(e,t,0);if(21===e.token)return ve(e,t,n,r,s,d,p,u,1,i,l,c);const f=1&e.flags;if(!f){if(86106===e.token)return a||o(e,119),rt(e,t,n,r,1,0,1,i,l,c);if(143360==(143360&e.token))return p=ht(e,t,1,i,l,c),18===e.token&&(p=Be(e,t,0,i,l,c,p)),xe(e,t,p,i,l,c)}return 67174411===e.token?p=Pt(e,t,p,1,1,0,f,i,l,c):(10===e.token&&(ge(e,t,u,1),p=ft(e,t,e.tokenValue,p,0,1,0,i,l,c)),e.assignable=1),p=ze(e,t,p,0,0,i,l,c),18===e.token&&(p=Be(e,t,0,i,l,c,p)),p=Ge(e,t,0,0,i,l,c,p),e.assignable=1,xe(e,t,p,i,l,c)}function qe(e,t,n,o,r,s,a){return 1074790417!==o&&(e.assignable=2,n=ze(e,t,n,0,0,r,s,a),1074790417!==e.token&&(n=Ge(e,t,0,0,r,s,a,n),18===e.token&&(n=Be(e,t,0,r,s,a,n))),$(e,32768|t)),8&t&&"Literal"===n.type&&"string"==typeof n.value?re(e,t,r,s,a,{type:"ExpressionStatement",expression:n,directive:n.raw.slice(1,-1)}):re(e,t,r,s,a,{type:"ExpressionStatement",expression:n})}function Ce(e,t,n,o,r,s,a){return 1024&t||(256&t)<1||86106!==e.token?Pe(e,t,n,0,{$:o},0,e.tokenPos,e.linePos,e.colPos):rt(e,t,le(n,2),0,0,0,0,r,s,a)}function Ee(e,t,n,o){return Pe(e,134217728^(134217728|t)|131072,n,0,{loop:1,$:o},0,e.tokenPos,e.linePos,e.colPos)}function Ae(e,t,n,o,r,s,a,i){F(e,t);const l=De(e,t,n,o,r);return $(e,32768|t),re(e,t,s,a,i,{type:"VariableDeclaration",kind:8&o?"let":"const",declarations:l})}function Se(e,t,n,o,r,s,a){F(e,t);const i=De(e,t,n,4,o);return $(e,32768|t),re(e,t,r,s,a,{type:"VariableDeclaration",kind:"var",declarations:i})}function De(e,t,n,r,s){let a=1;const i=[Le(e,t,n,r,s)];for(;W(e,t,18);)a++,i.push(Le(e,t,n,r,s));return a>1&&32&s&&262144&e.token&&o(e,58,T[255&e.token]),i}function Le(e,t,n,r,a){const{token:i,tokenPos:l,linePos:c,colPos:u}=e;let d=null;const p=At(e,t,n,r,a,l,c,u);return 1077936157===e.token?(F(e,32768|t),d=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),(32&a||(2097152&i)<1)&&(274549===e.token||8738868===e.token&&(2097152&i||(4&r)<1||1024&t))&&s(l,e.line,e.index-3,57,274549===e.token?"of":"in")):(16&r||(2097152&i)>0)&&262144!=(262144&e.token)&&o(e,56,16&r?"const":"destructuring"),re(e,t,l,c,u,{type:"VariableDeclarator",id:p,init:d})}function Ve(e,t,n){return ke(t,e.token)||o(e,114),537079808==(537079808&e.token)&&o(e,115),n&&ue(e,t,n,e.tokenValue,8,0),nt(e,t,0)}function Te(e,t,n){const{tokenPos:o,linePos:r,colPos:a}=e;return F(e,t),K(e,t,77934),134217728==(134217728&e.token)&&s(o,e.line,e.index,28,T[255&e.token]),re(e,t,o,r,a,{type:"ImportNamespaceSpecifier",local:Ve(e,t,n)})}function Re(e,t,n,r){for(F(e,t);143360&e.token;){let{token:s,tokenValue:a,tokenPos:i,linePos:l,colPos:c}=e;const u=nt(e,t,0);let d;W(e,t,77934)?(134217728==(134217728&e.token)||18===e.token?o(e,103):ee(e,t,16,e.token,0),a=e.tokenValue,d=nt(e,t,0)):(ee(e,t,16,s,0),d=u),n&&ue(e,t,n,a,8,0),r.push(re(e,t,i,l,c,{type:"ImportSpecifier",local:d,imported:u})),1074790415!==e.token&&K(e,t,18)}return K(e,t,1074790415),r}function Ne(e,t,n,o,r){let s=$e(e,t,re(e,t,n,o,r,{type:"Identifier",name:"import"}),n,o,r);return s=ze(e,t,s,0,0,n,o,r),s=Ge(e,t,0,0,n,o,r,s),xe(e,t,s,n,o,r)}function Ie(e,t,n,o,r){let s=Ye(e,t,0,n,o,r);return s=ze(e,t,s,0,0,n,o,r),xe(e,t,s,n,o,r)}function Ue(e,t,n,o,r,s,a,i){let l=_e(e,t,2,0,n,o,r,1,s,a,i);return l=ze(e,t,l,r,0,s,a,i),Ge(e,t,r,0,s,a,i,l)}function Be(e,t,n,o,r,s,a){const i=[a];for(;W(e,32768|t,18);)i.push(Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos));return re(e,t,o,r,s,{type:"SequenceExpression",expressions:i})}function Oe(e,t,n,o,r,s,a){const i=Ue(e,t,o,0,n,r,s,a);return 18===e.token?Be(e,t,n,r,s,a,i):i}function Ge(e,t,n,r,s,a,i,l){const{token:c}=e;if(4194304==(4194304&c)){2&e.assignable&&o(e,24),(!r&&1077936157===c&&"ArrayExpression"===l.type||"ObjectExpression"===l.type)&&Q(e,l),F(e,32768|t);const u=Ue(e,t,1,1,n,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,re(e,t,s,a,i,r?{type:"AssignmentPattern",left:l,right:u}:{type:"AssignmentExpression",left:l,operator:T[255&c],right:u})}return 8454144==(8454144&c)&&(l=He(e,t,n,s,a,i,4,c,l)),W(e,32768|t,22)&&(l=je(e,t,l,s,a,i)),l}function Fe(e,t,n,o,r,s,a,i){const{token:l}=e;F(e,32768|t);const c=Ue(e,t,1,1,n,e.tokenPos,e.linePos,e.colPos);return i=re(e,t,r,s,a,o?{type:"AssignmentPattern",left:i,right:c}:{type:"AssignmentExpression",left:i,operator:T[255&l],right:c}),e.assignable=2,i}function je(e,t,n,o,r,s){const a=Ue(e,134217728^(134217728|t),1,0,0,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,21),e.assignable=1;const i=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,re(e,t,o,r,s,{type:"ConditionalExpression",test:n,consequent:a,alternate:i})}function He(e,t,n,r,s,a,i,l,c){const u=8738868&-((134217728&t)>0);let d,p;for(e.assignable=2;8454144&e.token&&(d=e.token,p=3840&d,(524288&d&&268435456&l||524288&l&&268435456&d)&&o(e,159),!(p+((8457273===d)<<8)-((u===d)<<12)<=i));)F(e,32768|t),c=re(e,t,r,s,a,{type:524288&d||268435456&d?"LogicalExpression":"BinaryExpression",left:c,right:He(e,t,n,e.tokenPos,e.linePos,e.colPos,p,d,Me(e,t,0,n,1,e.tokenPos,e.linePos,e.colPos)),operator:T[255&d]});return 1077936157===e.token&&o(e,24),c}function Je(e,t,n,a,i,l){const{tokenPos:c,linePos:u,colPos:d}=e;K(e,32768|t,2162700);const p=[],f=t;if(1074790415!==e.token){for(;134283267===e.token;){const{index:n,tokenPos:o,tokenValue:r,token:a}=e,i=ot(e,t);Y(e,n,o,r)&&(t|=1024,128&e.flags&&s(e.index,e.line,e.tokenPos,63),64&e.flags&&s(e.index,e.line,e.tokenPos,8)),p.push(qe(e,t,i,a,o,e.linePos,e.colPos))}1024&t&&(i&&(537079808==(537079808&i)&&o(e,115),36864==(36864&i)&&o(e,38)),512&e.flags&&o(e,115),256&e.flags&&o(e,114)),64&t&&n&&void 0!==l&&(1024&f)<1&&(8192&t)<1&&r(l)}for(e.flags=832^(832|e.flags),e.destructible=256^(256|e.destructible);1074790415!==e.token;)p.push(he(e,t,n,4,{}));return K(e,24&a?32768|t:t,1074790415),e.flags&=-193,1077936157===e.token&&o(e,24),re(e,t,c,u,d,{type:"BlockStatement",body:p})}function Me(e,t,n,o,r,s,a,i){return ze(e,t,_e(e,t,2,0,n,0,o,r,s,a,i),o,0,s,a,i)}function ze(e,t,n,r,s,a,i,l){if(33619968==(33619968&e.token)&&(1&e.flags)<1)n=function(e,t,n,r,s,a){2&e.assignable&&o(e,52);const{token:i}=e;return F(e,t),e.assignable=2,re(e,t,r,s,a,{type:"UpdateExpression",argument:n,operator:T[255&i],prefix:!1})}(e,t,n,a,i,l);else if(67108864==(67108864&e.token)){switch(t=134225920^(134225920|t),e.token){case 67108877:F(e,1073741824|t),e.assignable=1;n=re(e,t,a,i,l,{type:"MemberExpression",object:n,computed:!1,property:Xe(e,t)});break;case 69271571:{let o=!1;2048==(2048&e.flags)&&(o=!0,e.flags=2048^(2048|e.flags)),F(e,32768|t);const{tokenPos:s,linePos:c,colPos:u}=e,d=Oe(e,t,r,1,s,c,u);K(e,t,20),e.assignable=1,n=re(e,t,a,i,l,{type:"MemberExpression",object:n,computed:!0,property:d}),o&&(e.flags|=2048);break}case 67174411:{if(1024==(1024&e.flags))return e.flags=1024^(1024|e.flags),n;let o=!1;2048==(2048&e.flags)&&(o=!0,e.flags=2048^(2048|e.flags));const s=tt(e,t,r);e.assignable=2,n=re(e,t,a,i,l,{type:"CallExpression",callee:n,arguments:s}),o&&(e.flags|=2048);break}case 67108991:F(e,t),e.flags|=2048,e.assignable=2,n=function(e,t,n,r,s,a){let i,l=!1;69271571!==e.token&&67174411!==e.token||2048==(2048&e.flags)&&(l=!0,e.flags=2048^(2048|e.flags));if(69271571===e.token){F(e,32768|t);const{tokenPos:o,linePos:l,colPos:c}=e,u=Oe(e,t,0,1,o,l,c);K(e,t,20),e.assignable=2,i=re(e,t,r,s,a,{type:"MemberExpression",object:n,computed:!0,optional:!0,property:u})}else if(67174411===e.token){const o=tt(e,t,0);e.assignable=2,i=re(e,t,r,s,a,{type:"CallExpression",callee:n,arguments:o,optional:!0})}else{(143360&e.token)<1&&o(e,154);const l=nt(e,t,0);e.assignable=2,i=re(e,t,r,s,a,{type:"MemberExpression",object:n,computed:!1,optional:!0,property:l})}l&&(e.flags|=2048);return i}(e,t,n,a,i,l);break;default:2048==(2048&e.flags)&&o(e,160),e.assignable=2,n=re(e,t,a,i,l,{type:"TaggedTemplateExpression",tag:n,quasi:67174408===e.token?Ke(e,65536|t):We(e,t,e.tokenPos,e.linePos,e.colPos)})}n=ze(e,t,n,0,1,a,i,l)}return 0===s&&2048==(2048&e.flags)&&(e.flags=2048^(2048|e.flags),n=re(e,t,a,i,l,{type:"ChainExpression",expression:n})),n}function Xe(e,t){return(143360&e.token)<1&&131!==e.token&&o(e,154),1&t&&131===e.token?Ct(e,t,e.tokenPos,e.linePos,e.colPos):nt(e,t,0)}function _e(e,t,n,r,a,i,l,c,u,d,p){if(143360==(143360&e.token)){switch(e.token){case 209008:return function(e,t,n,r,a,i,l){if(r&&(e.destructible|=128),4194304&t||2048&t&&8192&t){n&&o(e,0),8388608&t&&s(e.index,e.line,e.index,29),F(e,32768|t);const r=Me(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 8457273===e.token&&o(e,31),e.assignable=2,re(e,t,a,i,l,{type:"AwaitExpression",argument:r})}return 2048&t&&o(e,95),pt(e,t,a,i,l)}(e,t,r,l,u,d,p);case 241773:return function(e,t,n,r,s,a,i){if(n&&(e.destructible|=256),2097152&t){F(e,32768|t),8388608&t&&o(e,30),r||o(e,24),22===e.token&&o(e,120);let n=null,l=!1;return(1&e.flags)<1&&(l=W(e,32768|t,8457014),(77824&e.token||l)&&(n=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos))),e.assignable=2,re(e,t,s,a,i,{type:"YieldExpression",argument:n,delegate:l})}return 1024&t&&o(e,94,"yield"),pt(e,t,s,a,i)}(e,t,l,a,u,d,p);case 209007:return function(e,t,n,r,s,a,i,l,c,u){const{token:d}=e,p=nt(e,t,a),{flags:f}=e;if((1&f)<1){if(86106===e.token)return st(e,t,1,n,l,c,u);if(143360==(143360&e.token))return r||o(e,0),ht(e,t,s,l,c,u)}return i||67174411!==e.token?10===e.token?(ge(e,t,d,1),i&&o(e,48),ft(e,t,e.tokenValue,p,i,s,0,l,c,u)):p:Pt(e,t,p,s,1,0,f,l,c,u)}(e,t,l,c,a,i,r,u,d,p)}const{token:f,tokenValue:k}=e,g=nt(e,65536|t,i);return 10===e.token?(c||o(e,0),ge(e,t,f,1),ft(e,t,k,g,r,a,0,u,d,p)):(16384&t&&537079928===f&&o(e,126),241739===f&&(1024&t&&o(e,109),24&n&&o(e,97)),e.assignable=1024&t&&537079808==(537079808&f)?2:1,g)}if(134217728==(134217728&e.token))return ot(e,t);switch(e.token){case 33619995:case 33619996:return function(e,t,n,r,s,a,i){n&&o(e,53),r||o(e,0);const{token:l}=e;F(e,32768|t);const c=Me(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 2&e.assignable&&o(e,52),e.assignable=2,re(e,t,s,a,i,{type:"UpdateExpression",argument:c,operator:T[255&l],prefix:!0})}(e,t,r,c,u,d,p);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return function(e,t,n,r,s,a,i){n||o(e,0);const l=e.token;F(e,32768|t);const c=Me(e,t,0,i,1,e.tokenPos,e.linePos,e.colPos);var u;return 8457273===e.token&&o(e,31),1024&t&&16863278===l&&("Identifier"===c.type?o(e,117):(u=c).property&&"PrivateIdentifier"===u.property.type&&o(e,123)),e.assignable=2,re(e,t,r,s,a,{type:"UnaryExpression",operator:T[255&l],argument:c,prefix:!0})}(e,t,c,u,d,p,l);case 86106:return st(e,t,0,l,u,d,p);case 2162700:return function(e,t,n,r,s,a,i){const l=ut(e,t,void 0,n,r,0,2,0,s,a,i);256&t&&64&e.destructible&&o(e,60);8&e.destructible&&o(e,59);return l}(e,t,a?0:1,l,u,d,p);case 69271571:return function(e,t,n,r,s,a,i){const l=at(e,t,void 0,n,r,0,2,0,s,a,i);256&t&&64&e.destructible&&o(e,60);8&e.destructible&&o(e,59);return l}(e,t,a?0:1,l,u,d,p);case 67174411:return function(e,t,n,r,s,a,i,l){e.flags=128^(128|e.flags);const{tokenPos:c,linePos:u,colPos:d}=e;F(e,1073774592|t);const p=64&t?le({parent:void 0,type:2},1024):void 0;if(W(e,t=134217728^(134217728|t),16))return kt(e,t,p,[],n,0,a,i,l);let f,k=0;e.destructible&=-385;let g=[],m=0,b=0;const{tokenPos:h,linePos:P,colPos:y}=e;e.assignable=1;for(;16!==e.token;){const{token:n,tokenPos:a,linePos:i,colPos:l}=e;if(143360&n)p&&ue(e,t,p,e.tokenValue,1,0),f=_e(e,t,r,0,1,0,1,1,a,i,l),16===e.token||18===e.token?2&e.assignable?(k|=16,b=1):537079808!=(537079808&n)&&36864!=(36864&n)||(b=1):(1077936157===e.token?b=1:k|=16,f=ze(e,t,f,1,0,a,i,l),16!==e.token&&18!==e.token&&(f=Ge(e,t,1,0,a,i,l,f)));else{if(2097152!=(2097152&n)){if(14===n){f=lt(e,t,p,16,r,s,0,1,0,a,i,l),16&e.destructible&&o(e,71),b=1,!m||16!==e.token&&18!==e.token||g.push(f),k|=8;break}if(k|=16,f=Ue(e,t,1,0,1,a,i,l),!m||16!==e.token&&18!==e.token||g.push(f),18===e.token&&(m||(m=1,g=[f])),m){for(;W(e,32768|t,18);)g.push(Ue(e,t,1,0,1,e.tokenPos,e.linePos,e.colPos));e.assignable=2,f=re(e,t,h,P,y,{type:"SequenceExpression",expressions:g})}return K(e,t,16),e.destructible=k,f}f=2162700===n?ut(e,1073741824|t,p,0,1,0,r,s,a,i,l):at(e,1073741824|t,p,0,1,0,r,s,a,i,l),k|=e.destructible,b=1,e.assignable=2,16!==e.token&&18!==e.token&&(8&k&&o(e,118),f=ze(e,t,f,0,0,a,i,l),k|=16,16!==e.token&&18!==e.token&&(f=Ge(e,t,0,0,a,i,l,f)))}if(!m||16!==e.token&&18!==e.token||g.push(f),!W(e,32768|t,18))break;if(m||(m=1,g=[f]),16===e.token){k|=8;break}}m&&(e.assignable=2,f=re(e,t,h,P,y,{type:"SequenceExpression",expressions:g}));K(e,t,16),16&k&&8&k&&o(e,145);if(k|=256&e.destructible?256:0|128&e.destructible?128:0,10===e.token)return 48&k&&o(e,46),4196352&t&&128&k&&o(e,29),2098176&t&&256&k&&o(e,30),b&&(e.flags|=128),kt(e,t,p,m?g:[f],n,0,a,i,l);8&k&&o(e,139);return e.destructible=256^(256|e.destructible)|k,128&t?re(e,t,c,u,d,{type:"ParenthesizedExpression",expression:f}):f}(e,t,a,1,0,u,d,p);case 86021:case 86022:case 86023:return function(e,t,n,o,r){const s=T[255&e.token],a=86023===e.token?null:"true"===s;return F(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:a,raw:s}:{type:"Literal",value:a})}(e,t,u,d,p);case 86113:return function(e,t){const{tokenPos:n,linePos:o,colPos:r}=e;return F(e,t),e.assignable=2,re(e,t,n,o,r,{type:"ThisExpression"})}(e,t);case 65540:return function(e,t,n,o,r){const{tokenRaw:s,tokenRegExp:a,tokenValue:i}=e;return F(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:i,regex:a,raw:s}:{type:"Literal",value:i,regex:a})}(e,t,u,d,p);case 133:case 86096:return function(e,t,n,r,s,a){let i=null,l=null;const c=xt(e,t=16777216^(16778240|t));c.length&&(r=e.tokenPos,s=e.linePos,a=e.colPos);F(e,t),4096&e.token&&20567!==e.token&&(ne(e,t,e.token)&&o(e,114),537079808==(537079808&e.token)&&o(e,115),i=nt(e,t,0));let u=t;W(e,32768|t,20567)?(l=Me(e,t,0,n,0,e.tokenPos,e.linePos,e.colPos),u|=524288):u=524288^(524288|u);const d=wt(e,u,t,void 0,2,0,n);return e.assignable=2,re(e,t,r,s,a,1&t?{type:"ClassExpression",id:i,superClass:l,decorators:c,body:d}:{type:"ClassExpression",id:i,superClass:l,body:d})}(e,t,l,u,d,p);case 86111:return function(e,t,n,r,s){switch(F(e,t),e.token){case 67108991:o(e,161);case 67174411:(524288&t)<1&&o(e,26),16384&t&&o(e,143),e.assignable=2;break;case 69271571:case 67108877:(262144&t)<1&&o(e,27),16384&t&&o(e,143),e.assignable=1;break;default:o(e,28,"super")}return re(e,t,n,r,s,{type:"Super"})}(e,t,u,d,p);case 67174409:return We(e,t,u,d,p);case 67174408:return Ke(e,t);case 86109:return function(e,t,n,r,s,a){const i=nt(e,32768|t,0),{tokenPos:l,linePos:c,colPos:u}=e;if(W(e,t,67108877)){if(67108864&t&&143494===e.token)return e.assignable=2,function(e,t,n,o,r,s){const a=nt(e,t,0);return re(e,t,o,r,s,{type:"MetaProperty",meta:n,property:a})}(e,t,i,r,s,a);o(e,91)}e.assignable=2,16842752==(16842752&e.token)&&o(e,62,T[255&e.token]);const d=_e(e,t,2,1,0,0,n,1,l,c,u);t=134217728^(134217728|t),67108991===e.token&&o(e,162);const p=bt(e,t,d,n,l,c,u);return e.assignable=2,re(e,t,r,s,a,{type:"NewExpression",callee:p,arguments:67174411===e.token?tt(e,t,n):[]})}(e,t,l,u,d,p);case 134283389:return Ze(e,t,u,d,p);case 131:return Ct(e,t,u,d,p);case 86108:return function(e,t,n,r,s,a,i){let l=nt(e,t,0);if(67108877===e.token)return $e(e,t,l,s,a,i);n&&o(e,137);return l=Ye(e,t,r,s,a,i),e.assignable=2,ze(e,t,l,r,0,s,a,i)}(e,t,r,l,u,d,p);case 8456258:if(16&t)return Dt(e,t,1,u,d,p);default:if(ke(t,e.token))return pt(e,t,u,d,p);o(e,28,T[255&e.token])}}function $e(e,t,n,r,s,a){return 0==(2048&t)&&o(e,163),F(e,t),143495!==e.token&&"meta"!==e.tokenValue&&o(e,28,T[255&e.token]),e.assignable=2,re(e,t,r,s,a,{type:"MetaProperty",meta:n,property:nt(e,t,0)})}function Ye(e,t,n,r,s,a){K(e,32768|t,67174411),14===e.token&&o(e,138);const i=Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos);return K(e,t,16),re(e,t,r,s,a,{type:"ImportExpression",source:i})}function Ze(e,t,n,o,r){const{tokenRaw:s,tokenValue:a}=e;return F(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:a,bigint:s.slice(0,-1),raw:s}:{type:"Literal",value:a,bigint:s.slice(0,-1)})}function We(e,t,n,o,r){e.assignable=2;const{tokenValue:s,tokenRaw:a,tokenPos:i,linePos:l,colPos:c}=e;K(e,t,67174409);return re(e,t,n,o,r,{type:"TemplateLiteral",expressions:[],quasis:[Qe(e,t,s,a,i,l,c,!0)]})}function Ke(e,t){t=134217728^(134217728|t);const{tokenValue:n,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;K(e,32768|t,67174408);const l=[Qe(e,t,n,r,s,a,i,!1)],c=[Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos)];for(1074790415!==e.token&&o(e,80);67174409!==(e.token=D(e,t));){const{tokenValue:n,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;K(e,32768|t,67174408),l.push(Qe(e,t,n,r,s,a,i,!1)),c.push(Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos)),1074790415!==e.token&&o(e,80)}{const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;K(e,t,67174409),l.push(Qe(e,t,n,o,r,s,a,!0))}return re(e,t,s,a,i,{type:"TemplateLiteral",expressions:c,quasis:l})}function Qe(e,t,n,o,r,s,a,i){const l=re(e,t,r,s,a,{type:"TemplateElement",value:{cooked:n,raw:o},tail:i}),c=i?1:2;return 2&t&&(l.start+=1,l.range[0]+=1,l.end-=c,l.range[1]-=c),4&t&&(l.loc.start.column+=1,l.loc.end.column-=c),l}function et(e,t,n,o,r){K(e,32768|(t=134217728^(134217728|t)),14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=1,re(e,t,n,o,r,{type:"SpreadElement",argument:s})}function tt(e,t,n){F(e,32768|t);const o=[];if(16===e.token)return F(e,t),o;for(;16!==e.token&&(14===e.token?o.push(et(e,t,e.tokenPos,e.linePos,e.colPos)):o.push(Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos)),18===e.token)&&(F(e,32768|t),16!==e.token););return K(e,t,16),o}function nt(e,t,n){const{tokenValue:o,tokenPos:r,linePos:s,colPos:a}=e;return F(e,t),re(e,t,r,s,a,268435456&t?{type:"Identifier",name:o,pattern:1===n}:{type:"Identifier",name:o})}function ot(e,t){const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;return 134283389===e.token?Ze(e,t,r,s,a):(F(e,t),e.assignable=2,re(e,t,r,s,a,512&t?{type:"Literal",value:n,raw:o}:{type:"Literal",value:n}))}function rt(e,t,n,r,s,a,i,l,c,u){F(e,32768|t);const d=s?Z(e,t,8457014):0;let p,f=null,k=n?{parent:void 0,type:2}:void 0;if(67174411===e.token)(1&a)<1&&o(e,37,"Function");else{const s=4&r&&((8192&t)<1||(2048&t)<1)?4:64;te(e,t|(3072&t)<<11,e.token),n&&(4&s?de(e,t,n,e.tokenValue,s):ue(e,t,n,e.tokenValue,s,r),k=le(k,256),a&&2&a&&pe(e,e.tokenValue)),p=e.token,143360&e.token?f=nt(e,t,0):o(e,28,T[255&e.token])}t=32243712^(32243712|t)|67108864|2*i+d<<21|(d?0:1073741824),n&&(k=le(k,512));return re(e,t,l,c,u,{type:"FunctionDeclaration",id:f,params:mt(e,8388608|t,k,0,1),body:Je(e,143360^(143360|t),n?le(k,128):k,8,p,n?k.scopeError:void 0),async:1===i,generator:1===d})}function st(e,t,n,o,r,s,a){F(e,32768|t);const i=Z(e,t,8457014),l=2*n+i<<21;let c,u=null,d=64&t?{parent:void 0,type:2}:void 0;(176128&e.token)>0&&(te(e,32243712^(32243712|t)|l,e.token),d&&(d=le(d,256)),c=e.token,u=nt(e,t,0)),t=32243712^(32243712|t)|67108864|l|(i?0:1073741824),d&&(d=le(d,512));const p=mt(e,8388608|t,d,o,1),f=Je(e,-134377473&t,d?le(d,128):d,0,c,void 0);return e.assignable=2,re(e,t,r,s,a,{type:"FunctionExpression",id:u,params:p,body:f,async:1===n,generator:1===i})}function at(e,t,n,r,s,a,i,l,c,u,d){F(e,32768|t);const p=[];let f=0;for(t=134217728^(134217728|t);20!==e.token;)if(W(e,32768|t,18))p.push(null);else{let r;const{token:c,tokenPos:u,linePos:d,colPos:k,tokenValue:g}=e;if(143360&c)if(r=_e(e,t,i,0,1,0,s,1,u,d,k),1077936157===e.token){2&e.assignable&&o(e,24),F(e,32768|t),n&&ce(e,t,n,g,i,l);const c=Ue(e,t,1,1,s,e.tokenPos,e.linePos,e.colPos);r=re(e,t,u,d,k,a?{type:"AssignmentPattern",left:r,right:c}:{type:"AssignmentExpression",operator:"=",left:r,right:c}),f|=256&e.destructible?256:0|128&e.destructible?128:0}else 18===e.token||20===e.token?(2&e.assignable?f|=16:n&&ce(e,t,n,g,i,l),f|=256&e.destructible?256:0|128&e.destructible?128:0):(f|=1&i?32:(2&i)<1?16:0,r=ze(e,t,r,s,0,u,d,k),18!==e.token&&20!==e.token?(1077936157!==e.token&&(f|=16),r=Ge(e,t,s,a,u,d,k,r)):1077936157!==e.token&&(f|=2&e.assignable?16:32));else 2097152&c?(r=2162700===e.token?ut(e,t,n,0,s,a,i,l,u,d,k):at(e,t,n,0,s,a,i,l,u,d,k),f|=e.destructible,e.assignable=16&e.destructible?2:1,18===e.token||20===e.token?2&e.assignable&&(f|=16):8&e.destructible?o(e,68):(r=ze(e,t,r,s,0,u,d,k),f=2&e.assignable?16:0,18!==e.token&&20!==e.token?r=Ge(e,t,s,a,u,d,k,r):1077936157!==e.token&&(f|=2&e.assignable?16:32))):14===c?(r=lt(e,t,n,20,i,l,0,s,a,u,d,k),f|=e.destructible,18!==e.token&&20!==e.token&&o(e,28,T[255&e.token])):(r=Me(e,t,1,0,1,u,d,k),18!==e.token&&20!==e.token?(r=Ge(e,t,s,a,u,d,k,r),(3&i)<1&&67174411===c&&(f|=16)):2&e.assignable?f|=16:67174411===c&&(f|=1&e.assignable&&3&i?32:16));if(p.push(r),!W(e,32768|t,18))break;if(20===e.token)break}K(e,t,20);const k=re(e,t,c,u,d,{type:a?"ArrayPattern":"ArrayExpression",elements:p});return!r&&4194304&e.token?it(e,t,f,s,a,c,u,d,k):(e.destructible=f,k)}function it(e,t,n,r,s,a,i,l,c){1077936157!==e.token&&o(e,24),F(e,32768|t),16&n&&o(e,24),s||Q(e,c);const{tokenPos:u,linePos:d,colPos:p}=e,f=Ue(e,t,1,1,r,u,d,p);return e.destructible=72^(72|n)|(128&e.destructible?128:0)|(256&e.destructible?256:0),re(e,t,a,i,l,s?{type:"AssignmentPattern",left:c,right:f}:{type:"AssignmentExpression",left:c,operator:"=",right:f})}function lt(e,t,n,r,s,a,i,l,c,u,d,p){F(e,32768|t);let f=null,k=0,{token:g,tokenValue:m,tokenPos:b,linePos:h,colPos:P}=e;if(143360&g)e.assignable=1,f=_e(e,t,s,0,1,0,l,1,b,h,P),g=e.token,f=ze(e,t,f,l,0,b,h,P),18!==e.token&&e.token!==r&&(2&e.assignable&&1077936157===e.token&&o(e,68),k|=16,f=Ge(e,t,l,c,b,h,P,f)),2&e.assignable?k|=16:g===r||18===g?n&&ce(e,t,n,m,s,a):k|=32,k|=128&e.destructible?128:0;else if(g===r)o(e,39);else{if(!(2097152&g)){k|=32,f=Me(e,t,1,l,1,e.tokenPos,e.linePos,e.colPos);const{token:n,tokenPos:s,linePos:a,colPos:i}=e;return 1077936157===n&&n!==r&&18!==n?(2&e.assignable&&o(e,24),f=Ge(e,t,l,c,s,a,i,f),k|=16):(18===n?k|=16:n!==r&&(f=Ge(e,t,l,c,s,a,i,f)),k|=1&e.assignable?32:16),e.destructible=k,e.token!==r&&18!==e.token&&o(e,155),re(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}f=2162700===e.token?ut(e,t,n,1,l,c,s,a,b,h,P):at(e,t,n,1,l,c,s,a,b,h,P),g=e.token,1077936157!==g&&g!==r&&18!==g?(8&e.destructible&&o(e,68),f=ze(e,t,f,l,0,b,h,P),k|=2&e.assignable?16:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),f=Ge(e,t,l,c,b,h,P,f)):(8454144==(8454144&e.token)&&(f=He(e,t,1,b,h,P,4,g,f)),W(e,32768|t,22)&&(f=je(e,t,f,b,h,P)),k|=2&e.assignable?16:32)):k|=1074790415===r&&1077936157!==g?16:e.destructible}if(e.token!==r)if(1&s&&(k|=i?16:32),W(e,32768|t,1077936157)){16&k&&o(e,24),Q(e,f);const n=Ue(e,t,1,1,l,e.tokenPos,e.linePos,e.colPos);f=re(e,t,b,h,P,c?{type:"AssignmentPattern",left:f,right:n}:{type:"AssignmentExpression",left:f,operator:"=",right:n}),k=16}else k|=16;return e.destructible=k,re(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}function ct(e,t,n,s,a,i,l){const c=(64&n)<1?31981568:14680064;let u=64&(t=(t|c)^c|(88&n)<<18|100925440)?le({parent:void 0,type:2},512):void 0;const d=function(e,t,n,s,a,i){K(e,t,67174411);const l=[];if(e.flags=128^(128|e.flags),16===e.token)return 512&s&&o(e,35,"Setter","one",""),F(e,t),l;256&s&&o(e,35,"Getter","no","s");512&s&&14===e.token&&o(e,36);t=134217728^(134217728|t);let c=0,u=0;for(;18!==e.token;){let r=null;const{tokenPos:d,linePos:p,colPos:f}=e;if(143360&e.token?((1024&t)<1&&(36864==(36864&e.token)&&(e.flags|=256),537079808==(537079808&e.token)&&(e.flags|=512)),r=St(e,t,n,1|s,0,d,p,f)):(2162700===e.token?r=ut(e,t,n,1,i,1,a,0,d,p,f):69271571===e.token?r=at(e,t,n,1,i,1,a,0,d,p,f):14===e.token&&(r=lt(e,t,n,16,a,0,0,i,1,d,p,f)),u=1,48&e.destructible&&o(e,47)),1077936157===e.token){F(e,32768|t),u=1;r=re(e,t,d,p,f,{type:"AssignmentPattern",left:r,right:Ue(e,t,1,1,0,e.tokenPos,e.linePos,e.colPos)})}if(c++,l.push(r),!W(e,t,18))break;if(16===e.token)break}512&s&&1!==c&&o(e,35,"Setter","one","");n&&void 0!==n.scopeError&&r(n.scopeError);u&&(e.flags|=128);return K(e,t,16),l}(e,8388608|t,u,n,1,s);u&&(u=le(u,128));return re(e,t,a,i,l,{type:"FunctionExpression",params:d,body:Je(e,-134230017&t,u,0,void 0,void 0),async:(16&n)>0,generator:(8&n)>0,id:null})}function ut(e,t,n,r,a,i,l,c,u,d,p){F(e,t);const f=[];let k=0,g=0;for(t=134217728^(134217728|t);1074790415!==e.token;){const{token:r,tokenValue:u,linePos:d,colPos:p,tokenPos:m}=e;if(14===r)f.push(lt(e,t,n,1074790415,l,c,0,a,i,m,d,p));else{let b,h=0,P=null;const y=e.token;if(143360&e.token||121===e.token)if(P=nt(e,t,0),18===e.token||1074790415===e.token||1077936157===e.token)if(h|=4,1024&t&&537079808==(537079808&r)?k|=16:ee(e,t,l,r,0),n&&ce(e,t,n,u,l,c),W(e,32768|t,1077936157)){k|=8;const n=Ue(e,t,1,1,a,e.tokenPos,e.linePos,e.colPos);k|=256&e.destructible?256:0|128&e.destructible?128:0,b=re(e,t,m,d,p,{type:"AssignmentPattern",left:-2147483648&t?Object.assign({},P):P,right:n})}else k|=(209008===r?128:0)|(121===r?16:0),b=-2147483648&t?Object.assign({},P):P;else if(W(e,32768|t,21)){const{tokenPos:s,linePos:d,colPos:p}=e;if("__proto__"===u&&g++,143360&e.token){const o=e.token,r=e.tokenValue;k|=121===y?16:0,b=_e(e,t,l,0,1,0,a,1,s,d,p);const{token:u}=e;b=ze(e,t,b,a,0,s,d,p),18===e.token||1074790415===e.token?1077936157===u||1074790415===u||18===u?(k|=128&e.destructible?128:0,2&e.assignable?k|=16:n&&143360==(143360&o)&&ce(e,t,n,r,l,c)):k|=1&e.assignable?32:16:4194304==(4194304&e.token)?(2&e.assignable?k|=16:1077936157!==u?k|=32:n&&ce(e,t,n,r,l,c),b=Ge(e,t,a,i,s,d,p,b)):(k|=16,8454144==(8454144&e.token)&&(b=He(e,t,1,s,d,p,4,u,b)),W(e,32768|t,22)&&(b=je(e,t,b,s,d,p)))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,s,d,p):ut(e,t,n,0,a,i,l,c,s,d,p),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&e.destructible?o(e,68):(b=ze(e,t,b,a,0,s,d,p),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=Fe(e,t,a,i,s,d,p,b):(8454144==(8454144&e.token)&&(b=He(e,t,1,s,d,p,4,r,b)),W(e,32768|t,22)&&(b=je(e,t,b,s,d,p)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,a,1,s,d,p),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,s,d,p),k=2&e.assignable?16:0,18!==e.token&&1074790415!==r&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,s,d,p,b))))}else 69271571===e.token?(k|=16,209007===r&&(h|=16),h|=2|(12402===r?256:12403===r?512:1),P=dt(e,t,a),k|=e.assignable,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):143360&e.token?(k|=16,121===r&&o(e,92),209007===r&&(1&e.flags&&o(e,128),h|=16),P=nt(e,t,0),h|=12402===r?256:12403===r?512:1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):67174411===e.token?(k|=16,h|=1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):8457014===e.token?(k|=16,12402===r||12403===r?o(e,40):143483===r&&o(e,92),F(e,t),h|=9|(209007===r?16:0),143360&e.token?P=nt(e,t,0):134217728==(134217728&e.token)?P=ot(e,t):69271571===e.token?(h|=2,P=dt(e,t,a),k|=e.assignable):o(e,28,T[255&e.token]),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):134217728==(134217728&e.token)?(209007===r&&(h|=16),h|=12402===r?256:12403===r?512:1,k|=16,P=ot(e,t),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):o(e,129);else if(134217728==(134217728&e.token))if(P=ot(e,t),21===e.token){K(e,32768|t,21);const{tokenPos:o,linePos:s,colPos:d}=e;if("__proto__"===u&&g++,143360&e.token){b=_e(e,t,l,0,1,0,a,1,o,s,d);const{token:r,tokenValue:u}=e;b=ze(e,t,b,a,0,o,s,d),18===e.token||1074790415===e.token?1077936157===r||1074790415===r||18===r?2&e.assignable?k|=16:n&&ce(e,t,n,u,l,c):k|=1&e.assignable?32:16:1077936157===e.token?(2&e.assignable&&(k|=16),b=Ge(e,t,a,i,o,s,d,b)):(k|=16,b=Ge(e,t,a,i,o,s,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,o,s,d):ut(e,t,n,0,a,i,l,c,o,s,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8!=(8&e.destructible)&&(b=ze(e,t,b,a,0,o,s,d),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=Fe(e,t,a,i,o,s,d,b):(8454144==(8454144&e.token)&&(b=He(e,t,1,o,s,d,4,r,b)),W(e,32768|t,22)&&(b=je(e,t,b,o,s,d)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,0,1,o,s,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,o,s,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,o,s,d,b))))}else 67174411===e.token?(h|=1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos),k=16|e.assignable):o(e,130);else if(69271571===e.token)if(P=dt(e,t,a),k|=256&e.destructible?256:0,h|=2,21===e.token){F(e,32768|t);const{tokenPos:s,linePos:u,colPos:d,tokenValue:p,token:f}=e;if(143360&e.token){b=_e(e,t,l,0,1,0,a,1,s,u,d);const{token:o}=e;b=ze(e,t,b,a,0,s,u,d),4194304==(4194304&e.token)?(k|=2&e.assignable?16:1077936157===o?0:32,b=Fe(e,t,a,i,s,u,d,b)):18===e.token||1074790415===e.token?1077936157===o||1074790415===o||18===o?2&e.assignable?k|=16:n&&143360==(143360&f)&&ce(e,t,n,p,l,c):k|=1&e.assignable?32:16:(k|=16,b=Ge(e,t,a,i,s,u,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,s,u,d):ut(e,t,n,0,a,i,l,c,s,u,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&k?o(e,59):(b=ze(e,t,b,a,0,s,u,d),k=2&e.assignable?16|k:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),b=Fe(e,t,a,i,s,u,d,b)):(8454144==(8454144&e.token)&&(b=He(e,t,1,s,u,d,4,r,b)),W(e,32768|t,22)&&(b=je(e,t,b,s,u,d)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,0,1,s,u,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,s,u,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,s,u,d,b))))}else 67174411===e.token?(h|=1,b=ct(e,t,h,a,e.tokenPos,d,p),k=16):o(e,41);else if(8457014===r)if(K(e,32768|t,8457014),h|=8,143360&e.token){const{token:n,line:o,index:r}=e;P=nt(e,t,0),h|=1,67174411===e.token?(k|=16,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):s(r,o,r,209007===n?43:12402===n||12403===e.token?42:44,T[255&n])}else 134217728==(134217728&e.token)?(k|=16,P=ot(e,t),h|=1,b=ct(e,t,h,a,m,d,p)):69271571===e.token?(k|=16,h|=3,P=dt(e,t,a),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):o(e,122);else o(e,28,T[255&r]);k|=128&e.destructible?128:0,e.destructible=k,f.push(re(e,t,m,d,p,{type:"Property",key:P,value:b,kind:768&h?512&h?"set":"get":"init",computed:(2&h)>0,method:(1&h)>0,shorthand:(4&h)>0}))}if(k|=e.destructible,18!==e.token)break;F(e,t)}K(e,t,1074790415),g>1&&(k|=64);const m=re(e,t,u,d,p,{type:i?"ObjectPattern":"ObjectExpression",properties:f});return!r&&4194304&e.token?it(e,t,k,a,i,u,d,p,m):(e.destructible=k,m)}function dt(e,t,n){F(e,32768|t);const o=Ue(e,134217728^(134217728|t),1,0,n,e.tokenPos,e.linePos,e.colPos);return K(e,t,20),o}function pt(e,t,n,o,r){const{tokenValue:s}=e,a=nt(e,t,0);if(e.assignable=1,10===e.token){let i;return 64&t&&(i=ae(e,t,s)),e.flags=128^(128|e.flags),gt(e,t,i,[a],0,n,o,r)}return a}function ft(e,t,n,r,s,a,i,l,c,u){a||o(e,54),s&&o(e,48),e.flags&=-129;return gt(e,t,64&t?ae(e,t,n):void 0,[r],i,l,c,u)}function kt(e,t,n,r,s,a,i,l,c){s||o(e,54);for(let t=0;t0&&"constructor"===e.tokenValue&&o(e,106),1074790415===e.token&&o(e,105),W(e,t,1074790417)?a>0&&o(e,116):d.push(qt(e,t,r,n,s,p,0,i,e.tokenPos,e.linePos,e.colPos))}return K(e,8&a?32768|t:t,1074790415),re(e,t,l,c,u,{type:"ClassBody",body:d})}function qt(e,t,n,r,s,a,i,l,c,u,d){let p=i?32:0,f=null;const{token:k,tokenPos:g,linePos:m,colPos:b}=e;if(176128&k)switch(f=nt(e,t,0),k){case 36972:if(!i&&67174411!==e.token)return qt(e,t,n,r,s,a,1,l,c,u,d);break;case 209007:if(67174411!==e.token&&(1&e.flags)<1){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=16|(Z(e,t,8457014)?8:0)}break;case 12402:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=256}break;case 12403:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=512}}else 69271571===k?(p|=2,f=dt(e,r,l)):134217728==(134217728&k)?f=ot(e,t):8457014===k?(p|=8,F(e,t)):1&t&&131===e.token?(p|=4096,f=Ct(e,t,g,m,b),t|=16384):1&t&&1073741824==(1073741824&e.token)?(p|=128,t|=16384):122===k?(f=nt(e,t,0),67174411!==e.token&&o(e,28,T[255&e.token])):o(e,28,T[255&e.token]);if(792&p&&(143360&e.token?f=nt(e,t,0):134217728==(134217728&e.token)?f=ot(e,t):69271571===e.token?(p|=2,f=dt(e,t,0)):122===e.token?f=nt(e,t,0):1&t&&131===e.token?(p|=4096,f=Ct(e,t,g,m,b)):o(e,131)),(2&p)<1&&("constructor"===e.tokenValue?(1073741824==(1073741824&e.token)?o(e,125):(32&p)<1&&67174411===e.token&&(920&p?o(e,50,"accessor"):(524288&t)<1&&(32&e.flags?o(e,51):e.flags|=32)),p|=64):(4096&p)<1&&824&p&&"prototype"===e.tokenValue&&o(e,49)),1&t&&67174411!==e.token)return Et(e,t,f,p,a,g,m,b);const h=ct(e,t,p,l,e.tokenPos,e.linePos,e.colPos);return re(e,t,c,u,d,1&t?{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,decorators:a,value:h}:{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,value:h})}function Ct(e,t,n,r,s){F(e,t);const{tokenValue:a}=e;return"constructor"===a&&o(e,124),F(e,t),re(e,t,n,r,s,{type:"PrivateIdentifier",name:a})}function Et(e,t,n,r,s,a,i,l){let c=null;if(8&r&&o(e,0),1077936157===e.token){F(e,32768|t);const{tokenPos:n,linePos:r,colPos:s}=e;537079928===e.token&&o(e,115),c=_e(e,16384|t,2,0,1,0,0,1,n,r,s),1073741824!=(1073741824&e.token)&&(c=ze(e,16384|t,c,0,0,n,r,s),c=Ge(e,16384|t,0,0,n,r,s,c),18===e.token&&(c=Be(e,t,0,a,i,l,c)))}return re(e,t,a,i,l,{type:"PropertyDefinition",key:n,value:c,static:(32&r)>0,computed:(2&r)>0,decorators:s})}function At(e,t,n,r,s,a,i,l){if(143360&e.token)return St(e,t,n,r,s,a,i,l);2097152!=(2097152&e.token)&&o(e,28,T[255&e.token]);const c=69271571===e.token?at(e,t,n,1,0,1,r,s,a,i,l):ut(e,t,n,1,0,1,r,s,a,i,l);return 16&e.destructible&&o(e,47),32&e.destructible&&o(e,47),c}function St(e,t,n,r,s,a,i,l){const{tokenValue:c,token:u}=e;return 1024&t&&(537079808==(537079808&u)?o(e,115):36864==(36864&u)&&o(e,114)),20480==(20480&u)&&o(e,99),2099200&t&&241773===u&&o(e,30),241739===u&&24&r&&o(e,97),4196352&t&&209008===u&&o(e,95),F(e,t),n&&ce(e,t,n,c,r,s),re(e,t,a,i,l,{type:"Identifier",name:c})}function Dt(e,t,n,r,s,a){if(F(e,t),8456259===e.token)return re(e,t,r,s,a,{type:"JSXFragment",openingFragment:Lt(e,t,r,s,a),children:Tt(e,t),closingFragment:Vt(e,t,n,e.tokenPos,e.linePos,e.colPos)});let i=null,l=[];const c=function(e,t,n,r,s,a){143360!=(143360&e.token)&&4096!=(4096&e.token)&&o(e,0);const i=Nt(e,t,e.tokenPos,e.linePos,e.colPos),l=function(e,t){const n=[];for(;8457016!==e.token&&8456259!==e.token&&1048576!==e.token;)n.push(Ut(e,t,e.tokenPos,e.linePos,e.colPos));return n}(e,t),c=8457016===e.token;8456259===e.token?X(e,t):(K(e,t,8457016),n?K(e,t,8456259):X(e,t));return re(e,t,r,s,a,{type:"JSXOpeningElement",name:i,attributes:l,selfClosing:c})}(e,t,n,r,s,a);if(!c.selfClosing){l=Tt(e,t),i=function(e,t,n,o,r,s){K(e,t,25);const a=Nt(e,t,e.tokenPos,e.linePos,e.colPos);n?K(e,t,8456259):e.token=X(e,t);return re(e,t,o,r,s,{type:"JSXClosingElement",name:a})}(e,t,n,e.tokenPos,e.linePos,e.colPos);const r=se(i.name);se(c.name)!==r&&o(e,149,r)}return re(e,t,r,s,a,{type:"JSXElement",children:l,openingElement:c,closingElement:i})}function Lt(e,t,n,o,r){return X(e,t),re(e,t,n,o,r,{type:"JSXOpeningFragment"})}function Vt(e,t,n,o,r,s){return K(e,t,25),K(e,t,8456259),re(e,t,o,r,s,{type:"JSXClosingFragment"})}function Tt(e,t){const n=[];for(;25!==e.token;)e.index=e.tokenPos=e.startPos,e.column=e.colPos=e.startColumn,e.line=e.linePos=e.startLine,X(e,t),n.push(Rt(e,t,e.tokenPos,e.linePos,e.colPos));return n}function Rt(e,t,n,r,s){return 138===e.token?function(e,t,n,o,r){X(e,t);const s={type:"JSXText",value:e.tokenValue};512&t&&(s.raw=e.tokenRaw);return re(e,t,n,o,r,s)}(e,t,n,r,s):2162700===e.token?Ot(e,t,0,0,n,r,s):8456258===e.token?Dt(e,t,0,n,r,s):void o(e,0)}function Nt(e,t,n,o,r){_(e);let s=Gt(e,t,n,o,r);if(21===e.token)return Bt(e,t,s,n,o,r);for(;W(e,t,67108877);)_(e),s=It(e,t,s,n,o,r);return s}function It(e,t,n,o,r,s){return re(e,t,o,r,s,{type:"JSXMemberExpression",object:n,property:Gt(e,t,e.tokenPos,e.linePos,e.colPos)})}function Ut(e,t,n,r,s){if(2162700===e.token)return function(e,t,n,o,r){F(e,t),K(e,t,14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return K(e,t,1074790415),re(e,t,n,o,r,{type:"JSXSpreadAttribute",argument:s})}(e,t,n,r,s);_(e);let a=null,i=Gt(e,t,n,r,s);if(21===e.token&&(i=Bt(e,t,i,n,r,s)),1077936157===e.token){const n=z(e,t),{tokenPos:r,linePos:s,colPos:i}=e;switch(n){case 134283267:a=ot(e,t);break;case 8456258:a=Dt(e,t,1,r,s,i);break;case 2162700:a=Ot(e,t,1,1,r,s,i);break;default:o(e,148)}}return re(e,t,n,r,s,{type:"JSXAttribute",value:a,name:i})}function Bt(e,t,n,o,r,s){K(e,t,21);return re(e,t,o,r,s,{type:"JSXNamespacedName",namespace:n,name:Gt(e,t,e.tokenPos,e.linePos,e.colPos)})}function Ot(e,t,n,r,s,a,i){F(e,t);const{tokenPos:l,linePos:c,colPos:u}=e;if(14===e.token)return function(e,t,n,o,r){K(e,t,14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return K(e,t,1074790415),re(e,t,n,o,r,{type:"JSXSpreadChild",expression:s})}(e,t,l,c,u);let d=null;return 1074790415===e.token?(r&&o(e,151),d=function(e,t,n,o,r){return e.startPos=e.tokenPos,e.startLine=e.linePos,e.startColumn=e.colPos,re(e,t,n,o,r,{type:"JSXEmptyExpression"})}(e,t,e.startPos,e.startLine,e.startColumn)):d=Ue(e,t,1,0,0,l,c,u),n?K(e,t,1074790415):X(e,t),re(e,t,s,a,i,{type:"JSXExpressionContainer",expression:d})}function Gt(e,t,n,o,r){const{tokenValue:s}=e;return F(e,t),re(e,t,n,o,r,{type:"JSXIdentifier",name:s})}var Ft=Object.freeze({__proto__:null});e.ESTree=Ft,e.parse=function(e,t){return me(e,t,0)},e.parseModule=function(e,t){return me(e,t,3072)},e.parseScript=function(e,t){return me(e,t,0)},e.version="4.2.0",Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/node_modules/meriyah/dist/meriyah.cjs b/node_modules/meriyah/dist/meriyah.cjs new file mode 100644 index 0000000..c6e0880 --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.cjs @@ -0,0 +1,8790 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const errorMessages = { + [0]: 'Unexpected token', + [28]: "Unexpected token: '%0'", + [1]: 'Octal escape sequences are not allowed in strict mode', + [2]: 'Octal escape sequences are not allowed in template strings', + [3]: 'Unexpected token `#`', + [4]: 'Illegal Unicode escape sequence', + [5]: 'Invalid code point %0', + [6]: 'Invalid hexadecimal escape sequence', + [8]: 'Octal literals are not allowed in strict mode', + [7]: 'Decimal integer literals with a leading zero are forbidden in strict mode', + [9]: 'Expected number in radix %0', + [145]: 'Invalid left-hand side assignment to a destructible right-hand side', + [10]: 'Non-number found after exponent indicator', + [11]: 'Invalid BigIntLiteral', + [12]: 'No identifiers allowed directly after numeric literal', + [13]: 'Escapes \\8 or \\9 are not syntactically valid escapes', + [14]: 'Unterminated string literal', + [15]: 'Unterminated template literal', + [16]: 'Multiline comment was not closed properly', + [17]: 'The identifier contained dynamic unicode escape that was not closed', + [18]: "Illegal character '%0'", + [19]: 'Missing hexadecimal digits', + [20]: 'Invalid implicit octal', + [21]: 'Invalid line break in string literal', + [22]: 'Only unicode escapes are legal in identifier names', + [23]: "Expected '%0'", + [24]: 'Invalid left-hand side in assignment', + [25]: 'Invalid left-hand side in async arrow', + [26]: 'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass', + [27]: 'Member access on super must be in a method', + [29]: 'Await expression not allowed in formal parameter', + [30]: 'Yield expression not allowed in formal parameter', + [92]: "Unexpected token: 'escaped keyword'", + [31]: 'Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses', + [119]: 'Async functions can only be declared at the top level or inside a block', + [32]: 'Unterminated regular expression', + [33]: 'Unexpected regular expression flag', + [34]: "Duplicate regular expression flag '%0'", + [35]: '%0 functions must have exactly %1 argument%2', + [36]: 'Setter function argument must not be a rest parameter', + [37]: '%0 declaration must have a name in this context', + [38]: 'Function name may not contain any reserved words or be eval or arguments in strict mode', + [39]: 'The rest operator is missing an argument', + [40]: 'A getter cannot be a generator', + [41]: 'A computed property name must be followed by a colon or paren', + [130]: 'Object literal keys that are strings or numbers must be a method or have a colon', + [43]: 'Found `* async x(){}` but this should be `async * x(){}`', + [42]: 'Getters and setters can not be generators', + [44]: "'%0' can not be generator method", + [45]: "No line break is allowed after '=>'", + [46]: 'The left-hand side of the arrow can only be destructed through assignment', + [47]: 'The binding declaration is not destructible', + [48]: 'Async arrow can not be followed by new expression', + [49]: "Classes may not have a static property named 'prototype'", + [50]: 'Class constructor may not be a %0', + [51]: 'Duplicate constructor method in class', + [52]: 'Invalid increment/decrement operand', + [53]: 'Invalid use of `new` keyword on an increment/decrement expression', + [54]: '`=>` is an invalid assignment target', + [55]: 'Rest element may not have a trailing comma', + [56]: 'Missing initializer in %0 declaration', + [57]: "'for-%0' loop head declarations can not have an initializer", + [58]: 'Invalid left-hand side in for-%0 loop: Must have a single binding', + [59]: 'Invalid shorthand property initializer', + [60]: 'Property name __proto__ appears more than once in object literal', + [61]: 'Let is disallowed as a lexically bound name', + [62]: "Invalid use of '%0' inside new expression", + [63]: "Illegal 'use strict' directive in function with non-simple parameter list", + [64]: 'Identifier "let" disallowed as left-hand side expression in strict mode', + [65]: 'Illegal continue statement', + [66]: 'Illegal break statement', + [67]: 'Cannot have `let[...]` as a var name in strict mode', + [68]: 'Invalid destructuring assignment target', + [69]: 'Rest parameter may not have a default initializer', + [70]: 'The rest argument must the be last parameter', + [71]: 'Invalid rest argument', + [73]: 'In strict mode code, functions can only be declared at top level or inside a block', + [74]: 'In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement', + [75]: 'Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement', + [76]: "Class declaration can't appear in single-statement context", + [77]: 'Invalid left-hand side in for-%0', + [78]: 'Invalid assignment in for-%0', + [79]: 'for await (... of ...) is only valid in async functions and async generators', + [80]: 'The first token after the template expression should be a continuation of the template', + [82]: '`let` declaration not allowed here and `let` cannot be a regular var name in strict mode', + [81]: '`let \n [` is a restricted production at the start of a statement', + [83]: 'Catch clause requires exactly one parameter, not more (and no trailing comma)', + [84]: 'Catch clause parameter does not support default values', + [85]: 'Missing catch or finally after try', + [86]: 'More than one default clause in switch statement', + [87]: 'Illegal newline after throw', + [88]: 'Strict mode code may not include a with statement', + [89]: 'Illegal return statement', + [90]: 'The left hand side of the for-header binding declaration is not destructible', + [91]: 'new.target only allowed within functions', + [93]: "'#' not followed by identifier", + [99]: 'Invalid keyword', + [98]: "Can not use 'let' as a class name", + [97]: "'A lexical declaration can't define a 'let' binding", + [96]: 'Can not use `let` as variable name in strict mode', + [94]: "'%0' may not be used as an identifier in this context", + [95]: 'Await is only valid in async functions', + [100]: 'The %0 keyword can only be used with the module goal', + [101]: 'Unicode codepoint must not be greater than 0x10FFFF', + [102]: '%0 source must be string', + [103]: 'Only a identifier can be used to indicate alias', + [104]: "Only '*' or '{...}' can be imported after default", + [105]: 'Trailing decorator may be followed by method', + [106]: "Decorators can't be used with a constructor", + [108]: 'HTML comments are only allowed with web compatibility (Annex B)', + [109]: "The identifier 'let' must not be in expression position in strict mode", + [110]: 'Cannot assign to `eval` and `arguments` in strict mode', + [111]: "The left-hand side of a for-of loop may not start with 'let'", + [112]: 'Block body arrows can not be immediately invoked without a group', + [113]: 'Block body arrows can not be immediately accessed without a group', + [114]: 'Unexpected strict mode reserved word', + [115]: 'Unexpected eval or arguments in strict mode', + [116]: 'Decorators must not be followed by a semicolon', + [117]: 'Calling delete on expression not allowed in strict mode', + [118]: 'Pattern can not have a tail', + [120]: 'Can not have a `yield` expression on the left side of a ternary', + [121]: 'An arrow function can not have a postfix update operator', + [122]: 'Invalid object literal key character after generator star', + [123]: 'Private fields can not be deleted', + [125]: 'Classes may not have a field called constructor', + [124]: 'Classes may not have a private element named constructor', + [126]: 'A class field initializer may not contain arguments', + [127]: 'Generators can only be declared at the top level or inside a block', + [128]: 'Async methods are a restricted production and cannot have a newline following it', + [129]: 'Unexpected character after object literal property name', + [131]: 'Invalid key token', + [132]: "Label '%0' has already been declared", + [133]: 'continue statement must be nested within an iteration statement', + [134]: "Undefined label '%0'", + [135]: 'Trailing comma is disallowed inside import(...) arguments', + [136]: 'import() requires exactly one argument', + [137]: 'Cannot use new with import(...)', + [138]: '... is not allowed in import()', + [139]: "Expected '=>'", + [140]: "Duplicate binding '%0'", + [141]: "Cannot export a duplicate name '%0'", + [144]: 'Duplicate %0 for-binding', + [142]: "Exported binding '%0' needs to refer to a top-level declared variable", + [143]: 'Unexpected private field', + [147]: 'Numeric separators are not allowed at the end of numeric literals', + [146]: 'Only one underscore is allowed as numeric separator', + [148]: 'JSX value should be either an expression or a quoted JSX text', + [149]: 'Expected corresponding JSX closing tag for %0', + [150]: 'Adjacent JSX elements must be wrapped in an enclosing tag', + [151]: "JSX attributes must only be assigned a non-empty 'expression'", + [152]: "'%0' has already been declared", + [153]: "'%0' shadowed a catch clause binding", + [154]: 'Dot property must be an identifier', + [155]: 'Encountered invalid input after spread/rest argument', + [156]: 'Catch without try', + [157]: 'Finally without try', + [158]: 'Expected corresponding closing tag for JSX fragment', + [159]: 'Coalescing and logical operators used together in the same expression must be disambiguated with parentheses', + [160]: 'Invalid tagged template on optional chain', + [161]: 'Invalid optional chain from super property', + [162]: 'Invalid optional chain from new expression', + [163]: 'Cannot use "import.meta" outside a module', + [164]: 'Leading decorators must be attached to a class declaration' +}; +class ParseError extends SyntaxError { + constructor(startindex, line, column, type, ...params) { + const message = '[' + line + ':' + column + ']: ' + errorMessages[type].replace(/%(\d+)/g, (_, i) => params[i]); + super(`${message}`); + this.index = startindex; + this.line = line; + this.column = column; + this.description = message; + this.loc = { + line, + column + }; + } +} +function report(parser, type, ...params) { + throw new ParseError(parser.index, parser.line, parser.column, type, ...params); +} +function reportScopeError(scope) { + throw new ParseError(scope.index, scope.line, scope.column, scope.type, scope.params); +} +function reportMessageAt(index, line, column, type, ...params) { + throw new ParseError(index, line, column, type, ...params); +} +function reportScannerError(index, line, column, type) { + throw new ParseError(index, line, column, type); +} + +const unicodeLookup = ((compressed, lookup) => { + const result = new Uint32Array(104448); + let index = 0; + let subIndex = 0; + while (index < 3540) { + const inst = compressed[index++]; + if (inst < 0) { + subIndex -= inst; + } + else { + let code = compressed[index++]; + if (inst & 2) + code = lookup[code]; + if (inst & 1) { + result.fill(code, subIndex, subIndex += compressed[index++]); + } + else { + result[subIndex++] = code; + } + } + } + return result; +})([-1, 2, 24, 2, 25, 2, 5, -1, 0, 77595648, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 16, 2, 60, 2, 0, 0, 4294836735, 0, 3221225471, 0, 4294901942, 2, 61, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 17, 2, 0, 0, 4294961151, 3, 0, 2, 2, 19, 2, 0, 0, 608174079, 2, 0, 2, 131, 2, 6, 2, 56, -1, 2, 37, 0, 4294443263, 2, 1, 3, 0, 3, 0, 4294901711, 2, 39, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2967484831, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 2, 194, 2, 3, 0, 3825204735, 0, 123747807, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1080049119, 0, 458703, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 66, 0, 4284449919, 0, 851904, 2, 4, 2, 11, 0, 67076095, -1, 2, 67, 0, 1073741743, 0, 4093591391, -1, 0, 50331649, 0, 3265266687, 2, 32, 0, 4294844415, 0, 4278190047, 2, 18, 2, 129, -1, 3, 0, 2, 2, 21, 2, 0, 2, 9, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 10, 0, 261632, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 2088959, 2, 27, 2, 8, 0, 909311, 3, 0, 2, 0, 814743551, 2, 41, 0, 67057664, 3, 0, 2, 2, 40, 2, 0, 2, 28, 2, 0, 2, 29, 2, 7, 0, 268374015, 2, 26, 2, 49, 2, 0, 2, 76, 0, 134153215, -1, 2, 6, 2, 0, 2, 7, 0, 2684354559, 0, 67044351, 0, 3221160064, 0, 1, -1, 3, 0, 2, 2, 42, 0, 1046528, 3, 0, 3, 2, 8, 2, 0, 2, 51, 0, 4294960127, 2, 9, 2, 38, 2, 10, 0, 4294377472, 2, 11, 3, 0, 7, 0, 4227858431, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -1, 2, 124, 0, 1048577, 2, 82, 2, 13, -1, 2, 13, 0, 131042, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 1046559, 2, 0, 2, 14, 2, 0, 0, 2147516671, 2, 20, 3, 86, 2, 2, 0, -16, 2, 87, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 2, 121, 2, 0, 0, 3220242431, 3, 0, 3, 2, 19, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 2, 0, 0, 4351, 2, 0, 2, 8, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 22, 2, 8, 2, 18, 3, 0, 2, 0, 67076097, 2, 7, 2, 0, 2, 20, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 3774349439, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, 2, 23, 0, 1638399, 2, 172, 2, 105, 3, 0, 3, 2, 18, 2, 24, 2, 25, 2, 5, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -3, 2, 150, -4, 2, 18, 2, 0, 2, 35, 0, 1, 2, 0, 2, 62, 2, 28, 2, 11, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 21, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277137519, 0, 2269118463, -1, 3, 18, 2, -1, 2, 32, 2, 36, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 46, -10, 2, 0, 0, 203775, -2, 2, 18, 2, 43, 2, 35, -2, 2, 17, 2, 117, 2, 20, 3, 0, 2, 2, 36, 0, 2147549120, 2, 0, 2, 11, 2, 17, 2, 135, 2, 0, 2, 37, 2, 52, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 120, 0, 1090519039, -2, 2, 122, 2, 38, 2, 0, 0, 67045375, 2, 39, 0, 4226678271, 0, 3766565279, 0, 2039759, -4, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 40, 2, 41, -1, 2, 10, 2, 42, -6, 2, 0, 2, 11, -3, 3, 0, 2, 0, 2147484671, 2, 125, 0, 4190109695, 2, 50, -2, 2, 126, 0, 4244635647, 0, 27, 2, 0, 2, 7, 2, 43, 2, 0, 2, 63, -1, 2, 0, 2, 40, -8, 2, 54, 2, 44, 0, 67043329, 2, 127, 2, 45, 0, 8388351, -2, 2, 128, 0, 3028287487, 2, 46, 2, 130, 0, 33259519, 2, 41, -9, 2, 20, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, 2, 41, -2, 2, 17, 2, 49, 2, 0, 2, 20, 2, 50, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 196635, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 0, 1677656575, -166, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 28, -13, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 88, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -42, 0, 4194303871, 0, 2011, -6, 2, 0, 0, 1073684479, 0, 17407, -11, 2, 0, 2, 31, -40, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 42, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -105, 2, 24, -32, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -22381, 3, 0, 7, 2, 23, -6130, 3, 5, 2, -1, 0, 69207040, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 16, 2, 60, 2, 0, 2, 33, -1, 2, 17, 2, 61, -1, 2, 0, 2, 56, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 23, 2, 62, 3, 0, 2, 0, 131135, 2, 95, 0, 70256639, 0, 71303167, 0, 272, 2, 40, 2, 56, -1, 2, 37, 2, 30, -1, 2, 96, 2, 63, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 65, 2, 64, 0, 33554435, 2, 123, 2, 65, 2, 151, 0, 131075, 0, 3594373096, 0, 67094296, 2, 64, -1, 0, 4294828000, 0, 603979263, 2, 160, 0, 3, 0, 4294828001, 0, 602930687, 2, 183, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 66, 2, 36, -1, 2, 4, 0, 917503, 2, 36, -1, 2, 67, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 32, 2, 68, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 11, -1, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 253951, 3, 19, 2, 0, 122879, 2, 0, 2, 8, 0, 276824064, -2, 3, 0, 2, 2, 40, 2, 0, 0, 4294903295, 2, 0, 2, 29, 2, 7, -1, 2, 17, 2, 49, 2, 0, 2, 76, 2, 41, -1, 2, 20, 2, 0, 2, 27, -2, 0, 128, -2, 2, 77, 2, 8, 0, 4064, -1, 2, 119, 0, 4227907585, 2, 0, 2, 118, 2, 0, 2, 48, 2, 173, 2, 9, 2, 38, 2, 10, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -3, 2, 82, 2, 13, -3, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 817183, 2, 0, 2, 14, 2, 0, 0, 33023, 2, 20, 3, 86, 2, -17, 2, 87, 0, 524157950, 2, 4, 2, 0, 2, 88, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 0, 3072, 2, 0, 0, 2147516415, 2, 9, 3, 0, 2, 2, 23, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 0, 4294965179, 0, 7, 2, 0, 2, 8, 2, 91, 2, 8, -1, 0, 1761345536, 2, 95, 0, 4294901823, 2, 36, 2, 18, 2, 96, 2, 34, 2, 166, 0, 2080440287, 2, 0, 2, 33, 2, 143, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 7, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 2700607615, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, -3, 2, 105, 3, 0, 3, 2, 18, -1, 3, 5, 2, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -8, 2, 18, 2, 0, 2, 35, -1, 2, 0, 2, 62, 2, 28, 2, 29, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 17, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277075969, 2, 29, -1, 3, 18, 2, -1, 2, 32, 2, 117, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 48, -10, 2, 0, 0, 197631, -2, 2, 18, 2, 43, 2, 118, -2, 2, 17, 2, 117, 2, 20, 2, 119, 2, 51, -2, 2, 119, 2, 23, 2, 17, 2, 33, 2, 119, 2, 36, 0, 4294901904, 0, 4718591, 2, 119, 2, 34, 0, 335544350, -1, 2, 120, 2, 121, -2, 2, 122, 2, 38, 2, 7, -1, 2, 123, 2, 65, 0, 3758161920, 0, 3, -4, 2, 0, 2, 27, 0, 2147485568, 0, 3, 2, 0, 2, 23, 0, 176, -5, 2, 0, 2, 47, 2, 186, -1, 2, 0, 2, 23, 2, 197, -1, 2, 0, 0, 16779263, -2, 2, 11, -7, 2, 0, 2, 121, -3, 3, 0, 2, 2, 124, 2, 125, 0, 2147549183, 0, 2, -2, 2, 126, 2, 35, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, -1, 2, 0, 2, 40, -8, 2, 54, 2, 47, 0, 1, 2, 127, 2, 23, -3, 2, 128, 2, 35, 2, 129, 2, 130, 0, 16778239, -10, 2, 34, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, -3, 2, 17, 2, 131, 2, 0, 2, 23, 2, 48, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 67583, -1, 2, 103, -2, 0, 11, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 2, 135, -187, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 2, 143, -73, 2, 0, 0, 1065361407, 0, 16384, -11, 2, 0, 2, 121, -40, 3, 0, 6, 2, 117, -1, 3, 0, 2, 0, 2063, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -138, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -28517, 2, 0, 0, 1, -1, 2, 124, 2, 0, 0, 8193, -21, 2, 193, 0, 10255, 0, 4, -11, 2, 64, 2, 171, -1, 0, 71680, -1, 2, 161, 0, 4292900864, 0, 805306431, -5, 2, 150, -1, 2, 157, -1, 0, 6144, -2, 2, 127, -1, 2, 154, -1, 0, 2147532800, 2, 151, 2, 165, 2, 0, 2, 164, 0, 524032, 0, 4, -4, 2, 190, 0, 205128192, 0, 1333757536, 0, 2147483696, 0, 423953, 0, 747766272, 0, 2717763192, 0, 4286578751, 0, 278545, 2, 152, 0, 4294886464, 0, 33292336, 0, 417809, 2, 152, 0, 1327482464, 0, 4278190128, 0, 700594195, 0, 1006647527, 0, 4286497336, 0, 4160749631, 2, 153, 0, 469762560, 0, 4171219488, 0, 8323120, 2, 153, 0, 202375680, 0, 3214918176, 0, 4294508592, 2, 153, -1, 0, 983584, 0, 48, 0, 58720273, 0, 3489923072, 0, 10517376, 0, 4293066815, 0, 1, 0, 2013265920, 2, 177, 2, 0, 0, 2089, 0, 3221225552, 0, 201375904, 2, 0, -2, 0, 256, 0, 122880, 0, 16777216, 2, 150, 0, 4160757760, 2, 0, -6, 2, 167, -11, 0, 3263218176, -1, 0, 49664, 0, 2160197632, 0, 8388802, -1, 0, 12713984, -1, 2, 154, 2, 159, 2, 178, -2, 2, 162, -20, 0, 3758096385, -2, 2, 155, 0, 4292878336, 2, 90, 2, 169, 0, 4294057984, -2, 2, 163, 2, 156, 2, 175, -2, 2, 155, -1, 2, 182, -1, 2, 170, 2, 124, 0, 4026593280, 0, 14, 0, 4292919296, -1, 2, 158, 0, 939588608, -1, 0, 805306368, -1, 2, 124, 0, 1610612736, 2, 156, 2, 157, 2, 4, 2, 0, -2, 2, 158, 2, 159, -3, 0, 267386880, -1, 2, 160, 0, 7168, -1, 0, 65024, 2, 154, 2, 161, 2, 179, -7, 2, 168, -8, 2, 162, -1, 0, 1426112704, 2, 163, -1, 2, 164, 0, 271581216, 0, 2149777408, 2, 23, 2, 161, 2, 124, 0, 851967, 2, 180, -1, 2, 23, 2, 181, -4, 2, 158, -20, 2, 195, 2, 165, -56, 0, 3145728, 2, 185, -4, 2, 166, 2, 124, -4, 0, 32505856, -1, 2, 167, -1, 0, 2147385088, 2, 90, 1, 2155905152, 2, -3, 2, 103, 2, 0, 2, 168, -2, 2, 169, -6, 2, 170, 0, 4026597375, 0, 1, -1, 0, 1, -1, 2, 171, -3, 2, 117, 2, 64, -2, 2, 166, -2, 2, 176, 2, 124, -878, 2, 159, -36, 2, 172, -1, 2, 201, -10, 2, 188, -5, 2, 174, -6, 0, 4294965251, 2, 27, -1, 2, 173, -1, 2, 174, -2, 0, 4227874752, -3, 0, 2146435072, 2, 159, -2, 0, 1006649344, 2, 124, -1, 2, 90, 0, 201375744, -3, 0, 134217720, 2, 90, 0, 4286677377, 0, 32896, -1, 2, 158, -3, 2, 175, -349, 2, 176, 0, 1920, 2, 177, 3, 0, 264, -11, 2, 157, -2, 2, 178, 2, 0, 0, 520617856, 0, 2692743168, 0, 36, -3, 0, 524284, -11, 2, 23, -1, 2, 187, -1, 2, 184, 0, 3221291007, 2, 178, -1, 2, 202, 0, 2158720, -3, 2, 159, 0, 1, -4, 2, 124, 0, 3808625411, 0, 3489628288, 2, 200, 0, 1207959680, 0, 3221274624, 2, 0, -3, 2, 179, 0, 120, 0, 7340032, -2, 2, 180, 2, 4, 2, 23, 2, 163, 3, 0, 4, 2, 159, -1, 2, 181, 2, 177, -1, 0, 8176, 2, 182, 2, 179, 2, 183, -1, 0, 4290773232, 2, 0, -4, 2, 163, 2, 189, 0, 15728640, 2, 177, -1, 2, 161, -1, 0, 4294934512, 3, 0, 4, -9, 2, 90, 2, 170, 2, 184, 3, 0, 4, 0, 704, 0, 1849688064, 2, 185, -1, 2, 124, 0, 4294901887, 2, 0, 0, 130547712, 0, 1879048192, 2, 199, 3, 0, 2, -1, 2, 186, 2, 187, -1, 0, 17829776, 0, 2025848832, 0, 4261477888, -2, 2, 0, -1, 0, 4286580608, -1, 0, 29360128, 2, 192, 0, 16252928, 0, 3791388672, 2, 38, 3, 0, 2, -2, 2, 196, 2, 0, -1, 2, 103, -1, 0, 66584576, -1, 2, 191, 3, 0, 9, 2, 124, -1, 0, 4294755328, 3, 0, 2, -1, 2, 161, 2, 178, 3, 0, 2, 2, 23, 2, 188, 2, 90, -2, 0, 245760, 0, 2147418112, -1, 2, 150, 2, 203, 0, 4227923456, -1, 2, 164, 2, 161, 2, 90, -3, 0, 4292870145, 0, 262144, 2, 124, 3, 0, 2, 0, 1073758848, 2, 189, -1, 0, 4227921920, 2, 190, 0, 68289024, 0, 528402016, 0, 4292927536, 3, 0, 4, -2, 0, 268435456, 2, 91, -2, 2, 191, 3, 0, 5, -1, 2, 192, 2, 163, 2, 0, -2, 0, 4227923936, 2, 62, -1, 2, 155, 2, 95, 2, 0, 2, 154, 2, 158, 3, 0, 6, -1, 2, 177, 3, 0, 3, -2, 0, 2146959360, 0, 9440640, 0, 104857600, 0, 4227923840, 3, 0, 2, 0, 768, 2, 193, 2, 77, -2, 2, 161, -2, 2, 119, -1, 2, 155, 3, 0, 8, 0, 512, 0, 8388608, 2, 194, 2, 172, 2, 187, 0, 4286578944, 3, 0, 2, 0, 1152, 0, 1266679808, 2, 191, 0, 576, 0, 4261707776, 2, 95, 3, 0, 9, 2, 155, 3, 0, 5, 2, 16, -1, 0, 2147221504, -28, 2, 178, 3, 0, 3, -3, 0, 4292902912, -6, 2, 96, 3, 0, 85, -33, 0, 4294934528, 3, 0, 126, -18, 2, 195, 3, 0, 269, -17, 2, 155, 2, 124, 2, 198, 3, 0, 2, 2, 23, 0, 4290822144, -2, 0, 67174336, 0, 520093700, 2, 17, 3, 0, 21, -2, 2, 179, 3, 0, 3, -2, 0, 30720, -1, 0, 32512, 3, 0, 2, 0, 4294770656, -191, 2, 174, -38, 2, 170, 2, 0, 2, 196, 3, 0, 279, -8, 2, 124, 2, 0, 0, 4294508543, 0, 65295, -11, 2, 177, 3, 0, 72, -3, 0, 3758159872, 0, 201391616, 3, 0, 155, -7, 2, 170, -1, 0, 384, -1, 0, 133693440, -3, 2, 196, -2, 2, 26, 3, 0, 4, 2, 169, -2, 2, 90, 2, 155, 3, 0, 4, -2, 2, 164, -1, 2, 150, 0, 335552923, 2, 197, -1, 0, 538974272, 0, 2214592512, 0, 132000, -10, 0, 192, -8, 0, 12288, -21, 0, 134213632, 0, 4294901761, 3, 0, 42, 0, 100663424, 0, 4294965284, 3, 0, 6, -1, 0, 3221282816, 2, 198, 3, 0, 11, -1, 2, 199, 3, 0, 40, -6, 0, 4286578784, 2, 0, -2, 0, 1006694400, 3, 0, 24, 2, 35, -1, 2, 94, 3, 0, 2, 0, 1, 2, 163, 3, 0, 6, 2, 197, 0, 4110942569, 0, 1432950139, 0, 2701658217, 0, 4026532864, 0, 4026532881, 2, 0, 2, 45, 3, 0, 8, -1, 2, 158, -2, 2, 169, 0, 98304, 0, 65537, 2, 170, -5, 0, 4294950912, 2, 0, 2, 118, 0, 65528, 2, 177, 0, 4294770176, 2, 26, 3, 0, 4, -30, 2, 174, 0, 3758153728, -3, 2, 169, -2, 2, 155, 2, 188, 2, 158, -1, 2, 191, -1, 2, 161, 0, 4294754304, 3, 0, 2, -3, 0, 33554432, -2, 2, 200, -3, 2, 169, 0, 4175478784, 2, 201, 0, 4286643712, 0, 4286644216, 2, 0, -4, 2, 202, -1, 2, 165, 0, 4227923967, 3, 0, 32, -1334, 2, 163, 2, 0, -129, 2, 94, -6, 2, 163, -180, 2, 203, -233, 2, 4, 3, 0, 96, -16, 2, 163, 3, 0, 47, -154, 2, 165, 3, 0, 22381, -7, 2, 17, 3, 0, 6128], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 268435455, 2147483647, 1048575, 1073741823, 3892314111, 134217727, 1061158911, 536805376, 4294910143, 4160749567, 4294901759, 4294901760, 536870911, 262143, 8388607, 4294902783, 4294918143, 65535, 67043328, 2281701374, 4294967232, 2097151, 4294903807, 4194303, 255, 67108863, 4294967039, 511, 524287, 131071, 127, 4292870143, 4294902271, 4294549487, 33554431, 1023, 67047423, 4294901888, 4286578687, 4294770687, 67043583, 32767, 15, 2047999, 67043343, 16777215, 4294902000, 4294934527, 4294966783, 4294967279, 2047, 262083, 20511, 4290772991, 41943039, 493567, 4294959104, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 4294967264, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 2044, 4292870144, 4294966272, 4294967280, 8289918, 4294934399, 4294901775, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4294966591, 2445279231, 3670015, 3238002687, 31, 63, 4294967288, 4294705151, 4095, 3221208447, 4294549472, 2147483648, 4285526655, 4294966527, 4294705152, 4294966143, 64, 4294966719, 16383, 3774873592, 458752, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967103, 4160749565, 4087, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901763, 536870912, 2952790016, 202506752, 139264, 402653184, 4261412864, 4227922944, 49152, 61440, 3758096384, 117440512, 65280, 3233808384, 3221225472, 2097152, 4294965248, 32768, 57152, 67108864, 4293918720, 4290772992, 25165824, 57344, 4227915776, 4278190080, 4227907584, 65520, 4026531840, 4227858432, 4160749568, 3758129152, 4294836224, 63488, 1073741824, 4294967040, 4194304, 251658240, 196608, 4294963200, 64512, 417808, 4227923712, 12582912, 50331648, 65472, 4294967168, 4294966784, 16, 4294917120, 2080374784, 4096, 65408, 524288, 65532]); + +function advanceChar(parser) { + parser.column++; + return (parser.currentChar = parser.source.charCodeAt(++parser.index)); +} +function consumeMultiUnitCodePoint(parser, hi) { + if ((hi & 0xfc00) !== 55296) + return 0; + const lo = parser.source.charCodeAt(parser.index + 1); + if ((lo & 0xfc00) !== 0xdc00) + return 0; + hi = parser.currentChar = 65536 + ((hi & 0x3ff) << 10) + (lo & 0x3ff); + if (((unicodeLookup[(hi >>> 5) + 0] >>> hi) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(hi)); + } + parser.index++; + parser.column++; + return 1; +} +function consumeLineFeed(parser, state) { + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.flags |= 1; + if ((state & 4) === 0) { + parser.column = 0; + parser.line++; + } +} +function scanNewLine(parser) { + parser.flags |= 1; + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.column = 0; + parser.line++; +} +function isExoticECMAScriptWhitespace(ch) { + return (ch === 160 || + ch === 65279 || + ch === 133 || + ch === 5760 || + (ch >= 8192 && ch <= 8203) || + ch === 8239 || + ch === 8287 || + ch === 12288 || + ch === 8201 || + ch === 65519); +} +function fromCodePoint(codePoint) { + return codePoint <= 65535 + ? String.fromCharCode(codePoint) + : String.fromCharCode(codePoint >>> 10) + String.fromCharCode(codePoint & 0x3ff); +} +function toHex(code) { + return code < 65 ? code - 48 : (code - 65 + 10) & 0xf; +} +function convertTokenType(t) { + switch (t) { + case 134283266: + return 'NumericLiteral'; + case 134283267: + return 'StringLiteral'; + case 86021: + case 86022: + return 'BooleanLiteral'; + case 86023: + return 'NullLiteral'; + case 65540: + return 'RegularExpression'; + case 67174408: + case 67174409: + case 132: + return 'TemplateLiteral'; + default: + if ((t & 143360) === 143360) + return 'Identifier'; + if ((t & 4096) === 4096) + return 'Keyword'; + return 'Punctuator'; + } +} + +const CharTypes = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8 | 1024, + 0, + 0, + 8 | 2048, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8192, + 0, + 1 | 2, + 0, + 0, + 8192, + 0, + 0, + 0, + 256, + 0, + 256 | 32768, + 0, + 0, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 512 | 64, + 2 | 16 | 512 | 64, + 0, + 0, + 16384, + 0, + 0, + 0, + 0, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 0, + 1, + 0, + 0, + 1 | 2 | 4096, + 0, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 16384, + 0, + 0, + 0, + 0 +]; +const isIdStart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 +]; +const isIdPart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 +]; +function isIdentifierStart(code) { + return code <= 0x7F + ? isIdStart[code] + : (unicodeLookup[(code >>> 5) + 34816] >>> code) & 31 & 1; +} +function isIdentifierPart(code) { + return code <= 0x7F + ? isIdPart[code] + : (unicodeLookup[(code >>> 5) + 0] >>> code) & 31 & 1 || (code === 8204 || code === 8205); +} + +const CommentTypes = ['SingleLine', 'MultiLine', 'HTMLOpen', 'HTMLClose', 'HashbangComment']; +function skipHashBang(parser) { + const source = parser.source; + if (parser.currentChar === 35 && source.charCodeAt(parser.index + 1) === 33) { + advanceChar(parser); + advanceChar(parser); + skipSingleLineComment(parser, source, 0, 4, parser.tokenPos, parser.linePos, parser.colPos); + } +} +function skipSingleHTMLComment(parser, source, state, context, type, start, line, column) { + if (context & 2048) + report(parser, 0); + return skipSingleLineComment(parser, source, state, type, start, line, column); +} +function skipSingleLineComment(parser, source, state, type, start, line, column) { + const { index } = parser; + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + while (parser.index < parser.end) { + if (CharTypes[parser.currentChar] & 8) { + const isCR = parser.currentChar === 13; + scanNewLine(parser); + if (isCR && parser.index < parser.end && parser.currentChar === 10) + parser.currentChar = source.charCodeAt(++parser.index); + break; + } + else if ((parser.currentChar ^ 8232) <= 1) { + scanNewLine(parser); + break; + } + advanceChar(parser); + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + } + if (parser.onComment) { + const loc = { + start: { + line, + column + }, + end: { + line: parser.linePos, + column: parser.colPos + } + }; + parser.onComment(CommentTypes[type & 0xff], source.slice(index, parser.tokenPos), start, parser.tokenPos, loc); + } + return state | 1; +} +function skipMultiLineComment(parser, source, state) { + const { index } = parser; + while (parser.index < parser.end) { + if (parser.currentChar < 0x2b) { + let skippedOneAsterisk = false; + while (parser.currentChar === 42) { + if (!skippedOneAsterisk) { + state &= ~4; + skippedOneAsterisk = true; + } + if (advanceChar(parser) === 47) { + advanceChar(parser); + if (parser.onComment) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onComment(CommentTypes[1 & 0xff], source.slice(index, parser.index - 2), index - 2, parser.index, loc); + } + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + return state; + } + } + if (skippedOneAsterisk) { + continue; + } + if (CharTypes[parser.currentChar] & 8) { + if (parser.currentChar === 13) { + state |= 1 | 4; + scanNewLine(parser); + } + else { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + } + else { + advanceChar(parser); + } + } + else if ((parser.currentChar ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + } + else { + state &= ~4; + advanceChar(parser); + } + } + report(parser, 16); +} + +function scanRegularExpression(parser, context) { + const bodyStart = parser.index; + let preparseState = 0; + loop: while (true) { + const ch = parser.currentChar; + advanceChar(parser); + if (preparseState & 1) { + preparseState &= ~1; + } + else { + switch (ch) { + case 47: + if (!preparseState) + break loop; + else + break; + case 92: + preparseState |= 1; + break; + case 91: + preparseState |= 2; + break; + case 93: + preparseState &= 1; + break; + case 13: + case 10: + case 8232: + case 8233: + report(parser, 32); + } + } + if (parser.index >= parser.source.length) { + return report(parser, 32); + } + } + const bodyEnd = parser.index - 1; + let mask = 0; + let char = parser.currentChar; + const { index: flagStart } = parser; + while (isIdentifierPart(char)) { + switch (char) { + case 103: + if (mask & 2) + report(parser, 34, 'g'); + mask |= 2; + break; + case 105: + if (mask & 1) + report(parser, 34, 'i'); + mask |= 1; + break; + case 109: + if (mask & 4) + report(parser, 34, 'm'); + mask |= 4; + break; + case 117: + if (mask & 16) + report(parser, 34, 'g'); + mask |= 16; + break; + case 121: + if (mask & 8) + report(parser, 34, 'y'); + mask |= 8; + break; + case 115: + if (mask & 12) + report(parser, 34, 's'); + mask |= 12; + break; + default: + report(parser, 33); + } + char = advanceChar(parser); + } + const flags = parser.source.slice(flagStart, parser.index); + const pattern = parser.source.slice(bodyStart, bodyEnd); + parser.tokenRegExp = { pattern, flags }; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = validate(parser, pattern, flags); + return 65540; +} +function validate(parser, pattern, flags) { + try { + return new RegExp(pattern, flags); + } + catch (e) { + report(parser, 32); + } +} + +function scanString(parser, context, quote) { + const { index: start } = parser; + let ret = ''; + let char = advanceChar(parser); + let marker = parser.index; + while ((CharTypes[char] & 8) === 0) { + if (char === quote) { + ret += parser.source.slice(marker, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(start, parser.index); + parser.tokenValue = ret; + return 134283267; + } + if ((char & 8) === 8 && char === 92) { + ret += parser.source.slice(marker, parser.index); + char = advanceChar(parser); + if (char < 0x7f || char === 8232 || char === 8233) { + const code = parseEscape(parser, context, char); + if (code >= 0) + ret += fromCodePoint(code); + else + handleStringError(parser, code, 0); + } + else { + ret += fromCodePoint(char); + } + marker = parser.index + 1; + } + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + report(parser, 14); +} +function parseEscape(parser, context, first) { + switch (first) { + case 98: + return 8; + case 102: + return 12; + case 114: + return 13; + case 110: + return 10; + case 116: + return 9; + case 118: + return 11; + case 13: { + if (parser.index < parser.end) { + const nextChar = parser.source.charCodeAt(parser.index + 1); + if (nextChar === 10) { + parser.index = parser.index + 1; + parser.currentChar = nextChar; + } + } + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + return -1; + case 48: + case 49: + case 50: + case 51: { + let code = first - 48; + let index = parser.index + 1; + let column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if ((CharTypes[next] & 32) === 0) { + if ((code !== 0 || CharTypes[next] & 512) && context & 1024) + return -2; + } + else if (context & 1024) { + return -2; + } + else { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + } + } + parser.flags |= 64; + parser.index = index - 1; + parser.column = column - 1; + } + } + return code; + } + case 52: + case 53: + case 54: + case 55: { + if (context & 1024) + return -2; + let code = first - 48; + const index = parser.index + 1; + const column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + code = (code << 3) | (next - 48); + parser.currentChar = next; + parser.index = index; + parser.column = column; + } + } + parser.flags |= 64; + return code; + } + case 120: { + const ch1 = advanceChar(parser); + if ((CharTypes[ch1] & 64) === 0) + return -4; + const hi = toHex(ch1); + const ch2 = advanceChar(parser); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const lo = toHex(ch2); + return (hi << 4) | lo; + } + case 117: { + const ch = advanceChar(parser); + if (parser.currentChar === 123) { + let code = 0; + while ((CharTypes[advanceChar(parser)] & 64) !== 0) { + code = (code << 4) | toHex(parser.currentChar); + if (code > 1114111) + return -5; + } + if (parser.currentChar < 1 || parser.currentChar !== 125) { + return -4; + } + return code; + } + else { + if ((CharTypes[ch] & 64) === 0) + return -4; + const ch2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const ch3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[ch3] & 64) === 0) + return -4; + const ch4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[ch4] & 64) === 0) + return -4; + parser.index += 3; + parser.column += 3; + parser.currentChar = parser.source.charCodeAt(parser.index); + return (toHex(ch) << 12) | (toHex(ch2) << 8) | (toHex(ch3) << 4) | toHex(ch4); + } + } + case 56: + case 57: + if ((context & 256) === 0) + return -3; + default: + return first; + } +} +function handleStringError(state, code, isTemplate) { + switch (code) { + case -1: + return; + case -2: + report(state, isTemplate ? 2 : 1); + case -3: + report(state, 13); + case -4: + report(state, 6); + case -5: + report(state, 101); + } +} + +function scanTemplate(parser, context) { + const { index: start } = parser; + let token = 67174409; + let ret = ''; + let char = advanceChar(parser); + while (char !== 96) { + if (char === 36 && parser.source.charCodeAt(parser.index + 1) === 123) { + advanceChar(parser); + token = 67174408; + break; + } + else if ((char & 8) === 8 && char === 92) { + char = advanceChar(parser); + if (char > 0x7e) { + ret += fromCodePoint(char); + } + else { + const code = parseEscape(parser, context | 1024, char); + if (code >= 0) { + ret += fromCodePoint(code); + } + else if (code !== -1 && context & 65536) { + ret = undefined; + char = scanBadTemplate(parser, char); + if (char < 0) + token = 67174408; + break; + } + else { + handleStringError(parser, code, 1); + } + } + } + else { + if (parser.index < parser.end && + char === 13 && + parser.source.charCodeAt(parser.index) === 10) { + ret += fromCodePoint(char); + parser.currentChar = parser.source.charCodeAt(++parser.index); + } + if (((char & 83) < 3 && char === 10) || (char ^ 8232) <= 1) { + parser.column = -1; + parser.line++; + } + ret += fromCodePoint(char); + } + if (parser.index >= parser.end) + report(parser, 15); + char = advanceChar(parser); + } + advanceChar(parser); + parser.tokenValue = ret; + parser.tokenRaw = parser.source.slice(start + 1, parser.index - (token === 67174409 ? 1 : 2)); + return token; +} +function scanBadTemplate(parser, ch) { + while (ch !== 96) { + switch (ch) { + case 36: { + const index = parser.index + 1; + if (index < parser.end && parser.source.charCodeAt(index) === 123) { + parser.index = index; + parser.column++; + return -ch; + } + break; + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + } + if (parser.index >= parser.end) + report(parser, 15); + ch = advanceChar(parser); + } + return ch; +} +function scanTemplateTail(parser, context) { + if (parser.index >= parser.end) + report(parser, 0); + parser.index--; + parser.column--; + return scanTemplate(parser, context); +} + +function scanNumber(parser, context, kind) { + let char = parser.currentChar; + let value = 0; + let digit = 9; + let atStart = kind & 64 ? 0 : 1; + let digits = 0; + let allowSeparator = 0; + if (kind & 64) { + value = '.' + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 110) + report(parser, 11); + } + else { + if (char === 48) { + char = advanceChar(parser); + if ((char | 32) === 120) { + kind = 8 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (64 | 4096)) { + if (char === 95) { + if (!allowSeparator) + report(parser, 146); + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 0x10 + toHex(char); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 19 : 147); + } + } + else if ((char | 32) === 111) { + kind = 4 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (32 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 8 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if ((char | 32) === 98) { + kind = 2 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (128 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 2 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if (CharTypes[char] & 32) { + if (context & 1024) + report(parser, 1); + kind = 1; + while (CharTypes[char] & 16) { + if (CharTypes[char] & 512) { + kind = 32; + atStart = 0; + break; + } + value = value * 8 + (char - 48); + char = advanceChar(parser); + } + } + else if (CharTypes[char] & 512) { + if (context & 1024) + report(parser, 1); + parser.flags |= 64; + kind = 32; + } + else if (char === 95) { + report(parser, 0); + } + } + if (kind & 48) { + if (atStart) { + while (digit >= 0 && CharTypes[char] & (16 | 4096)) { + if (char === 95) { + char = advanceChar(parser); + if (char === 95 || kind & 32) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + continue; + } + allowSeparator = 0; + value = 10 * value + (char - 48); + char = advanceChar(parser); + --digit; + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + if (digit >= 0 && !isIdentifierStart(char) && char !== 46) { + parser.tokenValue = value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + } + value += scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 46) { + if (advanceChar(parser) === 95) + report(parser, 0); + kind = 64; + value += '.' + scanDecimalDigitsOrSeparator(parser, parser.currentChar); + char = parser.currentChar; + } + } + } + const end = parser.index; + let isBigInt = 0; + if (char === 110 && kind & 128) { + isBigInt = 1; + char = advanceChar(parser); + } + else { + if ((char | 32) === 101) { + char = advanceChar(parser); + if (CharTypes[char] & 256) + char = advanceChar(parser); + const { index } = parser; + if ((CharTypes[char] & 16) < 1) + report(parser, 10); + value += parser.source.substring(end, index) + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + } + } + if ((parser.index < parser.end && CharTypes[char] & 16) || isIdentifierStart(char)) { + report(parser, 12); + } + if (isBigInt) { + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = BigInt(value); + return 134283389; + } + parser.tokenValue = + kind & (1 | 2 | 8 | 4) + ? value + : kind & 32 + ? parseFloat(parser.source.substring(parser.tokenPos, parser.index)) + : +value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; +} +function scanDecimalDigitsOrSeparator(parser, char) { + let allowSeparator = 0; + let start = parser.index; + let ret = ''; + while (CharTypes[char] & (16 | 4096)) { + if (char === 95) { + const { index } = parser; + char = advanceChar(parser); + if (char === 95) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + ret += parser.source.substring(start, index); + start = parser.index; + continue; + } + allowSeparator = 0; + char = advanceChar(parser); + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + return ret + parser.source.substring(start, parser.index); +} + +const KeywordDescTable = [ + 'end of source', + 'identifier', 'number', 'string', 'regular expression', + 'false', 'true', 'null', + 'template continuation', 'template tail', + '=>', '(', '{', '.', '...', '}', ')', ';', ',', '[', ']', ':', '?', '\'', '"', '', + '++', '--', + '=', '<<=', '>>=', '>>>=', '**=', '+=', '-=', '*=', '/=', '%=', '^=', '|=', + '&=', '||=', '&&=', '??=', + 'typeof', 'delete', 'void', '!', '~', '+', '-', 'in', 'instanceof', '*', '%', '/', '**', '&&', + '||', '===', '!==', '==', '!=', '<=', '>=', '<', '>', '<<', '>>', '>>>', '&', '|', '^', + 'var', 'let', 'const', + 'break', 'case', 'catch', 'class', 'continue', 'debugger', 'default', 'do', 'else', 'export', + 'extends', 'finally', 'for', 'function', 'if', 'import', 'new', 'return', 'super', 'switch', + 'this', 'throw', 'try', 'while', 'with', + 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield', + 'as', 'async', 'await', 'constructor', 'get', 'set', 'from', 'of', + 'enum', 'eval', 'arguments', 'escaped keyword', 'escaped future reserved keyword', 'reserved if strict', '#', + 'BigIntLiteral', '??', '?.', 'WhiteSpace', 'Illegal', 'LineTerminator', 'PrivateField', + 'Template', '@', 'target', 'meta', 'LineFeed', 'Escaped', 'JSXText' +]; +const descKeywordTable = Object.create(null, { + this: { value: 86113 }, + function: { value: 86106 }, + if: { value: 20571 }, + return: { value: 20574 }, + var: { value: 86090 }, + else: { value: 20565 }, + for: { value: 20569 }, + new: { value: 86109 }, + in: { value: 8738868 }, + typeof: { value: 16863277 }, + while: { value: 20580 }, + case: { value: 20558 }, + break: { value: 20557 }, + try: { value: 20579 }, + catch: { value: 20559 }, + delete: { value: 16863278 }, + throw: { value: 86114 }, + switch: { value: 86112 }, + continue: { value: 20561 }, + default: { value: 20563 }, + instanceof: { value: 8476725 }, + do: { value: 20564 }, + void: { value: 16863279 }, + finally: { value: 20568 }, + async: { value: 209007 }, + await: { value: 209008 }, + class: { value: 86096 }, + const: { value: 86092 }, + constructor: { value: 12401 }, + debugger: { value: 20562 }, + export: { value: 20566 }, + extends: { value: 20567 }, + false: { value: 86021 }, + from: { value: 12404 }, + get: { value: 12402 }, + implements: { value: 36966 }, + import: { value: 86108 }, + interface: { value: 36967 }, + let: { value: 241739 }, + null: { value: 86023 }, + of: { value: 274549 }, + package: { value: 36968 }, + private: { value: 36969 }, + protected: { value: 36970 }, + public: { value: 36971 }, + set: { value: 12403 }, + static: { value: 36972 }, + super: { value: 86111 }, + true: { value: 86022 }, + with: { value: 20581 }, + yield: { value: 241773 }, + enum: { value: 86134 }, + eval: { value: 537079927 }, + as: { value: 77934 }, + arguments: { value: 537079928 }, + target: { value: 143494 }, + meta: { value: 143495 }, +}); + +function scanIdentifier(parser, context, isValidAsKeyword) { + while (isIdPart[advanceChar(parser)]) { } + parser.tokenValue = parser.source.slice(parser.tokenPos, parser.index); + return parser.currentChar !== 92 && parser.currentChar < 0x7e + ? descKeywordTable[parser.tokenValue] || 208897 + : scanIdentifierSlowCase(parser, context, 0, isValidAsKeyword); +} +function scanUnicodeIdentifier(parser, context) { + const cookedChar = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(cookedChar)) + report(parser, 4); + parser.tokenValue = fromCodePoint(cookedChar); + return scanIdentifierSlowCase(parser, context, 1, CharTypes[cookedChar] & 4); +} +function scanIdentifierSlowCase(parser, context, hasEscape, isValidAsKeyword) { + let start = parser.index; + while (parser.index < parser.end) { + if (parser.currentChar === 92) { + parser.tokenValue += parser.source.slice(start, parser.index); + hasEscape = 1; + const code = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(code)) + report(parser, 4); + isValidAsKeyword = isValidAsKeyword && CharTypes[code] & 4; + parser.tokenValue += fromCodePoint(code); + start = parser.index; + } + else if (isIdentifierPart(parser.currentChar) || consumeMultiUnitCodePoint(parser, parser.currentChar)) { + advanceChar(parser); + } + else { + break; + } + } + if (parser.index <= parser.end) { + parser.tokenValue += parser.source.slice(start, parser.index); + } + const length = parser.tokenValue.length; + if (isValidAsKeyword && length >= 2 && length <= 11) { + const token = descKeywordTable[parser.tokenValue]; + if (token === void 0) + return 208897; + if (!hasEscape) + return token; + if (context & 1024) { + return token === 209008 && (context & (2048 | 4194304)) === 0 + ? token + : token === 36972 + ? 122 + : (token & 36864) === 36864 + ? 122 + : 121; + } + if (context & 1073741824 && + (context & 8192) === 0 && + (token & 20480) === 20480) + return token; + if (token === 241773) { + return context & 1073741824 + ? 143483 + : context & 2097152 + ? 121 + : token; + } + return token === 209007 && context & 1073741824 + ? 143483 + : (token & 36864) === 36864 + ? token + : token === 209008 && (context & 4194304) === 0 + ? token + : 121; + } + return 208897; +} +function scanPrivateIdentifier(parser) { + if (!isIdentifierStart(advanceChar(parser))) + report(parser, 93); + return 131; +} +function scanIdentifierUnicodeEscape(parser) { + if (parser.source.charCodeAt(parser.index + 1) !== 117) { + report(parser, 4); + } + parser.currentChar = parser.source.charCodeAt((parser.index += 2)); + return scanUnicodeEscape(parser); +} +function scanUnicodeEscape(parser) { + let codePoint = 0; + const char = parser.currentChar; + if (char === 123) { + const begin = parser.index - 2; + while (CharTypes[advanceChar(parser)] & 64) { + codePoint = (codePoint << 4) | toHex(parser.currentChar); + if (codePoint > 1114111) + reportScannerError(begin, parser.line, parser.index + 1, 101); + } + if (parser.currentChar !== 125) { + reportScannerError(begin, parser.line, parser.index - 1, 6); + } + advanceChar(parser); + return codePoint; + } + if ((CharTypes[char] & 64) === 0) + report(parser, 6); + const char2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[char2] & 64) === 0) + report(parser, 6); + const char3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[char3] & 64) === 0) + report(parser, 6); + const char4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[char4] & 64) === 0) + report(parser, 6); + codePoint = (toHex(char) << 12) | (toHex(char2) << 8) | (toHex(char3) << 4) | toHex(char4); + parser.currentChar = parser.source.charCodeAt((parser.index += 4)); + return codePoint; +} + +const TokenLookup = [ + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 136, + 128, + 128, + 130, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 16842800, + 134283267, + 131, + 208897, + 8457015, + 8455751, + 134283267, + 67174411, + 16, + 8457014, + 25233970, + 18, + 25233971, + 67108877, + 8457016, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 21, + 1074790417, + 8456258, + 1077936157, + 8456259, + 22, + 133, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 69271571, + 137, + 20, + 8455497, + 208897, + 132, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 208897, + 4096, + 208897, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 4096, + 4096, + 208897, + 4096, + 4096, + 208897, + 4096, + 4096, + 2162700, + 8455240, + 1074790415, + 16842801, + 129 +]; +function nextToken(parser, context) { + parser.flags = (parser.flags | 1) ^ 1; + parser.startPos = parser.index; + parser.startColumn = parser.column; + parser.startLine = parser.line; + parser.token = scanSingleToken(parser, context, 0); + if (parser.onToken && parser.token !== 1048576) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onToken(convertTokenType(parser.token), parser.tokenPos, parser.index, loc); + } +} +function scanSingleToken(parser, context, state) { + const isStartOfLine = parser.index === 0; + const source = parser.source; + let startPos = parser.index; + let startLine = parser.line; + let startColumn = parser.column; + while (parser.index < parser.end) { + parser.tokenPos = parser.index; + parser.colPos = parser.column; + parser.linePos = parser.line; + let char = parser.currentChar; + if (char <= 0x7e) { + const token = TokenLookup[char]; + switch (token) { + case 67174411: + case 16: + case 2162700: + case 1074790415: + case 69271571: + case 20: + case 21: + case 1074790417: + case 18: + case 16842801: + case 133: + case 129: + advanceChar(parser); + return token; + case 208897: + return scanIdentifier(parser, context, 0); + case 4096: + return scanIdentifier(parser, context, 1); + case 134283266: + return scanNumber(parser, context, 16 | 128); + case 134283267: + return scanString(parser, context, char); + case 132: + return scanTemplate(parser, context); + case 137: + return scanUnicodeIdentifier(parser, context); + case 131: + return scanPrivateIdentifier(parser); + case 128: + advanceChar(parser); + break; + case 130: + state |= 1 | 4; + scanNewLine(parser); + break; + case 136: + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + break; + case 8456258: + let ch = advanceChar(parser); + if (parser.index < parser.end) { + if (ch === 60) { + if (parser.index < parser.end && advanceChar(parser) === 61) { + advanceChar(parser); + return 4194334; + } + return 8456516; + } + else if (ch === 61) { + advanceChar(parser); + return 8456000; + } + if (ch === 33) { + const index = parser.index + 1; + if (index + 1 < parser.end && + source.charCodeAt(index) === 45 && + source.charCodeAt(index + 1) == 45) { + parser.column += 3; + parser.currentChar = source.charCodeAt((parser.index += 3)); + state = skipSingleHTMLComment(parser, source, state, context, 2, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 8456258; + } + if (ch === 47) { + if ((context & 16) < 1) + return 8456258; + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (ch === 42 || ch === 47) + break; + } + advanceChar(parser); + return 25; + } + } + return 8456258; + case 1077936157: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 8455996; + } + return 8455998; + } + if (ch === 62) { + advanceChar(parser); + return 10; + } + return 1077936157; + } + case 16842800: + if (advanceChar(parser) !== 61) { + return 16842800; + } + if (advanceChar(parser) !== 61) { + return 8455999; + } + advanceChar(parser); + return 8455997; + case 8457015: + if (advanceChar(parser) !== 61) + return 8457015; + advanceChar(parser); + return 4194342; + case 8457014: { + advanceChar(parser); + if (parser.index >= parser.end) + return 8457014; + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 4194340; + } + if (ch !== 42) + return 8457014; + if (advanceChar(parser) !== 61) + return 8457273; + advanceChar(parser); + return 4194337; + } + case 8455497: + if (advanceChar(parser) !== 61) + return 8455497; + advanceChar(parser); + return 4194343; + case 25233970: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 43) { + advanceChar(parser); + return 33619995; + } + if (ch === 61) { + advanceChar(parser); + return 4194338; + } + return 25233970; + } + case 25233971: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 45) { + advanceChar(parser); + if ((state & 1 || isStartOfLine) && parser.currentChar === 62) { + if ((context & 256) === 0) + report(parser, 108); + advanceChar(parser); + state = skipSingleHTMLComment(parser, source, state, context, 3, startPos, startLine, startColumn); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 33619996; + } + if (ch === 61) { + advanceChar(parser); + return 4194339; + } + return 25233971; + } + case 8457016: { + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 47) { + advanceChar(parser); + state = skipSingleLineComment(parser, source, state, 0, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (ch === 42) { + advanceChar(parser); + state = skipMultiLineComment(parser, source, state); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (context & 32768) { + return scanRegularExpression(parser, context); + } + if (ch === 61) { + advanceChar(parser); + return 4259877; + } + } + return 8457016; + } + case 67108877: + const next = advanceChar(parser); + if (next >= 48 && next <= 57) + return scanNumber(parser, context, 64 | 16); + if (next === 46) { + const index = parser.index + 1; + if (index < parser.end && source.charCodeAt(index) === 46) { + parser.column += 2; + parser.currentChar = source.charCodeAt((parser.index += 2)); + return 14; + } + } + return 67108877; + case 8455240: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 124) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194346; + } + return 8979003; + } + if (ch === 61) { + advanceChar(parser); + return 4194344; + } + return 8455240; + } + case 8456259: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 8456001; + } + if (ch !== 62) + return 8456259; + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 62) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 4194336; + } + return 8456518; + } + if (ch === 61) { + advanceChar(parser); + return 4194335; + } + } + return 8456517; + } + case 8455751: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 38) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194347; + } + return 8979258; + } + if (ch === 61) { + advanceChar(parser); + return 4194345; + } + return 8455751; + } + case 22: { + let ch = advanceChar(parser); + if (ch === 63) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194348; + } + return 276889982; + } + if (ch === 46) { + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (!(ch >= 48 && ch <= 57)) { + advanceChar(parser); + return 67108991; + } + } + } + return 22; + } + } + } + else { + if ((char ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + continue; + } + if ((char & 0xfc00) === 0xd800 || ((unicodeLookup[(char >>> 5) + 34816] >>> char) & 31 & 1) !== 0) { + if ((char & 0xfc00) === 0xdc00) { + char = ((char & 0x3ff) << 10) | (char & 0x3ff) | 0x10000; + if (((unicodeLookup[(char >>> 5) + 0] >>> char) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(char)); + } + parser.index++; + parser.currentChar = char; + } + parser.column++; + parser.tokenValue = ''; + return scanIdentifierSlowCase(parser, context, 0, 0); + } + if (isExoticECMAScriptWhitespace(char)) { + advanceChar(parser); + continue; + } + report(parser, 18, fromCodePoint(char)); + } + } + return 1048576; +} + +const entities = { + AElig: '\u00C6', + AMP: '\u0026', + Aacute: '\u00C1', + Abreve: '\u0102', + Acirc: '\u00C2', + Acy: '\u0410', + Afr: '\uD835\uDD04', + Agrave: '\u00C0', + Alpha: '\u0391', + Amacr: '\u0100', + And: '\u2A53', + Aogon: '\u0104', + Aopf: '\uD835\uDD38', + ApplyFunction: '\u2061', + Aring: '\u00C5', + Ascr: '\uD835\uDC9C', + Assign: '\u2254', + Atilde: '\u00C3', + Auml: '\u00C4', + Backslash: '\u2216', + Barv: '\u2AE7', + Barwed: '\u2306', + Bcy: '\u0411', + Because: '\u2235', + Bernoullis: '\u212C', + Beta: '\u0392', + Bfr: '\uD835\uDD05', + Bopf: '\uD835\uDD39', + Breve: '\u02D8', + Bscr: '\u212C', + Bumpeq: '\u224E', + CHcy: '\u0427', + COPY: '\u00A9', + Cacute: '\u0106', + Cap: '\u22D2', + CapitalDifferentialD: '\u2145', + Cayleys: '\u212D', + Ccaron: '\u010C', + Ccedil: '\u00C7', + Ccirc: '\u0108', + Cconint: '\u2230', + Cdot: '\u010A', + Cedilla: '\u00B8', + CenterDot: '\u00B7', + Cfr: '\u212D', + Chi: '\u03A7', + CircleDot: '\u2299', + CircleMinus: '\u2296', + CirclePlus: '\u2295', + CircleTimes: '\u2297', + ClockwiseContourIntegral: '\u2232', + CloseCurlyDoubleQuote: '\u201D', + CloseCurlyQuote: '\u2019', + Colon: '\u2237', + Colone: '\u2A74', + Congruent: '\u2261', + Conint: '\u222F', + ContourIntegral: '\u222E', + Copf: '\u2102', + Coproduct: '\u2210', + CounterClockwiseContourIntegral: '\u2233', + Cross: '\u2A2F', + Cscr: '\uD835\uDC9E', + Cup: '\u22D3', + CupCap: '\u224D', + DD: '\u2145', + DDotrahd: '\u2911', + DJcy: '\u0402', + DScy: '\u0405', + DZcy: '\u040F', + Dagger: '\u2021', + Darr: '\u21A1', + Dashv: '\u2AE4', + Dcaron: '\u010E', + Dcy: '\u0414', + Del: '\u2207', + Delta: '\u0394', + Dfr: '\uD835\uDD07', + DiacriticalAcute: '\u00B4', + DiacriticalDot: '\u02D9', + DiacriticalDoubleAcute: '\u02DD', + DiacriticalGrave: '\u0060', + DiacriticalTilde: '\u02DC', + Diamond: '\u22C4', + DifferentialD: '\u2146', + Dopf: '\uD835\uDD3B', + Dot: '\u00A8', + DotDot: '\u20DC', + DotEqual: '\u2250', + DoubleContourIntegral: '\u222F', + DoubleDot: '\u00A8', + DoubleDownArrow: '\u21D3', + DoubleLeftArrow: '\u21D0', + DoubleLeftRightArrow: '\u21D4', + DoubleLeftTee: '\u2AE4', + DoubleLongLeftArrow: '\u27F8', + DoubleLongLeftRightArrow: '\u27FA', + DoubleLongRightArrow: '\u27F9', + DoubleRightArrow: '\u21D2', + DoubleRightTee: '\u22A8', + DoubleUpArrow: '\u21D1', + DoubleUpDownArrow: '\u21D5', + DoubleVerticalBar: '\u2225', + DownArrow: '\u2193', + DownArrowBar: '\u2913', + DownArrowUpArrow: '\u21F5', + DownBreve: '\u0311', + DownLeftRightVector: '\u2950', + DownLeftTeeVector: '\u295E', + DownLeftVector: '\u21BD', + DownLeftVectorBar: '\u2956', + DownRightTeeVector: '\u295F', + DownRightVector: '\u21C1', + DownRightVectorBar: '\u2957', + DownTee: '\u22A4', + DownTeeArrow: '\u21A7', + Downarrow: '\u21D3', + Dscr: '\uD835\uDC9F', + Dstrok: '\u0110', + ENG: '\u014A', + ETH: '\u00D0', + Eacute: '\u00C9', + Ecaron: '\u011A', + Ecirc: '\u00CA', + Ecy: '\u042D', + Edot: '\u0116', + Efr: '\uD835\uDD08', + Egrave: '\u00C8', + Element: '\u2208', + Emacr: '\u0112', + EmptySmallSquare: '\u25FB', + EmptyVerySmallSquare: '\u25AB', + Eogon: '\u0118', + Eopf: '\uD835\uDD3C', + Epsilon: '\u0395', + Equal: '\u2A75', + EqualTilde: '\u2242', + Equilibrium: '\u21CC', + Escr: '\u2130', + Esim: '\u2A73', + Eta: '\u0397', + Euml: '\u00CB', + Exists: '\u2203', + ExponentialE: '\u2147', + Fcy: '\u0424', + Ffr: '\uD835\uDD09', + FilledSmallSquare: '\u25FC', + FilledVerySmallSquare: '\u25AA', + Fopf: '\uD835\uDD3D', + ForAll: '\u2200', + Fouriertrf: '\u2131', + Fscr: '\u2131', + GJcy: '\u0403', + GT: '\u003E', + Gamma: '\u0393', + Gammad: '\u03DC', + Gbreve: '\u011E', + Gcedil: '\u0122', + Gcirc: '\u011C', + Gcy: '\u0413', + Gdot: '\u0120', + Gfr: '\uD835\uDD0A', + Gg: '\u22D9', + Gopf: '\uD835\uDD3E', + GreaterEqual: '\u2265', + GreaterEqualLess: '\u22DB', + GreaterFullEqual: '\u2267', + GreaterGreater: '\u2AA2', + GreaterLess: '\u2277', + GreaterSlantEqual: '\u2A7E', + GreaterTilde: '\u2273', + Gscr: '\uD835\uDCA2', + Gt: '\u226B', + HARDcy: '\u042A', + Hacek: '\u02C7', + Hat: '\u005E', + Hcirc: '\u0124', + Hfr: '\u210C', + HilbertSpace: '\u210B', + Hopf: '\u210D', + HorizontalLine: '\u2500', + Hscr: '\u210B', + Hstrok: '\u0126', + HumpDownHump: '\u224E', + HumpEqual: '\u224F', + IEcy: '\u0415', + IJlig: '\u0132', + IOcy: '\u0401', + Iacute: '\u00CD', + Icirc: '\u00CE', + Icy: '\u0418', + Idot: '\u0130', + Ifr: '\u2111', + Igrave: '\u00CC', + Im: '\u2111', + Imacr: '\u012A', + ImaginaryI: '\u2148', + Implies: '\u21D2', + Int: '\u222C', + Integral: '\u222B', + Intersection: '\u22C2', + InvisibleComma: '\u2063', + InvisibleTimes: '\u2062', + Iogon: '\u012E', + Iopf: '\uD835\uDD40', + Iota: '\u0399', + Iscr: '\u2110', + Itilde: '\u0128', + Iukcy: '\u0406', + Iuml: '\u00CF', + Jcirc: '\u0134', + Jcy: '\u0419', + Jfr: '\uD835\uDD0D', + Jopf: '\uD835\uDD41', + Jscr: '\uD835\uDCA5', + Jsercy: '\u0408', + Jukcy: '\u0404', + KHcy: '\u0425', + KJcy: '\u040C', + Kappa: '\u039A', + Kcedil: '\u0136', + Kcy: '\u041A', + Kfr: '\uD835\uDD0E', + Kopf: '\uD835\uDD42', + Kscr: '\uD835\uDCA6', + LJcy: '\u0409', + LT: '\u003C', + Lacute: '\u0139', + Lambda: '\u039B', + Lang: '\u27EA', + Laplacetrf: '\u2112', + Larr: '\u219E', + Lcaron: '\u013D', + Lcedil: '\u013B', + Lcy: '\u041B', + LeftAngleBracket: '\u27E8', + LeftArrow: '\u2190', + LeftArrowBar: '\u21E4', + LeftArrowRightArrow: '\u21C6', + LeftCeiling: '\u2308', + LeftDoubleBracket: '\u27E6', + LeftDownTeeVector: '\u2961', + LeftDownVector: '\u21C3', + LeftDownVectorBar: '\u2959', + LeftFloor: '\u230A', + LeftRightArrow: '\u2194', + LeftRightVector: '\u294E', + LeftTee: '\u22A3', + LeftTeeArrow: '\u21A4', + LeftTeeVector: '\u295A', + LeftTriangle: '\u22B2', + LeftTriangleBar: '\u29CF', + LeftTriangleEqual: '\u22B4', + LeftUpDownVector: '\u2951', + LeftUpTeeVector: '\u2960', + LeftUpVector: '\u21BF', + LeftUpVectorBar: '\u2958', + LeftVector: '\u21BC', + LeftVectorBar: '\u2952', + Leftarrow: '\u21D0', + Leftrightarrow: '\u21D4', + LessEqualGreater: '\u22DA', + LessFullEqual: '\u2266', + LessGreater: '\u2276', + LessLess: '\u2AA1', + LessSlantEqual: '\u2A7D', + LessTilde: '\u2272', + Lfr: '\uD835\uDD0F', + Ll: '\u22D8', + Lleftarrow: '\u21DA', + Lmidot: '\u013F', + LongLeftArrow: '\u27F5', + LongLeftRightArrow: '\u27F7', + LongRightArrow: '\u27F6', + Longleftarrow: '\u27F8', + Longleftrightarrow: '\u27FA', + Longrightarrow: '\u27F9', + Lopf: '\uD835\uDD43', + LowerLeftArrow: '\u2199', + LowerRightArrow: '\u2198', + Lscr: '\u2112', + Lsh: '\u21B0', + Lstrok: '\u0141', + Lt: '\u226A', + Map: '\u2905', + Mcy: '\u041C', + MediumSpace: '\u205F', + Mellintrf: '\u2133', + Mfr: '\uD835\uDD10', + MinusPlus: '\u2213', + Mopf: '\uD835\uDD44', + Mscr: '\u2133', + Mu: '\u039C', + NJcy: '\u040A', + Nacute: '\u0143', + Ncaron: '\u0147', + Ncedil: '\u0145', + Ncy: '\u041D', + NegativeMediumSpace: '\u200B', + NegativeThickSpace: '\u200B', + NegativeThinSpace: '\u200B', + NegativeVeryThinSpace: '\u200B', + NestedGreaterGreater: '\u226B', + NestedLessLess: '\u226A', + NewLine: '\u000A', + Nfr: '\uD835\uDD11', + NoBreak: '\u2060', + NonBreakingSpace: '\u00A0', + Nopf: '\u2115', + Not: '\u2AEC', + NotCongruent: '\u2262', + NotCupCap: '\u226D', + NotDoubleVerticalBar: '\u2226', + NotElement: '\u2209', + NotEqual: '\u2260', + NotEqualTilde: '\u2242\u0338', + NotExists: '\u2204', + NotGreater: '\u226F', + NotGreaterEqual: '\u2271', + NotGreaterFullEqual: '\u2267\u0338', + NotGreaterGreater: '\u226B\u0338', + NotGreaterLess: '\u2279', + NotGreaterSlantEqual: '\u2A7E\u0338', + NotGreaterTilde: '\u2275', + NotHumpDownHump: '\u224E\u0338', + NotHumpEqual: '\u224F\u0338', + NotLeftTriangle: '\u22EA', + NotLeftTriangleBar: '\u29CF\u0338', + NotLeftTriangleEqual: '\u22EC', + NotLess: '\u226E', + NotLessEqual: '\u2270', + NotLessGreater: '\u2278', + NotLessLess: '\u226A\u0338', + NotLessSlantEqual: '\u2A7D\u0338', + NotLessTilde: '\u2274', + NotNestedGreaterGreater: '\u2AA2\u0338', + NotNestedLessLess: '\u2AA1\u0338', + NotPrecedes: '\u2280', + NotPrecedesEqual: '\u2AAF\u0338', + NotPrecedesSlantEqual: '\u22E0', + NotReverseElement: '\u220C', + NotRightTriangle: '\u22EB', + NotRightTriangleBar: '\u29D0\u0338', + NotRightTriangleEqual: '\u22ED', + NotSquareSubset: '\u228F\u0338', + NotSquareSubsetEqual: '\u22E2', + NotSquareSuperset: '\u2290\u0338', + NotSquareSupersetEqual: '\u22E3', + NotSubset: '\u2282\u20D2', + NotSubsetEqual: '\u2288', + NotSucceeds: '\u2281', + NotSucceedsEqual: '\u2AB0\u0338', + NotSucceedsSlantEqual: '\u22E1', + NotSucceedsTilde: '\u227F\u0338', + NotSuperset: '\u2283\u20D2', + NotSupersetEqual: '\u2289', + NotTilde: '\u2241', + NotTildeEqual: '\u2244', + NotTildeFullEqual: '\u2247', + NotTildeTilde: '\u2249', + NotVerticalBar: '\u2224', + Nscr: '\uD835\uDCA9', + Ntilde: '\u00D1', + Nu: '\u039D', + OElig: '\u0152', + Oacute: '\u00D3', + Ocirc: '\u00D4', + Ocy: '\u041E', + Odblac: '\u0150', + Ofr: '\uD835\uDD12', + Ograve: '\u00D2', + Omacr: '\u014C', + Omega: '\u03A9', + Omicron: '\u039F', + Oopf: '\uD835\uDD46', + OpenCurlyDoubleQuote: '\u201C', + OpenCurlyQuote: '\u2018', + Or: '\u2A54', + Oscr: '\uD835\uDCAA', + Oslash: '\u00D8', + Otilde: '\u00D5', + Otimes: '\u2A37', + Ouml: '\u00D6', + OverBar: '\u203E', + OverBrace: '\u23DE', + OverBracket: '\u23B4', + OverParenthesis: '\u23DC', + PartialD: '\u2202', + Pcy: '\u041F', + Pfr: '\uD835\uDD13', + Phi: '\u03A6', + Pi: '\u03A0', + PlusMinus: '\u00B1', + Poincareplane: '\u210C', + Popf: '\u2119', + Pr: '\u2ABB', + Precedes: '\u227A', + PrecedesEqual: '\u2AAF', + PrecedesSlantEqual: '\u227C', + PrecedesTilde: '\u227E', + Prime: '\u2033', + Product: '\u220F', + Proportion: '\u2237', + Proportional: '\u221D', + Pscr: '\uD835\uDCAB', + Psi: '\u03A8', + QUOT: '\u0022', + Qfr: '\uD835\uDD14', + Qopf: '\u211A', + Qscr: '\uD835\uDCAC', + RBarr: '\u2910', + REG: '\u00AE', + Racute: '\u0154', + Rang: '\u27EB', + Rarr: '\u21A0', + Rarrtl: '\u2916', + Rcaron: '\u0158', + Rcedil: '\u0156', + Rcy: '\u0420', + Re: '\u211C', + ReverseElement: '\u220B', + ReverseEquilibrium: '\u21CB', + ReverseUpEquilibrium: '\u296F', + Rfr: '\u211C', + Rho: '\u03A1', + RightAngleBracket: '\u27E9', + RightArrow: '\u2192', + RightArrowBar: '\u21E5', + RightArrowLeftArrow: '\u21C4', + RightCeiling: '\u2309', + RightDoubleBracket: '\u27E7', + RightDownTeeVector: '\u295D', + RightDownVector: '\u21C2', + RightDownVectorBar: '\u2955', + RightFloor: '\u230B', + RightTee: '\u22A2', + RightTeeArrow: '\u21A6', + RightTeeVector: '\u295B', + RightTriangle: '\u22B3', + RightTriangleBar: '\u29D0', + RightTriangleEqual: '\u22B5', + RightUpDownVector: '\u294F', + RightUpTeeVector: '\u295C', + RightUpVector: '\u21BE', + RightUpVectorBar: '\u2954', + RightVector: '\u21C0', + RightVectorBar: '\u2953', + Rightarrow: '\u21D2', + Ropf: '\u211D', + RoundImplies: '\u2970', + Rrightarrow: '\u21DB', + Rscr: '\u211B', + Rsh: '\u21B1', + RuleDelayed: '\u29F4', + SHCHcy: '\u0429', + SHcy: '\u0428', + SOFTcy: '\u042C', + Sacute: '\u015A', + Sc: '\u2ABC', + Scaron: '\u0160', + Scedil: '\u015E', + Scirc: '\u015C', + Scy: '\u0421', + Sfr: '\uD835\uDD16', + ShortDownArrow: '\u2193', + ShortLeftArrow: '\u2190', + ShortRightArrow: '\u2192', + ShortUpArrow: '\u2191', + Sigma: '\u03A3', + SmallCircle: '\u2218', + Sopf: '\uD835\uDD4A', + Sqrt: '\u221A', + Square: '\u25A1', + SquareIntersection: '\u2293', + SquareSubset: '\u228F', + SquareSubsetEqual: '\u2291', + SquareSuperset: '\u2290', + SquareSupersetEqual: '\u2292', + SquareUnion: '\u2294', + Sscr: '\uD835\uDCAE', + Star: '\u22C6', + Sub: '\u22D0', + Subset: '\u22D0', + SubsetEqual: '\u2286', + Succeeds: '\u227B', + SucceedsEqual: '\u2AB0', + SucceedsSlantEqual: '\u227D', + SucceedsTilde: '\u227F', + SuchThat: '\u220B', + Sum: '\u2211', + Sup: '\u22D1', + Superset: '\u2283', + SupersetEqual: '\u2287', + Supset: '\u22D1', + THORN: '\u00DE', + TRADE: '\u2122', + TSHcy: '\u040B', + TScy: '\u0426', + Tab: '\u0009', + Tau: '\u03A4', + Tcaron: '\u0164', + Tcedil: '\u0162', + Tcy: '\u0422', + Tfr: '\uD835\uDD17', + Therefore: '\u2234', + Theta: '\u0398', + ThickSpace: '\u205F\u200A', + ThinSpace: '\u2009', + Tilde: '\u223C', + TildeEqual: '\u2243', + TildeFullEqual: '\u2245', + TildeTilde: '\u2248', + Topf: '\uD835\uDD4B', + TripleDot: '\u20DB', + Tscr: '\uD835\uDCAF', + Tstrok: '\u0166', + Uacute: '\u00DA', + Uarr: '\u219F', + Uarrocir: '\u2949', + Ubrcy: '\u040E', + Ubreve: '\u016C', + Ucirc: '\u00DB', + Ucy: '\u0423', + Udblac: '\u0170', + Ufr: '\uD835\uDD18', + Ugrave: '\u00D9', + Umacr: '\u016A', + UnderBar: '\u005F', + UnderBrace: '\u23DF', + UnderBracket: '\u23B5', + UnderParenthesis: '\u23DD', + Union: '\u22C3', + UnionPlus: '\u228E', + Uogon: '\u0172', + Uopf: '\uD835\uDD4C', + UpArrow: '\u2191', + UpArrowBar: '\u2912', + UpArrowDownArrow: '\u21C5', + UpDownArrow: '\u2195', + UpEquilibrium: '\u296E', + UpTee: '\u22A5', + UpTeeArrow: '\u21A5', + Uparrow: '\u21D1', + Updownarrow: '\u21D5', + UpperLeftArrow: '\u2196', + UpperRightArrow: '\u2197', + Upsi: '\u03D2', + Upsilon: '\u03A5', + Uring: '\u016E', + Uscr: '\uD835\uDCB0', + Utilde: '\u0168', + Uuml: '\u00DC', + VDash: '\u22AB', + Vbar: '\u2AEB', + Vcy: '\u0412', + Vdash: '\u22A9', + Vdashl: '\u2AE6', + Vee: '\u22C1', + Verbar: '\u2016', + Vert: '\u2016', + VerticalBar: '\u2223', + VerticalLine: '\u007C', + VerticalSeparator: '\u2758', + VerticalTilde: '\u2240', + VeryThinSpace: '\u200A', + Vfr: '\uD835\uDD19', + Vopf: '\uD835\uDD4D', + Vscr: '\uD835\uDCB1', + Vvdash: '\u22AA', + Wcirc: '\u0174', + Wedge: '\u22C0', + Wfr: '\uD835\uDD1A', + Wopf: '\uD835\uDD4E', + Wscr: '\uD835\uDCB2', + Xfr: '\uD835\uDD1B', + Xi: '\u039E', + Xopf: '\uD835\uDD4F', + Xscr: '\uD835\uDCB3', + YAcy: '\u042F', + YIcy: '\u0407', + YUcy: '\u042E', + Yacute: '\u00DD', + Ycirc: '\u0176', + Ycy: '\u042B', + Yfr: '\uD835\uDD1C', + Yopf: '\uD835\uDD50', + Yscr: '\uD835\uDCB4', + Yuml: '\u0178', + ZHcy: '\u0416', + Zacute: '\u0179', + Zcaron: '\u017D', + Zcy: '\u0417', + Zdot: '\u017B', + ZeroWidthSpace: '\u200B', + Zeta: '\u0396', + Zfr: '\u2128', + Zopf: '\u2124', + Zscr: '\uD835\uDCB5', + aacute: '\u00E1', + abreve: '\u0103', + ac: '\u223E', + acE: '\u223E\u0333', + acd: '\u223F', + acirc: '\u00E2', + acute: '\u00B4', + acy: '\u0430', + aelig: '\u00E6', + af: '\u2061', + afr: '\uD835\uDD1E', + agrave: '\u00E0', + alefsym: '\u2135', + aleph: '\u2135', + alpha: '\u03B1', + amacr: '\u0101', + amalg: '\u2A3F', + amp: '\u0026', + and: '\u2227', + andand: '\u2A55', + andd: '\u2A5C', + andslope: '\u2A58', + andv: '\u2A5A', + ang: '\u2220', + ange: '\u29A4', + angle: '\u2220', + angmsd: '\u2221', + angmsdaa: '\u29A8', + angmsdab: '\u29A9', + angmsdac: '\u29AA', + angmsdad: '\u29AB', + angmsdae: '\u29AC', + angmsdaf: '\u29AD', + angmsdag: '\u29AE', + angmsdah: '\u29AF', + angrt: '\u221F', + angrtvb: '\u22BE', + angrtvbd: '\u299D', + angsph: '\u2222', + angst: '\u00C5', + angzarr: '\u237C', + aogon: '\u0105', + aopf: '\uD835\uDD52', + ap: '\u2248', + apE: '\u2A70', + apacir: '\u2A6F', + ape: '\u224A', + apid: '\u224B', + apos: '\u0027', + approx: '\u2248', + approxeq: '\u224A', + aring: '\u00E5', + ascr: '\uD835\uDCB6', + ast: '\u002A', + asymp: '\u2248', + asympeq: '\u224D', + atilde: '\u00E3', + auml: '\u00E4', + awconint: '\u2233', + awint: '\u2A11', + bNot: '\u2AED', + backcong: '\u224C', + backepsilon: '\u03F6', + backprime: '\u2035', + backsim: '\u223D', + backsimeq: '\u22CD', + barvee: '\u22BD', + barwed: '\u2305', + barwedge: '\u2305', + bbrk: '\u23B5', + bbrktbrk: '\u23B6', + bcong: '\u224C', + bcy: '\u0431', + bdquo: '\u201E', + becaus: '\u2235', + because: '\u2235', + bemptyv: '\u29B0', + bepsi: '\u03F6', + bernou: '\u212C', + beta: '\u03B2', + beth: '\u2136', + between: '\u226C', + bfr: '\uD835\uDD1F', + bigcap: '\u22C2', + bigcirc: '\u25EF', + bigcup: '\u22C3', + bigodot: '\u2A00', + bigoplus: '\u2A01', + bigotimes: '\u2A02', + bigsqcup: '\u2A06', + bigstar: '\u2605', + bigtriangledown: '\u25BD', + bigtriangleup: '\u25B3', + biguplus: '\u2A04', + bigvee: '\u22C1', + bigwedge: '\u22C0', + bkarow: '\u290D', + blacklozenge: '\u29EB', + blacksquare: '\u25AA', + blacktriangle: '\u25B4', + blacktriangledown: '\u25BE', + blacktriangleleft: '\u25C2', + blacktriangleright: '\u25B8', + blank: '\u2423', + blk12: '\u2592', + blk14: '\u2591', + blk34: '\u2593', + block: '\u2588', + bne: '\u003D\u20E5', + bnequiv: '\u2261\u20E5', + bnot: '\u2310', + bopf: '\uD835\uDD53', + bot: '\u22A5', + bottom: '\u22A5', + bowtie: '\u22C8', + boxDL: '\u2557', + boxDR: '\u2554', + boxDl: '\u2556', + boxDr: '\u2553', + boxH: '\u2550', + boxHD: '\u2566', + boxHU: '\u2569', + boxHd: '\u2564', + boxHu: '\u2567', + boxUL: '\u255D', + boxUR: '\u255A', + boxUl: '\u255C', + boxUr: '\u2559', + boxV: '\u2551', + boxVH: '\u256C', + boxVL: '\u2563', + boxVR: '\u2560', + boxVh: '\u256B', + boxVl: '\u2562', + boxVr: '\u255F', + boxbox: '\u29C9', + boxdL: '\u2555', + boxdR: '\u2552', + boxdl: '\u2510', + boxdr: '\u250C', + boxh: '\u2500', + boxhD: '\u2565', + boxhU: '\u2568', + boxhd: '\u252C', + boxhu: '\u2534', + boxminus: '\u229F', + boxplus: '\u229E', + boxtimes: '\u22A0', + boxuL: '\u255B', + boxuR: '\u2558', + boxul: '\u2518', + boxur: '\u2514', + boxv: '\u2502', + boxvH: '\u256A', + boxvL: '\u2561', + boxvR: '\u255E', + boxvh: '\u253C', + boxvl: '\u2524', + boxvr: '\u251C', + bprime: '\u2035', + breve: '\u02D8', + brvbar: '\u00A6', + bscr: '\uD835\uDCB7', + bsemi: '\u204F', + bsim: '\u223D', + bsime: '\u22CD', + bsol: '\u005C', + bsolb: '\u29C5', + bsolhsub: '\u27C8', + bull: '\u2022', + bullet: '\u2022', + bump: '\u224E', + bumpE: '\u2AAE', + bumpe: '\u224F', + bumpeq: '\u224F', + cacute: '\u0107', + cap: '\u2229', + capand: '\u2A44', + capbrcup: '\u2A49', + capcap: '\u2A4B', + capcup: '\u2A47', + capdot: '\u2A40', + caps: '\u2229\uFE00', + caret: '\u2041', + caron: '\u02C7', + ccaps: '\u2A4D', + ccaron: '\u010D', + ccedil: '\u00E7', + ccirc: '\u0109', + ccups: '\u2A4C', + ccupssm: '\u2A50', + cdot: '\u010B', + cedil: '\u00B8', + cemptyv: '\u29B2', + cent: '\u00A2', + centerdot: '\u00B7', + cfr: '\uD835\uDD20', + chcy: '\u0447', + check: '\u2713', + checkmark: '\u2713', + chi: '\u03C7', + cir: '\u25CB', + cirE: '\u29C3', + circ: '\u02C6', + circeq: '\u2257', + circlearrowleft: '\u21BA', + circlearrowright: '\u21BB', + circledR: '\u00AE', + circledS: '\u24C8', + circledast: '\u229B', + circledcirc: '\u229A', + circleddash: '\u229D', + cire: '\u2257', + cirfnint: '\u2A10', + cirmid: '\u2AEF', + cirscir: '\u29C2', + clubs: '\u2663', + clubsuit: '\u2663', + colon: '\u003A', + colone: '\u2254', + coloneq: '\u2254', + comma: '\u002C', + commat: '\u0040', + comp: '\u2201', + compfn: '\u2218', + complement: '\u2201', + complexes: '\u2102', + cong: '\u2245', + congdot: '\u2A6D', + conint: '\u222E', + copf: '\uD835\uDD54', + coprod: '\u2210', + copy: '\u00A9', + copysr: '\u2117', + crarr: '\u21B5', + cross: '\u2717', + cscr: '\uD835\uDCB8', + csub: '\u2ACF', + csube: '\u2AD1', + csup: '\u2AD0', + csupe: '\u2AD2', + ctdot: '\u22EF', + cudarrl: '\u2938', + cudarrr: '\u2935', + cuepr: '\u22DE', + cuesc: '\u22DF', + cularr: '\u21B6', + cularrp: '\u293D', + cup: '\u222A', + cupbrcap: '\u2A48', + cupcap: '\u2A46', + cupcup: '\u2A4A', + cupdot: '\u228D', + cupor: '\u2A45', + cups: '\u222A\uFE00', + curarr: '\u21B7', + curarrm: '\u293C', + curlyeqprec: '\u22DE', + curlyeqsucc: '\u22DF', + curlyvee: '\u22CE', + curlywedge: '\u22CF', + curren: '\u00A4', + curvearrowleft: '\u21B6', + curvearrowright: '\u21B7', + cuvee: '\u22CE', + cuwed: '\u22CF', + cwconint: '\u2232', + cwint: '\u2231', + cylcty: '\u232D', + dArr: '\u21D3', + dHar: '\u2965', + dagger: '\u2020', + daleth: '\u2138', + darr: '\u2193', + dash: '\u2010', + dashv: '\u22A3', + dbkarow: '\u290F', + dblac: '\u02DD', + dcaron: '\u010F', + dcy: '\u0434', + dd: '\u2146', + ddagger: '\u2021', + ddarr: '\u21CA', + ddotseq: '\u2A77', + deg: '\u00B0', + delta: '\u03B4', + demptyv: '\u29B1', + dfisht: '\u297F', + dfr: '\uD835\uDD21', + dharl: '\u21C3', + dharr: '\u21C2', + diam: '\u22C4', + diamond: '\u22C4', + diamondsuit: '\u2666', + diams: '\u2666', + die: '\u00A8', + digamma: '\u03DD', + disin: '\u22F2', + div: '\u00F7', + divide: '\u00F7', + divideontimes: '\u22C7', + divonx: '\u22C7', + djcy: '\u0452', + dlcorn: '\u231E', + dlcrop: '\u230D', + dollar: '\u0024', + dopf: '\uD835\uDD55', + dot: '\u02D9', + doteq: '\u2250', + doteqdot: '\u2251', + dotminus: '\u2238', + dotplus: '\u2214', + dotsquare: '\u22A1', + doublebarwedge: '\u2306', + downarrow: '\u2193', + downdownarrows: '\u21CA', + downharpoonleft: '\u21C3', + downharpoonright: '\u21C2', + drbkarow: '\u2910', + drcorn: '\u231F', + drcrop: '\u230C', + dscr: '\uD835\uDCB9', + dscy: '\u0455', + dsol: '\u29F6', + dstrok: '\u0111', + dtdot: '\u22F1', + dtri: '\u25BF', + dtrif: '\u25BE', + duarr: '\u21F5', + duhar: '\u296F', + dwangle: '\u29A6', + dzcy: '\u045F', + dzigrarr: '\u27FF', + eDDot: '\u2A77', + eDot: '\u2251', + eacute: '\u00E9', + easter: '\u2A6E', + ecaron: '\u011B', + ecir: '\u2256', + ecirc: '\u00EA', + ecolon: '\u2255', + ecy: '\u044D', + edot: '\u0117', + ee: '\u2147', + efDot: '\u2252', + efr: '\uD835\uDD22', + eg: '\u2A9A', + egrave: '\u00E8', + egs: '\u2A96', + egsdot: '\u2A98', + el: '\u2A99', + elinters: '\u23E7', + ell: '\u2113', + els: '\u2A95', + elsdot: '\u2A97', + emacr: '\u0113', + empty: '\u2205', + emptyset: '\u2205', + emptyv: '\u2205', + emsp13: '\u2004', + emsp14: '\u2005', + emsp: '\u2003', + eng: '\u014B', + ensp: '\u2002', + eogon: '\u0119', + eopf: '\uD835\uDD56', + epar: '\u22D5', + eparsl: '\u29E3', + eplus: '\u2A71', + epsi: '\u03B5', + epsilon: '\u03B5', + epsiv: '\u03F5', + eqcirc: '\u2256', + eqcolon: '\u2255', + eqsim: '\u2242', + eqslantgtr: '\u2A96', + eqslantless: '\u2A95', + equals: '\u003D', + equest: '\u225F', + equiv: '\u2261', + equivDD: '\u2A78', + eqvparsl: '\u29E5', + erDot: '\u2253', + erarr: '\u2971', + escr: '\u212F', + esdot: '\u2250', + esim: '\u2242', + eta: '\u03B7', + eth: '\u00F0', + euml: '\u00EB', + euro: '\u20AC', + excl: '\u0021', + exist: '\u2203', + expectation: '\u2130', + exponentiale: '\u2147', + fallingdotseq: '\u2252', + fcy: '\u0444', + female: '\u2640', + ffilig: '\uFB03', + fflig: '\uFB00', + ffllig: '\uFB04', + ffr: '\uD835\uDD23', + filig: '\uFB01', + fjlig: '\u0066\u006A', + flat: '\u266D', + fllig: '\uFB02', + fltns: '\u25B1', + fnof: '\u0192', + fopf: '\uD835\uDD57', + forall: '\u2200', + fork: '\u22D4', + forkv: '\u2AD9', + fpartint: '\u2A0D', + frac12: '\u00BD', + frac13: '\u2153', + frac14: '\u00BC', + frac15: '\u2155', + frac16: '\u2159', + frac18: '\u215B', + frac23: '\u2154', + frac25: '\u2156', + frac34: '\u00BE', + frac35: '\u2157', + frac38: '\u215C', + frac45: '\u2158', + frac56: '\u215A', + frac58: '\u215D', + frac78: '\u215E', + frasl: '\u2044', + frown: '\u2322', + fscr: '\uD835\uDCBB', + gE: '\u2267', + gEl: '\u2A8C', + gacute: '\u01F5', + gamma: '\u03B3', + gammad: '\u03DD', + gap: '\u2A86', + gbreve: '\u011F', + gcirc: '\u011D', + gcy: '\u0433', + gdot: '\u0121', + ge: '\u2265', + gel: '\u22DB', + geq: '\u2265', + geqq: '\u2267', + geqslant: '\u2A7E', + ges: '\u2A7E', + gescc: '\u2AA9', + gesdot: '\u2A80', + gesdoto: '\u2A82', + gesdotol: '\u2A84', + gesl: '\u22DB\uFE00', + gesles: '\u2A94', + gfr: '\uD835\uDD24', + gg: '\u226B', + ggg: '\u22D9', + gimel: '\u2137', + gjcy: '\u0453', + gl: '\u2277', + glE: '\u2A92', + gla: '\u2AA5', + glj: '\u2AA4', + gnE: '\u2269', + gnap: '\u2A8A', + gnapprox: '\u2A8A', + gne: '\u2A88', + gneq: '\u2A88', + gneqq: '\u2269', + gnsim: '\u22E7', + gopf: '\uD835\uDD58', + grave: '\u0060', + gscr: '\u210A', + gsim: '\u2273', + gsime: '\u2A8E', + gsiml: '\u2A90', + gt: '\u003E', + gtcc: '\u2AA7', + gtcir: '\u2A7A', + gtdot: '\u22D7', + gtlPar: '\u2995', + gtquest: '\u2A7C', + gtrapprox: '\u2A86', + gtrarr: '\u2978', + gtrdot: '\u22D7', + gtreqless: '\u22DB', + gtreqqless: '\u2A8C', + gtrless: '\u2277', + gtrsim: '\u2273', + gvertneqq: '\u2269\uFE00', + gvnE: '\u2269\uFE00', + hArr: '\u21D4', + hairsp: '\u200A', + half: '\u00BD', + hamilt: '\u210B', + hardcy: '\u044A', + harr: '\u2194', + harrcir: '\u2948', + harrw: '\u21AD', + hbar: '\u210F', + hcirc: '\u0125', + hearts: '\u2665', + heartsuit: '\u2665', + hellip: '\u2026', + hercon: '\u22B9', + hfr: '\uD835\uDD25', + hksearow: '\u2925', + hkswarow: '\u2926', + hoarr: '\u21FF', + homtht: '\u223B', + hookleftarrow: '\u21A9', + hookrightarrow: '\u21AA', + hopf: '\uD835\uDD59', + horbar: '\u2015', + hscr: '\uD835\uDCBD', + hslash: '\u210F', + hstrok: '\u0127', + hybull: '\u2043', + hyphen: '\u2010', + iacute: '\u00ED', + ic: '\u2063', + icirc: '\u00EE', + icy: '\u0438', + iecy: '\u0435', + iexcl: '\u00A1', + iff: '\u21D4', + ifr: '\uD835\uDD26', + igrave: '\u00EC', + ii: '\u2148', + iiiint: '\u2A0C', + iiint: '\u222D', + iinfin: '\u29DC', + iiota: '\u2129', + ijlig: '\u0133', + imacr: '\u012B', + image: '\u2111', + imagline: '\u2110', + imagpart: '\u2111', + imath: '\u0131', + imof: '\u22B7', + imped: '\u01B5', + in: '\u2208', + incare: '\u2105', + infin: '\u221E', + infintie: '\u29DD', + inodot: '\u0131', + int: '\u222B', + intcal: '\u22BA', + integers: '\u2124', + intercal: '\u22BA', + intlarhk: '\u2A17', + intprod: '\u2A3C', + iocy: '\u0451', + iogon: '\u012F', + iopf: '\uD835\uDD5A', + iota: '\u03B9', + iprod: '\u2A3C', + iquest: '\u00BF', + iscr: '\uD835\uDCBE', + isin: '\u2208', + isinE: '\u22F9', + isindot: '\u22F5', + isins: '\u22F4', + isinsv: '\u22F3', + isinv: '\u2208', + it: '\u2062', + itilde: '\u0129', + iukcy: '\u0456', + iuml: '\u00EF', + jcirc: '\u0135', + jcy: '\u0439', + jfr: '\uD835\uDD27', + jmath: '\u0237', + jopf: '\uD835\uDD5B', + jscr: '\uD835\uDCBF', + jsercy: '\u0458', + jukcy: '\u0454', + kappa: '\u03BA', + kappav: '\u03F0', + kcedil: '\u0137', + kcy: '\u043A', + kfr: '\uD835\uDD28', + kgreen: '\u0138', + khcy: '\u0445', + kjcy: '\u045C', + kopf: '\uD835\uDD5C', + kscr: '\uD835\uDCC0', + lAarr: '\u21DA', + lArr: '\u21D0', + lAtail: '\u291B', + lBarr: '\u290E', + lE: '\u2266', + lEg: '\u2A8B', + lHar: '\u2962', + lacute: '\u013A', + laemptyv: '\u29B4', + lagran: '\u2112', + lambda: '\u03BB', + lang: '\u27E8', + langd: '\u2991', + langle: '\u27E8', + lap: '\u2A85', + laquo: '\u00AB', + larr: '\u2190', + larrb: '\u21E4', + larrbfs: '\u291F', + larrfs: '\u291D', + larrhk: '\u21A9', + larrlp: '\u21AB', + larrpl: '\u2939', + larrsim: '\u2973', + larrtl: '\u21A2', + lat: '\u2AAB', + latail: '\u2919', + late: '\u2AAD', + lates: '\u2AAD\uFE00', + lbarr: '\u290C', + lbbrk: '\u2772', + lbrace: '\u007B', + lbrack: '\u005B', + lbrke: '\u298B', + lbrksld: '\u298F', + lbrkslu: '\u298D', + lcaron: '\u013E', + lcedil: '\u013C', + lceil: '\u2308', + lcub: '\u007B', + lcy: '\u043B', + ldca: '\u2936', + ldquo: '\u201C', + ldquor: '\u201E', + ldrdhar: '\u2967', + ldrushar: '\u294B', + ldsh: '\u21B2', + le: '\u2264', + leftarrow: '\u2190', + leftarrowtail: '\u21A2', + leftharpoondown: '\u21BD', + leftharpoonup: '\u21BC', + leftleftarrows: '\u21C7', + leftrightarrow: '\u2194', + leftrightarrows: '\u21C6', + leftrightharpoons: '\u21CB', + leftrightsquigarrow: '\u21AD', + leftthreetimes: '\u22CB', + leg: '\u22DA', + leq: '\u2264', + leqq: '\u2266', + leqslant: '\u2A7D', + les: '\u2A7D', + lescc: '\u2AA8', + lesdot: '\u2A7F', + lesdoto: '\u2A81', + lesdotor: '\u2A83', + lesg: '\u22DA\uFE00', + lesges: '\u2A93', + lessapprox: '\u2A85', + lessdot: '\u22D6', + lesseqgtr: '\u22DA', + lesseqqgtr: '\u2A8B', + lessgtr: '\u2276', + lesssim: '\u2272', + lfisht: '\u297C', + lfloor: '\u230A', + lfr: '\uD835\uDD29', + lg: '\u2276', + lgE: '\u2A91', + lhard: '\u21BD', + lharu: '\u21BC', + lharul: '\u296A', + lhblk: '\u2584', + ljcy: '\u0459', + ll: '\u226A', + llarr: '\u21C7', + llcorner: '\u231E', + llhard: '\u296B', + lltri: '\u25FA', + lmidot: '\u0140', + lmoust: '\u23B0', + lmoustache: '\u23B0', + lnE: '\u2268', + lnap: '\u2A89', + lnapprox: '\u2A89', + lne: '\u2A87', + lneq: '\u2A87', + lneqq: '\u2268', + lnsim: '\u22E6', + loang: '\u27EC', + loarr: '\u21FD', + lobrk: '\u27E6', + longleftarrow: '\u27F5', + longleftrightarrow: '\u27F7', + longmapsto: '\u27FC', + longrightarrow: '\u27F6', + looparrowleft: '\u21AB', + looparrowright: '\u21AC', + lopar: '\u2985', + lopf: '\uD835\uDD5D', + loplus: '\u2A2D', + lotimes: '\u2A34', + lowast: '\u2217', + lowbar: '\u005F', + loz: '\u25CA', + lozenge: '\u25CA', + lozf: '\u29EB', + lpar: '\u0028', + lparlt: '\u2993', + lrarr: '\u21C6', + lrcorner: '\u231F', + lrhar: '\u21CB', + lrhard: '\u296D', + lrm: '\u200E', + lrtri: '\u22BF', + lsaquo: '\u2039', + lscr: '\uD835\uDCC1', + lsh: '\u21B0', + lsim: '\u2272', + lsime: '\u2A8D', + lsimg: '\u2A8F', + lsqb: '\u005B', + lsquo: '\u2018', + lsquor: '\u201A', + lstrok: '\u0142', + lt: '\u003C', + ltcc: '\u2AA6', + ltcir: '\u2A79', + ltdot: '\u22D6', + lthree: '\u22CB', + ltimes: '\u22C9', + ltlarr: '\u2976', + ltquest: '\u2A7B', + ltrPar: '\u2996', + ltri: '\u25C3', + ltrie: '\u22B4', + ltrif: '\u25C2', + lurdshar: '\u294A', + luruhar: '\u2966', + lvertneqq: '\u2268\uFE00', + lvnE: '\u2268\uFE00', + mDDot: '\u223A', + macr: '\u00AF', + male: '\u2642', + malt: '\u2720', + maltese: '\u2720', + map: '\u21A6', + mapsto: '\u21A6', + mapstodown: '\u21A7', + mapstoleft: '\u21A4', + mapstoup: '\u21A5', + marker: '\u25AE', + mcomma: '\u2A29', + mcy: '\u043C', + mdash: '\u2014', + measuredangle: '\u2221', + mfr: '\uD835\uDD2A', + mho: '\u2127', + micro: '\u00B5', + mid: '\u2223', + midast: '\u002A', + midcir: '\u2AF0', + middot: '\u00B7', + minus: '\u2212', + minusb: '\u229F', + minusd: '\u2238', + minusdu: '\u2A2A', + mlcp: '\u2ADB', + mldr: '\u2026', + mnplus: '\u2213', + models: '\u22A7', + mopf: '\uD835\uDD5E', + mp: '\u2213', + mscr: '\uD835\uDCC2', + mstpos: '\u223E', + mu: '\u03BC', + multimap: '\u22B8', + mumap: '\u22B8', + nGg: '\u22D9\u0338', + nGt: '\u226B\u20D2', + nGtv: '\u226B\u0338', + nLeftarrow: '\u21CD', + nLeftrightarrow: '\u21CE', + nLl: '\u22D8\u0338', + nLt: '\u226A\u20D2', + nLtv: '\u226A\u0338', + nRightarrow: '\u21CF', + nVDash: '\u22AF', + nVdash: '\u22AE', + nabla: '\u2207', + nacute: '\u0144', + nang: '\u2220\u20D2', + nap: '\u2249', + napE: '\u2A70\u0338', + napid: '\u224B\u0338', + napos: '\u0149', + napprox: '\u2249', + natur: '\u266E', + natural: '\u266E', + naturals: '\u2115', + nbsp: '\u00A0', + nbump: '\u224E\u0338', + nbumpe: '\u224F\u0338', + ncap: '\u2A43', + ncaron: '\u0148', + ncedil: '\u0146', + ncong: '\u2247', + ncongdot: '\u2A6D\u0338', + ncup: '\u2A42', + ncy: '\u043D', + ndash: '\u2013', + ne: '\u2260', + neArr: '\u21D7', + nearhk: '\u2924', + nearr: '\u2197', + nearrow: '\u2197', + nedot: '\u2250\u0338', + nequiv: '\u2262', + nesear: '\u2928', + nesim: '\u2242\u0338', + nexist: '\u2204', + nexists: '\u2204', + nfr: '\uD835\uDD2B', + ngE: '\u2267\u0338', + nge: '\u2271', + ngeq: '\u2271', + ngeqq: '\u2267\u0338', + ngeqslant: '\u2A7E\u0338', + nges: '\u2A7E\u0338', + ngsim: '\u2275', + ngt: '\u226F', + ngtr: '\u226F', + nhArr: '\u21CE', + nharr: '\u21AE', + nhpar: '\u2AF2', + ni: '\u220B', + nis: '\u22FC', + nisd: '\u22FA', + niv: '\u220B', + njcy: '\u045A', + nlArr: '\u21CD', + nlE: '\u2266\u0338', + nlarr: '\u219A', + nldr: '\u2025', + nle: '\u2270', + nleftarrow: '\u219A', + nleftrightarrow: '\u21AE', + nleq: '\u2270', + nleqq: '\u2266\u0338', + nleqslant: '\u2A7D\u0338', + nles: '\u2A7D\u0338', + nless: '\u226E', + nlsim: '\u2274', + nlt: '\u226E', + nltri: '\u22EA', + nltrie: '\u22EC', + nmid: '\u2224', + nopf: '\uD835\uDD5F', + not: '\u00AC', + notin: '\u2209', + notinE: '\u22F9\u0338', + notindot: '\u22F5\u0338', + notinva: '\u2209', + notinvb: '\u22F7', + notinvc: '\u22F6', + notni: '\u220C', + notniva: '\u220C', + notnivb: '\u22FE', + notnivc: '\u22FD', + npar: '\u2226', + nparallel: '\u2226', + nparsl: '\u2AFD\u20E5', + npart: '\u2202\u0338', + npolint: '\u2A14', + npr: '\u2280', + nprcue: '\u22E0', + npre: '\u2AAF\u0338', + nprec: '\u2280', + npreceq: '\u2AAF\u0338', + nrArr: '\u21CF', + nrarr: '\u219B', + nrarrc: '\u2933\u0338', + nrarrw: '\u219D\u0338', + nrightarrow: '\u219B', + nrtri: '\u22EB', + nrtrie: '\u22ED', + nsc: '\u2281', + nsccue: '\u22E1', + nsce: '\u2AB0\u0338', + nscr: '\uD835\uDCC3', + nshortmid: '\u2224', + nshortparallel: '\u2226', + nsim: '\u2241', + nsime: '\u2244', + nsimeq: '\u2244', + nsmid: '\u2224', + nspar: '\u2226', + nsqsube: '\u22E2', + nsqsupe: '\u22E3', + nsub: '\u2284', + nsubE: '\u2AC5\u0338', + nsube: '\u2288', + nsubset: '\u2282\u20D2', + nsubseteq: '\u2288', + nsubseteqq: '\u2AC5\u0338', + nsucc: '\u2281', + nsucceq: '\u2AB0\u0338', + nsup: '\u2285', + nsupE: '\u2AC6\u0338', + nsupe: '\u2289', + nsupset: '\u2283\u20D2', + nsupseteq: '\u2289', + nsupseteqq: '\u2AC6\u0338', + ntgl: '\u2279', + ntilde: '\u00F1', + ntlg: '\u2278', + ntriangleleft: '\u22EA', + ntrianglelefteq: '\u22EC', + ntriangleright: '\u22EB', + ntrianglerighteq: '\u22ED', + nu: '\u03BD', + num: '\u0023', + numero: '\u2116', + numsp: '\u2007', + nvDash: '\u22AD', + nvHarr: '\u2904', + nvap: '\u224D\u20D2', + nvdash: '\u22AC', + nvge: '\u2265\u20D2', + nvgt: '\u003E\u20D2', + nvinfin: '\u29DE', + nvlArr: '\u2902', + nvle: '\u2264\u20D2', + nvlt: '\u003C\u20D2', + nvltrie: '\u22B4\u20D2', + nvrArr: '\u2903', + nvrtrie: '\u22B5\u20D2', + nvsim: '\u223C\u20D2', + nwArr: '\u21D6', + nwarhk: '\u2923', + nwarr: '\u2196', + nwarrow: '\u2196', + nwnear: '\u2927', + oS: '\u24C8', + oacute: '\u00F3', + oast: '\u229B', + ocir: '\u229A', + ocirc: '\u00F4', + ocy: '\u043E', + odash: '\u229D', + odblac: '\u0151', + odiv: '\u2A38', + odot: '\u2299', + odsold: '\u29BC', + oelig: '\u0153', + ofcir: '\u29BF', + ofr: '\uD835\uDD2C', + ogon: '\u02DB', + ograve: '\u00F2', + ogt: '\u29C1', + ohbar: '\u29B5', + ohm: '\u03A9', + oint: '\u222E', + olarr: '\u21BA', + olcir: '\u29BE', + olcross: '\u29BB', + oline: '\u203E', + olt: '\u29C0', + omacr: '\u014D', + omega: '\u03C9', + omicron: '\u03BF', + omid: '\u29B6', + ominus: '\u2296', + oopf: '\uD835\uDD60', + opar: '\u29B7', + operp: '\u29B9', + oplus: '\u2295', + or: '\u2228', + orarr: '\u21BB', + ord: '\u2A5D', + order: '\u2134', + orderof: '\u2134', + ordf: '\u00AA', + ordm: '\u00BA', + origof: '\u22B6', + oror: '\u2A56', + orslope: '\u2A57', + orv: '\u2A5B', + oscr: '\u2134', + oslash: '\u00F8', + osol: '\u2298', + otilde: '\u00F5', + otimes: '\u2297', + otimesas: '\u2A36', + ouml: '\u00F6', + ovbar: '\u233D', + par: '\u2225', + para: '\u00B6', + parallel: '\u2225', + parsim: '\u2AF3', + parsl: '\u2AFD', + part: '\u2202', + pcy: '\u043F', + percnt: '\u0025', + period: '\u002E', + permil: '\u2030', + perp: '\u22A5', + pertenk: '\u2031', + pfr: '\uD835\uDD2D', + phi: '\u03C6', + phiv: '\u03D5', + phmmat: '\u2133', + phone: '\u260E', + pi: '\u03C0', + pitchfork: '\u22D4', + piv: '\u03D6', + planck: '\u210F', + planckh: '\u210E', + plankv: '\u210F', + plus: '\u002B', + plusacir: '\u2A23', + plusb: '\u229E', + pluscir: '\u2A22', + plusdo: '\u2214', + plusdu: '\u2A25', + pluse: '\u2A72', + plusmn: '\u00B1', + plussim: '\u2A26', + plustwo: '\u2A27', + pm: '\u00B1', + pointint: '\u2A15', + popf: '\uD835\uDD61', + pound: '\u00A3', + pr: '\u227A', + prE: '\u2AB3', + prap: '\u2AB7', + prcue: '\u227C', + pre: '\u2AAF', + prec: '\u227A', + precapprox: '\u2AB7', + preccurlyeq: '\u227C', + preceq: '\u2AAF', + precnapprox: '\u2AB9', + precneqq: '\u2AB5', + precnsim: '\u22E8', + precsim: '\u227E', + prime: '\u2032', + primes: '\u2119', + prnE: '\u2AB5', + prnap: '\u2AB9', + prnsim: '\u22E8', + prod: '\u220F', + profalar: '\u232E', + profline: '\u2312', + profsurf: '\u2313', + prop: '\u221D', + propto: '\u221D', + prsim: '\u227E', + prurel: '\u22B0', + pscr: '\uD835\uDCC5', + psi: '\u03C8', + puncsp: '\u2008', + qfr: '\uD835\uDD2E', + qint: '\u2A0C', + qopf: '\uD835\uDD62', + qprime: '\u2057', + qscr: '\uD835\uDCC6', + quaternions: '\u210D', + quatint: '\u2A16', + quest: '\u003F', + questeq: '\u225F', + quot: '\u0022', + rAarr: '\u21DB', + rArr: '\u21D2', + rAtail: '\u291C', + rBarr: '\u290F', + rHar: '\u2964', + race: '\u223D\u0331', + racute: '\u0155', + radic: '\u221A', + raemptyv: '\u29B3', + rang: '\u27E9', + rangd: '\u2992', + range: '\u29A5', + rangle: '\u27E9', + raquo: '\u00BB', + rarr: '\u2192', + rarrap: '\u2975', + rarrb: '\u21E5', + rarrbfs: '\u2920', + rarrc: '\u2933', + rarrfs: '\u291E', + rarrhk: '\u21AA', + rarrlp: '\u21AC', + rarrpl: '\u2945', + rarrsim: '\u2974', + rarrtl: '\u21A3', + rarrw: '\u219D', + ratail: '\u291A', + ratio: '\u2236', + rationals: '\u211A', + rbarr: '\u290D', + rbbrk: '\u2773', + rbrace: '\u007D', + rbrack: '\u005D', + rbrke: '\u298C', + rbrksld: '\u298E', + rbrkslu: '\u2990', + rcaron: '\u0159', + rcedil: '\u0157', + rceil: '\u2309', + rcub: '\u007D', + rcy: '\u0440', + rdca: '\u2937', + rdldhar: '\u2969', + rdquo: '\u201D', + rdquor: '\u201D', + rdsh: '\u21B3', + real: '\u211C', + realine: '\u211B', + realpart: '\u211C', + reals: '\u211D', + rect: '\u25AD', + reg: '\u00AE', + rfisht: '\u297D', + rfloor: '\u230B', + rfr: '\uD835\uDD2F', + rhard: '\u21C1', + rharu: '\u21C0', + rharul: '\u296C', + rho: '\u03C1', + rhov: '\u03F1', + rightarrow: '\u2192', + rightarrowtail: '\u21A3', + rightharpoondown: '\u21C1', + rightharpoonup: '\u21C0', + rightleftarrows: '\u21C4', + rightleftharpoons: '\u21CC', + rightrightarrows: '\u21C9', + rightsquigarrow: '\u219D', + rightthreetimes: '\u22CC', + ring: '\u02DA', + risingdotseq: '\u2253', + rlarr: '\u21C4', + rlhar: '\u21CC', + rlm: '\u200F', + rmoust: '\u23B1', + rmoustache: '\u23B1', + rnmid: '\u2AEE', + roang: '\u27ED', + roarr: '\u21FE', + robrk: '\u27E7', + ropar: '\u2986', + ropf: '\uD835\uDD63', + roplus: '\u2A2E', + rotimes: '\u2A35', + rpar: '\u0029', + rpargt: '\u2994', + rppolint: '\u2A12', + rrarr: '\u21C9', + rsaquo: '\u203A', + rscr: '\uD835\uDCC7', + rsh: '\u21B1', + rsqb: '\u005D', + rsquo: '\u2019', + rsquor: '\u2019', + rthree: '\u22CC', + rtimes: '\u22CA', + rtri: '\u25B9', + rtrie: '\u22B5', + rtrif: '\u25B8', + rtriltri: '\u29CE', + ruluhar: '\u2968', + rx: '\u211E', + sacute: '\u015B', + sbquo: '\u201A', + sc: '\u227B', + scE: '\u2AB4', + scap: '\u2AB8', + scaron: '\u0161', + sccue: '\u227D', + sce: '\u2AB0', + scedil: '\u015F', + scirc: '\u015D', + scnE: '\u2AB6', + scnap: '\u2ABA', + scnsim: '\u22E9', + scpolint: '\u2A13', + scsim: '\u227F', + scy: '\u0441', + sdot: '\u22C5', + sdotb: '\u22A1', + sdote: '\u2A66', + seArr: '\u21D8', + searhk: '\u2925', + searr: '\u2198', + searrow: '\u2198', + sect: '\u00A7', + semi: '\u003B', + seswar: '\u2929', + setminus: '\u2216', + setmn: '\u2216', + sext: '\u2736', + sfr: '\uD835\uDD30', + sfrown: '\u2322', + sharp: '\u266F', + shchcy: '\u0449', + shcy: '\u0448', + shortmid: '\u2223', + shortparallel: '\u2225', + shy: '\u00AD', + sigma: '\u03C3', + sigmaf: '\u03C2', + sigmav: '\u03C2', + sim: '\u223C', + simdot: '\u2A6A', + sime: '\u2243', + simeq: '\u2243', + simg: '\u2A9E', + simgE: '\u2AA0', + siml: '\u2A9D', + simlE: '\u2A9F', + simne: '\u2246', + simplus: '\u2A24', + simrarr: '\u2972', + slarr: '\u2190', + smallsetminus: '\u2216', + smashp: '\u2A33', + smeparsl: '\u29E4', + smid: '\u2223', + smile: '\u2323', + smt: '\u2AAA', + smte: '\u2AAC', + smtes: '\u2AAC\uFE00', + softcy: '\u044C', + sol: '\u002F', + solb: '\u29C4', + solbar: '\u233F', + sopf: '\uD835\uDD64', + spades: '\u2660', + spadesuit: '\u2660', + spar: '\u2225', + sqcap: '\u2293', + sqcaps: '\u2293\uFE00', + sqcup: '\u2294', + sqcups: '\u2294\uFE00', + sqsub: '\u228F', + sqsube: '\u2291', + sqsubset: '\u228F', + sqsubseteq: '\u2291', + sqsup: '\u2290', + sqsupe: '\u2292', + sqsupset: '\u2290', + sqsupseteq: '\u2292', + squ: '\u25A1', + square: '\u25A1', + squarf: '\u25AA', + squf: '\u25AA', + srarr: '\u2192', + sscr: '\uD835\uDCC8', + ssetmn: '\u2216', + ssmile: '\u2323', + sstarf: '\u22C6', + star: '\u2606', + starf: '\u2605', + straightepsilon: '\u03F5', + straightphi: '\u03D5', + strns: '\u00AF', + sub: '\u2282', + subE: '\u2AC5', + subdot: '\u2ABD', + sube: '\u2286', + subedot: '\u2AC3', + submult: '\u2AC1', + subnE: '\u2ACB', + subne: '\u228A', + subplus: '\u2ABF', + subrarr: '\u2979', + subset: '\u2282', + subseteq: '\u2286', + subseteqq: '\u2AC5', + subsetneq: '\u228A', + subsetneqq: '\u2ACB', + subsim: '\u2AC7', + subsub: '\u2AD5', + subsup: '\u2AD3', + succ: '\u227B', + succapprox: '\u2AB8', + succcurlyeq: '\u227D', + succeq: '\u2AB0', + succnapprox: '\u2ABA', + succneqq: '\u2AB6', + succnsim: '\u22E9', + succsim: '\u227F', + sum: '\u2211', + sung: '\u266A', + sup1: '\u00B9', + sup2: '\u00B2', + sup3: '\u00B3', + sup: '\u2283', + supE: '\u2AC6', + supdot: '\u2ABE', + supdsub: '\u2AD8', + supe: '\u2287', + supedot: '\u2AC4', + suphsol: '\u27C9', + suphsub: '\u2AD7', + suplarr: '\u297B', + supmult: '\u2AC2', + supnE: '\u2ACC', + supne: '\u228B', + supplus: '\u2AC0', + supset: '\u2283', + supseteq: '\u2287', + supseteqq: '\u2AC6', + supsetneq: '\u228B', + supsetneqq: '\u2ACC', + supsim: '\u2AC8', + supsub: '\u2AD4', + supsup: '\u2AD6', + swArr: '\u21D9', + swarhk: '\u2926', + swarr: '\u2199', + swarrow: '\u2199', + swnwar: '\u292A', + szlig: '\u00DF', + target: '\u2316', + tau: '\u03C4', + tbrk: '\u23B4', + tcaron: '\u0165', + tcedil: '\u0163', + tcy: '\u0442', + tdot: '\u20DB', + telrec: '\u2315', + tfr: '\uD835\uDD31', + there4: '\u2234', + therefore: '\u2234', + theta: '\u03B8', + thetasym: '\u03D1', + thetav: '\u03D1', + thickapprox: '\u2248', + thicksim: '\u223C', + thinsp: '\u2009', + thkap: '\u2248', + thksim: '\u223C', + thorn: '\u00FE', + tilde: '\u02DC', + times: '\u00D7', + timesb: '\u22A0', + timesbar: '\u2A31', + timesd: '\u2A30', + tint: '\u222D', + toea: '\u2928', + top: '\u22A4', + topbot: '\u2336', + topcir: '\u2AF1', + topf: '\uD835\uDD65', + topfork: '\u2ADA', + tosa: '\u2929', + tprime: '\u2034', + trade: '\u2122', + triangle: '\u25B5', + triangledown: '\u25BF', + triangleleft: '\u25C3', + trianglelefteq: '\u22B4', + triangleq: '\u225C', + triangleright: '\u25B9', + trianglerighteq: '\u22B5', + tridot: '\u25EC', + trie: '\u225C', + triminus: '\u2A3A', + triplus: '\u2A39', + trisb: '\u29CD', + tritime: '\u2A3B', + trpezium: '\u23E2', + tscr: '\uD835\uDCC9', + tscy: '\u0446', + tshcy: '\u045B', + tstrok: '\u0167', + twixt: '\u226C', + twoheadleftarrow: '\u219E', + twoheadrightarrow: '\u21A0', + uArr: '\u21D1', + uHar: '\u2963', + uacute: '\u00FA', + uarr: '\u2191', + ubrcy: '\u045E', + ubreve: '\u016D', + ucirc: '\u00FB', + ucy: '\u0443', + udarr: '\u21C5', + udblac: '\u0171', + udhar: '\u296E', + ufisht: '\u297E', + ufr: '\uD835\uDD32', + ugrave: '\u00F9', + uharl: '\u21BF', + uharr: '\u21BE', + uhblk: '\u2580', + ulcorn: '\u231C', + ulcorner: '\u231C', + ulcrop: '\u230F', + ultri: '\u25F8', + umacr: '\u016B', + uml: '\u00A8', + uogon: '\u0173', + uopf: '\uD835\uDD66', + uparrow: '\u2191', + updownarrow: '\u2195', + upharpoonleft: '\u21BF', + upharpoonright: '\u21BE', + uplus: '\u228E', + upsi: '\u03C5', + upsih: '\u03D2', + upsilon: '\u03C5', + upuparrows: '\u21C8', + urcorn: '\u231D', + urcorner: '\u231D', + urcrop: '\u230E', + uring: '\u016F', + urtri: '\u25F9', + uscr: '\uD835\uDCCA', + utdot: '\u22F0', + utilde: '\u0169', + utri: '\u25B5', + utrif: '\u25B4', + uuarr: '\u21C8', + uuml: '\u00FC', + uwangle: '\u29A7', + vArr: '\u21D5', + vBar: '\u2AE8', + vBarv: '\u2AE9', + vDash: '\u22A8', + vangrt: '\u299C', + varepsilon: '\u03F5', + varkappa: '\u03F0', + varnothing: '\u2205', + varphi: '\u03D5', + varpi: '\u03D6', + varpropto: '\u221D', + varr: '\u2195', + varrho: '\u03F1', + varsigma: '\u03C2', + varsubsetneq: '\u228A\uFE00', + varsubsetneqq: '\u2ACB\uFE00', + varsupsetneq: '\u228B\uFE00', + varsupsetneqq: '\u2ACC\uFE00', + vartheta: '\u03D1', + vartriangleleft: '\u22B2', + vartriangleright: '\u22B3', + vcy: '\u0432', + vdash: '\u22A2', + vee: '\u2228', + veebar: '\u22BB', + veeeq: '\u225A', + vellip: '\u22EE', + verbar: '\u007C', + vert: '\u007C', + vfr: '\uD835\uDD33', + vltri: '\u22B2', + vnsub: '\u2282\u20D2', + vnsup: '\u2283\u20D2', + vopf: '\uD835\uDD67', + vprop: '\u221D', + vrtri: '\u22B3', + vscr: '\uD835\uDCCB', + vsubnE: '\u2ACB\uFE00', + vsubne: '\u228A\uFE00', + vsupnE: '\u2ACC\uFE00', + vsupne: '\u228B\uFE00', + vzigzag: '\u299A', + wcirc: '\u0175', + wedbar: '\u2A5F', + wedge: '\u2227', + wedgeq: '\u2259', + weierp: '\u2118', + wfr: '\uD835\uDD34', + wopf: '\uD835\uDD68', + wp: '\u2118', + wr: '\u2240', + wreath: '\u2240', + wscr: '\uD835\uDCCC', + xcap: '\u22C2', + xcirc: '\u25EF', + xcup: '\u22C3', + xdtri: '\u25BD', + xfr: '\uD835\uDD35', + xhArr: '\u27FA', + xharr: '\u27F7', + xi: '\u03BE', + xlArr: '\u27F8', + xlarr: '\u27F5', + xmap: '\u27FC', + xnis: '\u22FB', + xodot: '\u2A00', + xopf: '\uD835\uDD69', + xoplus: '\u2A01', + xotime: '\u2A02', + xrArr: '\u27F9', + xrarr: '\u27F6', + xscr: '\uD835\uDCCD', + xsqcup: '\u2A06', + xuplus: '\u2A04', + xutri: '\u25B3', + xvee: '\u22C1', + xwedge: '\u22C0', + yacute: '\u00FD', + yacy: '\u044F', + ycirc: '\u0177', + ycy: '\u044B', + yen: '\u00A5', + yfr: '\uD835\uDD36', + yicy: '\u0457', + yopf: '\uD835\uDD6A', + yscr: '\uD835\uDCCE', + yucy: '\u044E', + yuml: '\u00FF', + zacute: '\u017A', + zcaron: '\u017E', + zcy: '\u0437', + zdot: '\u017C', + zeetrf: '\u2128', + zeta: '\u03B6', + zfr: '\uD835\uDD37', + zhcy: '\u0436', + zigrarr: '\u21DD', + zopf: '\uD835\uDD6B', + zscr: '\uD835\uDCCF', + zwj: '\u200D', + zwnj: '\u200C' +}; +const decodeMap = { + '0': 65533, + '128': 8364, + '130': 8218, + '131': 402, + '132': 8222, + '133': 8230, + '134': 8224, + '135': 8225, + '136': 710, + '137': 8240, + '138': 352, + '139': 8249, + '140': 338, + '142': 381, + '145': 8216, + '146': 8217, + '147': 8220, + '148': 8221, + '149': 8226, + '150': 8211, + '151': 8212, + '152': 732, + '153': 8482, + '154': 353, + '155': 8250, + '156': 339, + '158': 382, + '159': 376 +}; +function decodeHTMLStrict(text) { + return text.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, (key) => { + if (key.charAt(1) === '#') { + const secondChar = key.charAt(2); + const codePoint = secondChar === 'X' || secondChar === 'x' + ? parseInt(key.slice(3), 16) + : parseInt(key.slice(2), 10); + return decodeCodePoint(codePoint); + } + return entities[key.slice(1, -1)] || key; + }); +} +function decodeCodePoint(codePoint) { + if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { + return '\uFFFD'; + } + if (codePoint in decodeMap) { + codePoint = decodeMap[codePoint]; + } + return String.fromCodePoint(codePoint); +} + +function scanJSXAttributeValue(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + parser.token = + CharTypes[parser.currentChar] & 8192 + ? scanJSXString(parser, context) + : scanSingleToken(parser, context, 0); + return parser.token; +} +function scanJSXString(parser, context) { + const quote = parser.currentChar; + let char = advanceChar(parser); + const start = parser.index; + while (char !== quote) { + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + if (char !== quote) + report(parser, 14); + parser.tokenValue = parser.source.slice(start, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283267; +} +function scanJSXToken(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + if (parser.index >= parser.end) + return (parser.token = 1048576); + const token = TokenLookup[parser.source.charCodeAt(parser.index)]; + switch (token) { + case 8456258: { + advanceChar(parser); + if (parser.currentChar === 47) { + advanceChar(parser); + parser.token = 25; + } + else { + parser.token = 8456258; + } + break; + } + case 2162700: { + advanceChar(parser); + parser.token = 2162700; + break; + } + default: { + let state = 0; + while (parser.index < parser.end) { + const type = CharTypes[parser.source.charCodeAt(parser.index)]; + if (type & 1024) { + state |= 1 | 4; + scanNewLine(parser); + } + else if (type & 2048) { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + else { + advanceChar(parser); + } + if (CharTypes[parser.currentChar] & 16384) + break; + } + const raw = parser.source.slice(parser.tokenPos, parser.index); + if (context & 512) + parser.tokenRaw = raw; + parser.tokenValue = decodeHTMLStrict(raw); + parser.token = 138; + } + } + return parser.token; +} +function scanJSXIdentifier(parser) { + if ((parser.token & 143360) === 143360) { + const { index } = parser; + let char = parser.currentChar; + while (CharTypes[char] & (32768 | 2)) { + char = advanceChar(parser); + } + parser.tokenValue += parser.source.slice(index, parser.index); + } + parser.token = 208897; + return parser.token; +} + +function matchOrInsertSemicolon(parser, context, specDeviation) { + if ((parser.flags & 1) === 0 && + (parser.token & 1048576) !== 1048576 && + !specDeviation) { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + consumeOpt(parser, context, 1074790417); +} +function isValidStrictMode(parser, index, tokenPos, tokenValue) { + if (index - tokenPos < 13 && tokenValue === 'use strict') { + if ((parser.token & 1048576) === 1048576 || parser.flags & 1) { + return 1; + } + } + return 0; +} +function optionalBit(parser, context, t) { + if (parser.token !== t) + return 0; + nextToken(parser, context); + return 1; +} +function consumeOpt(parser, context, t) { + if (parser.token !== t) + return false; + nextToken(parser, context); + return true; +} +function consume(parser, context, t) { + if (parser.token !== t) + report(parser, 23, KeywordDescTable[t & 255]); + nextToken(parser, context); +} +function reinterpretToPattern(state, node) { + switch (node.type) { + case 'ArrayExpression': + node.type = 'ArrayPattern'; + const elements = node.elements; + for (let i = 0, n = elements.length; i < n; ++i) { + const element = elements[i]; + if (element) + reinterpretToPattern(state, element); + } + return; + case 'ObjectExpression': + node.type = 'ObjectPattern'; + const properties = node.properties; + for (let i = 0, n = properties.length; i < n; ++i) { + reinterpretToPattern(state, properties[i]); + } + return; + case 'AssignmentExpression': + node.type = 'AssignmentPattern'; + if (node.operator !== '=') + report(state, 68); + delete node.operator; + reinterpretToPattern(state, node.left); + return; + case 'Property': + reinterpretToPattern(state, node.value); + return; + case 'SpreadElement': + node.type = 'RestElement'; + reinterpretToPattern(state, node.argument); + } +} +function validateBindingIdentifier(parser, context, kind, t, skipEvalArgCheck) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if (!skipEvalArgCheck && (t & 537079808) === 537079808) { + report(parser, 115); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (kind & (8 | 16) && t === 241739) { + report(parser, 97); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } +} +function validateFunctionName(parser, context, t) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if ((t & 537079808) === 537079808) { + report(parser, 115); + } + if (t === 122) { + report(parser, 92); + } + if (t === 121) { + report(parser, 92); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } +} +function isStrictReservedWord(parser, context, t) { + if (t === 209008) { + if (context & (4194304 | 2048)) + report(parser, 95); + parser.destructible |= 128; + } + if (t === 241773 && context & 2097152) + report(parser, 94, 'yield'); + return ((t & 20480) === 20480 || + (t & 36864) === 36864 || + t == 122); +} +function isPropertyWithPrivateFieldKey(expr) { + return !expr.property ? false : expr.property.type === 'PrivateIdentifier'; +} +function isValidLabel(parser, labels, name, isIterationStatement) { + while (labels) { + if (labels['$' + name]) { + if (isIterationStatement) + report(parser, 133); + return 1; + } + if (isIterationStatement && labels.loop) + isIterationStatement = 0; + labels = labels['$']; + } + return 0; +} +function validateAndDeclareLabel(parser, labels, name) { + let set = labels; + while (set) { + if (set['$' + name]) + report(parser, 132, name); + set = set['$']; + } + labels['$' + name] = 1; +} +function finishNode(parser, context, start, line, column, node) { + if (context & 2) { + node.start = start; + node.end = parser.startPos; + node.range = [start, parser.startPos]; + } + if (context & 4) { + node.loc = { + start: { + line, + column + }, + end: { + line: parser.startLine, + column: parser.startColumn + } + }; + if (parser.sourceFile) { + node.loc.source = parser.sourceFile; + } + } + return node; +} +function isEqualTagName(elementName) { + switch (elementName.type) { + case 'JSXIdentifier': + return elementName.name; + case 'JSXNamespacedName': + return elementName.namespace + ':' + elementName.name; + case 'JSXMemberExpression': + return isEqualTagName(elementName.object) + '.' + isEqualTagName(elementName.property); + } +} +function createArrowHeadParsingScope(parser, context, value) { + const scope = addChildScope(createScope(), 1024); + addBlockName(parser, context, scope, value, 1, 0); + return scope; +} +function recordScopeError(parser, type, ...params) { + const { index, line, column } = parser; + return { + type, + params, + index, + line, + column + }; +} +function createScope() { + return { + parent: void 0, + type: 2 + }; +} +function addChildScope(parent, type) { + return { + parent, + type, + scopeError: void 0 + }; +} +function addVarOrBlock(parser, context, scope, name, kind, origin) { + if (kind & 4) { + addVarName(parser, context, scope, name, kind); + } + else { + addBlockName(parser, context, scope, name, kind, origin); + } + if (origin & 64) { + declareUnboundVariable(parser, name); + } +} +function addBlockName(parser, context, scope, name, kind, origin) { + const value = scope['#' + name]; + if (value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + else if (context & 256 && + value & 64 && + origin & 2) ; + else { + report(parser, 140, name); + } + } + if (scope.type & 128 && + (scope.parent['#' + name] && (scope.parent['#' + name] & 2) === 0)) { + report(parser, 140, name); + } + if (scope.type & 1024 && value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + } + if (scope.type & 64) { + if (scope.parent['#' + name] & 768) + report(parser, 153, name); + } + scope['#' + name] = kind; +} +function addVarName(parser, context, scope, name, kind) { + let currentScope = scope; + while (currentScope && (currentScope.type & 256) === 0) { + const value = currentScope['#' + name]; + if (value & 248) { + if (context & 256 && + (context & 1024) === 0 && + ((kind & 128 && value & 68) || + (value & 128 && kind & 68))) ; + else { + report(parser, 140, name); + } + } + if (currentScope === scope) { + if (value & 1 && kind & 1) { + currentScope.scopeError = recordScopeError(parser, 140, name); + } + } + if (value & (512 | 256)) { + if ((value & 512) === 0 || + (context & 256) === 0 || + context & 1024) { + report(parser, 140, name); + } + } + currentScope['#' + name] = kind; + currentScope = currentScope.parent; + } +} +function declareUnboundVariable(parser, name) { + if (parser.exportedNames !== void 0 && name !== '') { + if (parser.exportedNames['#' + name]) { + report(parser, 141, name); + } + parser.exportedNames['#' + name] = 1; + } +} +function addBindingToExports(parser, name) { + if (parser.exportedBindings !== void 0 && name !== '') { + parser.exportedBindings['#' + name] = 1; + } +} +function pushComment(context, array) { + return function (type, value, start, end, loc) { + const comment = { + type, + value + }; + if (context & 2) { + comment.start = start; + comment.end = end; + comment.range = [start, end]; + } + if (context & 4) { + comment.loc = loc; + } + array.push(comment); + }; +} +function pushToken(context, array) { + return function (token, start, end, loc) { + const tokens = { + token + }; + if (context & 2) { + tokens.start = start; + tokens.end = end; + tokens.range = [start, end]; + } + if (context & 4) { + tokens.loc = loc; + } + array.push(tokens); + }; +} +function isValidIdentifier(context, t) { + if (context & (1024 | 2097152)) { + if (context & 2048 && t === 209008) + return false; + if (context & 2097152 && t === 241773) + return false; + return (t & 143360) === 143360 || (t & 12288) === 12288; + } + return ((t & 143360) === 143360 || + (t & 12288) === 12288 || + (t & 36864) === 36864); +} +function classifyIdentifier(parser, context, t, isArrow) { + if ((t & 537079808) === 537079808) { + if (context & 1024) + report(parser, 115); + if (isArrow) + parser.flags |= 512; + } + if (!isValidIdentifier(context, t)) + report(parser, 0); +} + +function create(source, sourceFile, onComment, onToken) { + return { + source, + flags: 0, + index: 0, + line: 1, + column: 0, + startPos: 0, + end: source.length, + tokenPos: 0, + startColumn: 0, + colPos: 0, + linePos: 1, + startLine: 1, + sourceFile, + tokenValue: '', + token: 1048576, + tokenRaw: '', + tokenRegExp: void 0, + currentChar: source.charCodeAt(0), + exportedNames: [], + exportedBindings: [], + assignable: 1, + destructible: 0, + onComment, + onToken, + leadingDecorators: [] + }; +} +function parseSource(source, options, context) { + let sourceFile = ''; + let onComment; + let onToken; + if (options != null) { + if (options.module) + context |= 2048 | 1024; + if (options.next) + context |= 1; + if (options.loc) + context |= 4; + if (options.ranges) + context |= 2; + if (options.uniqueKeyInPattern) + context |= -2147483648; + if (options.lexical) + context |= 64; + if (options.webcompat) + context |= 256; + if (options.directives) + context |= 8 | 512; + if (options.globalReturn) + context |= 32; + if (options.raw) + context |= 512; + if (options.preserveParens) + context |= 128; + if (options.impliedStrict) + context |= 1024; + if (options.jsx) + context |= 16; + if (options.identifierPattern) + context |= 268435456; + if (options.specDeviation) + context |= 536870912; + if (options.source) + sourceFile = options.source; + if (options.onComment != null) { + onComment = Array.isArray(options.onComment) ? pushComment(context, options.onComment) : options.onComment; + } + if (options.onToken != null) { + onToken = Array.isArray(options.onToken) ? pushToken(context, options.onToken) : options.onToken; + } + } + const parser = create(source, sourceFile, onComment, onToken); + if (context & 1) + skipHashBang(parser); + const scope = context & 64 ? createScope() : void 0; + let body = []; + let sourceType = 'script'; + if (context & 2048) { + sourceType = 'module'; + body = parseModuleItemList(parser, context | 8192, scope); + if (scope) { + for (const key in parser.exportedBindings) { + if (key[0] === '#' && !scope[key]) + report(parser, 142, key.slice(1)); + } + } + } + else { + body = parseStatementList(parser, context | 8192, scope); + } + const node = { + type: 'Program', + sourceType, + body + }; + if (context & 2) { + node.start = 0; + node.end = source.length; + node.range = [0, source.length]; + } + if (context & 4) { + node.loc = { + start: { line: 1, column: 0 }, + end: { line: parser.line, column: parser.column } + }; + if (parser.sourceFile) + node.loc.source = sourceFile; + } + return node; +} +function parseStatementList(parser, context, scope) { + nextToken(parser, context | 32768 | 1073741824); + const statements = []; + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, linePos, colPos, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) + context |= 1024; + statements.push(parseDirective(parser, context, expr, token, tokenPos, linePos, colPos)); + } + while (parser.token !== 1048576) { + statements.push(parseStatementListItem(parser, context, scope, 4, {})); + } + return statements; +} +function parseModuleItemList(parser, context, scope) { + nextToken(parser, context | 32768); + const statements = []; + if (context & 8) { + while (parser.token === 134283267) { + const { tokenPos, linePos, colPos, token } = parser; + statements.push(parseDirective(parser, context, parseLiteral(parser, context), token, tokenPos, linePos, colPos)); + } + } + while (parser.token !== 1048576) { + statements.push(parseModuleItem(parser, context, scope)); + } + return statements; +} +function parseModuleItem(parser, context, scope) { + parser.leadingDecorators = parseDecorators(parser, context); + let moduleItem; + switch (parser.token) { + case 20566: + moduleItem = parseExportDeclaration(parser, context, scope); + break; + case 86108: + moduleItem = parseImportDeclaration(parser, context, scope); + break; + default: + moduleItem = parseStatementListItem(parser, context, scope, 4, {}); + } + if (parser.leadingDecorators.length) { + report(parser, 164); + } + return moduleItem; +} +function parseStatementListItem(parser, context, scope, origin, labels) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + switch (parser.token) { + case 86106: + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 0, start, line, column); + case 133: + case 86096: + return parseClassDeclaration(parser, context, scope, 0, start, line, column); + case 86092: + return parseLexicalDeclaration(parser, context, scope, 16, 0, start, line, column); + case 241739: + return parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column); + case 20566: + report(parser, 100, 'export'); + case 86108: + nextToken(parser, context); + switch (parser.token) { + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 100, 'import'); + } + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 1, start, line, column); + default: + return parseStatement(parser, context, scope, origin, labels, 1, start, line, column); + } +} +function parseStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + switch (parser.token) { + case 86090: + return parseVariableStatement(parser, context, scope, 0, start, line, column); + case 20574: + return parseReturnStatement(parser, context, start, line, column); + case 20571: + return parseIfStatement(parser, context, scope, labels, start, line, column); + case 20569: + return parseForStatement(parser, context, scope, labels, start, line, column); + case 20564: + return parseDoWhileStatement(parser, context, scope, labels, start, line, column); + case 20580: + return parseWhileStatement(parser, context, scope, labels, start, line, column); + case 86112: + return parseSwitchStatement(parser, context, scope, labels, start, line, column); + case 1074790417: + return parseEmptyStatement(parser, context, start, line, column); + case 2162700: + return parseBlock(parser, context, scope ? addChildScope(scope, 2) : scope, labels, start, line, column); + case 86114: + return parseThrowStatement(parser, context, start, line, column); + case 20557: + return parseBreakStatement(parser, context, labels, start, line, column); + case 20561: + return parseContinueStatement(parser, context, labels, start, line, column); + case 20579: + return parseTryStatement(parser, context, scope, labels, start, line, column); + case 20581: + return parseWithStatement(parser, context, scope, labels, start, line, column); + case 20562: + return parseDebuggerStatement(parser, context, start, line, column); + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 0, start, line, column); + case 20559: + report(parser, 156); + case 20568: + report(parser, 157); + case 86106: + report(parser, context & 1024 + ? 73 + : (context & 256) < 1 + ? 75 + : 74); + case 86096: + report(parser, 76); + default: + return parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column); + } +} +function parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { tokenValue, token } = parser; + let expr; + switch (token) { + case 241739: + expr = parseIdentifier(parser, context, 0); + if (context & 1024) + report(parser, 82); + if (parser.token === 69271571) + report(parser, 81); + break; + default: + expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + if (token & 143360 && parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, allowFuncDecl, start, line, column); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseBlock(parser, context, scope, labels, start, line, column) { + const body = []; + consume(parser, context | 32768, 2162700); + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 2, { $: labels })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'BlockStatement', + body + }); +} +function parseReturnStatement(parser, context, start, line, column) { + if ((context & 32) < 1 && context & 8192) + report(parser, 89); + nextToken(parser, context | 32768); + const argument = parser.flags & 1 || parser.token & 1048576 + ? null + : parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.column); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ReturnStatement', + argument + }); +} +function parseExpressionStatement(parser, context, expression, start, line, column) { + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); +} +function parseLabelledStatement(parser, context, scope, origin, labels, value, expr, token, allowFuncDecl, start, line, column) { + validateBindingIdentifier(parser, context, 0, token, 1); + validateAndDeclareLabel(parser, labels, value); + nextToken(parser, context | 32768); + const body = allowFuncDecl && + (context & 1024) < 1 && + context & 256 && + parser.token === 86106 + ? parseFunctionDeclaration(parser, context, addChildScope(scope, 2), origin, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseStatement(parser, context, scope, origin, labels, allowFuncDecl, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'LabeledStatement', + label: expr, + body + }); +} +function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, 1, start, line, column); + } + const asyncNewLine = parser.flags & 1; + if (!asyncNewLine) { + if (parser.token === 86106) { + if (!allowFuncDecl) + report(parser, 119); + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 1, start, line, column); + } + if ((parser.token & 143360) === 143360) { + expr = parseAsyncArrowAfterIdent(parser, context, 1, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + } + if (parser.token === 67174411) { + expr = parseAsyncArrowOrCallExpression(parser, context, expr, 1, 1, 0, asyncNewLine, start, line, column); + } + else { + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + expr = parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, 0, 1, 0, start, line, column); + } + parser.assignable = 1; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + parser.assignable = 1; + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseDirective(parser, context, expression, token, start, line, column) { + if (token !== 1074790417) { + parser.assignable = 2; + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + if (parser.token !== 1074790417) { + expression = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expression); + if (parser.token === 18) { + expression = parseSequenceExpression(parser, context, 0, start, line, column, expression); + } + } + matchOrInsertSemicolon(parser, context | 32768); + } + return context & 8 && expression.type === 'Literal' && typeof expression.value === 'string' + ? finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression, + directive: expression.raw.slice(1, -1) + }) + : finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); +} +function parseEmptyStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'EmptyStatement' + }); +} +function parseThrowStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + if (parser.flags & 1) + report(parser, 87); + const argument = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ThrowStatement', + argument + }); +} +function parseIfStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + parser.assignable = 1; + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.colPos); + consume(parser, context | 32768, 16); + const consequent = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + let alternate = null; + if (parser.token === 20565) { + nextToken(parser, context | 32768); + alternate = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + } + return finishNode(parser, context, start, line, column, { + type: 'IfStatement', + test, + consequent, + alternate + }); +} +function parseConsequentOrAlternative(parser, context, scope, labels, start, line, column) { + return context & 1024 || + (context & 256) < 1 || + parser.token !== 86106 + ? parseStatement(parser, context, scope, 0, { $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseFunctionDeclaration(parser, context, addChildScope(scope, 2), 0, 0, 0, 0, start, line, column); +} +function parseSwitchStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const discriminant = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + consume(parser, context, 2162700); + const cases = []; + let seenDefault = 0; + if (scope) + scope = addChildScope(scope, 8); + while (parser.token !== 1074790415) { + const { tokenPos, linePos, colPos } = parser; + let test = null; + const consequent = []; + if (consumeOpt(parser, context | 32768, 20558)) { + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + consume(parser, context | 32768, 20563); + if (seenDefault) + report(parser, 86); + seenDefault = 1; + } + consume(parser, context | 32768, 21); + while (parser.token !== 20558 && + parser.token !== 1074790415 && + parser.token !== 20563) { + consequent.push(parseStatementListItem(parser, context | 4096, scope, 2, { + $: labels + })); + } + cases.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'SwitchCase', + test, + consequent + })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'SwitchStatement', + discriminant, + cases + }); +} +function parseWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'WhileStatement', + test, + body + }); +} +function parseIterationStatementBody(parser, context, scope, labels) { + return parseStatement(parser, ((context | 134217728) ^ 134217728) | 131072, scope, 0, { loop: 1, $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos); +} +function parseContinueStatement(parser, context, labels, start, line, column) { + if ((context & 131072) < 1) + report(parser, 65); + nextToken(parser, context); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 1)) + report(parser, 134, tokenValue); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ContinueStatement', + label + }); +} +function parseBreakStatement(parser, context, labels, start, line, column) { + nextToken(parser, context | 32768); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 0)) + report(parser, 134, tokenValue); + } + else if ((context & (4096 | 131072)) < 1) { + report(parser, 66); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'BreakStatement', + label + }); +} +function parseWithStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + if (context & 1024) + report(parser, 88); + consume(parser, context | 32768, 67174411); + const object = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseStatement(parser, context, scope, 2, labels, 0, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'WithStatement', + object, + body + }); +} +function parseDebuggerStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'DebuggerStatement' + }); +} +function parseTryStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const firstScope = scope ? addChildScope(scope, 32) : void 0; + const block = parseBlock(parser, context, firstScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + const { tokenPos, linePos, colPos } = parser; + const handler = consumeOpt(parser, context | 32768, 20559) + ? parseCatchBlock(parser, context, scope, labels, tokenPos, linePos, colPos) + : null; + let finalizer = null; + if (parser.token === 20568) { + nextToken(parser, context | 32768); + const finalizerScope = firstScope ? addChildScope(scope, 4) : void 0; + finalizer = parseBlock(parser, context, finalizerScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + } + if (!handler && !finalizer) { + report(parser, 85); + } + return finishNode(parser, context, start, line, column, { + type: 'TryStatement', + block, + handler, + finalizer + }); +} +function parseCatchBlock(parser, context, scope, labels, start, line, column) { + let param = null; + let additionalScope = scope; + if (consumeOpt(parser, context, 67174411)) { + if (scope) + scope = addChildScope(scope, 4); + param = parseBindingPattern(parser, context, scope, (parser.token & 2097152) === 2097152 + ? 256 + : 512, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 18) { + report(parser, 83); + } + else if (parser.token === 1077936157) { + report(parser, 84); + } + consume(parser, context | 32768, 16); + if (scope) + additionalScope = addChildScope(scope, 64); + } + const body = parseBlock(parser, context, additionalScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'CatchClause', + param, + body + }); +} +function parseDoWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const body = parseIterationStatementBody(parser, context, scope, labels); + consume(parser, context, 20580); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + consumeOpt(parser, context, 1074790417); + return finishNode(parser, context, start, line, column, { + type: 'DoWhileStatement', + body, + test + }); +} +function parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + const declarations = parseVariableDeclarationList(parser, context, scope, 8, 0); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'let', + declarations + }); + } + parser.assignable = 1; + if (context & 1024) + report(parser, 82); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, {}, tokenValue, expr, token, 0, start, line, column); + } + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + expr = parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + else { + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + } + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseLexicalDeclaration(parser, context, scope, kind, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, kind, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: kind & 8 ? 'let' : 'const', + declarations + }); +} +function parseVariableStatement(parser, context, scope, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, 4, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'var', + declarations + }); +} +function parseVariableDeclarationList(parser, context, scope, kind, origin) { + let bindingCount = 1; + const list = [parseVariableDeclaration(parser, context, scope, kind, origin)]; + while (consumeOpt(parser, context, 18)) { + bindingCount++; + list.push(parseVariableDeclaration(parser, context, scope, kind, origin)); + } + if (bindingCount > 1 && origin & 32 && parser.token & 262144) { + report(parser, 58, KeywordDescTable[parser.token & 255]); + } + return list; +} +function parseVariableDeclaration(parser, context, scope, kind, origin) { + const { token, tokenPos, linePos, colPos } = parser; + let init = null; + const id = parseBindingPattern(parser, context, scope, kind, origin, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + init = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (origin & 32 || (token & 2097152) < 1) { + if (parser.token === 274549 || + (parser.token === 8738868 && + (token & 2097152 || (kind & 4) < 1 || context & 1024))) { + reportMessageAt(tokenPos, parser.line, parser.index - 3, 57, parser.token === 274549 ? 'of' : 'in'); + } + } + } + else if ((kind & 16 || (token & 2097152) > 0) && + (parser.token & 262144) !== 262144) { + report(parser, 56, kind & 16 ? 'const' : 'destructuring'); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclarator', + id, + init + }); +} +function parseForStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + const forAwait = (context & 4194304) > 0 && consumeOpt(parser, context, 209008); + consume(parser, context | 32768, 67174411); + if (scope) + scope = addChildScope(scope, 1); + let test = null; + let update = null; + let destructible = 0; + let init = null; + let isVarDecl = parser.token === 86090 || parser.token === 241739 || parser.token === 86092; + let right; + const { token, tokenPos, linePos, colPos } = parser; + if (isVarDecl) { + if (token === 241739) { + init = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + if (parser.token === 8738868) { + if (context & 1024) + report(parser, 64); + } + else { + init = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclaration', + kind: 'let', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 8, 32) + }); + } + parser.assignable = 1; + } + else if (context & 1024) { + report(parser, 64); + } + else { + isVarDecl = false; + parser.assignable = 1; + init = parseMemberOrUpdateExpression(parser, context, init, 0, 0, tokenPos, linePos, colPos); + if (parser.token === 274549) + report(parser, 111); + } + } + else { + nextToken(parser, context); + init = finishNode(parser, context, tokenPos, linePos, colPos, token === 86090 + ? { + type: 'VariableDeclaration', + kind: 'var', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 4, 32) + } + : { + type: 'VariableDeclaration', + kind: 'const', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 16, 32) + }); + parser.assignable = 1; + } + } + else if (token === 1074790417) { + if (forAwait) + report(parser, 79); + } + else if ((token & 2097152) === 2097152) { + init = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos); + destructible = parser.destructible; + if (context & 256 && destructible & 64) { + report(parser, 60); + } + parser.assignable = + destructible & 16 ? 2 : 1; + init = parseMemberOrUpdateExpression(parser, context | 134217728, init, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + init = parseLeftHandSideExpression(parser, context | 134217728, 1, 0, 1, tokenPos, linePos, colPos); + } + if ((parser.token & 262144) === 262144) { + if (parser.token === 274549) { + if (parser.assignable & 2) + report(parser, 77, forAwait ? 'await' : 'of'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + right = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForOfStatement', + left: init, + right, + body, + await: forAwait + }); + } + if (parser.assignable & 2) + report(parser, 77, 'in'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + if (forAwait) + report(parser, 79); + right = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForInStatement', + body, + left: init, + right + }); + } + if (forAwait) + report(parser, 79); + if (!isVarDecl) { + if (destructible & 8 && parser.token !== 1077936157) { + report(parser, 77, 'loop'); + } + init = parseAssignmentExpression(parser, context | 134217728, 0, 0, tokenPos, linePos, colPos, init); + } + if (parser.token === 18) + init = parseSequenceExpression(parser, context, 0, parser.tokenPos, parser.linePos, parser.colPos, init); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 1074790417) + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 16) + update = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForStatement', + init, + test, + update, + body + }); +} +function parseRestrictedIdentifier(parser, context, scope) { + if (!isValidIdentifier(context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) + report(parser, 115); + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 8, 0); + return parseIdentifier(parser, context, 0); +} +function parseImportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context); + let source = null; + const { tokenPos, linePos, colPos } = parser; + let specifiers = []; + if (parser.token === 134283267) { + source = parseLiteral(parser, context); + } + else { + if (parser.token & 143360) { + const local = parseRestrictedIdentifier(parser, context, scope); + specifiers = [ + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportDefaultSpecifier', + local + }) + ]; + if (consumeOpt(parser, context, 18)) { + switch (parser.token) { + case 8457014: + specifiers.push(parseImportNamespaceSpecifier(parser, context, scope)); + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + default: + report(parser, 104); + } + } + } + else { + switch (parser.token) { + case 8457014: + specifiers = [parseImportNamespaceSpecifier(parser, context, scope)]; + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + source = parseModuleSpecifier(parser, context); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ImportDeclaration', + specifiers, + source + }); +} +function parseImportNamespaceSpecifier(parser, context, scope) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + consume(parser, context, 77934); + if ((parser.token & 134217728) === 134217728) { + reportMessageAt(tokenPos, parser.line, parser.index, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportNamespaceSpecifier', + local: parseRestrictedIdentifier(parser, context, scope) + }); +} +function parseModuleSpecifier(parser, context) { + consumeOpt(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Import'); + return parseLiteral(parser, context); +} +function parseImportSpecifierOrNamedImports(parser, context, scope, specifiers) { + nextToken(parser, context); + while (parser.token & 143360) { + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + const imported = parseIdentifier(parser, context, 0); + let local; + if (consumeOpt(parser, context, 77934)) { + if ((parser.token & 134217728) === 134217728 || parser.token === 18) { + report(parser, 103); + } + else { + validateBindingIdentifier(parser, context, 16, parser.token, 0); + } + tokenValue = parser.tokenValue; + local = parseIdentifier(parser, context, 0); + } + else { + validateBindingIdentifier(parser, context, 16, token, 0); + local = imported; + } + if (scope) + addBlockName(parser, context, scope, tokenValue, 8, 0); + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportSpecifier', + local, + imported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + return specifiers; +} +function parseImportMetaDeclaration(parser, context, start, line, column) { + let expr = parseImportMetaExpression(parser, context, finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: 'import' + }), start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseImportCallDeclaration(parser, context, start, line, column) { + let expr = parseImportExpression(parser, context, 0, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseExportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context | 32768); + const specifiers = []; + let declaration = null; + let source = null; + let key; + if (consumeOpt(parser, context | 32768, 20563)) { + switch (parser.token) { + case 86106: { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + } + case 133: + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 1, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + declaration = parseIdentifier(parser, context, 0); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 1, tokenPos, linePos, colPos); + } + else { + if (parser.token === 67174411) { + declaration = parseAsyncArrowOrCallExpression(parser, context, declaration, 1, 1, 0, flags, tokenPos, linePos, colPos); + declaration = parseMemberOrUpdateExpression(parser, context, declaration, 0, 0, tokenPos, linePos, colPos); + declaration = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, declaration); + } + else if (parser.token & 143360) { + if (scope) + scope = createArrowHeadParsingScope(parser, context, parser.tokenValue); + declaration = parseIdentifier(parser, context, 0); + declaration = parseArrowFunctionExpression(parser, context, scope, [declaration], 1, tokenPos, linePos, colPos); + } + } + } + break; + default: + declaration = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + } + if (scope) + declareUnboundVariable(parser, 'default'); + return finishNode(parser, context, start, line, column, { + type: 'ExportDefaultDeclaration', + declaration + }); + } + switch (parser.token) { + case 8457014: { + nextToken(parser, context); + let exported = null; + const isNamedDeclaration = consumeOpt(parser, context, 77934); + if (isNamedDeclaration) { + if (scope) + declareUnboundVariable(parser, parser.tokenValue); + exported = parseIdentifier(parser, context, 0); + } + consume(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExportAllDeclaration', + source, + exported + }); + } + case 2162700: { + nextToken(parser, context); + const tmpExportedNames = []; + const tmpExportedBindings = []; + while (parser.token & 143360) { + const { tokenPos, tokenValue, linePos, colPos } = parser; + const local = parseIdentifier(parser, context, 0); + let exported; + if (parser.token === 77934) { + nextToken(parser, context); + if ((parser.token & 134217728) === 134217728) { + report(parser, 103); + } + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(tokenValue); + } + exported = parseIdentifier(parser, context, 0); + } + else { + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(parser.tokenValue); + } + exported = local; + } + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ExportSpecifier', + local, + exported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + if (consumeOpt(parser, context, 12404)) { + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + } + else if (scope) { + let i = 0; + let iMax = tmpExportedNames.length; + for (; i < iMax; i++) { + declareUnboundVariable(parser, tmpExportedNames[i]); + } + i = 0; + iMax = tmpExportedBindings.length; + for (; i < iMax; i++) { + addBindingToExports(parser, tmpExportedBindings[i]); + } + } + matchOrInsertSemicolon(parser, context | 32768); + break; + } + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 2, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86106: + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 241739: + declaration = parseLexicalDeclaration(parser, context, scope, 8, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86092: + declaration = parseLexicalDeclaration(parser, context, scope, 16, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86090: + declaration = parseVariableStatement(parser, context, scope, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + if ((parser.flags & 1) < 1 && parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 1, tokenPos, linePos, colPos); + if (scope) { + key = declaration.id ? declaration.id.name : ''; + declareUnboundVariable(parser, key); + } + break; + } + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, start, line, column, { + type: 'ExportNamedDeclaration', + declaration, + specifiers, + source + }); +} +function parseExpression(parser, context, canAssign, isPattern, inGroup, start, line, column) { + let expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, isPattern, inGroup, 1, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + return parseAssignmentExpression(parser, context, inGroup, 0, start, line, column, expr); +} +function parseSequenceExpression(parser, context, inGroup, start, line, column, expr) { + const expressions = [expr]; + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + return finishNode(parser, context, start, line, column, { + type: 'SequenceExpression', + expressions + }); +} +function parseExpressions(parser, context, inGroup, canAssign, start, line, column) { + const expr = parseExpression(parser, context, canAssign, 0, inGroup, start, line, column); + return parser.token === 18 + ? parseSequenceExpression(parser, context, inGroup, start, line, column, expr) + : expr; +} +function parseAssignmentExpression(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + if ((token & 4194304) === 4194304) { + if (parser.assignable & 2) + report(parser, 24); + if ((!isPattern && token === 1077936157 && left.type === 'ArrayExpression') || + left.type === 'ObjectExpression') { + reinterpretToPattern(parser, left); + } + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + } + if ((token & 8454144) === 8454144) { + left = parseBinaryExpression(parser, context, inGroup, start, line, column, 4, token, left); + } + if (consumeOpt(parser, context | 32768, 22)) { + left = parseConditionalExpression(parser, context, left, start, line, column); + } + return left; +} +function parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + parser.assignable = 2; + return left; +} +function parseConditionalExpression(parser, context, test, start, line, column) { + const consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 21); + parser.assignable = 1; + const alternate = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ConditionalExpression', + test, + consequent, + alternate + }); +} +function parseBinaryExpression(parser, context, inGroup, start, line, column, minPrec, operator, left) { + const bit = -((context & 134217728) > 0) & 8738868; + let t; + let prec; + parser.assignable = 2; + while (parser.token & 8454144) { + t = parser.token; + prec = t & 3840; + if ((t & 524288 && operator & 268435456) || (operator & 524288 && t & 268435456)) { + report(parser, 159); + } + if (prec + ((t === 8457273) << 8) - ((bit === t) << 12) <= minPrec) + break; + nextToken(parser, context | 32768); + left = finishNode(parser, context, start, line, column, { + type: t & 524288 || t & 268435456 ? 'LogicalExpression' : 'BinaryExpression', + left, + right: parseBinaryExpression(parser, context, inGroup, parser.tokenPos, parser.linePos, parser.colPos, prec, t, parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos)), + operator: KeywordDescTable[t & 255] + }); + } + if (parser.token === 1077936157) + report(parser, 24); + return left; +} +function parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup) { + if (!isLHS) + report(parser, 0); + const unaryOperator = parser.token; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + if (context & 1024 && unaryOperator === 16863278) { + if (arg.type === 'Identifier') { + report(parser, 117); + } + else if (isPropertyWithPrivateFieldKey(arg)) { + report(parser, 123); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UnaryExpression', + operator: KeywordDescTable[unaryOperator & 255], + argument: arg, + prefix: true + }); +} +function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column) { + const { token } = parser; + const expr = parseIdentifier(parser, context, isPattern); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + return parseFunctionExpression(parser, context, 1, inGroup, start, line, column); + } + if ((parser.token & 143360) === 143360) { + if (!isLHS) + report(parser, 0); + return parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column); + } + } + if (!inNew && parser.token === 67174411) { + return parseAsyncArrowOrCallExpression(parser, context, expr, canAssign, 1, 0, flags, start, line, column); + } + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + if (inNew) + report(parser, 48); + return parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + return expr; +} +function parseYieldExpression(parser, context, inGroup, canAssign, start, line, column) { + if (inGroup) + parser.destructible |= 256; + if (context & 2097152) { + nextToken(parser, context | 32768); + if (context & 8388608) + report(parser, 30); + if (!canAssign) + report(parser, 24); + if (parser.token === 22) + report(parser, 120); + let argument = null; + let delegate = false; + if ((parser.flags & 1) < 1) { + delegate = consumeOpt(parser, context | 32768, 8457014); + if (parser.token & (12288 | 65536) || delegate) { + argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'YieldExpression', + argument, + delegate + }); + } + if (context & 1024) + report(parser, 94, 'yield'); + return parseIdentifierOrArrow(parser, context, start, line, column); +} +function parseAwaitExpression(parser, context, inNew, inGroup, start, line, column) { + if (inGroup) + parser.destructible |= 128; + if (context & 4194304 || (context & 2048 && context & 8192)) { + if (inNew) + report(parser, 0); + if (context & 8388608) { + reportMessageAt(parser.index, parser.line, parser.index, 29); + } + nextToken(parser, context | 32768); + const argument = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'AwaitExpression', + argument + }); + } + if (context & 2048) + report(parser, 95); + return parseIdentifierOrArrow(parser, context, start, line, column); +} +function parseFunctionBody(parser, context, scope, origin, firstRestricted, scopeError) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + const body = []; + const prevContext = context; + if (parser.token !== 1074790415) { + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) { + context |= 1024; + if (parser.flags & 128) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 63); + } + if (parser.flags & 64) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 8); + } + } + body.push(parseDirective(parser, context, expr, token, tokenPos, parser.linePos, parser.colPos)); + } + if (context & 1024) { + if (firstRestricted) { + if ((firstRestricted & 537079808) === 537079808) { + report(parser, 115); + } + if ((firstRestricted & 36864) === 36864) { + report(parser, 38); + } + } + if (parser.flags & 512) + report(parser, 115); + if (parser.flags & 256) + report(parser, 114); + } + if (context & 64 && + scope && + scopeError !== void 0 && + (prevContext & 1024) < 1 && + (context & 8192) < 1) { + reportScopeError(scopeError); + } + } + parser.flags = + (parser.flags | 512 | 256 | 64) ^ + (512 | 256 | 64); + parser.destructible = (parser.destructible | 256) ^ 256; + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 4, {})); + } + consume(parser, origin & (16 | 8) ? context | 32768 : context, 1074790415); + parser.flags &= ~(128 | 64); + if (parser.token === 1077936157) + report(parser, 24); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'BlockStatement', + body + }); +} +function parseSuperExpression(parser, context, start, line, column) { + nextToken(parser, context); + switch (parser.token) { + case 67108991: + report(parser, 161); + case 67174411: { + if ((context & 524288) < 1) + report(parser, 26); + if (context & 16384) + report(parser, 143); + parser.assignable = 2; + break; + } + case 69271571: + case 67108877: { + if ((context & 262144) < 1) + report(parser, 27); + if (context & 16384) + report(parser, 143); + parser.assignable = 1; + break; + } + default: + report(parser, 28, 'super'); + } + return finishNode(parser, context, start, line, column, { type: 'Super' }); +} +function parseLeftHandSideExpression(parser, context, canAssign, inGroup, isLHS, start, line, column) { + const expression = parsePrimaryExpression(parser, context, 2, 0, canAssign, 0, inGroup, isLHS, start, line, column); + return parseMemberOrUpdateExpression(parser, context, expression, inGroup, 0, start, line, column); +} +function parseUpdateExpression(parser, context, expr, start, line, column) { + if (parser.assignable & 2) + report(parser, 52); + const { token } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: expr, + operator: KeywordDescTable[token & 255], + prefix: false + }); +} +function parseMemberOrUpdateExpression(parser, context, expr, inGroup, inChain, start, line, column) { + if ((parser.token & 33619968) === 33619968 && (parser.flags & 1) < 1) { + expr = parseUpdateExpression(parser, context, expr, start, line, column); + } + else if ((parser.token & 67108864) === 67108864) { + context = (context | 134217728 | 8192) ^ (134217728 | 8192); + switch (parser.token) { + case 67108877: { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }); + break; + } + case 69271571: { + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67174411: { + if ((parser.flags & 1024) === 1024) { + parser.flags = (parser.flags | 1024) ^ 1024; + return expr; + } + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + const args = parseArguments(parser, context, inGroup); + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67108991: { + nextToken(parser, context); + parser.flags |= 2048; + parser.assignable = 2; + expr = parseOptionalChain(parser, context, expr, start, line, column); + break; + } + default: + if ((parser.flags & 2048) === 2048) { + report(parser, 160); + } + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 1, start, line, column); + } + if (inChain === 0 && (parser.flags & 2048) === 2048) { + parser.flags = (parser.flags | 2048) ^ 2048; + expr = finishNode(parser, context, start, line, column, { + type: 'ChainExpression', + expression: expr + }); + } + return expr; +} +function parseOptionalChain(parser, context, expr, start, line, column) { + let restoreHasOptionalChaining = false; + let node; + if (parser.token === 69271571 || parser.token === 67174411) { + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + } + if (parser.token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, 0, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + optional: true, + property + }); + } + else if (parser.token === 67174411) { + const args = parseArguments(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args, + optional: true + }); + } + else { + if ((parser.token & (143360 | 4096)) < 1) + report(parser, 154); + const property = parseIdentifier(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + optional: true, + property + }); + } + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + return node; +} +function parsePropertyOrPrivatePropertyName(parser, context) { + if ((parser.token & (143360 | 4096)) < 1 && parser.token !== 131) { + report(parser, 154); + } + return context & 1 && parser.token === 131 + ? parsePrivateIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + : parseIdentifier(parser, context, 0); +} +function parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column) { + if (inNew) + report(parser, 53); + if (!isLHS) + report(parser, 0); + const { token } = parser; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.assignable & 2) { + report(parser, 52); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: arg, + operator: KeywordDescTable[token & 255], + prefix: true + }); +} +function parsePrimaryExpression(parser, context, kind, inNew, canAssign, isPattern, inGroup, isLHS, start, line, column) { + if ((parser.token & 143360) === 143360) { + switch (parser.token) { + case 209008: + return parseAwaitExpression(parser, context, inNew, inGroup, start, line, column); + case 241773: + return parseYieldExpression(parser, context, inGroup, canAssign, start, line, column); + case 209007: + return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column); + } + const { token, tokenValue } = parser; + const expr = parseIdentifier(parser, context | 65536, isPattern); + if (parser.token === 10) { + if (!isLHS) + report(parser, 0); + classifyIdentifier(parser, context, token, 1); + return parseArrowFromIdentifier(parser, context, tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + if (context & 16384 && token === 537079928) + report(parser, 126); + if (token === 241739) { + if (context & 1024) + report(parser, 109); + if (kind & (8 | 16)) + report(parser, 97); + } + parser.assignable = + context & 1024 && (token & 537079808) === 537079808 + ? 2 + : 1; + return expr; + } + if ((parser.token & 134217728) === 134217728) { + return parseLiteral(parser, context); + } + switch (parser.token) { + case 33619995: + case 33619996: + return parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column); + case 16863278: + case 16842800: + case 16842801: + case 25233970: + case 25233971: + case 16863277: + case 16863279: + return parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup); + case 86106: + return parseFunctionExpression(parser, context, 0, inGroup, start, line, column); + case 2162700: + return parseObjectLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 69271571: + return parseArrayLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 67174411: + return parseParenthesizedExpression(parser, context, canAssign, 1, 0, start, line, column); + case 86021: + case 86022: + case 86023: + return parseNullOrTrueOrFalseLiteral(parser, context, start, line, column); + case 86113: + return parseThisExpression(parser, context); + case 65540: + return parseRegExpLiteral(parser, context, start, line, column); + case 133: + case 86096: + return parseClassExpression(parser, context, inGroup, start, line, column); + case 86111: + return parseSuperExpression(parser, context, start, line, column); + case 67174409: + return parseTemplateLiteral(parser, context, start, line, column); + case 67174408: + return parseTemplate(parser, context); + case 86109: + return parseNewExpression(parser, context, inGroup, start, line, column); + case 134283389: + return parseBigIntLiteral(parser, context, start, line, column); + case 131: + return parsePrivateIdentifier(parser, context, start, line, column); + case 86108: + return parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column); + case 8456258: + if (context & 16) + return parseJSXRootElementOrFragment(parser, context, 1, start, line, column); + default: + if (isValidIdentifier(context, parser.token)) + return parseIdentifierOrArrow(parser, context, start, line, column); + report(parser, 28, KeywordDescTable[parser.token & 255]); + } +} +function parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column) { + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 67108877) { + return parseImportMetaExpression(parser, context, expr, start, line, column); + } + if (inNew) + report(parser, 137); + expr = parseImportExpression(parser, context, inGroup, start, line, column); + parser.assignable = 2; + return parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); +} +function parseImportMetaExpression(parser, context, meta, start, line, column) { + if ((context & 2048) === 0) + report(parser, 163); + nextToken(parser, context); + if (parser.token !== 143495 && parser.tokenValue !== 'meta') + report(parser, 28, KeywordDescTable[parser.token & 255]); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property: parseIdentifier(parser, context, 0) + }); +} +function parseImportExpression(parser, context, inGroup, start, line, column) { + consume(parser, context | 32768, 67174411); + if (parser.token === 14) + report(parser, 138); + const source = parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + return finishNode(parser, context, start, line, column, { + type: 'ImportExpression', + source + }); +} +function parseBigIntLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1), + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1) + }); +} +function parseTemplateLiteral(parser, context, start, line, column) { + parser.assignable = 2; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + const quasis = [parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)]; + return finishNode(parser, context, start, line, column, { + type: 'TemplateLiteral', + expressions: [], + quasis + }); +} +function parseTemplate(parser, context) { + context = (context | 134217728) ^ 134217728; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + const quasis = [ + parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false) + ]; + const expressions = [parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)]; + if (parser.token !== 1074790415) + report(parser, 80); + while ((parser.token = scanTemplateTail(parser, context)) !== 67174409) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false)); + expressions.push(parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + if (parser.token !== 1074790415) + report(parser, 80); + } + { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'TemplateLiteral', + expressions, + quasis + }); +} +function parseTemplateElement(parser, context, cooked, raw, start, line, col, tail) { + const node = finishNode(parser, context, start, line, col, { + type: 'TemplateElement', + value: { + cooked, + raw + }, + tail + }); + const tailSize = tail ? 1 : 2; + if (context & 2) { + node.start += 1; + node.range[0] += 1; + node.end -= tailSize; + node.range[1] -= tailSize; + } + if (context & 4) { + node.loc.start.column += 1; + node.loc.end.column -= tailSize; + } + return node; +} +function parseSpreadElement(parser, context, start, line, column) { + context = (context | 134217728) ^ 134217728; + consume(parser, context | 32768, 14); + const argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 1; + return finishNode(parser, context, start, line, column, { + type: 'SpreadElement', + argument + }); +} +function parseArguments(parser, context, inGroup) { + nextToken(parser, context | 32768); + const args = []; + if (parser.token === 16) { + nextToken(parser, context); + return args; + } + while (parser.token !== 16) { + if (parser.token === 14) { + args.push(parseSpreadElement(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + else { + args.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + if (parser.token !== 18) + break; + nextToken(parser, context | 32768); + if (parser.token === 16) + break; + } + consume(parser, context, 16); + return args; +} +function parseIdentifier(parser, context, isPattern) { + const { tokenValue, tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + return finishNode(parser, context, tokenPos, linePos, colPos, context & 268435456 + ? { + type: 'Identifier', + name: tokenValue, + pattern: isPattern === 1 + } + : { + type: 'Identifier', + name: tokenValue + }); +} +function parseLiteral(parser, context) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + if (parser.token === 134283389) { + return parseBigIntLiteral(parser, context, tokenPos, linePos, colPos); + } + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, context & 512 + ? { + type: 'Literal', + value: tokenValue, + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue + }); +} +function parseNullOrTrueOrFalseLiteral(parser, context, start, line, column) { + const raw = KeywordDescTable[parser.token & 255]; + const value = parser.token === 86023 ? null : raw === 'true'; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value, + raw + } + : { + type: 'Literal', + value + }); +} +function parseThisExpression(parser, context) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ThisExpression' + }); +} +function parseFunctionDeclaration(parser, context, scope, origin, allowGen, flags, isAsync, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = allowGen ? optionalBit(parser, context, 8457014) : 0; + let id = null; + let firstRestricted; + let functionScope = scope ? createScope() : void 0; + if (parser.token === 67174411) { + if ((flags & 1) < 1) + report(parser, 37, 'Function'); + } + else { + const kind = origin & 4 && ((context & 8192) < 1 || (context & 2048) < 1) + ? 4 + : 64; + validateFunctionName(parser, context | ((context & 3072) << 11), parser.token); + if (scope) { + if (kind & 4) { + addVarName(parser, context, scope, parser.tokenValue, kind); + } + else { + addBlockName(parser, context, scope, parser.tokenValue, kind, origin); + } + functionScope = addChildScope(functionScope, 256); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, parser.tokenValue); + } + } + } + firstRestricted = parser.token; + if (parser.token & 143360) { + id = parseIdentifier(parser, context, 0); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + ((isAsync * 2 + isGenerator) << 21) | + (isGenerator ? 0 : 1073741824); + if (scope) + functionScope = addChildScope(functionScope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, functionScope, 0, 1); + const body = parseFunctionBody(parser, (context | 8192 | 4096 | 131072) ^ + (8192 | 4096 | 131072), scope ? addChildScope(functionScope, 128) : functionScope, 8, firstRestricted, scope ? functionScope.scopeError : void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionDeclaration', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); +} +function parseFunctionExpression(parser, context, isAsync, inGroup, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = optionalBit(parser, context, 8457014); + const generatorAndAsyncFlags = (isAsync * 2 + isGenerator) << 21; + let id = null; + let firstRestricted; + let scope = context & 64 ? createScope() : void 0; + if ((parser.token & (143360 | 4096 | 36864)) > 0) { + validateFunctionName(parser, ((context | 0x1ec0000) ^ 0x1ec0000) | generatorAndAsyncFlags, parser.token); + if (scope) + scope = addChildScope(scope, 256); + firstRestricted = parser.token; + id = parseIdentifier(parser, context, 0); + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + generatorAndAsyncFlags | + (isGenerator ? 0 : 1073741824); + if (scope) + scope = addChildScope(scope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, scope, inGroup, 1); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192 | 4096 | 131072 | 16384), scope ? addChildScope(scope, 128) : scope, 0, firstRestricted, void 0); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); +} +function parseArrayLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseArrayExpressionOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; +} +function parseArrayExpressionOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context | 32768); + const elements = []; + let destructible = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 20) { + if (consumeOpt(parser, context | 32768, 18)) { + elements.push(null); + } + else { + let left; + const { token, tokenPos, linePos, colPos, tokenValue } = parser; + if (token & 143360) { + left = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + if (parser.assignable & 2) + report(parser, 24); + nextToken(parser, context | 32768); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + operator: '=', + left, + right + }); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else { + destructible |= + kind & 1 + ? 32 + : (kind & 2) < 1 + ? 16 + : 0; + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + if (parser.token !== 1077936157) + destructible |= 16; + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token & 2097152) { + left = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + parser.assignable = + parser.destructible & 16 + ? 2 + : 1; + if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 20, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos); + destructible |= parser.destructible; + if (parser.token !== 18 && parser.token !== 20) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + left = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + if ((kind & (2 | 1)) < 1 && token === 67174411) + destructible |= 16; + } + else if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === 67174411) { + destructible |= + parser.assignable & 1 && kind & (2 | 1) + ? 32 + : 16; + } + } + elements.push(left); + if (consumeOpt(parser, context | 32768, 18)) { + if (parser.token === 20) + break; + } + else + break; + } + } + consume(parser, context, 20); + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ArrayPattern' : 'ArrayExpression', + elements + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; +} +function parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node) { + if (parser.token !== 1077936157) + report(parser, 24); + nextToken(parser, context | 32768); + if (destructible & 16) + report(parser, 24); + if (!isPattern) + reinterpretToPattern(parser, node); + const { tokenPos, linePos, colPos } = parser; + const right = parseExpression(parser, context, 1, 1, inGroup, tokenPos, linePos, colPos); + parser.destructible = + ((destructible | 64 | 8) ^ + (8 | 64)) | + (parser.destructible & 128 ? 128 : 0) | + (parser.destructible & 256 ? 256 : 0); + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left: node, + right + } + : { + type: 'AssignmentExpression', + left: node, + operator: '=', + right + }); +} +function parseSpreadOrRestElement(parser, context, scope, closingToken, kind, origin, isAsync, inGroup, isPattern, start, line, column) { + nextToken(parser, context | 32768); + let argument = null; + let destructible = 0; + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + if (token & (4096 | 143360)) { + parser.assignable = 1; + argument = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + token = parser.token; + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== closingToken) { + if (parser.assignable & 2 && parser.token === 1077936157) + report(parser, 68); + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === closingToken || token === 18) { + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + else { + destructible |= 32; + } + destructible |= parser.destructible & 128 ? 128 : 0; + } + else if (token === closingToken) { + report(parser, 39); + } + else if (token & 2097152) { + argument = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + token = parser.token; + if (token !== 1077936157 && token !== closingToken && token !== 18) { + if (parser.destructible & 8) + report(parser, 68); + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + destructible |= parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + else { + if ((parser.token & 8454144) === 8454144) { + argument = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, argument); + } + if (consumeOpt(parser, context | 32768, 22)) { + argument = parseConditionalExpression(parser, context, argument, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + else { + destructible |= + closingToken === 1074790415 && token !== 1077936157 + ? 16 + : parser.destructible; + } + } + else { + destructible |= 32; + argument = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + const { token, tokenPos, linePos, colPos } = parser; + if (token === 1077936157 && token !== closingToken && token !== 18) { + if (parser.assignable & 2) + report(parser, 24); + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + destructible |= 16; + } + else { + if (token === 18) { + destructible |= 16; + } + else if (token !== closingToken) { + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + destructible |= + parser.assignable & 1 ? 32 : 16; + } + parser.destructible = destructible; + if (parser.token !== closingToken && parser.token !== 18) + report(parser, 155); + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + if (parser.token !== closingToken) { + if (kind & 1) + destructible |= isAsync ? 16 : 32; + if (consumeOpt(parser, context | 32768, 1077936157)) { + if (destructible & 16) + report(parser, 24); + reinterpretToPattern(parser, argument); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + argument = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left: argument, + right + } + : { + type: 'AssignmentExpression', + left: argument, + operator: '=', + right + }); + destructible = 16; + } + else { + destructible |= 16; + } + } + parser.destructible = destructible; + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); +} +function parseMethodDefinition(parser, context, kind, inGroup, start, line, column) { + const modifierFlags = (kind & 64) < 1 ? 31981568 : 14680064; + context = + ((context | modifierFlags) ^ modifierFlags) | + ((kind & 88) << 18) | + 100925440; + let scope = context & 64 ? addChildScope(createScope(), 512) : void 0; + const params = parseMethodFormals(parser, context | 8388608, scope, kind, 1, inGroup); + if (scope) + scope = addChildScope(scope, 128); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192), scope, 0, void 0, void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + params, + body, + async: (kind & 16) > 0, + generator: (kind & 8) > 0, + id: null + }); +} +function parseObjectLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseObjectLiteralOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; +} +function parseObjectLiteralOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context); + const properties = []; + let destructible = 0; + let prototypeCount = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 1074790415) { + const { token, tokenValue, linePos, colPos, tokenPos } = parser; + if (token === 14) { + properties.push(parseSpreadOrRestElement(parser, context, scope, 1074790415, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos)); + } + else { + let state = 0; + let key = null; + let value; + const t = parser.token; + if (parser.token & (143360 | 4096) || parser.token === 121) { + key = parseIdentifier(parser, context, 0); + if (parser.token === 18 || parser.token === 1074790415 || parser.token === 1077936157) { + state |= 4; + if (context & 1024 && (token & 537079808) === 537079808) { + destructible |= 16; + } + else { + validateBindingIdentifier(parser, context, kind, token, 0); + } + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + if (consumeOpt(parser, context | 32768, 1077936157)) { + destructible |= 8; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + value = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: context & -2147483648 ? Object.assign({}, key) : key, + right + }); + } + else { + destructible |= + (token === 209008 ? 128 : 0) | + (token === 121 ? 16 : 0); + value = context & -2147483648 ? Object.assign({}, key) : key; + } + } + else if (consumeOpt(parser, context | 32768, 21)) { + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + const tokenAfterColon = parser.token; + const valueAfterColon = parser.tokenValue; + destructible |= t === 121 ? 16 : 0; + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + destructible |= parser.destructible & 128 ? 128 : 0; + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if ((parser.token & 4194304) === 4194304) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token !== 1077936157) { + destructible |= 32; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 69271571) { + destructible |= 16; + if (token === 209007) + state |= 16; + state |= + (token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1) | 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token & (143360 | 4096)) { + destructible |= 16; + if (token === 121) + report(parser, 92); + if (token === 209007) { + if (parser.flags & 1) + report(parser, 128); + state |= 16; + } + key = parseIdentifier(parser, context, 0); + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 67174411) { + destructible |= 16; + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 8457014) { + destructible |= 16; + if (token === 12402 || token === 12403) { + report(parser, 40); + } + else if (token === 143483) { + report(parser, 92); + } + nextToken(parser, context); + state |= + 8 | 1 | (token === 209007 ? 16 : 0); + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + state |= 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if ((parser.token & 134217728) === 134217728) { + if (token === 209007) + state |= 16; + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + destructible |= 16; + key = parseLiteral(parser, context); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 129); + } + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + if (parser.token === 21) { + consume(parser, context | 32768, 21); + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token, tokenValue: valueAfterColon } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if (parser.token === 1077936157) { + if (parser.assignable & 2) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if ((parser.destructible & 8) !== 8) { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible = parser.assignable | 16; + } + else { + report(parser, 130); + } + } + else if (parser.token === 69271571) { + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.destructible & 256 ? 256 : 0; + state |= 2; + if (parser.token === 21) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos, tokenValue, token: tokenAfterColon } = parser; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if ((parser.token & 4194304) === 4194304) { + destructible |= + parser.assignable & 2 + ? 16 + : token === 1077936157 + ? 0 + : 32; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (destructible & 8) { + report(parser, 59); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = + parser.assignable & 2 ? destructible | 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, linePos, colPos); + destructible = 16; + } + else { + report(parser, 41); + } + } + else if (token === 8457014) { + consume(parser, context | 32768, 8457014); + state |= 8; + if (parser.token & 143360) { + const { token, line, index } = parser; + key = parseIdentifier(parser, context, 0); + state |= 1; + if (parser.token === 67174411) { + destructible |= 16; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + reportMessageAt(index, line, index, token === 209007 + ? 43 + : token === 12402 || parser.token === 12403 + ? 42 + : 44, KeywordDescTable[token & 255]); + } + } + else if ((parser.token & 134217728) === 134217728) { + destructible |= 16; + key = parseLiteral(parser, context); + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + destructible |= 16; + state |= 2 | 1; + key = parseComputedPropertyName(parser, context, inGroup); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 122); + } + } + else { + report(parser, 28, KeywordDescTable[token & 255]); + } + destructible |= parser.destructible & 128 ? 128 : 0; + parser.destructible = destructible; + properties.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'Property', + key: key, + value, + kind: !(state & 768) ? 'init' : state & 512 ? 'set' : 'get', + computed: (state & 2) > 0, + method: (state & 1) > 0, + shorthand: (state & 4) > 0 + })); + } + destructible |= parser.destructible; + if (parser.token !== 18) + break; + nextToken(parser, context); + } + consume(parser, context, 1074790415); + if (prototypeCount > 1) + destructible |= 64; + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ObjectPattern' : 'ObjectExpression', + properties + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; +} +function parseMethodFormals(parser, context, scope, kind, type, inGroup) { + consume(parser, context, 67174411); + const params = []; + parser.flags = (parser.flags | 128) ^ 128; + if (parser.token === 16) { + if (kind & 512) { + report(parser, 35, 'Setter', 'one', ''); + } + nextToken(parser, context); + return params; + } + if (kind & 256) { + report(parser, 35, 'Getter', 'no', 's'); + } + if (kind & 512 && parser.token === 14) { + report(parser, 36); + } + context = (context | 134217728) ^ 134217728; + let setterArgs = 0; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left = null; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, type, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) + report(parser, 47); + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: left, + right + }); + } + setterArgs++; + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (kind & 512 && setterArgs !== 1) { + report(parser, 35, 'Setter', 'one', ''); + } + if (scope && scope.scopeError !== void 0) + reportScopeError(scope.scopeError); + if (isSimpleParameterList) + parser.flags |= 128; + consume(parser, context, 16); + return params; +} +function parseComputedPropertyName(parser, context, inGroup) { + nextToken(parser, context | 32768); + const key = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 20); + return key; +} +function parseParenthesizedExpression(parser, context, canAssign, kind, origin, start, line, column) { + parser.flags = (parser.flags | 128) ^ 128; + const { tokenPos: piStart, linePos: plStart, colPos: pcStart } = parser; + nextToken(parser, context | 32768 | 1073741824); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 0, start, line, column); + } + let destructible = 0; + parser.destructible &= ~(256 | 128); + let expr; + let expressions = []; + let isSequence = 0; + let isSimpleParameterList = 0; + const { tokenPos: iStart, linePos: lStart, colPos: cStart } = parser; + parser.assignable = 1; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 1, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808 || + (token & 36864) === 36864) { + isSimpleParameterList = 1; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if ((token & 2097152) === 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + parser.assignable = 2; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 0, 1, 0, tokenPos, linePos, colPos); + if (parser.destructible & 16) + report(parser, 71); + isSimpleParameterList = 1; + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + destructible |= 8; + break; + } + else { + destructible |= 16; + expr = parseExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (parser.token === 18) { + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + } + if (isSequence) { + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + } + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + parser.destructible = destructible; + return expr; + } + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (!consumeOpt(parser, context | 32768, 18)) + break; + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + if (parser.token === 16) { + destructible |= 8; + break; + } + } + if (isSequence) { + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + if (destructible & 16 && destructible & 8) + report(parser, 145); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 46); + if (context & (4194304 | 2048) && destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) { + report(parser, 30); + } + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, isSequence ? expressions : [expr], canAssign, 0, start, line, column); + } + else if (destructible & 8) { + report(parser, 139); + } + parser.destructible = ((parser.destructible | 256) ^ 256) | destructible; + return context & 128 + ? finishNode(parser, context, piStart, plStart, pcStart, { + type: 'ParenthesizedExpression', + expression: expr + }) + : expr; +} +function parseIdentifierOrArrow(parser, context, start, line, column) { + const { tokenValue } = parser; + const expr = parseIdentifier(parser, context, 0); + parser.assignable = 1; + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + return parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + return expr; +} +function parseArrowFromIdentifier(parser, context, value, expr, inNew, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + if (inNew) + report(parser, 48); + parser.flags &= ~128; + const scope = context & 64 ? createArrowHeadParsingScope(parser, context, value) : void 0; + return parseArrowFunctionExpression(parser, context, scope, [expr], isAsync, start, line, column); +} +function parseParenthesizedArrow(parser, context, scope, params, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + for (let i = 0; i < params.length; ++i) + reinterpretToPattern(parser, params[i]); + return parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column); +} +function parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column) { + if (parser.flags & 1) + report(parser, 45); + consume(parser, context | 32768, 10); + context = ((context | 15728640) ^ 15728640) | (isAsync << 22); + const expression = parser.token !== 2162700; + let body; + if (scope && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + if (expression) { + body = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + if (scope) + scope = addChildScope(scope, 128); + body = parseFunctionBody(parser, (context | 134221824 | 8192 | 16384) ^ + (134221824 | 8192 | 16384), scope, 16, void 0, void 0); + switch (parser.token) { + case 69271571: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + break; + case 67108877: + case 67174409: + case 22: + report(parser, 113); + case 67174411: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + parser.flags |= 1024; + break; + } + if ((parser.token & 8454144) === 8454144 && (parser.flags & 1) < 1) + report(parser, 28, KeywordDescTable[parser.token & 255]); + if ((parser.token & 33619968) === 33619968) + report(parser, 121); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ArrowFunctionExpression', + params, + body, + async: isAsync === 1, + expression + }); +} +function parseFormalParametersOrFormalList(parser, context, scope, inGroup, kind) { + consume(parser, context, 67174411); + parser.flags = (parser.flags | 128) ^ 128; + const params = []; + if (consumeOpt(parser, context, 16)) + return params; + context = (context | 134217728) ^ 134217728; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, kind, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) { + report(parser, 47); + } + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left, + right + }); + } + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (isSimpleParameterList) + parser.flags |= 128; + if (scope && (isSimpleParameterList || context & 1024) && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + consume(parser, context, 16); + return params; +} +function parseMembeExpressionNoCall(parser, context, expr, inGroup, start, line, column) { + const { token } = parser; + if (token & 67108864) { + if (token === 67108877) { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }), 0, start, line, column); + } + else if (token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }), 0, start, line, column); + } + else if (token === 67174408 || token === 67174409) { + parser.assignable = 2; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }), 0, start, line, column); + } + } + return expr; +} +function parseNewExpression(parser, context, inGroup, start, line, column) { + const id = parseIdentifier(parser, context | 32768, 0); + const { tokenPos, linePos, colPos } = parser; + if (consumeOpt(parser, context, 67108877)) { + if (context & 67108864 && parser.token === 143494) { + parser.assignable = 2; + return parseMetaProperty(parser, context, id, start, line, column); + } + report(parser, 91); + } + parser.assignable = 2; + if ((parser.token & 16842752) === 16842752) { + report(parser, 62, KeywordDescTable[parser.token & 255]); + } + const expr = parsePrimaryExpression(parser, context, 2, 1, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + context = (context | 134217728) ^ 134217728; + if (parser.token === 67108991) + report(parser, 162); + const callee = parseMembeExpressionNoCall(parser, context, expr, inGroup, tokenPos, linePos, colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'NewExpression', + callee, + arguments: parser.token === 67174411 ? parseArguments(parser, context, inGroup) : [] + }); +} +function parseMetaProperty(parser, context, meta, start, line, column) { + const property = parseIdentifier(parser, context, 0); + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property + }); +} +function parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column) { + if (parser.token === 209008) + report(parser, 29); + if (context & (1024 | 2097152) && parser.token === 241773) { + report(parser, 30); + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context, 0), 0, canAssign, 1, start, line, column); +} +function parseAsyncArrowOrCallExpression(parser, context, callee, canAssign, kind, origin, flags, start, line, column) { + nextToken(parser, context | 32768); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + if (parser.token === 10) { + if (flags & 1) + report(parser, 45); + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 1, start, line, column); + } + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: [] + }); + } + let destructible = 0; + let expr = null; + let isSimpleParameterList = 0; + parser.destructible = + (parser.destructible | 256 | 128) ^ + (256 | 128); + const params = []; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, kind, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808) { + parser.flags |= 512; + } + else if ((token & 36864) === 36864) { + parser.flags |= 256; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token & 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + expr = parseBinaryExpression(parser, context, 1, start, line, column, 4, token, expr); + } + if (consumeOpt(parser, context | 32768, 22)) { + expr = parseConditionalExpression(parser, context, expr, start, line, column); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 1, 1, 0, tokenPos, linePos, colPos); + destructible |= (parser.token === 16 ? 0 : 16) | parser.destructible; + isSimpleParameterList = 1; + } + else { + expr = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + destructible = parser.assignable; + params.push(expr); + while (consumeOpt(parser, context | 32768, 18)) { + params.push(parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos)); + } + destructible |= parser.assignable; + consume(parser, context, 16); + parser.destructible = destructible | 16; + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + params.push(expr); + if (!consumeOpt(parser, context | 32768, 18)) + break; + } + consume(parser, context, 16); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 25); + if (parser.flags & 1 || flags & 1) + report(parser, 45); + if (destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) + report(parser, 30); + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, params, canAssign, 1, start, line, column); + } + else if (destructible & 8) { + report(parser, 59); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); +} +function parseRegExpLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenRegExp, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return context & 512 + ? finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp, + raw: tokenRaw + }) + : finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp + }); +} +function parseClassDeclaration(parser, context, scope, flags, start, line, column) { + context = (context | 16777216 | 1024) ^ 16777216; + let decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + if (parser.leadingDecorators.length) { + parser.leadingDecorators.push(...decorators); + decorators = parser.leadingDecorators; + parser.leadingDecorators = []; + } + nextToken(parser, context); + let id = null; + let superClass = null; + const { tokenValue } = parser; + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) { + report(parser, 114); + } + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + if (scope) { + addBlockName(parser, context, scope, tokenValue, 32, 0); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, tokenValue); + } + } + } + id = parseIdentifier(parser, context, 0); + } + else { + if ((flags & 1) < 1) + report(parser, 37, 'Class'); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, scope, 2, 8, 0); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassDeclaration', + id, + superClass, + decorators, + body + } + : { + type: 'ClassDeclaration', + id, + superClass, + body + }); +} +function parseClassExpression(parser, context, inGroup, start, line, column) { + let id = null; + let superClass = null; + context = (context | 1024 | 16777216) ^ 16777216; + const decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + nextToken(parser, context); + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + id = parseIdentifier(parser, context, 0); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, inGroup, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, void 0, 2, 0, inGroup); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassExpression', + id, + superClass, + decorators, + body + } + : { + type: 'ClassExpression', + id, + superClass, + body + }); +} +function parseDecorators(parser, context) { + const list = []; + if (context & 1) { + while (parser.token === 133) { + list.push(parseDecoratorList(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + } + return list; +} +function parseDecoratorList(parser, context, start, line, column) { + nextToken(parser, context | 32768); + let expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, start, line, column); + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + return finishNode(parser, context, start, line, column, { + type: 'Decorator', + expression + }); +} +function parseClassBody(parser, context, inheritedContext, scope, kind, origin, inGroup) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + context = (context | 134217728) ^ 134217728; + parser.flags = (parser.flags | 32) ^ 32; + const body = []; + let decorators; + while (parser.token !== 1074790415) { + let length = 0; + decorators = parseDecorators(parser, context); + length = decorators.length; + if (length > 0 && parser.tokenValue === 'constructor') { + report(parser, 106); + } + if (parser.token === 1074790415) + report(parser, 105); + if (consumeOpt(parser, context, 1074790417)) { + if (length > 0) + report(parser, 116); + continue; + } + body.push(parseClassElementList(parser, context, scope, inheritedContext, kind, decorators, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + consume(parser, origin & 8 ? context | 32768 : context, 1074790415); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ClassBody', + body + }); +} +function parseClassElementList(parser, context, scope, inheritedContext, type, decorators, isStatic, inGroup, start, line, column) { + let kind = isStatic ? 32 : 0; + let key = null; + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 36864)) { + key = parseIdentifier(parser, context, 0); + switch (token) { + case 36972: + if (!isStatic && parser.token !== 67174411) { + return parseClassElementList(parser, context, scope, inheritedContext, type, decorators, 1, inGroup, start, line, column); + } + break; + case 209007: + if (parser.token !== 67174411 && (parser.flags & 1) < 1) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 16 | (optionalBit(parser, context, 8457014) ? 8 : 0); + } + break; + case 12402: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 256; + } + break; + case 12403: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 512; + } + break; + } + } + else if (token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, inheritedContext, inGroup); + } + else if ((token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (token === 8457014) { + kind |= 8; + nextToken(parser, context); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + context = context | 16384; + } + else if (context & 1 && (parser.token & 1073741824) === 1073741824) { + kind |= 128; + context = context | 16384; + } + else if (token === 122) { + key = parseIdentifier(parser, context, 0); + if (parser.token !== 67174411) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + if (kind & (8 | 16 | 768)) { + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, context, 0); + } + else if (parser.token === 122) { + key = parseIdentifier(parser, context, 0); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + } + else + report(parser, 131); + } + if ((kind & 2) < 1) { + if (parser.tokenValue === 'constructor') { + if ((parser.token & 1073741824) === 1073741824) { + report(parser, 125); + } + else if ((kind & 32) < 1 && parser.token === 67174411) { + if (kind & (768 | 16 | 128 | 8)) { + report(parser, 50, 'accessor'); + } + else if ((context & 524288) < 1) { + if (parser.flags & 32) + report(parser, 51); + else + parser.flags |= 32; + } + } + kind |= 64; + } + else if ((kind & 4096) < 1 && + kind & (32 | 768 | 8 | 16) && + parser.tokenValue === 'prototype') { + report(parser, 49); + } + } + if (context & 1 && parser.token !== 67174411) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + const value = parseMethodDefinition(parser, context, kind, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + decorators, + value + } + : { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + value + }); +} +function parsePrivateIdentifier(parser, context, start, line, column) { + nextToken(parser, context); + const { tokenValue } = parser; + if (tokenValue === 'constructor') + report(parser, 124); + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'PrivateIdentifier', + name: tokenValue + }); +} +function parsePropertyDefinition(parser, context, key, state, decorators, start, line, column) { + let value = null; + if (state & 8) + report(parser, 0); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 537079928) + report(parser, 115); + value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 0, 1, tokenPos, linePos, colPos); + if ((parser.token & 1073741824) !== 1073741824) { + value = parseMemberOrUpdateExpression(parser, context | 16384, value, 0, 0, tokenPos, linePos, colPos); + value = parseAssignmentExpression(parser, context | 16384, 0, 0, tokenPos, linePos, colPos, value); + if (parser.token === 18) { + value = parseSequenceExpression(parser, context, 0, start, line, column, value); + } + } + } + return finishNode(parser, context, start, line, column, { + type: 'PropertyDefinition', + key, + value, + static: (state & 32) > 0, + computed: (state & 2) > 0, + decorators + }); +} +function parseBindingPattern(parser, context, scope, type, origin, start, line, column) { + if (parser.token & 143360) + return parseAndClassifyIdentifier(parser, context, scope, type, origin, start, line, column); + if ((parser.token & 2097152) !== 2097152) + report(parser, 28, KeywordDescTable[parser.token & 255]); + const left = parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column) + : parseObjectLiteralOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column); + if (parser.destructible & 16) + report(parser, 47); + if (parser.destructible & 32) + report(parser, 47); + return left; +} +function parseAndClassifyIdentifier(parser, context, scope, kind, origin, start, line, column) { + const { tokenValue, token } = parser; + if (context & 1024) { + if ((token & 537079808) === 537079808) { + report(parser, 115); + } + else if ((token & 36864) === 36864) { + report(parser, 114); + } + } + if ((token & 20480) === 20480) { + report(parser, 99); + } + if (context & (2048 | 2097152) && token === 241773) { + report(parser, 30); + } + if (token === 241739) { + if (kind & (8 | 16)) + report(parser, 97); + } + if (context & (4194304 | 2048) && token === 209008) { + report(parser, 95); + } + nextToken(parser, context); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + return finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: tokenValue + }); +} +function parseJSXRootElementOrFragment(parser, context, inJSXChild, start, line, column) { + nextToken(parser, context); + if (parser.token === 8456259) { + return finishNode(parser, context, start, line, column, { + type: 'JSXFragment', + openingFragment: parseOpeningFragment(parser, context, start, line, column), + children: parseJSXChildren(parser, context), + closingFragment: parseJSXClosingFragment(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + let closingElement = null; + let children = []; + const openingElement = parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column); + if (!openingElement.selfClosing) { + children = parseJSXChildren(parser, context); + closingElement = parseJSXClosingElement(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos); + const close = isEqualTagName(closingElement.name); + if (isEqualTagName(openingElement.name) !== close) + report(parser, 149, close); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXElement', + children, + openingElement, + closingElement + }); +} +function parseOpeningFragment(parser, context, start, line, column) { + scanJSXToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningFragment' + }); +} +function parseJSXClosingElement(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + const name = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + parser.token = scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingElement', + name + }); +} +function parseJSXClosingFragment(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + consume(parser, context, 8456259); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingFragment' + }); +} +function parseJSXChildren(parser, context) { + const children = []; + while (parser.token !== 25) { + parser.index = parser.tokenPos = parser.startPos; + parser.column = parser.colPos = parser.startColumn; + parser.line = parser.linePos = parser.startLine; + scanJSXToken(parser, context); + children.push(parseJSXChild(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return children; +} +function parseJSXChild(parser, context, start, line, column) { + if (parser.token === 138) + return parseJSXText(parser, context, start, line, column); + if (parser.token === 2162700) + return parseJSXExpressionContainer(parser, context, 0, 0, start, line, column); + if (parser.token === 8456258) + return parseJSXRootElementOrFragment(parser, context, 0, start, line, column); + report(parser, 0); +} +function parseJSXText(parser, context, start, line, column) { + scanJSXToken(parser, context); + const node = { + type: 'JSXText', + value: parser.tokenValue + }; + if (context & 512) { + node.raw = parser.tokenRaw; + } + return finishNode(parser, context, start, line, column, node); +} +function parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column) { + if ((parser.token & 143360) !== 143360 && (parser.token & 4096) !== 4096) + report(parser, 0); + const tagName = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + const attributes = parseJSXAttributes(parser, context); + const selfClosing = parser.token === 8457016; + if (parser.token === 8456259) { + scanJSXToken(parser, context); + } + else { + consume(parser, context, 8457016); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + scanJSXToken(parser, context); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningElement', + name: tagName, + attributes, + selfClosing + }); +} +function parseJSXElementName(parser, context, start, line, column) { + scanJSXIdentifier(parser); + let key = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) + return parseJSXNamespacedName(parser, context, key, start, line, column); + while (consumeOpt(parser, context, 67108877)) { + scanJSXIdentifier(parser); + key = parseJSXMemberExpression(parser, context, key, start, line, column); + } + return key; +} +function parseJSXMemberExpression(parser, context, object, start, line, column) { + const property = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXMemberExpression', + object, + property + }); +} +function parseJSXAttributes(parser, context) { + const attributes = []; + while (parser.token !== 8457016 && parser.token !== 8456259 && parser.token !== 1048576) { + attributes.push(parseJsxAttribute(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return attributes; +} +function parseJSXSpreadAttribute(parser, context, start, line, column) { + nextToken(parser, context); + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadAttribute', + argument: expression + }); +} +function parseJsxAttribute(parser, context, start, line, column) { + if (parser.token === 2162700) + return parseJSXSpreadAttribute(parser, context, start, line, column); + scanJSXIdentifier(parser); + let value = null; + let name = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) { + name = parseJSXNamespacedName(parser, context, name, start, line, column); + } + if (parser.token === 1077936157) { + const token = scanJSXAttributeValue(parser, context); + const { tokenPos, linePos, colPos } = parser; + switch (token) { + case 134283267: + value = parseLiteral(parser, context); + break; + case 8456258: + value = parseJSXRootElementOrFragment(parser, context, 1, tokenPos, linePos, colPos); + break; + case 2162700: + value = parseJSXExpressionContainer(parser, context, 1, 1, tokenPos, linePos, colPos); + break; + default: + report(parser, 148); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXAttribute', + value, + name + }); +} +function parseJSXNamespacedName(parser, context, namespace, start, line, column) { + consume(parser, context, 21); + const name = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXNamespacedName', + namespace, + name + }); +} +function parseJSXExpressionContainer(parser, context, inJSXChild, isAttr, start, line, column) { + nextToken(parser, context); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 14) + return parseJSXSpreadChild(parser, context, tokenPos, linePos, colPos); + let expression = null; + if (parser.token === 1074790415) { + if (isAttr) + report(parser, 151); + expression = parseJSXEmptyExpression(parser, context, parser.startPos, parser.startLine, parser.startColumn); + } + else { + expression = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + } + if (inJSXChild) { + consume(parser, context, 1074790415); + } + else { + scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXExpressionContainer', + expression + }); +} +function parseJSXSpreadChild(parser, context, start, line, column) { + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadChild', + expression + }); +} +function parseJSXEmptyExpression(parser, context, start, line, column) { + parser.startPos = parser.tokenPos; + parser.startLine = parser.linePos; + parser.startColumn = parser.colPos; + return finishNode(parser, context, start, line, column, { + type: 'JSXEmptyExpression' + }); +} +function parseJSXIdentifier(parser, context, start, line, column) { + const { tokenValue } = parser; + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXIdentifier', + name: tokenValue + }); +} + +var estree = /*#__PURE__*/Object.freeze({ + __proto__: null +}); + +var version$1 = "4.2.0"; + +const version = version$1; +function parseScript(source, options) { + return parseSource(source, options, 0); +} +function parseModule(source, options) { + return parseSource(source, options, 1024 | 2048); +} +function parse(source, options) { + return parseSource(source, options, 0); +} + +exports.ESTree = estree; +exports.parse = parse; +exports.parseModule = parseModule; +exports.parseScript = parseScript; +exports.version = version; diff --git a/node_modules/meriyah/dist/meriyah.cjs.js b/node_modules/meriyah/dist/meriyah.cjs.js new file mode 100644 index 0000000..c6e0880 --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.cjs.js @@ -0,0 +1,8790 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const errorMessages = { + [0]: 'Unexpected token', + [28]: "Unexpected token: '%0'", + [1]: 'Octal escape sequences are not allowed in strict mode', + [2]: 'Octal escape sequences are not allowed in template strings', + [3]: 'Unexpected token `#`', + [4]: 'Illegal Unicode escape sequence', + [5]: 'Invalid code point %0', + [6]: 'Invalid hexadecimal escape sequence', + [8]: 'Octal literals are not allowed in strict mode', + [7]: 'Decimal integer literals with a leading zero are forbidden in strict mode', + [9]: 'Expected number in radix %0', + [145]: 'Invalid left-hand side assignment to a destructible right-hand side', + [10]: 'Non-number found after exponent indicator', + [11]: 'Invalid BigIntLiteral', + [12]: 'No identifiers allowed directly after numeric literal', + [13]: 'Escapes \\8 or \\9 are not syntactically valid escapes', + [14]: 'Unterminated string literal', + [15]: 'Unterminated template literal', + [16]: 'Multiline comment was not closed properly', + [17]: 'The identifier contained dynamic unicode escape that was not closed', + [18]: "Illegal character '%0'", + [19]: 'Missing hexadecimal digits', + [20]: 'Invalid implicit octal', + [21]: 'Invalid line break in string literal', + [22]: 'Only unicode escapes are legal in identifier names', + [23]: "Expected '%0'", + [24]: 'Invalid left-hand side in assignment', + [25]: 'Invalid left-hand side in async arrow', + [26]: 'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass', + [27]: 'Member access on super must be in a method', + [29]: 'Await expression not allowed in formal parameter', + [30]: 'Yield expression not allowed in formal parameter', + [92]: "Unexpected token: 'escaped keyword'", + [31]: 'Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses', + [119]: 'Async functions can only be declared at the top level or inside a block', + [32]: 'Unterminated regular expression', + [33]: 'Unexpected regular expression flag', + [34]: "Duplicate regular expression flag '%0'", + [35]: '%0 functions must have exactly %1 argument%2', + [36]: 'Setter function argument must not be a rest parameter', + [37]: '%0 declaration must have a name in this context', + [38]: 'Function name may not contain any reserved words or be eval or arguments in strict mode', + [39]: 'The rest operator is missing an argument', + [40]: 'A getter cannot be a generator', + [41]: 'A computed property name must be followed by a colon or paren', + [130]: 'Object literal keys that are strings or numbers must be a method or have a colon', + [43]: 'Found `* async x(){}` but this should be `async * x(){}`', + [42]: 'Getters and setters can not be generators', + [44]: "'%0' can not be generator method", + [45]: "No line break is allowed after '=>'", + [46]: 'The left-hand side of the arrow can only be destructed through assignment', + [47]: 'The binding declaration is not destructible', + [48]: 'Async arrow can not be followed by new expression', + [49]: "Classes may not have a static property named 'prototype'", + [50]: 'Class constructor may not be a %0', + [51]: 'Duplicate constructor method in class', + [52]: 'Invalid increment/decrement operand', + [53]: 'Invalid use of `new` keyword on an increment/decrement expression', + [54]: '`=>` is an invalid assignment target', + [55]: 'Rest element may not have a trailing comma', + [56]: 'Missing initializer in %0 declaration', + [57]: "'for-%0' loop head declarations can not have an initializer", + [58]: 'Invalid left-hand side in for-%0 loop: Must have a single binding', + [59]: 'Invalid shorthand property initializer', + [60]: 'Property name __proto__ appears more than once in object literal', + [61]: 'Let is disallowed as a lexically bound name', + [62]: "Invalid use of '%0' inside new expression", + [63]: "Illegal 'use strict' directive in function with non-simple parameter list", + [64]: 'Identifier "let" disallowed as left-hand side expression in strict mode', + [65]: 'Illegal continue statement', + [66]: 'Illegal break statement', + [67]: 'Cannot have `let[...]` as a var name in strict mode', + [68]: 'Invalid destructuring assignment target', + [69]: 'Rest parameter may not have a default initializer', + [70]: 'The rest argument must the be last parameter', + [71]: 'Invalid rest argument', + [73]: 'In strict mode code, functions can only be declared at top level or inside a block', + [74]: 'In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement', + [75]: 'Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement', + [76]: "Class declaration can't appear in single-statement context", + [77]: 'Invalid left-hand side in for-%0', + [78]: 'Invalid assignment in for-%0', + [79]: 'for await (... of ...) is only valid in async functions and async generators', + [80]: 'The first token after the template expression should be a continuation of the template', + [82]: '`let` declaration not allowed here and `let` cannot be a regular var name in strict mode', + [81]: '`let \n [` is a restricted production at the start of a statement', + [83]: 'Catch clause requires exactly one parameter, not more (and no trailing comma)', + [84]: 'Catch clause parameter does not support default values', + [85]: 'Missing catch or finally after try', + [86]: 'More than one default clause in switch statement', + [87]: 'Illegal newline after throw', + [88]: 'Strict mode code may not include a with statement', + [89]: 'Illegal return statement', + [90]: 'The left hand side of the for-header binding declaration is not destructible', + [91]: 'new.target only allowed within functions', + [93]: "'#' not followed by identifier", + [99]: 'Invalid keyword', + [98]: "Can not use 'let' as a class name", + [97]: "'A lexical declaration can't define a 'let' binding", + [96]: 'Can not use `let` as variable name in strict mode', + [94]: "'%0' may not be used as an identifier in this context", + [95]: 'Await is only valid in async functions', + [100]: 'The %0 keyword can only be used with the module goal', + [101]: 'Unicode codepoint must not be greater than 0x10FFFF', + [102]: '%0 source must be string', + [103]: 'Only a identifier can be used to indicate alias', + [104]: "Only '*' or '{...}' can be imported after default", + [105]: 'Trailing decorator may be followed by method', + [106]: "Decorators can't be used with a constructor", + [108]: 'HTML comments are only allowed with web compatibility (Annex B)', + [109]: "The identifier 'let' must not be in expression position in strict mode", + [110]: 'Cannot assign to `eval` and `arguments` in strict mode', + [111]: "The left-hand side of a for-of loop may not start with 'let'", + [112]: 'Block body arrows can not be immediately invoked without a group', + [113]: 'Block body arrows can not be immediately accessed without a group', + [114]: 'Unexpected strict mode reserved word', + [115]: 'Unexpected eval or arguments in strict mode', + [116]: 'Decorators must not be followed by a semicolon', + [117]: 'Calling delete on expression not allowed in strict mode', + [118]: 'Pattern can not have a tail', + [120]: 'Can not have a `yield` expression on the left side of a ternary', + [121]: 'An arrow function can not have a postfix update operator', + [122]: 'Invalid object literal key character after generator star', + [123]: 'Private fields can not be deleted', + [125]: 'Classes may not have a field called constructor', + [124]: 'Classes may not have a private element named constructor', + [126]: 'A class field initializer may not contain arguments', + [127]: 'Generators can only be declared at the top level or inside a block', + [128]: 'Async methods are a restricted production and cannot have a newline following it', + [129]: 'Unexpected character after object literal property name', + [131]: 'Invalid key token', + [132]: "Label '%0' has already been declared", + [133]: 'continue statement must be nested within an iteration statement', + [134]: "Undefined label '%0'", + [135]: 'Trailing comma is disallowed inside import(...) arguments', + [136]: 'import() requires exactly one argument', + [137]: 'Cannot use new with import(...)', + [138]: '... is not allowed in import()', + [139]: "Expected '=>'", + [140]: "Duplicate binding '%0'", + [141]: "Cannot export a duplicate name '%0'", + [144]: 'Duplicate %0 for-binding', + [142]: "Exported binding '%0' needs to refer to a top-level declared variable", + [143]: 'Unexpected private field', + [147]: 'Numeric separators are not allowed at the end of numeric literals', + [146]: 'Only one underscore is allowed as numeric separator', + [148]: 'JSX value should be either an expression or a quoted JSX text', + [149]: 'Expected corresponding JSX closing tag for %0', + [150]: 'Adjacent JSX elements must be wrapped in an enclosing tag', + [151]: "JSX attributes must only be assigned a non-empty 'expression'", + [152]: "'%0' has already been declared", + [153]: "'%0' shadowed a catch clause binding", + [154]: 'Dot property must be an identifier', + [155]: 'Encountered invalid input after spread/rest argument', + [156]: 'Catch without try', + [157]: 'Finally without try', + [158]: 'Expected corresponding closing tag for JSX fragment', + [159]: 'Coalescing and logical operators used together in the same expression must be disambiguated with parentheses', + [160]: 'Invalid tagged template on optional chain', + [161]: 'Invalid optional chain from super property', + [162]: 'Invalid optional chain from new expression', + [163]: 'Cannot use "import.meta" outside a module', + [164]: 'Leading decorators must be attached to a class declaration' +}; +class ParseError extends SyntaxError { + constructor(startindex, line, column, type, ...params) { + const message = '[' + line + ':' + column + ']: ' + errorMessages[type].replace(/%(\d+)/g, (_, i) => params[i]); + super(`${message}`); + this.index = startindex; + this.line = line; + this.column = column; + this.description = message; + this.loc = { + line, + column + }; + } +} +function report(parser, type, ...params) { + throw new ParseError(parser.index, parser.line, parser.column, type, ...params); +} +function reportScopeError(scope) { + throw new ParseError(scope.index, scope.line, scope.column, scope.type, scope.params); +} +function reportMessageAt(index, line, column, type, ...params) { + throw new ParseError(index, line, column, type, ...params); +} +function reportScannerError(index, line, column, type) { + throw new ParseError(index, line, column, type); +} + +const unicodeLookup = ((compressed, lookup) => { + const result = new Uint32Array(104448); + let index = 0; + let subIndex = 0; + while (index < 3540) { + const inst = compressed[index++]; + if (inst < 0) { + subIndex -= inst; + } + else { + let code = compressed[index++]; + if (inst & 2) + code = lookup[code]; + if (inst & 1) { + result.fill(code, subIndex, subIndex += compressed[index++]); + } + else { + result[subIndex++] = code; + } + } + } + return result; +})([-1, 2, 24, 2, 25, 2, 5, -1, 0, 77595648, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 16, 2, 60, 2, 0, 0, 4294836735, 0, 3221225471, 0, 4294901942, 2, 61, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 17, 2, 0, 0, 4294961151, 3, 0, 2, 2, 19, 2, 0, 0, 608174079, 2, 0, 2, 131, 2, 6, 2, 56, -1, 2, 37, 0, 4294443263, 2, 1, 3, 0, 3, 0, 4294901711, 2, 39, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2967484831, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 2, 194, 2, 3, 0, 3825204735, 0, 123747807, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1080049119, 0, 458703, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 66, 0, 4284449919, 0, 851904, 2, 4, 2, 11, 0, 67076095, -1, 2, 67, 0, 1073741743, 0, 4093591391, -1, 0, 50331649, 0, 3265266687, 2, 32, 0, 4294844415, 0, 4278190047, 2, 18, 2, 129, -1, 3, 0, 2, 2, 21, 2, 0, 2, 9, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 10, 0, 261632, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 2088959, 2, 27, 2, 8, 0, 909311, 3, 0, 2, 0, 814743551, 2, 41, 0, 67057664, 3, 0, 2, 2, 40, 2, 0, 2, 28, 2, 0, 2, 29, 2, 7, 0, 268374015, 2, 26, 2, 49, 2, 0, 2, 76, 0, 134153215, -1, 2, 6, 2, 0, 2, 7, 0, 2684354559, 0, 67044351, 0, 3221160064, 0, 1, -1, 3, 0, 2, 2, 42, 0, 1046528, 3, 0, 3, 2, 8, 2, 0, 2, 51, 0, 4294960127, 2, 9, 2, 38, 2, 10, 0, 4294377472, 2, 11, 3, 0, 7, 0, 4227858431, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -1, 2, 124, 0, 1048577, 2, 82, 2, 13, -1, 2, 13, 0, 131042, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 1046559, 2, 0, 2, 14, 2, 0, 0, 2147516671, 2, 20, 3, 86, 2, 2, 0, -16, 2, 87, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 2, 121, 2, 0, 0, 3220242431, 3, 0, 3, 2, 19, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 2, 0, 0, 4351, 2, 0, 2, 8, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 22, 2, 8, 2, 18, 3, 0, 2, 0, 67076097, 2, 7, 2, 0, 2, 20, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 3774349439, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, 2, 23, 0, 1638399, 2, 172, 2, 105, 3, 0, 3, 2, 18, 2, 24, 2, 25, 2, 5, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -3, 2, 150, -4, 2, 18, 2, 0, 2, 35, 0, 1, 2, 0, 2, 62, 2, 28, 2, 11, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 21, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277137519, 0, 2269118463, -1, 3, 18, 2, -1, 2, 32, 2, 36, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 46, -10, 2, 0, 0, 203775, -2, 2, 18, 2, 43, 2, 35, -2, 2, 17, 2, 117, 2, 20, 3, 0, 2, 2, 36, 0, 2147549120, 2, 0, 2, 11, 2, 17, 2, 135, 2, 0, 2, 37, 2, 52, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 120, 0, 1090519039, -2, 2, 122, 2, 38, 2, 0, 0, 67045375, 2, 39, 0, 4226678271, 0, 3766565279, 0, 2039759, -4, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 40, 2, 41, -1, 2, 10, 2, 42, -6, 2, 0, 2, 11, -3, 3, 0, 2, 0, 2147484671, 2, 125, 0, 4190109695, 2, 50, -2, 2, 126, 0, 4244635647, 0, 27, 2, 0, 2, 7, 2, 43, 2, 0, 2, 63, -1, 2, 0, 2, 40, -8, 2, 54, 2, 44, 0, 67043329, 2, 127, 2, 45, 0, 8388351, -2, 2, 128, 0, 3028287487, 2, 46, 2, 130, 0, 33259519, 2, 41, -9, 2, 20, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, 2, 41, -2, 2, 17, 2, 49, 2, 0, 2, 20, 2, 50, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 196635, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 0, 1677656575, -166, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 28, -13, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 88, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -42, 0, 4194303871, 0, 2011, -6, 2, 0, 0, 1073684479, 0, 17407, -11, 2, 0, 2, 31, -40, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 42, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -105, 2, 24, -32, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -22381, 3, 0, 7, 2, 23, -6130, 3, 5, 2, -1, 0, 69207040, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 16, 2, 60, 2, 0, 2, 33, -1, 2, 17, 2, 61, -1, 2, 0, 2, 56, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 23, 2, 62, 3, 0, 2, 0, 131135, 2, 95, 0, 70256639, 0, 71303167, 0, 272, 2, 40, 2, 56, -1, 2, 37, 2, 30, -1, 2, 96, 2, 63, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 65, 2, 64, 0, 33554435, 2, 123, 2, 65, 2, 151, 0, 131075, 0, 3594373096, 0, 67094296, 2, 64, -1, 0, 4294828000, 0, 603979263, 2, 160, 0, 3, 0, 4294828001, 0, 602930687, 2, 183, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 66, 2, 36, -1, 2, 4, 0, 917503, 2, 36, -1, 2, 67, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 32, 2, 68, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 11, -1, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 253951, 3, 19, 2, 0, 122879, 2, 0, 2, 8, 0, 276824064, -2, 3, 0, 2, 2, 40, 2, 0, 0, 4294903295, 2, 0, 2, 29, 2, 7, -1, 2, 17, 2, 49, 2, 0, 2, 76, 2, 41, -1, 2, 20, 2, 0, 2, 27, -2, 0, 128, -2, 2, 77, 2, 8, 0, 4064, -1, 2, 119, 0, 4227907585, 2, 0, 2, 118, 2, 0, 2, 48, 2, 173, 2, 9, 2, 38, 2, 10, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -3, 2, 82, 2, 13, -3, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 817183, 2, 0, 2, 14, 2, 0, 0, 33023, 2, 20, 3, 86, 2, -17, 2, 87, 0, 524157950, 2, 4, 2, 0, 2, 88, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 0, 3072, 2, 0, 0, 2147516415, 2, 9, 3, 0, 2, 2, 23, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 0, 4294965179, 0, 7, 2, 0, 2, 8, 2, 91, 2, 8, -1, 0, 1761345536, 2, 95, 0, 4294901823, 2, 36, 2, 18, 2, 96, 2, 34, 2, 166, 0, 2080440287, 2, 0, 2, 33, 2, 143, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 7, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 2700607615, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, -3, 2, 105, 3, 0, 3, 2, 18, -1, 3, 5, 2, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -8, 2, 18, 2, 0, 2, 35, -1, 2, 0, 2, 62, 2, 28, 2, 29, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 17, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277075969, 2, 29, -1, 3, 18, 2, -1, 2, 32, 2, 117, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 48, -10, 2, 0, 0, 197631, -2, 2, 18, 2, 43, 2, 118, -2, 2, 17, 2, 117, 2, 20, 2, 119, 2, 51, -2, 2, 119, 2, 23, 2, 17, 2, 33, 2, 119, 2, 36, 0, 4294901904, 0, 4718591, 2, 119, 2, 34, 0, 335544350, -1, 2, 120, 2, 121, -2, 2, 122, 2, 38, 2, 7, -1, 2, 123, 2, 65, 0, 3758161920, 0, 3, -4, 2, 0, 2, 27, 0, 2147485568, 0, 3, 2, 0, 2, 23, 0, 176, -5, 2, 0, 2, 47, 2, 186, -1, 2, 0, 2, 23, 2, 197, -1, 2, 0, 0, 16779263, -2, 2, 11, -7, 2, 0, 2, 121, -3, 3, 0, 2, 2, 124, 2, 125, 0, 2147549183, 0, 2, -2, 2, 126, 2, 35, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, -1, 2, 0, 2, 40, -8, 2, 54, 2, 47, 0, 1, 2, 127, 2, 23, -3, 2, 128, 2, 35, 2, 129, 2, 130, 0, 16778239, -10, 2, 34, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, -3, 2, 17, 2, 131, 2, 0, 2, 23, 2, 48, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 67583, -1, 2, 103, -2, 0, 11, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 2, 135, -187, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 2, 143, -73, 2, 0, 0, 1065361407, 0, 16384, -11, 2, 0, 2, 121, -40, 3, 0, 6, 2, 117, -1, 3, 0, 2, 0, 2063, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -138, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -28517, 2, 0, 0, 1, -1, 2, 124, 2, 0, 0, 8193, -21, 2, 193, 0, 10255, 0, 4, -11, 2, 64, 2, 171, -1, 0, 71680, -1, 2, 161, 0, 4292900864, 0, 805306431, -5, 2, 150, -1, 2, 157, -1, 0, 6144, -2, 2, 127, -1, 2, 154, -1, 0, 2147532800, 2, 151, 2, 165, 2, 0, 2, 164, 0, 524032, 0, 4, -4, 2, 190, 0, 205128192, 0, 1333757536, 0, 2147483696, 0, 423953, 0, 747766272, 0, 2717763192, 0, 4286578751, 0, 278545, 2, 152, 0, 4294886464, 0, 33292336, 0, 417809, 2, 152, 0, 1327482464, 0, 4278190128, 0, 700594195, 0, 1006647527, 0, 4286497336, 0, 4160749631, 2, 153, 0, 469762560, 0, 4171219488, 0, 8323120, 2, 153, 0, 202375680, 0, 3214918176, 0, 4294508592, 2, 153, -1, 0, 983584, 0, 48, 0, 58720273, 0, 3489923072, 0, 10517376, 0, 4293066815, 0, 1, 0, 2013265920, 2, 177, 2, 0, 0, 2089, 0, 3221225552, 0, 201375904, 2, 0, -2, 0, 256, 0, 122880, 0, 16777216, 2, 150, 0, 4160757760, 2, 0, -6, 2, 167, -11, 0, 3263218176, -1, 0, 49664, 0, 2160197632, 0, 8388802, -1, 0, 12713984, -1, 2, 154, 2, 159, 2, 178, -2, 2, 162, -20, 0, 3758096385, -2, 2, 155, 0, 4292878336, 2, 90, 2, 169, 0, 4294057984, -2, 2, 163, 2, 156, 2, 175, -2, 2, 155, -1, 2, 182, -1, 2, 170, 2, 124, 0, 4026593280, 0, 14, 0, 4292919296, -1, 2, 158, 0, 939588608, -1, 0, 805306368, -1, 2, 124, 0, 1610612736, 2, 156, 2, 157, 2, 4, 2, 0, -2, 2, 158, 2, 159, -3, 0, 267386880, -1, 2, 160, 0, 7168, -1, 0, 65024, 2, 154, 2, 161, 2, 179, -7, 2, 168, -8, 2, 162, -1, 0, 1426112704, 2, 163, -1, 2, 164, 0, 271581216, 0, 2149777408, 2, 23, 2, 161, 2, 124, 0, 851967, 2, 180, -1, 2, 23, 2, 181, -4, 2, 158, -20, 2, 195, 2, 165, -56, 0, 3145728, 2, 185, -4, 2, 166, 2, 124, -4, 0, 32505856, -1, 2, 167, -1, 0, 2147385088, 2, 90, 1, 2155905152, 2, -3, 2, 103, 2, 0, 2, 168, -2, 2, 169, -6, 2, 170, 0, 4026597375, 0, 1, -1, 0, 1, -1, 2, 171, -3, 2, 117, 2, 64, -2, 2, 166, -2, 2, 176, 2, 124, -878, 2, 159, -36, 2, 172, -1, 2, 201, -10, 2, 188, -5, 2, 174, -6, 0, 4294965251, 2, 27, -1, 2, 173, -1, 2, 174, -2, 0, 4227874752, -3, 0, 2146435072, 2, 159, -2, 0, 1006649344, 2, 124, -1, 2, 90, 0, 201375744, -3, 0, 134217720, 2, 90, 0, 4286677377, 0, 32896, -1, 2, 158, -3, 2, 175, -349, 2, 176, 0, 1920, 2, 177, 3, 0, 264, -11, 2, 157, -2, 2, 178, 2, 0, 0, 520617856, 0, 2692743168, 0, 36, -3, 0, 524284, -11, 2, 23, -1, 2, 187, -1, 2, 184, 0, 3221291007, 2, 178, -1, 2, 202, 0, 2158720, -3, 2, 159, 0, 1, -4, 2, 124, 0, 3808625411, 0, 3489628288, 2, 200, 0, 1207959680, 0, 3221274624, 2, 0, -3, 2, 179, 0, 120, 0, 7340032, -2, 2, 180, 2, 4, 2, 23, 2, 163, 3, 0, 4, 2, 159, -1, 2, 181, 2, 177, -1, 0, 8176, 2, 182, 2, 179, 2, 183, -1, 0, 4290773232, 2, 0, -4, 2, 163, 2, 189, 0, 15728640, 2, 177, -1, 2, 161, -1, 0, 4294934512, 3, 0, 4, -9, 2, 90, 2, 170, 2, 184, 3, 0, 4, 0, 704, 0, 1849688064, 2, 185, -1, 2, 124, 0, 4294901887, 2, 0, 0, 130547712, 0, 1879048192, 2, 199, 3, 0, 2, -1, 2, 186, 2, 187, -1, 0, 17829776, 0, 2025848832, 0, 4261477888, -2, 2, 0, -1, 0, 4286580608, -1, 0, 29360128, 2, 192, 0, 16252928, 0, 3791388672, 2, 38, 3, 0, 2, -2, 2, 196, 2, 0, -1, 2, 103, -1, 0, 66584576, -1, 2, 191, 3, 0, 9, 2, 124, -1, 0, 4294755328, 3, 0, 2, -1, 2, 161, 2, 178, 3, 0, 2, 2, 23, 2, 188, 2, 90, -2, 0, 245760, 0, 2147418112, -1, 2, 150, 2, 203, 0, 4227923456, -1, 2, 164, 2, 161, 2, 90, -3, 0, 4292870145, 0, 262144, 2, 124, 3, 0, 2, 0, 1073758848, 2, 189, -1, 0, 4227921920, 2, 190, 0, 68289024, 0, 528402016, 0, 4292927536, 3, 0, 4, -2, 0, 268435456, 2, 91, -2, 2, 191, 3, 0, 5, -1, 2, 192, 2, 163, 2, 0, -2, 0, 4227923936, 2, 62, -1, 2, 155, 2, 95, 2, 0, 2, 154, 2, 158, 3, 0, 6, -1, 2, 177, 3, 0, 3, -2, 0, 2146959360, 0, 9440640, 0, 104857600, 0, 4227923840, 3, 0, 2, 0, 768, 2, 193, 2, 77, -2, 2, 161, -2, 2, 119, -1, 2, 155, 3, 0, 8, 0, 512, 0, 8388608, 2, 194, 2, 172, 2, 187, 0, 4286578944, 3, 0, 2, 0, 1152, 0, 1266679808, 2, 191, 0, 576, 0, 4261707776, 2, 95, 3, 0, 9, 2, 155, 3, 0, 5, 2, 16, -1, 0, 2147221504, -28, 2, 178, 3, 0, 3, -3, 0, 4292902912, -6, 2, 96, 3, 0, 85, -33, 0, 4294934528, 3, 0, 126, -18, 2, 195, 3, 0, 269, -17, 2, 155, 2, 124, 2, 198, 3, 0, 2, 2, 23, 0, 4290822144, -2, 0, 67174336, 0, 520093700, 2, 17, 3, 0, 21, -2, 2, 179, 3, 0, 3, -2, 0, 30720, -1, 0, 32512, 3, 0, 2, 0, 4294770656, -191, 2, 174, -38, 2, 170, 2, 0, 2, 196, 3, 0, 279, -8, 2, 124, 2, 0, 0, 4294508543, 0, 65295, -11, 2, 177, 3, 0, 72, -3, 0, 3758159872, 0, 201391616, 3, 0, 155, -7, 2, 170, -1, 0, 384, -1, 0, 133693440, -3, 2, 196, -2, 2, 26, 3, 0, 4, 2, 169, -2, 2, 90, 2, 155, 3, 0, 4, -2, 2, 164, -1, 2, 150, 0, 335552923, 2, 197, -1, 0, 538974272, 0, 2214592512, 0, 132000, -10, 0, 192, -8, 0, 12288, -21, 0, 134213632, 0, 4294901761, 3, 0, 42, 0, 100663424, 0, 4294965284, 3, 0, 6, -1, 0, 3221282816, 2, 198, 3, 0, 11, -1, 2, 199, 3, 0, 40, -6, 0, 4286578784, 2, 0, -2, 0, 1006694400, 3, 0, 24, 2, 35, -1, 2, 94, 3, 0, 2, 0, 1, 2, 163, 3, 0, 6, 2, 197, 0, 4110942569, 0, 1432950139, 0, 2701658217, 0, 4026532864, 0, 4026532881, 2, 0, 2, 45, 3, 0, 8, -1, 2, 158, -2, 2, 169, 0, 98304, 0, 65537, 2, 170, -5, 0, 4294950912, 2, 0, 2, 118, 0, 65528, 2, 177, 0, 4294770176, 2, 26, 3, 0, 4, -30, 2, 174, 0, 3758153728, -3, 2, 169, -2, 2, 155, 2, 188, 2, 158, -1, 2, 191, -1, 2, 161, 0, 4294754304, 3, 0, 2, -3, 0, 33554432, -2, 2, 200, -3, 2, 169, 0, 4175478784, 2, 201, 0, 4286643712, 0, 4286644216, 2, 0, -4, 2, 202, -1, 2, 165, 0, 4227923967, 3, 0, 32, -1334, 2, 163, 2, 0, -129, 2, 94, -6, 2, 163, -180, 2, 203, -233, 2, 4, 3, 0, 96, -16, 2, 163, 3, 0, 47, -154, 2, 165, 3, 0, 22381, -7, 2, 17, 3, 0, 6128], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 268435455, 2147483647, 1048575, 1073741823, 3892314111, 134217727, 1061158911, 536805376, 4294910143, 4160749567, 4294901759, 4294901760, 536870911, 262143, 8388607, 4294902783, 4294918143, 65535, 67043328, 2281701374, 4294967232, 2097151, 4294903807, 4194303, 255, 67108863, 4294967039, 511, 524287, 131071, 127, 4292870143, 4294902271, 4294549487, 33554431, 1023, 67047423, 4294901888, 4286578687, 4294770687, 67043583, 32767, 15, 2047999, 67043343, 16777215, 4294902000, 4294934527, 4294966783, 4294967279, 2047, 262083, 20511, 4290772991, 41943039, 493567, 4294959104, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 4294967264, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 2044, 4292870144, 4294966272, 4294967280, 8289918, 4294934399, 4294901775, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4294966591, 2445279231, 3670015, 3238002687, 31, 63, 4294967288, 4294705151, 4095, 3221208447, 4294549472, 2147483648, 4285526655, 4294966527, 4294705152, 4294966143, 64, 4294966719, 16383, 3774873592, 458752, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967103, 4160749565, 4087, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901763, 536870912, 2952790016, 202506752, 139264, 402653184, 4261412864, 4227922944, 49152, 61440, 3758096384, 117440512, 65280, 3233808384, 3221225472, 2097152, 4294965248, 32768, 57152, 67108864, 4293918720, 4290772992, 25165824, 57344, 4227915776, 4278190080, 4227907584, 65520, 4026531840, 4227858432, 4160749568, 3758129152, 4294836224, 63488, 1073741824, 4294967040, 4194304, 251658240, 196608, 4294963200, 64512, 417808, 4227923712, 12582912, 50331648, 65472, 4294967168, 4294966784, 16, 4294917120, 2080374784, 4096, 65408, 524288, 65532]); + +function advanceChar(parser) { + parser.column++; + return (parser.currentChar = parser.source.charCodeAt(++parser.index)); +} +function consumeMultiUnitCodePoint(parser, hi) { + if ((hi & 0xfc00) !== 55296) + return 0; + const lo = parser.source.charCodeAt(parser.index + 1); + if ((lo & 0xfc00) !== 0xdc00) + return 0; + hi = parser.currentChar = 65536 + ((hi & 0x3ff) << 10) + (lo & 0x3ff); + if (((unicodeLookup[(hi >>> 5) + 0] >>> hi) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(hi)); + } + parser.index++; + parser.column++; + return 1; +} +function consumeLineFeed(parser, state) { + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.flags |= 1; + if ((state & 4) === 0) { + parser.column = 0; + parser.line++; + } +} +function scanNewLine(parser) { + parser.flags |= 1; + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.column = 0; + parser.line++; +} +function isExoticECMAScriptWhitespace(ch) { + return (ch === 160 || + ch === 65279 || + ch === 133 || + ch === 5760 || + (ch >= 8192 && ch <= 8203) || + ch === 8239 || + ch === 8287 || + ch === 12288 || + ch === 8201 || + ch === 65519); +} +function fromCodePoint(codePoint) { + return codePoint <= 65535 + ? String.fromCharCode(codePoint) + : String.fromCharCode(codePoint >>> 10) + String.fromCharCode(codePoint & 0x3ff); +} +function toHex(code) { + return code < 65 ? code - 48 : (code - 65 + 10) & 0xf; +} +function convertTokenType(t) { + switch (t) { + case 134283266: + return 'NumericLiteral'; + case 134283267: + return 'StringLiteral'; + case 86021: + case 86022: + return 'BooleanLiteral'; + case 86023: + return 'NullLiteral'; + case 65540: + return 'RegularExpression'; + case 67174408: + case 67174409: + case 132: + return 'TemplateLiteral'; + default: + if ((t & 143360) === 143360) + return 'Identifier'; + if ((t & 4096) === 4096) + return 'Keyword'; + return 'Punctuator'; + } +} + +const CharTypes = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8 | 1024, + 0, + 0, + 8 | 2048, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8192, + 0, + 1 | 2, + 0, + 0, + 8192, + 0, + 0, + 0, + 256, + 0, + 256 | 32768, + 0, + 0, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 512 | 64, + 2 | 16 | 512 | 64, + 0, + 0, + 16384, + 0, + 0, + 0, + 0, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 0, + 1, + 0, + 0, + 1 | 2 | 4096, + 0, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 16384, + 0, + 0, + 0, + 0 +]; +const isIdStart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 +]; +const isIdPart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 +]; +function isIdentifierStart(code) { + return code <= 0x7F + ? isIdStart[code] + : (unicodeLookup[(code >>> 5) + 34816] >>> code) & 31 & 1; +} +function isIdentifierPart(code) { + return code <= 0x7F + ? isIdPart[code] + : (unicodeLookup[(code >>> 5) + 0] >>> code) & 31 & 1 || (code === 8204 || code === 8205); +} + +const CommentTypes = ['SingleLine', 'MultiLine', 'HTMLOpen', 'HTMLClose', 'HashbangComment']; +function skipHashBang(parser) { + const source = parser.source; + if (parser.currentChar === 35 && source.charCodeAt(parser.index + 1) === 33) { + advanceChar(parser); + advanceChar(parser); + skipSingleLineComment(parser, source, 0, 4, parser.tokenPos, parser.linePos, parser.colPos); + } +} +function skipSingleHTMLComment(parser, source, state, context, type, start, line, column) { + if (context & 2048) + report(parser, 0); + return skipSingleLineComment(parser, source, state, type, start, line, column); +} +function skipSingleLineComment(parser, source, state, type, start, line, column) { + const { index } = parser; + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + while (parser.index < parser.end) { + if (CharTypes[parser.currentChar] & 8) { + const isCR = parser.currentChar === 13; + scanNewLine(parser); + if (isCR && parser.index < parser.end && parser.currentChar === 10) + parser.currentChar = source.charCodeAt(++parser.index); + break; + } + else if ((parser.currentChar ^ 8232) <= 1) { + scanNewLine(parser); + break; + } + advanceChar(parser); + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + } + if (parser.onComment) { + const loc = { + start: { + line, + column + }, + end: { + line: parser.linePos, + column: parser.colPos + } + }; + parser.onComment(CommentTypes[type & 0xff], source.slice(index, parser.tokenPos), start, parser.tokenPos, loc); + } + return state | 1; +} +function skipMultiLineComment(parser, source, state) { + const { index } = parser; + while (parser.index < parser.end) { + if (parser.currentChar < 0x2b) { + let skippedOneAsterisk = false; + while (parser.currentChar === 42) { + if (!skippedOneAsterisk) { + state &= ~4; + skippedOneAsterisk = true; + } + if (advanceChar(parser) === 47) { + advanceChar(parser); + if (parser.onComment) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onComment(CommentTypes[1 & 0xff], source.slice(index, parser.index - 2), index - 2, parser.index, loc); + } + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + return state; + } + } + if (skippedOneAsterisk) { + continue; + } + if (CharTypes[parser.currentChar] & 8) { + if (parser.currentChar === 13) { + state |= 1 | 4; + scanNewLine(parser); + } + else { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + } + else { + advanceChar(parser); + } + } + else if ((parser.currentChar ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + } + else { + state &= ~4; + advanceChar(parser); + } + } + report(parser, 16); +} + +function scanRegularExpression(parser, context) { + const bodyStart = parser.index; + let preparseState = 0; + loop: while (true) { + const ch = parser.currentChar; + advanceChar(parser); + if (preparseState & 1) { + preparseState &= ~1; + } + else { + switch (ch) { + case 47: + if (!preparseState) + break loop; + else + break; + case 92: + preparseState |= 1; + break; + case 91: + preparseState |= 2; + break; + case 93: + preparseState &= 1; + break; + case 13: + case 10: + case 8232: + case 8233: + report(parser, 32); + } + } + if (parser.index >= parser.source.length) { + return report(parser, 32); + } + } + const bodyEnd = parser.index - 1; + let mask = 0; + let char = parser.currentChar; + const { index: flagStart } = parser; + while (isIdentifierPart(char)) { + switch (char) { + case 103: + if (mask & 2) + report(parser, 34, 'g'); + mask |= 2; + break; + case 105: + if (mask & 1) + report(parser, 34, 'i'); + mask |= 1; + break; + case 109: + if (mask & 4) + report(parser, 34, 'm'); + mask |= 4; + break; + case 117: + if (mask & 16) + report(parser, 34, 'g'); + mask |= 16; + break; + case 121: + if (mask & 8) + report(parser, 34, 'y'); + mask |= 8; + break; + case 115: + if (mask & 12) + report(parser, 34, 's'); + mask |= 12; + break; + default: + report(parser, 33); + } + char = advanceChar(parser); + } + const flags = parser.source.slice(flagStart, parser.index); + const pattern = parser.source.slice(bodyStart, bodyEnd); + parser.tokenRegExp = { pattern, flags }; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = validate(parser, pattern, flags); + return 65540; +} +function validate(parser, pattern, flags) { + try { + return new RegExp(pattern, flags); + } + catch (e) { + report(parser, 32); + } +} + +function scanString(parser, context, quote) { + const { index: start } = parser; + let ret = ''; + let char = advanceChar(parser); + let marker = parser.index; + while ((CharTypes[char] & 8) === 0) { + if (char === quote) { + ret += parser.source.slice(marker, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(start, parser.index); + parser.tokenValue = ret; + return 134283267; + } + if ((char & 8) === 8 && char === 92) { + ret += parser.source.slice(marker, parser.index); + char = advanceChar(parser); + if (char < 0x7f || char === 8232 || char === 8233) { + const code = parseEscape(parser, context, char); + if (code >= 0) + ret += fromCodePoint(code); + else + handleStringError(parser, code, 0); + } + else { + ret += fromCodePoint(char); + } + marker = parser.index + 1; + } + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + report(parser, 14); +} +function parseEscape(parser, context, first) { + switch (first) { + case 98: + return 8; + case 102: + return 12; + case 114: + return 13; + case 110: + return 10; + case 116: + return 9; + case 118: + return 11; + case 13: { + if (parser.index < parser.end) { + const nextChar = parser.source.charCodeAt(parser.index + 1); + if (nextChar === 10) { + parser.index = parser.index + 1; + parser.currentChar = nextChar; + } + } + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + return -1; + case 48: + case 49: + case 50: + case 51: { + let code = first - 48; + let index = parser.index + 1; + let column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if ((CharTypes[next] & 32) === 0) { + if ((code !== 0 || CharTypes[next] & 512) && context & 1024) + return -2; + } + else if (context & 1024) { + return -2; + } + else { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + } + } + parser.flags |= 64; + parser.index = index - 1; + parser.column = column - 1; + } + } + return code; + } + case 52: + case 53: + case 54: + case 55: { + if (context & 1024) + return -2; + let code = first - 48; + const index = parser.index + 1; + const column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + code = (code << 3) | (next - 48); + parser.currentChar = next; + parser.index = index; + parser.column = column; + } + } + parser.flags |= 64; + return code; + } + case 120: { + const ch1 = advanceChar(parser); + if ((CharTypes[ch1] & 64) === 0) + return -4; + const hi = toHex(ch1); + const ch2 = advanceChar(parser); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const lo = toHex(ch2); + return (hi << 4) | lo; + } + case 117: { + const ch = advanceChar(parser); + if (parser.currentChar === 123) { + let code = 0; + while ((CharTypes[advanceChar(parser)] & 64) !== 0) { + code = (code << 4) | toHex(parser.currentChar); + if (code > 1114111) + return -5; + } + if (parser.currentChar < 1 || parser.currentChar !== 125) { + return -4; + } + return code; + } + else { + if ((CharTypes[ch] & 64) === 0) + return -4; + const ch2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const ch3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[ch3] & 64) === 0) + return -4; + const ch4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[ch4] & 64) === 0) + return -4; + parser.index += 3; + parser.column += 3; + parser.currentChar = parser.source.charCodeAt(parser.index); + return (toHex(ch) << 12) | (toHex(ch2) << 8) | (toHex(ch3) << 4) | toHex(ch4); + } + } + case 56: + case 57: + if ((context & 256) === 0) + return -3; + default: + return first; + } +} +function handleStringError(state, code, isTemplate) { + switch (code) { + case -1: + return; + case -2: + report(state, isTemplate ? 2 : 1); + case -3: + report(state, 13); + case -4: + report(state, 6); + case -5: + report(state, 101); + } +} + +function scanTemplate(parser, context) { + const { index: start } = parser; + let token = 67174409; + let ret = ''; + let char = advanceChar(parser); + while (char !== 96) { + if (char === 36 && parser.source.charCodeAt(parser.index + 1) === 123) { + advanceChar(parser); + token = 67174408; + break; + } + else if ((char & 8) === 8 && char === 92) { + char = advanceChar(parser); + if (char > 0x7e) { + ret += fromCodePoint(char); + } + else { + const code = parseEscape(parser, context | 1024, char); + if (code >= 0) { + ret += fromCodePoint(code); + } + else if (code !== -1 && context & 65536) { + ret = undefined; + char = scanBadTemplate(parser, char); + if (char < 0) + token = 67174408; + break; + } + else { + handleStringError(parser, code, 1); + } + } + } + else { + if (parser.index < parser.end && + char === 13 && + parser.source.charCodeAt(parser.index) === 10) { + ret += fromCodePoint(char); + parser.currentChar = parser.source.charCodeAt(++parser.index); + } + if (((char & 83) < 3 && char === 10) || (char ^ 8232) <= 1) { + parser.column = -1; + parser.line++; + } + ret += fromCodePoint(char); + } + if (parser.index >= parser.end) + report(parser, 15); + char = advanceChar(parser); + } + advanceChar(parser); + parser.tokenValue = ret; + parser.tokenRaw = parser.source.slice(start + 1, parser.index - (token === 67174409 ? 1 : 2)); + return token; +} +function scanBadTemplate(parser, ch) { + while (ch !== 96) { + switch (ch) { + case 36: { + const index = parser.index + 1; + if (index < parser.end && parser.source.charCodeAt(index) === 123) { + parser.index = index; + parser.column++; + return -ch; + } + break; + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + } + if (parser.index >= parser.end) + report(parser, 15); + ch = advanceChar(parser); + } + return ch; +} +function scanTemplateTail(parser, context) { + if (parser.index >= parser.end) + report(parser, 0); + parser.index--; + parser.column--; + return scanTemplate(parser, context); +} + +function scanNumber(parser, context, kind) { + let char = parser.currentChar; + let value = 0; + let digit = 9; + let atStart = kind & 64 ? 0 : 1; + let digits = 0; + let allowSeparator = 0; + if (kind & 64) { + value = '.' + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 110) + report(parser, 11); + } + else { + if (char === 48) { + char = advanceChar(parser); + if ((char | 32) === 120) { + kind = 8 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (64 | 4096)) { + if (char === 95) { + if (!allowSeparator) + report(parser, 146); + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 0x10 + toHex(char); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 19 : 147); + } + } + else if ((char | 32) === 111) { + kind = 4 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (32 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 8 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if ((char | 32) === 98) { + kind = 2 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (128 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 2 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if (CharTypes[char] & 32) { + if (context & 1024) + report(parser, 1); + kind = 1; + while (CharTypes[char] & 16) { + if (CharTypes[char] & 512) { + kind = 32; + atStart = 0; + break; + } + value = value * 8 + (char - 48); + char = advanceChar(parser); + } + } + else if (CharTypes[char] & 512) { + if (context & 1024) + report(parser, 1); + parser.flags |= 64; + kind = 32; + } + else if (char === 95) { + report(parser, 0); + } + } + if (kind & 48) { + if (atStart) { + while (digit >= 0 && CharTypes[char] & (16 | 4096)) { + if (char === 95) { + char = advanceChar(parser); + if (char === 95 || kind & 32) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + continue; + } + allowSeparator = 0; + value = 10 * value + (char - 48); + char = advanceChar(parser); + --digit; + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + if (digit >= 0 && !isIdentifierStart(char) && char !== 46) { + parser.tokenValue = value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + } + value += scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 46) { + if (advanceChar(parser) === 95) + report(parser, 0); + kind = 64; + value += '.' + scanDecimalDigitsOrSeparator(parser, parser.currentChar); + char = parser.currentChar; + } + } + } + const end = parser.index; + let isBigInt = 0; + if (char === 110 && kind & 128) { + isBigInt = 1; + char = advanceChar(parser); + } + else { + if ((char | 32) === 101) { + char = advanceChar(parser); + if (CharTypes[char] & 256) + char = advanceChar(parser); + const { index } = parser; + if ((CharTypes[char] & 16) < 1) + report(parser, 10); + value += parser.source.substring(end, index) + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + } + } + if ((parser.index < parser.end && CharTypes[char] & 16) || isIdentifierStart(char)) { + report(parser, 12); + } + if (isBigInt) { + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = BigInt(value); + return 134283389; + } + parser.tokenValue = + kind & (1 | 2 | 8 | 4) + ? value + : kind & 32 + ? parseFloat(parser.source.substring(parser.tokenPos, parser.index)) + : +value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; +} +function scanDecimalDigitsOrSeparator(parser, char) { + let allowSeparator = 0; + let start = parser.index; + let ret = ''; + while (CharTypes[char] & (16 | 4096)) { + if (char === 95) { + const { index } = parser; + char = advanceChar(parser); + if (char === 95) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + ret += parser.source.substring(start, index); + start = parser.index; + continue; + } + allowSeparator = 0; + char = advanceChar(parser); + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + return ret + parser.source.substring(start, parser.index); +} + +const KeywordDescTable = [ + 'end of source', + 'identifier', 'number', 'string', 'regular expression', + 'false', 'true', 'null', + 'template continuation', 'template tail', + '=>', '(', '{', '.', '...', '}', ')', ';', ',', '[', ']', ':', '?', '\'', '"', '', + '++', '--', + '=', '<<=', '>>=', '>>>=', '**=', '+=', '-=', '*=', '/=', '%=', '^=', '|=', + '&=', '||=', '&&=', '??=', + 'typeof', 'delete', 'void', '!', '~', '+', '-', 'in', 'instanceof', '*', '%', '/', '**', '&&', + '||', '===', '!==', '==', '!=', '<=', '>=', '<', '>', '<<', '>>', '>>>', '&', '|', '^', + 'var', 'let', 'const', + 'break', 'case', 'catch', 'class', 'continue', 'debugger', 'default', 'do', 'else', 'export', + 'extends', 'finally', 'for', 'function', 'if', 'import', 'new', 'return', 'super', 'switch', + 'this', 'throw', 'try', 'while', 'with', + 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield', + 'as', 'async', 'await', 'constructor', 'get', 'set', 'from', 'of', + 'enum', 'eval', 'arguments', 'escaped keyword', 'escaped future reserved keyword', 'reserved if strict', '#', + 'BigIntLiteral', '??', '?.', 'WhiteSpace', 'Illegal', 'LineTerminator', 'PrivateField', + 'Template', '@', 'target', 'meta', 'LineFeed', 'Escaped', 'JSXText' +]; +const descKeywordTable = Object.create(null, { + this: { value: 86113 }, + function: { value: 86106 }, + if: { value: 20571 }, + return: { value: 20574 }, + var: { value: 86090 }, + else: { value: 20565 }, + for: { value: 20569 }, + new: { value: 86109 }, + in: { value: 8738868 }, + typeof: { value: 16863277 }, + while: { value: 20580 }, + case: { value: 20558 }, + break: { value: 20557 }, + try: { value: 20579 }, + catch: { value: 20559 }, + delete: { value: 16863278 }, + throw: { value: 86114 }, + switch: { value: 86112 }, + continue: { value: 20561 }, + default: { value: 20563 }, + instanceof: { value: 8476725 }, + do: { value: 20564 }, + void: { value: 16863279 }, + finally: { value: 20568 }, + async: { value: 209007 }, + await: { value: 209008 }, + class: { value: 86096 }, + const: { value: 86092 }, + constructor: { value: 12401 }, + debugger: { value: 20562 }, + export: { value: 20566 }, + extends: { value: 20567 }, + false: { value: 86021 }, + from: { value: 12404 }, + get: { value: 12402 }, + implements: { value: 36966 }, + import: { value: 86108 }, + interface: { value: 36967 }, + let: { value: 241739 }, + null: { value: 86023 }, + of: { value: 274549 }, + package: { value: 36968 }, + private: { value: 36969 }, + protected: { value: 36970 }, + public: { value: 36971 }, + set: { value: 12403 }, + static: { value: 36972 }, + super: { value: 86111 }, + true: { value: 86022 }, + with: { value: 20581 }, + yield: { value: 241773 }, + enum: { value: 86134 }, + eval: { value: 537079927 }, + as: { value: 77934 }, + arguments: { value: 537079928 }, + target: { value: 143494 }, + meta: { value: 143495 }, +}); + +function scanIdentifier(parser, context, isValidAsKeyword) { + while (isIdPart[advanceChar(parser)]) { } + parser.tokenValue = parser.source.slice(parser.tokenPos, parser.index); + return parser.currentChar !== 92 && parser.currentChar < 0x7e + ? descKeywordTable[parser.tokenValue] || 208897 + : scanIdentifierSlowCase(parser, context, 0, isValidAsKeyword); +} +function scanUnicodeIdentifier(parser, context) { + const cookedChar = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(cookedChar)) + report(parser, 4); + parser.tokenValue = fromCodePoint(cookedChar); + return scanIdentifierSlowCase(parser, context, 1, CharTypes[cookedChar] & 4); +} +function scanIdentifierSlowCase(parser, context, hasEscape, isValidAsKeyword) { + let start = parser.index; + while (parser.index < parser.end) { + if (parser.currentChar === 92) { + parser.tokenValue += parser.source.slice(start, parser.index); + hasEscape = 1; + const code = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(code)) + report(parser, 4); + isValidAsKeyword = isValidAsKeyword && CharTypes[code] & 4; + parser.tokenValue += fromCodePoint(code); + start = parser.index; + } + else if (isIdentifierPart(parser.currentChar) || consumeMultiUnitCodePoint(parser, parser.currentChar)) { + advanceChar(parser); + } + else { + break; + } + } + if (parser.index <= parser.end) { + parser.tokenValue += parser.source.slice(start, parser.index); + } + const length = parser.tokenValue.length; + if (isValidAsKeyword && length >= 2 && length <= 11) { + const token = descKeywordTable[parser.tokenValue]; + if (token === void 0) + return 208897; + if (!hasEscape) + return token; + if (context & 1024) { + return token === 209008 && (context & (2048 | 4194304)) === 0 + ? token + : token === 36972 + ? 122 + : (token & 36864) === 36864 + ? 122 + : 121; + } + if (context & 1073741824 && + (context & 8192) === 0 && + (token & 20480) === 20480) + return token; + if (token === 241773) { + return context & 1073741824 + ? 143483 + : context & 2097152 + ? 121 + : token; + } + return token === 209007 && context & 1073741824 + ? 143483 + : (token & 36864) === 36864 + ? token + : token === 209008 && (context & 4194304) === 0 + ? token + : 121; + } + return 208897; +} +function scanPrivateIdentifier(parser) { + if (!isIdentifierStart(advanceChar(parser))) + report(parser, 93); + return 131; +} +function scanIdentifierUnicodeEscape(parser) { + if (parser.source.charCodeAt(parser.index + 1) !== 117) { + report(parser, 4); + } + parser.currentChar = parser.source.charCodeAt((parser.index += 2)); + return scanUnicodeEscape(parser); +} +function scanUnicodeEscape(parser) { + let codePoint = 0; + const char = parser.currentChar; + if (char === 123) { + const begin = parser.index - 2; + while (CharTypes[advanceChar(parser)] & 64) { + codePoint = (codePoint << 4) | toHex(parser.currentChar); + if (codePoint > 1114111) + reportScannerError(begin, parser.line, parser.index + 1, 101); + } + if (parser.currentChar !== 125) { + reportScannerError(begin, parser.line, parser.index - 1, 6); + } + advanceChar(parser); + return codePoint; + } + if ((CharTypes[char] & 64) === 0) + report(parser, 6); + const char2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[char2] & 64) === 0) + report(parser, 6); + const char3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[char3] & 64) === 0) + report(parser, 6); + const char4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[char4] & 64) === 0) + report(parser, 6); + codePoint = (toHex(char) << 12) | (toHex(char2) << 8) | (toHex(char3) << 4) | toHex(char4); + parser.currentChar = parser.source.charCodeAt((parser.index += 4)); + return codePoint; +} + +const TokenLookup = [ + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 136, + 128, + 128, + 130, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 16842800, + 134283267, + 131, + 208897, + 8457015, + 8455751, + 134283267, + 67174411, + 16, + 8457014, + 25233970, + 18, + 25233971, + 67108877, + 8457016, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 21, + 1074790417, + 8456258, + 1077936157, + 8456259, + 22, + 133, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 69271571, + 137, + 20, + 8455497, + 208897, + 132, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 208897, + 4096, + 208897, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 4096, + 4096, + 208897, + 4096, + 4096, + 208897, + 4096, + 4096, + 2162700, + 8455240, + 1074790415, + 16842801, + 129 +]; +function nextToken(parser, context) { + parser.flags = (parser.flags | 1) ^ 1; + parser.startPos = parser.index; + parser.startColumn = parser.column; + parser.startLine = parser.line; + parser.token = scanSingleToken(parser, context, 0); + if (parser.onToken && parser.token !== 1048576) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onToken(convertTokenType(parser.token), parser.tokenPos, parser.index, loc); + } +} +function scanSingleToken(parser, context, state) { + const isStartOfLine = parser.index === 0; + const source = parser.source; + let startPos = parser.index; + let startLine = parser.line; + let startColumn = parser.column; + while (parser.index < parser.end) { + parser.tokenPos = parser.index; + parser.colPos = parser.column; + parser.linePos = parser.line; + let char = parser.currentChar; + if (char <= 0x7e) { + const token = TokenLookup[char]; + switch (token) { + case 67174411: + case 16: + case 2162700: + case 1074790415: + case 69271571: + case 20: + case 21: + case 1074790417: + case 18: + case 16842801: + case 133: + case 129: + advanceChar(parser); + return token; + case 208897: + return scanIdentifier(parser, context, 0); + case 4096: + return scanIdentifier(parser, context, 1); + case 134283266: + return scanNumber(parser, context, 16 | 128); + case 134283267: + return scanString(parser, context, char); + case 132: + return scanTemplate(parser, context); + case 137: + return scanUnicodeIdentifier(parser, context); + case 131: + return scanPrivateIdentifier(parser); + case 128: + advanceChar(parser); + break; + case 130: + state |= 1 | 4; + scanNewLine(parser); + break; + case 136: + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + break; + case 8456258: + let ch = advanceChar(parser); + if (parser.index < parser.end) { + if (ch === 60) { + if (parser.index < parser.end && advanceChar(parser) === 61) { + advanceChar(parser); + return 4194334; + } + return 8456516; + } + else if (ch === 61) { + advanceChar(parser); + return 8456000; + } + if (ch === 33) { + const index = parser.index + 1; + if (index + 1 < parser.end && + source.charCodeAt(index) === 45 && + source.charCodeAt(index + 1) == 45) { + parser.column += 3; + parser.currentChar = source.charCodeAt((parser.index += 3)); + state = skipSingleHTMLComment(parser, source, state, context, 2, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 8456258; + } + if (ch === 47) { + if ((context & 16) < 1) + return 8456258; + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (ch === 42 || ch === 47) + break; + } + advanceChar(parser); + return 25; + } + } + return 8456258; + case 1077936157: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 8455996; + } + return 8455998; + } + if (ch === 62) { + advanceChar(parser); + return 10; + } + return 1077936157; + } + case 16842800: + if (advanceChar(parser) !== 61) { + return 16842800; + } + if (advanceChar(parser) !== 61) { + return 8455999; + } + advanceChar(parser); + return 8455997; + case 8457015: + if (advanceChar(parser) !== 61) + return 8457015; + advanceChar(parser); + return 4194342; + case 8457014: { + advanceChar(parser); + if (parser.index >= parser.end) + return 8457014; + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 4194340; + } + if (ch !== 42) + return 8457014; + if (advanceChar(parser) !== 61) + return 8457273; + advanceChar(parser); + return 4194337; + } + case 8455497: + if (advanceChar(parser) !== 61) + return 8455497; + advanceChar(parser); + return 4194343; + case 25233970: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 43) { + advanceChar(parser); + return 33619995; + } + if (ch === 61) { + advanceChar(parser); + return 4194338; + } + return 25233970; + } + case 25233971: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 45) { + advanceChar(parser); + if ((state & 1 || isStartOfLine) && parser.currentChar === 62) { + if ((context & 256) === 0) + report(parser, 108); + advanceChar(parser); + state = skipSingleHTMLComment(parser, source, state, context, 3, startPos, startLine, startColumn); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 33619996; + } + if (ch === 61) { + advanceChar(parser); + return 4194339; + } + return 25233971; + } + case 8457016: { + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 47) { + advanceChar(parser); + state = skipSingleLineComment(parser, source, state, 0, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (ch === 42) { + advanceChar(parser); + state = skipMultiLineComment(parser, source, state); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (context & 32768) { + return scanRegularExpression(parser, context); + } + if (ch === 61) { + advanceChar(parser); + return 4259877; + } + } + return 8457016; + } + case 67108877: + const next = advanceChar(parser); + if (next >= 48 && next <= 57) + return scanNumber(parser, context, 64 | 16); + if (next === 46) { + const index = parser.index + 1; + if (index < parser.end && source.charCodeAt(index) === 46) { + parser.column += 2; + parser.currentChar = source.charCodeAt((parser.index += 2)); + return 14; + } + } + return 67108877; + case 8455240: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 124) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194346; + } + return 8979003; + } + if (ch === 61) { + advanceChar(parser); + return 4194344; + } + return 8455240; + } + case 8456259: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 8456001; + } + if (ch !== 62) + return 8456259; + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 62) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 4194336; + } + return 8456518; + } + if (ch === 61) { + advanceChar(parser); + return 4194335; + } + } + return 8456517; + } + case 8455751: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 38) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194347; + } + return 8979258; + } + if (ch === 61) { + advanceChar(parser); + return 4194345; + } + return 8455751; + } + case 22: { + let ch = advanceChar(parser); + if (ch === 63) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194348; + } + return 276889982; + } + if (ch === 46) { + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (!(ch >= 48 && ch <= 57)) { + advanceChar(parser); + return 67108991; + } + } + } + return 22; + } + } + } + else { + if ((char ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + continue; + } + if ((char & 0xfc00) === 0xd800 || ((unicodeLookup[(char >>> 5) + 34816] >>> char) & 31 & 1) !== 0) { + if ((char & 0xfc00) === 0xdc00) { + char = ((char & 0x3ff) << 10) | (char & 0x3ff) | 0x10000; + if (((unicodeLookup[(char >>> 5) + 0] >>> char) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(char)); + } + parser.index++; + parser.currentChar = char; + } + parser.column++; + parser.tokenValue = ''; + return scanIdentifierSlowCase(parser, context, 0, 0); + } + if (isExoticECMAScriptWhitespace(char)) { + advanceChar(parser); + continue; + } + report(parser, 18, fromCodePoint(char)); + } + } + return 1048576; +} + +const entities = { + AElig: '\u00C6', + AMP: '\u0026', + Aacute: '\u00C1', + Abreve: '\u0102', + Acirc: '\u00C2', + Acy: '\u0410', + Afr: '\uD835\uDD04', + Agrave: '\u00C0', + Alpha: '\u0391', + Amacr: '\u0100', + And: '\u2A53', + Aogon: '\u0104', + Aopf: '\uD835\uDD38', + ApplyFunction: '\u2061', + Aring: '\u00C5', + Ascr: '\uD835\uDC9C', + Assign: '\u2254', + Atilde: '\u00C3', + Auml: '\u00C4', + Backslash: '\u2216', + Barv: '\u2AE7', + Barwed: '\u2306', + Bcy: '\u0411', + Because: '\u2235', + Bernoullis: '\u212C', + Beta: '\u0392', + Bfr: '\uD835\uDD05', + Bopf: '\uD835\uDD39', + Breve: '\u02D8', + Bscr: '\u212C', + Bumpeq: '\u224E', + CHcy: '\u0427', + COPY: '\u00A9', + Cacute: '\u0106', + Cap: '\u22D2', + CapitalDifferentialD: '\u2145', + Cayleys: '\u212D', + Ccaron: '\u010C', + Ccedil: '\u00C7', + Ccirc: '\u0108', + Cconint: '\u2230', + Cdot: '\u010A', + Cedilla: '\u00B8', + CenterDot: '\u00B7', + Cfr: '\u212D', + Chi: '\u03A7', + CircleDot: '\u2299', + CircleMinus: '\u2296', + CirclePlus: '\u2295', + CircleTimes: '\u2297', + ClockwiseContourIntegral: '\u2232', + CloseCurlyDoubleQuote: '\u201D', + CloseCurlyQuote: '\u2019', + Colon: '\u2237', + Colone: '\u2A74', + Congruent: '\u2261', + Conint: '\u222F', + ContourIntegral: '\u222E', + Copf: '\u2102', + Coproduct: '\u2210', + CounterClockwiseContourIntegral: '\u2233', + Cross: '\u2A2F', + Cscr: '\uD835\uDC9E', + Cup: '\u22D3', + CupCap: '\u224D', + DD: '\u2145', + DDotrahd: '\u2911', + DJcy: '\u0402', + DScy: '\u0405', + DZcy: '\u040F', + Dagger: '\u2021', + Darr: '\u21A1', + Dashv: '\u2AE4', + Dcaron: '\u010E', + Dcy: '\u0414', + Del: '\u2207', + Delta: '\u0394', + Dfr: '\uD835\uDD07', + DiacriticalAcute: '\u00B4', + DiacriticalDot: '\u02D9', + DiacriticalDoubleAcute: '\u02DD', + DiacriticalGrave: '\u0060', + DiacriticalTilde: '\u02DC', + Diamond: '\u22C4', + DifferentialD: '\u2146', + Dopf: '\uD835\uDD3B', + Dot: '\u00A8', + DotDot: '\u20DC', + DotEqual: '\u2250', + DoubleContourIntegral: '\u222F', + DoubleDot: '\u00A8', + DoubleDownArrow: '\u21D3', + DoubleLeftArrow: '\u21D0', + DoubleLeftRightArrow: '\u21D4', + DoubleLeftTee: '\u2AE4', + DoubleLongLeftArrow: '\u27F8', + DoubleLongLeftRightArrow: '\u27FA', + DoubleLongRightArrow: '\u27F9', + DoubleRightArrow: '\u21D2', + DoubleRightTee: '\u22A8', + DoubleUpArrow: '\u21D1', + DoubleUpDownArrow: '\u21D5', + DoubleVerticalBar: '\u2225', + DownArrow: '\u2193', + DownArrowBar: '\u2913', + DownArrowUpArrow: '\u21F5', + DownBreve: '\u0311', + DownLeftRightVector: '\u2950', + DownLeftTeeVector: '\u295E', + DownLeftVector: '\u21BD', + DownLeftVectorBar: '\u2956', + DownRightTeeVector: '\u295F', + DownRightVector: '\u21C1', + DownRightVectorBar: '\u2957', + DownTee: '\u22A4', + DownTeeArrow: '\u21A7', + Downarrow: '\u21D3', + Dscr: '\uD835\uDC9F', + Dstrok: '\u0110', + ENG: '\u014A', + ETH: '\u00D0', + Eacute: '\u00C9', + Ecaron: '\u011A', + Ecirc: '\u00CA', + Ecy: '\u042D', + Edot: '\u0116', + Efr: '\uD835\uDD08', + Egrave: '\u00C8', + Element: '\u2208', + Emacr: '\u0112', + EmptySmallSquare: '\u25FB', + EmptyVerySmallSquare: '\u25AB', + Eogon: '\u0118', + Eopf: '\uD835\uDD3C', + Epsilon: '\u0395', + Equal: '\u2A75', + EqualTilde: '\u2242', + Equilibrium: '\u21CC', + Escr: '\u2130', + Esim: '\u2A73', + Eta: '\u0397', + Euml: '\u00CB', + Exists: '\u2203', + ExponentialE: '\u2147', + Fcy: '\u0424', + Ffr: '\uD835\uDD09', + FilledSmallSquare: '\u25FC', + FilledVerySmallSquare: '\u25AA', + Fopf: '\uD835\uDD3D', + ForAll: '\u2200', + Fouriertrf: '\u2131', + Fscr: '\u2131', + GJcy: '\u0403', + GT: '\u003E', + Gamma: '\u0393', + Gammad: '\u03DC', + Gbreve: '\u011E', + Gcedil: '\u0122', + Gcirc: '\u011C', + Gcy: '\u0413', + Gdot: '\u0120', + Gfr: '\uD835\uDD0A', + Gg: '\u22D9', + Gopf: '\uD835\uDD3E', + GreaterEqual: '\u2265', + GreaterEqualLess: '\u22DB', + GreaterFullEqual: '\u2267', + GreaterGreater: '\u2AA2', + GreaterLess: '\u2277', + GreaterSlantEqual: '\u2A7E', + GreaterTilde: '\u2273', + Gscr: '\uD835\uDCA2', + Gt: '\u226B', + HARDcy: '\u042A', + Hacek: '\u02C7', + Hat: '\u005E', + Hcirc: '\u0124', + Hfr: '\u210C', + HilbertSpace: '\u210B', + Hopf: '\u210D', + HorizontalLine: '\u2500', + Hscr: '\u210B', + Hstrok: '\u0126', + HumpDownHump: '\u224E', + HumpEqual: '\u224F', + IEcy: '\u0415', + IJlig: '\u0132', + IOcy: '\u0401', + Iacute: '\u00CD', + Icirc: '\u00CE', + Icy: '\u0418', + Idot: '\u0130', + Ifr: '\u2111', + Igrave: '\u00CC', + Im: '\u2111', + Imacr: '\u012A', + ImaginaryI: '\u2148', + Implies: '\u21D2', + Int: '\u222C', + Integral: '\u222B', + Intersection: '\u22C2', + InvisibleComma: '\u2063', + InvisibleTimes: '\u2062', + Iogon: '\u012E', + Iopf: '\uD835\uDD40', + Iota: '\u0399', + Iscr: '\u2110', + Itilde: '\u0128', + Iukcy: '\u0406', + Iuml: '\u00CF', + Jcirc: '\u0134', + Jcy: '\u0419', + Jfr: '\uD835\uDD0D', + Jopf: '\uD835\uDD41', + Jscr: '\uD835\uDCA5', + Jsercy: '\u0408', + Jukcy: '\u0404', + KHcy: '\u0425', + KJcy: '\u040C', + Kappa: '\u039A', + Kcedil: '\u0136', + Kcy: '\u041A', + Kfr: '\uD835\uDD0E', + Kopf: '\uD835\uDD42', + Kscr: '\uD835\uDCA6', + LJcy: '\u0409', + LT: '\u003C', + Lacute: '\u0139', + Lambda: '\u039B', + Lang: '\u27EA', + Laplacetrf: '\u2112', + Larr: '\u219E', + Lcaron: '\u013D', + Lcedil: '\u013B', + Lcy: '\u041B', + LeftAngleBracket: '\u27E8', + LeftArrow: '\u2190', + LeftArrowBar: '\u21E4', + LeftArrowRightArrow: '\u21C6', + LeftCeiling: '\u2308', + LeftDoubleBracket: '\u27E6', + LeftDownTeeVector: '\u2961', + LeftDownVector: '\u21C3', + LeftDownVectorBar: '\u2959', + LeftFloor: '\u230A', + LeftRightArrow: '\u2194', + LeftRightVector: '\u294E', + LeftTee: '\u22A3', + LeftTeeArrow: '\u21A4', + LeftTeeVector: '\u295A', + LeftTriangle: '\u22B2', + LeftTriangleBar: '\u29CF', + LeftTriangleEqual: '\u22B4', + LeftUpDownVector: '\u2951', + LeftUpTeeVector: '\u2960', + LeftUpVector: '\u21BF', + LeftUpVectorBar: '\u2958', + LeftVector: '\u21BC', + LeftVectorBar: '\u2952', + Leftarrow: '\u21D0', + Leftrightarrow: '\u21D4', + LessEqualGreater: '\u22DA', + LessFullEqual: '\u2266', + LessGreater: '\u2276', + LessLess: '\u2AA1', + LessSlantEqual: '\u2A7D', + LessTilde: '\u2272', + Lfr: '\uD835\uDD0F', + Ll: '\u22D8', + Lleftarrow: '\u21DA', + Lmidot: '\u013F', + LongLeftArrow: '\u27F5', + LongLeftRightArrow: '\u27F7', + LongRightArrow: '\u27F6', + Longleftarrow: '\u27F8', + Longleftrightarrow: '\u27FA', + Longrightarrow: '\u27F9', + Lopf: '\uD835\uDD43', + LowerLeftArrow: '\u2199', + LowerRightArrow: '\u2198', + Lscr: '\u2112', + Lsh: '\u21B0', + Lstrok: '\u0141', + Lt: '\u226A', + Map: '\u2905', + Mcy: '\u041C', + MediumSpace: '\u205F', + Mellintrf: '\u2133', + Mfr: '\uD835\uDD10', + MinusPlus: '\u2213', + Mopf: '\uD835\uDD44', + Mscr: '\u2133', + Mu: '\u039C', + NJcy: '\u040A', + Nacute: '\u0143', + Ncaron: '\u0147', + Ncedil: '\u0145', + Ncy: '\u041D', + NegativeMediumSpace: '\u200B', + NegativeThickSpace: '\u200B', + NegativeThinSpace: '\u200B', + NegativeVeryThinSpace: '\u200B', + NestedGreaterGreater: '\u226B', + NestedLessLess: '\u226A', + NewLine: '\u000A', + Nfr: '\uD835\uDD11', + NoBreak: '\u2060', + NonBreakingSpace: '\u00A0', + Nopf: '\u2115', + Not: '\u2AEC', + NotCongruent: '\u2262', + NotCupCap: '\u226D', + NotDoubleVerticalBar: '\u2226', + NotElement: '\u2209', + NotEqual: '\u2260', + NotEqualTilde: '\u2242\u0338', + NotExists: '\u2204', + NotGreater: '\u226F', + NotGreaterEqual: '\u2271', + NotGreaterFullEqual: '\u2267\u0338', + NotGreaterGreater: '\u226B\u0338', + NotGreaterLess: '\u2279', + NotGreaterSlantEqual: '\u2A7E\u0338', + NotGreaterTilde: '\u2275', + NotHumpDownHump: '\u224E\u0338', + NotHumpEqual: '\u224F\u0338', + NotLeftTriangle: '\u22EA', + NotLeftTriangleBar: '\u29CF\u0338', + NotLeftTriangleEqual: '\u22EC', + NotLess: '\u226E', + NotLessEqual: '\u2270', + NotLessGreater: '\u2278', + NotLessLess: '\u226A\u0338', + NotLessSlantEqual: '\u2A7D\u0338', + NotLessTilde: '\u2274', + NotNestedGreaterGreater: '\u2AA2\u0338', + NotNestedLessLess: '\u2AA1\u0338', + NotPrecedes: '\u2280', + NotPrecedesEqual: '\u2AAF\u0338', + NotPrecedesSlantEqual: '\u22E0', + NotReverseElement: '\u220C', + NotRightTriangle: '\u22EB', + NotRightTriangleBar: '\u29D0\u0338', + NotRightTriangleEqual: '\u22ED', + NotSquareSubset: '\u228F\u0338', + NotSquareSubsetEqual: '\u22E2', + NotSquareSuperset: '\u2290\u0338', + NotSquareSupersetEqual: '\u22E3', + NotSubset: '\u2282\u20D2', + NotSubsetEqual: '\u2288', + NotSucceeds: '\u2281', + NotSucceedsEqual: '\u2AB0\u0338', + NotSucceedsSlantEqual: '\u22E1', + NotSucceedsTilde: '\u227F\u0338', + NotSuperset: '\u2283\u20D2', + NotSupersetEqual: '\u2289', + NotTilde: '\u2241', + NotTildeEqual: '\u2244', + NotTildeFullEqual: '\u2247', + NotTildeTilde: '\u2249', + NotVerticalBar: '\u2224', + Nscr: '\uD835\uDCA9', + Ntilde: '\u00D1', + Nu: '\u039D', + OElig: '\u0152', + Oacute: '\u00D3', + Ocirc: '\u00D4', + Ocy: '\u041E', + Odblac: '\u0150', + Ofr: '\uD835\uDD12', + Ograve: '\u00D2', + Omacr: '\u014C', + Omega: '\u03A9', + Omicron: '\u039F', + Oopf: '\uD835\uDD46', + OpenCurlyDoubleQuote: '\u201C', + OpenCurlyQuote: '\u2018', + Or: '\u2A54', + Oscr: '\uD835\uDCAA', + Oslash: '\u00D8', + Otilde: '\u00D5', + Otimes: '\u2A37', + Ouml: '\u00D6', + OverBar: '\u203E', + OverBrace: '\u23DE', + OverBracket: '\u23B4', + OverParenthesis: '\u23DC', + PartialD: '\u2202', + Pcy: '\u041F', + Pfr: '\uD835\uDD13', + Phi: '\u03A6', + Pi: '\u03A0', + PlusMinus: '\u00B1', + Poincareplane: '\u210C', + Popf: '\u2119', + Pr: '\u2ABB', + Precedes: '\u227A', + PrecedesEqual: '\u2AAF', + PrecedesSlantEqual: '\u227C', + PrecedesTilde: '\u227E', + Prime: '\u2033', + Product: '\u220F', + Proportion: '\u2237', + Proportional: '\u221D', + Pscr: '\uD835\uDCAB', + Psi: '\u03A8', + QUOT: '\u0022', + Qfr: '\uD835\uDD14', + Qopf: '\u211A', + Qscr: '\uD835\uDCAC', + RBarr: '\u2910', + REG: '\u00AE', + Racute: '\u0154', + Rang: '\u27EB', + Rarr: '\u21A0', + Rarrtl: '\u2916', + Rcaron: '\u0158', + Rcedil: '\u0156', + Rcy: '\u0420', + Re: '\u211C', + ReverseElement: '\u220B', + ReverseEquilibrium: '\u21CB', + ReverseUpEquilibrium: '\u296F', + Rfr: '\u211C', + Rho: '\u03A1', + RightAngleBracket: '\u27E9', + RightArrow: '\u2192', + RightArrowBar: '\u21E5', + RightArrowLeftArrow: '\u21C4', + RightCeiling: '\u2309', + RightDoubleBracket: '\u27E7', + RightDownTeeVector: '\u295D', + RightDownVector: '\u21C2', + RightDownVectorBar: '\u2955', + RightFloor: '\u230B', + RightTee: '\u22A2', + RightTeeArrow: '\u21A6', + RightTeeVector: '\u295B', + RightTriangle: '\u22B3', + RightTriangleBar: '\u29D0', + RightTriangleEqual: '\u22B5', + RightUpDownVector: '\u294F', + RightUpTeeVector: '\u295C', + RightUpVector: '\u21BE', + RightUpVectorBar: '\u2954', + RightVector: '\u21C0', + RightVectorBar: '\u2953', + Rightarrow: '\u21D2', + Ropf: '\u211D', + RoundImplies: '\u2970', + Rrightarrow: '\u21DB', + Rscr: '\u211B', + Rsh: '\u21B1', + RuleDelayed: '\u29F4', + SHCHcy: '\u0429', + SHcy: '\u0428', + SOFTcy: '\u042C', + Sacute: '\u015A', + Sc: '\u2ABC', + Scaron: '\u0160', + Scedil: '\u015E', + Scirc: '\u015C', + Scy: '\u0421', + Sfr: '\uD835\uDD16', + ShortDownArrow: '\u2193', + ShortLeftArrow: '\u2190', + ShortRightArrow: '\u2192', + ShortUpArrow: '\u2191', + Sigma: '\u03A3', + SmallCircle: '\u2218', + Sopf: '\uD835\uDD4A', + Sqrt: '\u221A', + Square: '\u25A1', + SquareIntersection: '\u2293', + SquareSubset: '\u228F', + SquareSubsetEqual: '\u2291', + SquareSuperset: '\u2290', + SquareSupersetEqual: '\u2292', + SquareUnion: '\u2294', + Sscr: '\uD835\uDCAE', + Star: '\u22C6', + Sub: '\u22D0', + Subset: '\u22D0', + SubsetEqual: '\u2286', + Succeeds: '\u227B', + SucceedsEqual: '\u2AB0', + SucceedsSlantEqual: '\u227D', + SucceedsTilde: '\u227F', + SuchThat: '\u220B', + Sum: '\u2211', + Sup: '\u22D1', + Superset: '\u2283', + SupersetEqual: '\u2287', + Supset: '\u22D1', + THORN: '\u00DE', + TRADE: '\u2122', + TSHcy: '\u040B', + TScy: '\u0426', + Tab: '\u0009', + Tau: '\u03A4', + Tcaron: '\u0164', + Tcedil: '\u0162', + Tcy: '\u0422', + Tfr: '\uD835\uDD17', + Therefore: '\u2234', + Theta: '\u0398', + ThickSpace: '\u205F\u200A', + ThinSpace: '\u2009', + Tilde: '\u223C', + TildeEqual: '\u2243', + TildeFullEqual: '\u2245', + TildeTilde: '\u2248', + Topf: '\uD835\uDD4B', + TripleDot: '\u20DB', + Tscr: '\uD835\uDCAF', + Tstrok: '\u0166', + Uacute: '\u00DA', + Uarr: '\u219F', + Uarrocir: '\u2949', + Ubrcy: '\u040E', + Ubreve: '\u016C', + Ucirc: '\u00DB', + Ucy: '\u0423', + Udblac: '\u0170', + Ufr: '\uD835\uDD18', + Ugrave: '\u00D9', + Umacr: '\u016A', + UnderBar: '\u005F', + UnderBrace: '\u23DF', + UnderBracket: '\u23B5', + UnderParenthesis: '\u23DD', + Union: '\u22C3', + UnionPlus: '\u228E', + Uogon: '\u0172', + Uopf: '\uD835\uDD4C', + UpArrow: '\u2191', + UpArrowBar: '\u2912', + UpArrowDownArrow: '\u21C5', + UpDownArrow: '\u2195', + UpEquilibrium: '\u296E', + UpTee: '\u22A5', + UpTeeArrow: '\u21A5', + Uparrow: '\u21D1', + Updownarrow: '\u21D5', + UpperLeftArrow: '\u2196', + UpperRightArrow: '\u2197', + Upsi: '\u03D2', + Upsilon: '\u03A5', + Uring: '\u016E', + Uscr: '\uD835\uDCB0', + Utilde: '\u0168', + Uuml: '\u00DC', + VDash: '\u22AB', + Vbar: '\u2AEB', + Vcy: '\u0412', + Vdash: '\u22A9', + Vdashl: '\u2AE6', + Vee: '\u22C1', + Verbar: '\u2016', + Vert: '\u2016', + VerticalBar: '\u2223', + VerticalLine: '\u007C', + VerticalSeparator: '\u2758', + VerticalTilde: '\u2240', + VeryThinSpace: '\u200A', + Vfr: '\uD835\uDD19', + Vopf: '\uD835\uDD4D', + Vscr: '\uD835\uDCB1', + Vvdash: '\u22AA', + Wcirc: '\u0174', + Wedge: '\u22C0', + Wfr: '\uD835\uDD1A', + Wopf: '\uD835\uDD4E', + Wscr: '\uD835\uDCB2', + Xfr: '\uD835\uDD1B', + Xi: '\u039E', + Xopf: '\uD835\uDD4F', + Xscr: '\uD835\uDCB3', + YAcy: '\u042F', + YIcy: '\u0407', + YUcy: '\u042E', + Yacute: '\u00DD', + Ycirc: '\u0176', + Ycy: '\u042B', + Yfr: '\uD835\uDD1C', + Yopf: '\uD835\uDD50', + Yscr: '\uD835\uDCB4', + Yuml: '\u0178', + ZHcy: '\u0416', + Zacute: '\u0179', + Zcaron: '\u017D', + Zcy: '\u0417', + Zdot: '\u017B', + ZeroWidthSpace: '\u200B', + Zeta: '\u0396', + Zfr: '\u2128', + Zopf: '\u2124', + Zscr: '\uD835\uDCB5', + aacute: '\u00E1', + abreve: '\u0103', + ac: '\u223E', + acE: '\u223E\u0333', + acd: '\u223F', + acirc: '\u00E2', + acute: '\u00B4', + acy: '\u0430', + aelig: '\u00E6', + af: '\u2061', + afr: '\uD835\uDD1E', + agrave: '\u00E0', + alefsym: '\u2135', + aleph: '\u2135', + alpha: '\u03B1', + amacr: '\u0101', + amalg: '\u2A3F', + amp: '\u0026', + and: '\u2227', + andand: '\u2A55', + andd: '\u2A5C', + andslope: '\u2A58', + andv: '\u2A5A', + ang: '\u2220', + ange: '\u29A4', + angle: '\u2220', + angmsd: '\u2221', + angmsdaa: '\u29A8', + angmsdab: '\u29A9', + angmsdac: '\u29AA', + angmsdad: '\u29AB', + angmsdae: '\u29AC', + angmsdaf: '\u29AD', + angmsdag: '\u29AE', + angmsdah: '\u29AF', + angrt: '\u221F', + angrtvb: '\u22BE', + angrtvbd: '\u299D', + angsph: '\u2222', + angst: '\u00C5', + angzarr: '\u237C', + aogon: '\u0105', + aopf: '\uD835\uDD52', + ap: '\u2248', + apE: '\u2A70', + apacir: '\u2A6F', + ape: '\u224A', + apid: '\u224B', + apos: '\u0027', + approx: '\u2248', + approxeq: '\u224A', + aring: '\u00E5', + ascr: '\uD835\uDCB6', + ast: '\u002A', + asymp: '\u2248', + asympeq: '\u224D', + atilde: '\u00E3', + auml: '\u00E4', + awconint: '\u2233', + awint: '\u2A11', + bNot: '\u2AED', + backcong: '\u224C', + backepsilon: '\u03F6', + backprime: '\u2035', + backsim: '\u223D', + backsimeq: '\u22CD', + barvee: '\u22BD', + barwed: '\u2305', + barwedge: '\u2305', + bbrk: '\u23B5', + bbrktbrk: '\u23B6', + bcong: '\u224C', + bcy: '\u0431', + bdquo: '\u201E', + becaus: '\u2235', + because: '\u2235', + bemptyv: '\u29B0', + bepsi: '\u03F6', + bernou: '\u212C', + beta: '\u03B2', + beth: '\u2136', + between: '\u226C', + bfr: '\uD835\uDD1F', + bigcap: '\u22C2', + bigcirc: '\u25EF', + bigcup: '\u22C3', + bigodot: '\u2A00', + bigoplus: '\u2A01', + bigotimes: '\u2A02', + bigsqcup: '\u2A06', + bigstar: '\u2605', + bigtriangledown: '\u25BD', + bigtriangleup: '\u25B3', + biguplus: '\u2A04', + bigvee: '\u22C1', + bigwedge: '\u22C0', + bkarow: '\u290D', + blacklozenge: '\u29EB', + blacksquare: '\u25AA', + blacktriangle: '\u25B4', + blacktriangledown: '\u25BE', + blacktriangleleft: '\u25C2', + blacktriangleright: '\u25B8', + blank: '\u2423', + blk12: '\u2592', + blk14: '\u2591', + blk34: '\u2593', + block: '\u2588', + bne: '\u003D\u20E5', + bnequiv: '\u2261\u20E5', + bnot: '\u2310', + bopf: '\uD835\uDD53', + bot: '\u22A5', + bottom: '\u22A5', + bowtie: '\u22C8', + boxDL: '\u2557', + boxDR: '\u2554', + boxDl: '\u2556', + boxDr: '\u2553', + boxH: '\u2550', + boxHD: '\u2566', + boxHU: '\u2569', + boxHd: '\u2564', + boxHu: '\u2567', + boxUL: '\u255D', + boxUR: '\u255A', + boxUl: '\u255C', + boxUr: '\u2559', + boxV: '\u2551', + boxVH: '\u256C', + boxVL: '\u2563', + boxVR: '\u2560', + boxVh: '\u256B', + boxVl: '\u2562', + boxVr: '\u255F', + boxbox: '\u29C9', + boxdL: '\u2555', + boxdR: '\u2552', + boxdl: '\u2510', + boxdr: '\u250C', + boxh: '\u2500', + boxhD: '\u2565', + boxhU: '\u2568', + boxhd: '\u252C', + boxhu: '\u2534', + boxminus: '\u229F', + boxplus: '\u229E', + boxtimes: '\u22A0', + boxuL: '\u255B', + boxuR: '\u2558', + boxul: '\u2518', + boxur: '\u2514', + boxv: '\u2502', + boxvH: '\u256A', + boxvL: '\u2561', + boxvR: '\u255E', + boxvh: '\u253C', + boxvl: '\u2524', + boxvr: '\u251C', + bprime: '\u2035', + breve: '\u02D8', + brvbar: '\u00A6', + bscr: '\uD835\uDCB7', + bsemi: '\u204F', + bsim: '\u223D', + bsime: '\u22CD', + bsol: '\u005C', + bsolb: '\u29C5', + bsolhsub: '\u27C8', + bull: '\u2022', + bullet: '\u2022', + bump: '\u224E', + bumpE: '\u2AAE', + bumpe: '\u224F', + bumpeq: '\u224F', + cacute: '\u0107', + cap: '\u2229', + capand: '\u2A44', + capbrcup: '\u2A49', + capcap: '\u2A4B', + capcup: '\u2A47', + capdot: '\u2A40', + caps: '\u2229\uFE00', + caret: '\u2041', + caron: '\u02C7', + ccaps: '\u2A4D', + ccaron: '\u010D', + ccedil: '\u00E7', + ccirc: '\u0109', + ccups: '\u2A4C', + ccupssm: '\u2A50', + cdot: '\u010B', + cedil: '\u00B8', + cemptyv: '\u29B2', + cent: '\u00A2', + centerdot: '\u00B7', + cfr: '\uD835\uDD20', + chcy: '\u0447', + check: '\u2713', + checkmark: '\u2713', + chi: '\u03C7', + cir: '\u25CB', + cirE: '\u29C3', + circ: '\u02C6', + circeq: '\u2257', + circlearrowleft: '\u21BA', + circlearrowright: '\u21BB', + circledR: '\u00AE', + circledS: '\u24C8', + circledast: '\u229B', + circledcirc: '\u229A', + circleddash: '\u229D', + cire: '\u2257', + cirfnint: '\u2A10', + cirmid: '\u2AEF', + cirscir: '\u29C2', + clubs: '\u2663', + clubsuit: '\u2663', + colon: '\u003A', + colone: '\u2254', + coloneq: '\u2254', + comma: '\u002C', + commat: '\u0040', + comp: '\u2201', + compfn: '\u2218', + complement: '\u2201', + complexes: '\u2102', + cong: '\u2245', + congdot: '\u2A6D', + conint: '\u222E', + copf: '\uD835\uDD54', + coprod: '\u2210', + copy: '\u00A9', + copysr: '\u2117', + crarr: '\u21B5', + cross: '\u2717', + cscr: '\uD835\uDCB8', + csub: '\u2ACF', + csube: '\u2AD1', + csup: '\u2AD0', + csupe: '\u2AD2', + ctdot: '\u22EF', + cudarrl: '\u2938', + cudarrr: '\u2935', + cuepr: '\u22DE', + cuesc: '\u22DF', + cularr: '\u21B6', + cularrp: '\u293D', + cup: '\u222A', + cupbrcap: '\u2A48', + cupcap: '\u2A46', + cupcup: '\u2A4A', + cupdot: '\u228D', + cupor: '\u2A45', + cups: '\u222A\uFE00', + curarr: '\u21B7', + curarrm: '\u293C', + curlyeqprec: '\u22DE', + curlyeqsucc: '\u22DF', + curlyvee: '\u22CE', + curlywedge: '\u22CF', + curren: '\u00A4', + curvearrowleft: '\u21B6', + curvearrowright: '\u21B7', + cuvee: '\u22CE', + cuwed: '\u22CF', + cwconint: '\u2232', + cwint: '\u2231', + cylcty: '\u232D', + dArr: '\u21D3', + dHar: '\u2965', + dagger: '\u2020', + daleth: '\u2138', + darr: '\u2193', + dash: '\u2010', + dashv: '\u22A3', + dbkarow: '\u290F', + dblac: '\u02DD', + dcaron: '\u010F', + dcy: '\u0434', + dd: '\u2146', + ddagger: '\u2021', + ddarr: '\u21CA', + ddotseq: '\u2A77', + deg: '\u00B0', + delta: '\u03B4', + demptyv: '\u29B1', + dfisht: '\u297F', + dfr: '\uD835\uDD21', + dharl: '\u21C3', + dharr: '\u21C2', + diam: '\u22C4', + diamond: '\u22C4', + diamondsuit: '\u2666', + diams: '\u2666', + die: '\u00A8', + digamma: '\u03DD', + disin: '\u22F2', + div: '\u00F7', + divide: '\u00F7', + divideontimes: '\u22C7', + divonx: '\u22C7', + djcy: '\u0452', + dlcorn: '\u231E', + dlcrop: '\u230D', + dollar: '\u0024', + dopf: '\uD835\uDD55', + dot: '\u02D9', + doteq: '\u2250', + doteqdot: '\u2251', + dotminus: '\u2238', + dotplus: '\u2214', + dotsquare: '\u22A1', + doublebarwedge: '\u2306', + downarrow: '\u2193', + downdownarrows: '\u21CA', + downharpoonleft: '\u21C3', + downharpoonright: '\u21C2', + drbkarow: '\u2910', + drcorn: '\u231F', + drcrop: '\u230C', + dscr: '\uD835\uDCB9', + dscy: '\u0455', + dsol: '\u29F6', + dstrok: '\u0111', + dtdot: '\u22F1', + dtri: '\u25BF', + dtrif: '\u25BE', + duarr: '\u21F5', + duhar: '\u296F', + dwangle: '\u29A6', + dzcy: '\u045F', + dzigrarr: '\u27FF', + eDDot: '\u2A77', + eDot: '\u2251', + eacute: '\u00E9', + easter: '\u2A6E', + ecaron: '\u011B', + ecir: '\u2256', + ecirc: '\u00EA', + ecolon: '\u2255', + ecy: '\u044D', + edot: '\u0117', + ee: '\u2147', + efDot: '\u2252', + efr: '\uD835\uDD22', + eg: '\u2A9A', + egrave: '\u00E8', + egs: '\u2A96', + egsdot: '\u2A98', + el: '\u2A99', + elinters: '\u23E7', + ell: '\u2113', + els: '\u2A95', + elsdot: '\u2A97', + emacr: '\u0113', + empty: '\u2205', + emptyset: '\u2205', + emptyv: '\u2205', + emsp13: '\u2004', + emsp14: '\u2005', + emsp: '\u2003', + eng: '\u014B', + ensp: '\u2002', + eogon: '\u0119', + eopf: '\uD835\uDD56', + epar: '\u22D5', + eparsl: '\u29E3', + eplus: '\u2A71', + epsi: '\u03B5', + epsilon: '\u03B5', + epsiv: '\u03F5', + eqcirc: '\u2256', + eqcolon: '\u2255', + eqsim: '\u2242', + eqslantgtr: '\u2A96', + eqslantless: '\u2A95', + equals: '\u003D', + equest: '\u225F', + equiv: '\u2261', + equivDD: '\u2A78', + eqvparsl: '\u29E5', + erDot: '\u2253', + erarr: '\u2971', + escr: '\u212F', + esdot: '\u2250', + esim: '\u2242', + eta: '\u03B7', + eth: '\u00F0', + euml: '\u00EB', + euro: '\u20AC', + excl: '\u0021', + exist: '\u2203', + expectation: '\u2130', + exponentiale: '\u2147', + fallingdotseq: '\u2252', + fcy: '\u0444', + female: '\u2640', + ffilig: '\uFB03', + fflig: '\uFB00', + ffllig: '\uFB04', + ffr: '\uD835\uDD23', + filig: '\uFB01', + fjlig: '\u0066\u006A', + flat: '\u266D', + fllig: '\uFB02', + fltns: '\u25B1', + fnof: '\u0192', + fopf: '\uD835\uDD57', + forall: '\u2200', + fork: '\u22D4', + forkv: '\u2AD9', + fpartint: '\u2A0D', + frac12: '\u00BD', + frac13: '\u2153', + frac14: '\u00BC', + frac15: '\u2155', + frac16: '\u2159', + frac18: '\u215B', + frac23: '\u2154', + frac25: '\u2156', + frac34: '\u00BE', + frac35: '\u2157', + frac38: '\u215C', + frac45: '\u2158', + frac56: '\u215A', + frac58: '\u215D', + frac78: '\u215E', + frasl: '\u2044', + frown: '\u2322', + fscr: '\uD835\uDCBB', + gE: '\u2267', + gEl: '\u2A8C', + gacute: '\u01F5', + gamma: '\u03B3', + gammad: '\u03DD', + gap: '\u2A86', + gbreve: '\u011F', + gcirc: '\u011D', + gcy: '\u0433', + gdot: '\u0121', + ge: '\u2265', + gel: '\u22DB', + geq: '\u2265', + geqq: '\u2267', + geqslant: '\u2A7E', + ges: '\u2A7E', + gescc: '\u2AA9', + gesdot: '\u2A80', + gesdoto: '\u2A82', + gesdotol: '\u2A84', + gesl: '\u22DB\uFE00', + gesles: '\u2A94', + gfr: '\uD835\uDD24', + gg: '\u226B', + ggg: '\u22D9', + gimel: '\u2137', + gjcy: '\u0453', + gl: '\u2277', + glE: '\u2A92', + gla: '\u2AA5', + glj: '\u2AA4', + gnE: '\u2269', + gnap: '\u2A8A', + gnapprox: '\u2A8A', + gne: '\u2A88', + gneq: '\u2A88', + gneqq: '\u2269', + gnsim: '\u22E7', + gopf: '\uD835\uDD58', + grave: '\u0060', + gscr: '\u210A', + gsim: '\u2273', + gsime: '\u2A8E', + gsiml: '\u2A90', + gt: '\u003E', + gtcc: '\u2AA7', + gtcir: '\u2A7A', + gtdot: '\u22D7', + gtlPar: '\u2995', + gtquest: '\u2A7C', + gtrapprox: '\u2A86', + gtrarr: '\u2978', + gtrdot: '\u22D7', + gtreqless: '\u22DB', + gtreqqless: '\u2A8C', + gtrless: '\u2277', + gtrsim: '\u2273', + gvertneqq: '\u2269\uFE00', + gvnE: '\u2269\uFE00', + hArr: '\u21D4', + hairsp: '\u200A', + half: '\u00BD', + hamilt: '\u210B', + hardcy: '\u044A', + harr: '\u2194', + harrcir: '\u2948', + harrw: '\u21AD', + hbar: '\u210F', + hcirc: '\u0125', + hearts: '\u2665', + heartsuit: '\u2665', + hellip: '\u2026', + hercon: '\u22B9', + hfr: '\uD835\uDD25', + hksearow: '\u2925', + hkswarow: '\u2926', + hoarr: '\u21FF', + homtht: '\u223B', + hookleftarrow: '\u21A9', + hookrightarrow: '\u21AA', + hopf: '\uD835\uDD59', + horbar: '\u2015', + hscr: '\uD835\uDCBD', + hslash: '\u210F', + hstrok: '\u0127', + hybull: '\u2043', + hyphen: '\u2010', + iacute: '\u00ED', + ic: '\u2063', + icirc: '\u00EE', + icy: '\u0438', + iecy: '\u0435', + iexcl: '\u00A1', + iff: '\u21D4', + ifr: '\uD835\uDD26', + igrave: '\u00EC', + ii: '\u2148', + iiiint: '\u2A0C', + iiint: '\u222D', + iinfin: '\u29DC', + iiota: '\u2129', + ijlig: '\u0133', + imacr: '\u012B', + image: '\u2111', + imagline: '\u2110', + imagpart: '\u2111', + imath: '\u0131', + imof: '\u22B7', + imped: '\u01B5', + in: '\u2208', + incare: '\u2105', + infin: '\u221E', + infintie: '\u29DD', + inodot: '\u0131', + int: '\u222B', + intcal: '\u22BA', + integers: '\u2124', + intercal: '\u22BA', + intlarhk: '\u2A17', + intprod: '\u2A3C', + iocy: '\u0451', + iogon: '\u012F', + iopf: '\uD835\uDD5A', + iota: '\u03B9', + iprod: '\u2A3C', + iquest: '\u00BF', + iscr: '\uD835\uDCBE', + isin: '\u2208', + isinE: '\u22F9', + isindot: '\u22F5', + isins: '\u22F4', + isinsv: '\u22F3', + isinv: '\u2208', + it: '\u2062', + itilde: '\u0129', + iukcy: '\u0456', + iuml: '\u00EF', + jcirc: '\u0135', + jcy: '\u0439', + jfr: '\uD835\uDD27', + jmath: '\u0237', + jopf: '\uD835\uDD5B', + jscr: '\uD835\uDCBF', + jsercy: '\u0458', + jukcy: '\u0454', + kappa: '\u03BA', + kappav: '\u03F0', + kcedil: '\u0137', + kcy: '\u043A', + kfr: '\uD835\uDD28', + kgreen: '\u0138', + khcy: '\u0445', + kjcy: '\u045C', + kopf: '\uD835\uDD5C', + kscr: '\uD835\uDCC0', + lAarr: '\u21DA', + lArr: '\u21D0', + lAtail: '\u291B', + lBarr: '\u290E', + lE: '\u2266', + lEg: '\u2A8B', + lHar: '\u2962', + lacute: '\u013A', + laemptyv: '\u29B4', + lagran: '\u2112', + lambda: '\u03BB', + lang: '\u27E8', + langd: '\u2991', + langle: '\u27E8', + lap: '\u2A85', + laquo: '\u00AB', + larr: '\u2190', + larrb: '\u21E4', + larrbfs: '\u291F', + larrfs: '\u291D', + larrhk: '\u21A9', + larrlp: '\u21AB', + larrpl: '\u2939', + larrsim: '\u2973', + larrtl: '\u21A2', + lat: '\u2AAB', + latail: '\u2919', + late: '\u2AAD', + lates: '\u2AAD\uFE00', + lbarr: '\u290C', + lbbrk: '\u2772', + lbrace: '\u007B', + lbrack: '\u005B', + lbrke: '\u298B', + lbrksld: '\u298F', + lbrkslu: '\u298D', + lcaron: '\u013E', + lcedil: '\u013C', + lceil: '\u2308', + lcub: '\u007B', + lcy: '\u043B', + ldca: '\u2936', + ldquo: '\u201C', + ldquor: '\u201E', + ldrdhar: '\u2967', + ldrushar: '\u294B', + ldsh: '\u21B2', + le: '\u2264', + leftarrow: '\u2190', + leftarrowtail: '\u21A2', + leftharpoondown: '\u21BD', + leftharpoonup: '\u21BC', + leftleftarrows: '\u21C7', + leftrightarrow: '\u2194', + leftrightarrows: '\u21C6', + leftrightharpoons: '\u21CB', + leftrightsquigarrow: '\u21AD', + leftthreetimes: '\u22CB', + leg: '\u22DA', + leq: '\u2264', + leqq: '\u2266', + leqslant: '\u2A7D', + les: '\u2A7D', + lescc: '\u2AA8', + lesdot: '\u2A7F', + lesdoto: '\u2A81', + lesdotor: '\u2A83', + lesg: '\u22DA\uFE00', + lesges: '\u2A93', + lessapprox: '\u2A85', + lessdot: '\u22D6', + lesseqgtr: '\u22DA', + lesseqqgtr: '\u2A8B', + lessgtr: '\u2276', + lesssim: '\u2272', + lfisht: '\u297C', + lfloor: '\u230A', + lfr: '\uD835\uDD29', + lg: '\u2276', + lgE: '\u2A91', + lhard: '\u21BD', + lharu: '\u21BC', + lharul: '\u296A', + lhblk: '\u2584', + ljcy: '\u0459', + ll: '\u226A', + llarr: '\u21C7', + llcorner: '\u231E', + llhard: '\u296B', + lltri: '\u25FA', + lmidot: '\u0140', + lmoust: '\u23B0', + lmoustache: '\u23B0', + lnE: '\u2268', + lnap: '\u2A89', + lnapprox: '\u2A89', + lne: '\u2A87', + lneq: '\u2A87', + lneqq: '\u2268', + lnsim: '\u22E6', + loang: '\u27EC', + loarr: '\u21FD', + lobrk: '\u27E6', + longleftarrow: '\u27F5', + longleftrightarrow: '\u27F7', + longmapsto: '\u27FC', + longrightarrow: '\u27F6', + looparrowleft: '\u21AB', + looparrowright: '\u21AC', + lopar: '\u2985', + lopf: '\uD835\uDD5D', + loplus: '\u2A2D', + lotimes: '\u2A34', + lowast: '\u2217', + lowbar: '\u005F', + loz: '\u25CA', + lozenge: '\u25CA', + lozf: '\u29EB', + lpar: '\u0028', + lparlt: '\u2993', + lrarr: '\u21C6', + lrcorner: '\u231F', + lrhar: '\u21CB', + lrhard: '\u296D', + lrm: '\u200E', + lrtri: '\u22BF', + lsaquo: '\u2039', + lscr: '\uD835\uDCC1', + lsh: '\u21B0', + lsim: '\u2272', + lsime: '\u2A8D', + lsimg: '\u2A8F', + lsqb: '\u005B', + lsquo: '\u2018', + lsquor: '\u201A', + lstrok: '\u0142', + lt: '\u003C', + ltcc: '\u2AA6', + ltcir: '\u2A79', + ltdot: '\u22D6', + lthree: '\u22CB', + ltimes: '\u22C9', + ltlarr: '\u2976', + ltquest: '\u2A7B', + ltrPar: '\u2996', + ltri: '\u25C3', + ltrie: '\u22B4', + ltrif: '\u25C2', + lurdshar: '\u294A', + luruhar: '\u2966', + lvertneqq: '\u2268\uFE00', + lvnE: '\u2268\uFE00', + mDDot: '\u223A', + macr: '\u00AF', + male: '\u2642', + malt: '\u2720', + maltese: '\u2720', + map: '\u21A6', + mapsto: '\u21A6', + mapstodown: '\u21A7', + mapstoleft: '\u21A4', + mapstoup: '\u21A5', + marker: '\u25AE', + mcomma: '\u2A29', + mcy: '\u043C', + mdash: '\u2014', + measuredangle: '\u2221', + mfr: '\uD835\uDD2A', + mho: '\u2127', + micro: '\u00B5', + mid: '\u2223', + midast: '\u002A', + midcir: '\u2AF0', + middot: '\u00B7', + minus: '\u2212', + minusb: '\u229F', + minusd: '\u2238', + minusdu: '\u2A2A', + mlcp: '\u2ADB', + mldr: '\u2026', + mnplus: '\u2213', + models: '\u22A7', + mopf: '\uD835\uDD5E', + mp: '\u2213', + mscr: '\uD835\uDCC2', + mstpos: '\u223E', + mu: '\u03BC', + multimap: '\u22B8', + mumap: '\u22B8', + nGg: '\u22D9\u0338', + nGt: '\u226B\u20D2', + nGtv: '\u226B\u0338', + nLeftarrow: '\u21CD', + nLeftrightarrow: '\u21CE', + nLl: '\u22D8\u0338', + nLt: '\u226A\u20D2', + nLtv: '\u226A\u0338', + nRightarrow: '\u21CF', + nVDash: '\u22AF', + nVdash: '\u22AE', + nabla: '\u2207', + nacute: '\u0144', + nang: '\u2220\u20D2', + nap: '\u2249', + napE: '\u2A70\u0338', + napid: '\u224B\u0338', + napos: '\u0149', + napprox: '\u2249', + natur: '\u266E', + natural: '\u266E', + naturals: '\u2115', + nbsp: '\u00A0', + nbump: '\u224E\u0338', + nbumpe: '\u224F\u0338', + ncap: '\u2A43', + ncaron: '\u0148', + ncedil: '\u0146', + ncong: '\u2247', + ncongdot: '\u2A6D\u0338', + ncup: '\u2A42', + ncy: '\u043D', + ndash: '\u2013', + ne: '\u2260', + neArr: '\u21D7', + nearhk: '\u2924', + nearr: '\u2197', + nearrow: '\u2197', + nedot: '\u2250\u0338', + nequiv: '\u2262', + nesear: '\u2928', + nesim: '\u2242\u0338', + nexist: '\u2204', + nexists: '\u2204', + nfr: '\uD835\uDD2B', + ngE: '\u2267\u0338', + nge: '\u2271', + ngeq: '\u2271', + ngeqq: '\u2267\u0338', + ngeqslant: '\u2A7E\u0338', + nges: '\u2A7E\u0338', + ngsim: '\u2275', + ngt: '\u226F', + ngtr: '\u226F', + nhArr: '\u21CE', + nharr: '\u21AE', + nhpar: '\u2AF2', + ni: '\u220B', + nis: '\u22FC', + nisd: '\u22FA', + niv: '\u220B', + njcy: '\u045A', + nlArr: '\u21CD', + nlE: '\u2266\u0338', + nlarr: '\u219A', + nldr: '\u2025', + nle: '\u2270', + nleftarrow: '\u219A', + nleftrightarrow: '\u21AE', + nleq: '\u2270', + nleqq: '\u2266\u0338', + nleqslant: '\u2A7D\u0338', + nles: '\u2A7D\u0338', + nless: '\u226E', + nlsim: '\u2274', + nlt: '\u226E', + nltri: '\u22EA', + nltrie: '\u22EC', + nmid: '\u2224', + nopf: '\uD835\uDD5F', + not: '\u00AC', + notin: '\u2209', + notinE: '\u22F9\u0338', + notindot: '\u22F5\u0338', + notinva: '\u2209', + notinvb: '\u22F7', + notinvc: '\u22F6', + notni: '\u220C', + notniva: '\u220C', + notnivb: '\u22FE', + notnivc: '\u22FD', + npar: '\u2226', + nparallel: '\u2226', + nparsl: '\u2AFD\u20E5', + npart: '\u2202\u0338', + npolint: '\u2A14', + npr: '\u2280', + nprcue: '\u22E0', + npre: '\u2AAF\u0338', + nprec: '\u2280', + npreceq: '\u2AAF\u0338', + nrArr: '\u21CF', + nrarr: '\u219B', + nrarrc: '\u2933\u0338', + nrarrw: '\u219D\u0338', + nrightarrow: '\u219B', + nrtri: '\u22EB', + nrtrie: '\u22ED', + nsc: '\u2281', + nsccue: '\u22E1', + nsce: '\u2AB0\u0338', + nscr: '\uD835\uDCC3', + nshortmid: '\u2224', + nshortparallel: '\u2226', + nsim: '\u2241', + nsime: '\u2244', + nsimeq: '\u2244', + nsmid: '\u2224', + nspar: '\u2226', + nsqsube: '\u22E2', + nsqsupe: '\u22E3', + nsub: '\u2284', + nsubE: '\u2AC5\u0338', + nsube: '\u2288', + nsubset: '\u2282\u20D2', + nsubseteq: '\u2288', + nsubseteqq: '\u2AC5\u0338', + nsucc: '\u2281', + nsucceq: '\u2AB0\u0338', + nsup: '\u2285', + nsupE: '\u2AC6\u0338', + nsupe: '\u2289', + nsupset: '\u2283\u20D2', + nsupseteq: '\u2289', + nsupseteqq: '\u2AC6\u0338', + ntgl: '\u2279', + ntilde: '\u00F1', + ntlg: '\u2278', + ntriangleleft: '\u22EA', + ntrianglelefteq: '\u22EC', + ntriangleright: '\u22EB', + ntrianglerighteq: '\u22ED', + nu: '\u03BD', + num: '\u0023', + numero: '\u2116', + numsp: '\u2007', + nvDash: '\u22AD', + nvHarr: '\u2904', + nvap: '\u224D\u20D2', + nvdash: '\u22AC', + nvge: '\u2265\u20D2', + nvgt: '\u003E\u20D2', + nvinfin: '\u29DE', + nvlArr: '\u2902', + nvle: '\u2264\u20D2', + nvlt: '\u003C\u20D2', + nvltrie: '\u22B4\u20D2', + nvrArr: '\u2903', + nvrtrie: '\u22B5\u20D2', + nvsim: '\u223C\u20D2', + nwArr: '\u21D6', + nwarhk: '\u2923', + nwarr: '\u2196', + nwarrow: '\u2196', + nwnear: '\u2927', + oS: '\u24C8', + oacute: '\u00F3', + oast: '\u229B', + ocir: '\u229A', + ocirc: '\u00F4', + ocy: '\u043E', + odash: '\u229D', + odblac: '\u0151', + odiv: '\u2A38', + odot: '\u2299', + odsold: '\u29BC', + oelig: '\u0153', + ofcir: '\u29BF', + ofr: '\uD835\uDD2C', + ogon: '\u02DB', + ograve: '\u00F2', + ogt: '\u29C1', + ohbar: '\u29B5', + ohm: '\u03A9', + oint: '\u222E', + olarr: '\u21BA', + olcir: '\u29BE', + olcross: '\u29BB', + oline: '\u203E', + olt: '\u29C0', + omacr: '\u014D', + omega: '\u03C9', + omicron: '\u03BF', + omid: '\u29B6', + ominus: '\u2296', + oopf: '\uD835\uDD60', + opar: '\u29B7', + operp: '\u29B9', + oplus: '\u2295', + or: '\u2228', + orarr: '\u21BB', + ord: '\u2A5D', + order: '\u2134', + orderof: '\u2134', + ordf: '\u00AA', + ordm: '\u00BA', + origof: '\u22B6', + oror: '\u2A56', + orslope: '\u2A57', + orv: '\u2A5B', + oscr: '\u2134', + oslash: '\u00F8', + osol: '\u2298', + otilde: '\u00F5', + otimes: '\u2297', + otimesas: '\u2A36', + ouml: '\u00F6', + ovbar: '\u233D', + par: '\u2225', + para: '\u00B6', + parallel: '\u2225', + parsim: '\u2AF3', + parsl: '\u2AFD', + part: '\u2202', + pcy: '\u043F', + percnt: '\u0025', + period: '\u002E', + permil: '\u2030', + perp: '\u22A5', + pertenk: '\u2031', + pfr: '\uD835\uDD2D', + phi: '\u03C6', + phiv: '\u03D5', + phmmat: '\u2133', + phone: '\u260E', + pi: '\u03C0', + pitchfork: '\u22D4', + piv: '\u03D6', + planck: '\u210F', + planckh: '\u210E', + plankv: '\u210F', + plus: '\u002B', + plusacir: '\u2A23', + plusb: '\u229E', + pluscir: '\u2A22', + plusdo: '\u2214', + plusdu: '\u2A25', + pluse: '\u2A72', + plusmn: '\u00B1', + plussim: '\u2A26', + plustwo: '\u2A27', + pm: '\u00B1', + pointint: '\u2A15', + popf: '\uD835\uDD61', + pound: '\u00A3', + pr: '\u227A', + prE: '\u2AB3', + prap: '\u2AB7', + prcue: '\u227C', + pre: '\u2AAF', + prec: '\u227A', + precapprox: '\u2AB7', + preccurlyeq: '\u227C', + preceq: '\u2AAF', + precnapprox: '\u2AB9', + precneqq: '\u2AB5', + precnsim: '\u22E8', + precsim: '\u227E', + prime: '\u2032', + primes: '\u2119', + prnE: '\u2AB5', + prnap: '\u2AB9', + prnsim: '\u22E8', + prod: '\u220F', + profalar: '\u232E', + profline: '\u2312', + profsurf: '\u2313', + prop: '\u221D', + propto: '\u221D', + prsim: '\u227E', + prurel: '\u22B0', + pscr: '\uD835\uDCC5', + psi: '\u03C8', + puncsp: '\u2008', + qfr: '\uD835\uDD2E', + qint: '\u2A0C', + qopf: '\uD835\uDD62', + qprime: '\u2057', + qscr: '\uD835\uDCC6', + quaternions: '\u210D', + quatint: '\u2A16', + quest: '\u003F', + questeq: '\u225F', + quot: '\u0022', + rAarr: '\u21DB', + rArr: '\u21D2', + rAtail: '\u291C', + rBarr: '\u290F', + rHar: '\u2964', + race: '\u223D\u0331', + racute: '\u0155', + radic: '\u221A', + raemptyv: '\u29B3', + rang: '\u27E9', + rangd: '\u2992', + range: '\u29A5', + rangle: '\u27E9', + raquo: '\u00BB', + rarr: '\u2192', + rarrap: '\u2975', + rarrb: '\u21E5', + rarrbfs: '\u2920', + rarrc: '\u2933', + rarrfs: '\u291E', + rarrhk: '\u21AA', + rarrlp: '\u21AC', + rarrpl: '\u2945', + rarrsim: '\u2974', + rarrtl: '\u21A3', + rarrw: '\u219D', + ratail: '\u291A', + ratio: '\u2236', + rationals: '\u211A', + rbarr: '\u290D', + rbbrk: '\u2773', + rbrace: '\u007D', + rbrack: '\u005D', + rbrke: '\u298C', + rbrksld: '\u298E', + rbrkslu: '\u2990', + rcaron: '\u0159', + rcedil: '\u0157', + rceil: '\u2309', + rcub: '\u007D', + rcy: '\u0440', + rdca: '\u2937', + rdldhar: '\u2969', + rdquo: '\u201D', + rdquor: '\u201D', + rdsh: '\u21B3', + real: '\u211C', + realine: '\u211B', + realpart: '\u211C', + reals: '\u211D', + rect: '\u25AD', + reg: '\u00AE', + rfisht: '\u297D', + rfloor: '\u230B', + rfr: '\uD835\uDD2F', + rhard: '\u21C1', + rharu: '\u21C0', + rharul: '\u296C', + rho: '\u03C1', + rhov: '\u03F1', + rightarrow: '\u2192', + rightarrowtail: '\u21A3', + rightharpoondown: '\u21C1', + rightharpoonup: '\u21C0', + rightleftarrows: '\u21C4', + rightleftharpoons: '\u21CC', + rightrightarrows: '\u21C9', + rightsquigarrow: '\u219D', + rightthreetimes: '\u22CC', + ring: '\u02DA', + risingdotseq: '\u2253', + rlarr: '\u21C4', + rlhar: '\u21CC', + rlm: '\u200F', + rmoust: '\u23B1', + rmoustache: '\u23B1', + rnmid: '\u2AEE', + roang: '\u27ED', + roarr: '\u21FE', + robrk: '\u27E7', + ropar: '\u2986', + ropf: '\uD835\uDD63', + roplus: '\u2A2E', + rotimes: '\u2A35', + rpar: '\u0029', + rpargt: '\u2994', + rppolint: '\u2A12', + rrarr: '\u21C9', + rsaquo: '\u203A', + rscr: '\uD835\uDCC7', + rsh: '\u21B1', + rsqb: '\u005D', + rsquo: '\u2019', + rsquor: '\u2019', + rthree: '\u22CC', + rtimes: '\u22CA', + rtri: '\u25B9', + rtrie: '\u22B5', + rtrif: '\u25B8', + rtriltri: '\u29CE', + ruluhar: '\u2968', + rx: '\u211E', + sacute: '\u015B', + sbquo: '\u201A', + sc: '\u227B', + scE: '\u2AB4', + scap: '\u2AB8', + scaron: '\u0161', + sccue: '\u227D', + sce: '\u2AB0', + scedil: '\u015F', + scirc: '\u015D', + scnE: '\u2AB6', + scnap: '\u2ABA', + scnsim: '\u22E9', + scpolint: '\u2A13', + scsim: '\u227F', + scy: '\u0441', + sdot: '\u22C5', + sdotb: '\u22A1', + sdote: '\u2A66', + seArr: '\u21D8', + searhk: '\u2925', + searr: '\u2198', + searrow: '\u2198', + sect: '\u00A7', + semi: '\u003B', + seswar: '\u2929', + setminus: '\u2216', + setmn: '\u2216', + sext: '\u2736', + sfr: '\uD835\uDD30', + sfrown: '\u2322', + sharp: '\u266F', + shchcy: '\u0449', + shcy: '\u0448', + shortmid: '\u2223', + shortparallel: '\u2225', + shy: '\u00AD', + sigma: '\u03C3', + sigmaf: '\u03C2', + sigmav: '\u03C2', + sim: '\u223C', + simdot: '\u2A6A', + sime: '\u2243', + simeq: '\u2243', + simg: '\u2A9E', + simgE: '\u2AA0', + siml: '\u2A9D', + simlE: '\u2A9F', + simne: '\u2246', + simplus: '\u2A24', + simrarr: '\u2972', + slarr: '\u2190', + smallsetminus: '\u2216', + smashp: '\u2A33', + smeparsl: '\u29E4', + smid: '\u2223', + smile: '\u2323', + smt: '\u2AAA', + smte: '\u2AAC', + smtes: '\u2AAC\uFE00', + softcy: '\u044C', + sol: '\u002F', + solb: '\u29C4', + solbar: '\u233F', + sopf: '\uD835\uDD64', + spades: '\u2660', + spadesuit: '\u2660', + spar: '\u2225', + sqcap: '\u2293', + sqcaps: '\u2293\uFE00', + sqcup: '\u2294', + sqcups: '\u2294\uFE00', + sqsub: '\u228F', + sqsube: '\u2291', + sqsubset: '\u228F', + sqsubseteq: '\u2291', + sqsup: '\u2290', + sqsupe: '\u2292', + sqsupset: '\u2290', + sqsupseteq: '\u2292', + squ: '\u25A1', + square: '\u25A1', + squarf: '\u25AA', + squf: '\u25AA', + srarr: '\u2192', + sscr: '\uD835\uDCC8', + ssetmn: '\u2216', + ssmile: '\u2323', + sstarf: '\u22C6', + star: '\u2606', + starf: '\u2605', + straightepsilon: '\u03F5', + straightphi: '\u03D5', + strns: '\u00AF', + sub: '\u2282', + subE: '\u2AC5', + subdot: '\u2ABD', + sube: '\u2286', + subedot: '\u2AC3', + submult: '\u2AC1', + subnE: '\u2ACB', + subne: '\u228A', + subplus: '\u2ABF', + subrarr: '\u2979', + subset: '\u2282', + subseteq: '\u2286', + subseteqq: '\u2AC5', + subsetneq: '\u228A', + subsetneqq: '\u2ACB', + subsim: '\u2AC7', + subsub: '\u2AD5', + subsup: '\u2AD3', + succ: '\u227B', + succapprox: '\u2AB8', + succcurlyeq: '\u227D', + succeq: '\u2AB0', + succnapprox: '\u2ABA', + succneqq: '\u2AB6', + succnsim: '\u22E9', + succsim: '\u227F', + sum: '\u2211', + sung: '\u266A', + sup1: '\u00B9', + sup2: '\u00B2', + sup3: '\u00B3', + sup: '\u2283', + supE: '\u2AC6', + supdot: '\u2ABE', + supdsub: '\u2AD8', + supe: '\u2287', + supedot: '\u2AC4', + suphsol: '\u27C9', + suphsub: '\u2AD7', + suplarr: '\u297B', + supmult: '\u2AC2', + supnE: '\u2ACC', + supne: '\u228B', + supplus: '\u2AC0', + supset: '\u2283', + supseteq: '\u2287', + supseteqq: '\u2AC6', + supsetneq: '\u228B', + supsetneqq: '\u2ACC', + supsim: '\u2AC8', + supsub: '\u2AD4', + supsup: '\u2AD6', + swArr: '\u21D9', + swarhk: '\u2926', + swarr: '\u2199', + swarrow: '\u2199', + swnwar: '\u292A', + szlig: '\u00DF', + target: '\u2316', + tau: '\u03C4', + tbrk: '\u23B4', + tcaron: '\u0165', + tcedil: '\u0163', + tcy: '\u0442', + tdot: '\u20DB', + telrec: '\u2315', + tfr: '\uD835\uDD31', + there4: '\u2234', + therefore: '\u2234', + theta: '\u03B8', + thetasym: '\u03D1', + thetav: '\u03D1', + thickapprox: '\u2248', + thicksim: '\u223C', + thinsp: '\u2009', + thkap: '\u2248', + thksim: '\u223C', + thorn: '\u00FE', + tilde: '\u02DC', + times: '\u00D7', + timesb: '\u22A0', + timesbar: '\u2A31', + timesd: '\u2A30', + tint: '\u222D', + toea: '\u2928', + top: '\u22A4', + topbot: '\u2336', + topcir: '\u2AF1', + topf: '\uD835\uDD65', + topfork: '\u2ADA', + tosa: '\u2929', + tprime: '\u2034', + trade: '\u2122', + triangle: '\u25B5', + triangledown: '\u25BF', + triangleleft: '\u25C3', + trianglelefteq: '\u22B4', + triangleq: '\u225C', + triangleright: '\u25B9', + trianglerighteq: '\u22B5', + tridot: '\u25EC', + trie: '\u225C', + triminus: '\u2A3A', + triplus: '\u2A39', + trisb: '\u29CD', + tritime: '\u2A3B', + trpezium: '\u23E2', + tscr: '\uD835\uDCC9', + tscy: '\u0446', + tshcy: '\u045B', + tstrok: '\u0167', + twixt: '\u226C', + twoheadleftarrow: '\u219E', + twoheadrightarrow: '\u21A0', + uArr: '\u21D1', + uHar: '\u2963', + uacute: '\u00FA', + uarr: '\u2191', + ubrcy: '\u045E', + ubreve: '\u016D', + ucirc: '\u00FB', + ucy: '\u0443', + udarr: '\u21C5', + udblac: '\u0171', + udhar: '\u296E', + ufisht: '\u297E', + ufr: '\uD835\uDD32', + ugrave: '\u00F9', + uharl: '\u21BF', + uharr: '\u21BE', + uhblk: '\u2580', + ulcorn: '\u231C', + ulcorner: '\u231C', + ulcrop: '\u230F', + ultri: '\u25F8', + umacr: '\u016B', + uml: '\u00A8', + uogon: '\u0173', + uopf: '\uD835\uDD66', + uparrow: '\u2191', + updownarrow: '\u2195', + upharpoonleft: '\u21BF', + upharpoonright: '\u21BE', + uplus: '\u228E', + upsi: '\u03C5', + upsih: '\u03D2', + upsilon: '\u03C5', + upuparrows: '\u21C8', + urcorn: '\u231D', + urcorner: '\u231D', + urcrop: '\u230E', + uring: '\u016F', + urtri: '\u25F9', + uscr: '\uD835\uDCCA', + utdot: '\u22F0', + utilde: '\u0169', + utri: '\u25B5', + utrif: '\u25B4', + uuarr: '\u21C8', + uuml: '\u00FC', + uwangle: '\u29A7', + vArr: '\u21D5', + vBar: '\u2AE8', + vBarv: '\u2AE9', + vDash: '\u22A8', + vangrt: '\u299C', + varepsilon: '\u03F5', + varkappa: '\u03F0', + varnothing: '\u2205', + varphi: '\u03D5', + varpi: '\u03D6', + varpropto: '\u221D', + varr: '\u2195', + varrho: '\u03F1', + varsigma: '\u03C2', + varsubsetneq: '\u228A\uFE00', + varsubsetneqq: '\u2ACB\uFE00', + varsupsetneq: '\u228B\uFE00', + varsupsetneqq: '\u2ACC\uFE00', + vartheta: '\u03D1', + vartriangleleft: '\u22B2', + vartriangleright: '\u22B3', + vcy: '\u0432', + vdash: '\u22A2', + vee: '\u2228', + veebar: '\u22BB', + veeeq: '\u225A', + vellip: '\u22EE', + verbar: '\u007C', + vert: '\u007C', + vfr: '\uD835\uDD33', + vltri: '\u22B2', + vnsub: '\u2282\u20D2', + vnsup: '\u2283\u20D2', + vopf: '\uD835\uDD67', + vprop: '\u221D', + vrtri: '\u22B3', + vscr: '\uD835\uDCCB', + vsubnE: '\u2ACB\uFE00', + vsubne: '\u228A\uFE00', + vsupnE: '\u2ACC\uFE00', + vsupne: '\u228B\uFE00', + vzigzag: '\u299A', + wcirc: '\u0175', + wedbar: '\u2A5F', + wedge: '\u2227', + wedgeq: '\u2259', + weierp: '\u2118', + wfr: '\uD835\uDD34', + wopf: '\uD835\uDD68', + wp: '\u2118', + wr: '\u2240', + wreath: '\u2240', + wscr: '\uD835\uDCCC', + xcap: '\u22C2', + xcirc: '\u25EF', + xcup: '\u22C3', + xdtri: '\u25BD', + xfr: '\uD835\uDD35', + xhArr: '\u27FA', + xharr: '\u27F7', + xi: '\u03BE', + xlArr: '\u27F8', + xlarr: '\u27F5', + xmap: '\u27FC', + xnis: '\u22FB', + xodot: '\u2A00', + xopf: '\uD835\uDD69', + xoplus: '\u2A01', + xotime: '\u2A02', + xrArr: '\u27F9', + xrarr: '\u27F6', + xscr: '\uD835\uDCCD', + xsqcup: '\u2A06', + xuplus: '\u2A04', + xutri: '\u25B3', + xvee: '\u22C1', + xwedge: '\u22C0', + yacute: '\u00FD', + yacy: '\u044F', + ycirc: '\u0177', + ycy: '\u044B', + yen: '\u00A5', + yfr: '\uD835\uDD36', + yicy: '\u0457', + yopf: '\uD835\uDD6A', + yscr: '\uD835\uDCCE', + yucy: '\u044E', + yuml: '\u00FF', + zacute: '\u017A', + zcaron: '\u017E', + zcy: '\u0437', + zdot: '\u017C', + zeetrf: '\u2128', + zeta: '\u03B6', + zfr: '\uD835\uDD37', + zhcy: '\u0436', + zigrarr: '\u21DD', + zopf: '\uD835\uDD6B', + zscr: '\uD835\uDCCF', + zwj: '\u200D', + zwnj: '\u200C' +}; +const decodeMap = { + '0': 65533, + '128': 8364, + '130': 8218, + '131': 402, + '132': 8222, + '133': 8230, + '134': 8224, + '135': 8225, + '136': 710, + '137': 8240, + '138': 352, + '139': 8249, + '140': 338, + '142': 381, + '145': 8216, + '146': 8217, + '147': 8220, + '148': 8221, + '149': 8226, + '150': 8211, + '151': 8212, + '152': 732, + '153': 8482, + '154': 353, + '155': 8250, + '156': 339, + '158': 382, + '159': 376 +}; +function decodeHTMLStrict(text) { + return text.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, (key) => { + if (key.charAt(1) === '#') { + const secondChar = key.charAt(2); + const codePoint = secondChar === 'X' || secondChar === 'x' + ? parseInt(key.slice(3), 16) + : parseInt(key.slice(2), 10); + return decodeCodePoint(codePoint); + } + return entities[key.slice(1, -1)] || key; + }); +} +function decodeCodePoint(codePoint) { + if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { + return '\uFFFD'; + } + if (codePoint in decodeMap) { + codePoint = decodeMap[codePoint]; + } + return String.fromCodePoint(codePoint); +} + +function scanJSXAttributeValue(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + parser.token = + CharTypes[parser.currentChar] & 8192 + ? scanJSXString(parser, context) + : scanSingleToken(parser, context, 0); + return parser.token; +} +function scanJSXString(parser, context) { + const quote = parser.currentChar; + let char = advanceChar(parser); + const start = parser.index; + while (char !== quote) { + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + if (char !== quote) + report(parser, 14); + parser.tokenValue = parser.source.slice(start, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283267; +} +function scanJSXToken(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + if (parser.index >= parser.end) + return (parser.token = 1048576); + const token = TokenLookup[parser.source.charCodeAt(parser.index)]; + switch (token) { + case 8456258: { + advanceChar(parser); + if (parser.currentChar === 47) { + advanceChar(parser); + parser.token = 25; + } + else { + parser.token = 8456258; + } + break; + } + case 2162700: { + advanceChar(parser); + parser.token = 2162700; + break; + } + default: { + let state = 0; + while (parser.index < parser.end) { + const type = CharTypes[parser.source.charCodeAt(parser.index)]; + if (type & 1024) { + state |= 1 | 4; + scanNewLine(parser); + } + else if (type & 2048) { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + else { + advanceChar(parser); + } + if (CharTypes[parser.currentChar] & 16384) + break; + } + const raw = parser.source.slice(parser.tokenPos, parser.index); + if (context & 512) + parser.tokenRaw = raw; + parser.tokenValue = decodeHTMLStrict(raw); + parser.token = 138; + } + } + return parser.token; +} +function scanJSXIdentifier(parser) { + if ((parser.token & 143360) === 143360) { + const { index } = parser; + let char = parser.currentChar; + while (CharTypes[char] & (32768 | 2)) { + char = advanceChar(parser); + } + parser.tokenValue += parser.source.slice(index, parser.index); + } + parser.token = 208897; + return parser.token; +} + +function matchOrInsertSemicolon(parser, context, specDeviation) { + if ((parser.flags & 1) === 0 && + (parser.token & 1048576) !== 1048576 && + !specDeviation) { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + consumeOpt(parser, context, 1074790417); +} +function isValidStrictMode(parser, index, tokenPos, tokenValue) { + if (index - tokenPos < 13 && tokenValue === 'use strict') { + if ((parser.token & 1048576) === 1048576 || parser.flags & 1) { + return 1; + } + } + return 0; +} +function optionalBit(parser, context, t) { + if (parser.token !== t) + return 0; + nextToken(parser, context); + return 1; +} +function consumeOpt(parser, context, t) { + if (parser.token !== t) + return false; + nextToken(parser, context); + return true; +} +function consume(parser, context, t) { + if (parser.token !== t) + report(parser, 23, KeywordDescTable[t & 255]); + nextToken(parser, context); +} +function reinterpretToPattern(state, node) { + switch (node.type) { + case 'ArrayExpression': + node.type = 'ArrayPattern'; + const elements = node.elements; + for (let i = 0, n = elements.length; i < n; ++i) { + const element = elements[i]; + if (element) + reinterpretToPattern(state, element); + } + return; + case 'ObjectExpression': + node.type = 'ObjectPattern'; + const properties = node.properties; + for (let i = 0, n = properties.length; i < n; ++i) { + reinterpretToPattern(state, properties[i]); + } + return; + case 'AssignmentExpression': + node.type = 'AssignmentPattern'; + if (node.operator !== '=') + report(state, 68); + delete node.operator; + reinterpretToPattern(state, node.left); + return; + case 'Property': + reinterpretToPattern(state, node.value); + return; + case 'SpreadElement': + node.type = 'RestElement'; + reinterpretToPattern(state, node.argument); + } +} +function validateBindingIdentifier(parser, context, kind, t, skipEvalArgCheck) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if (!skipEvalArgCheck && (t & 537079808) === 537079808) { + report(parser, 115); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (kind & (8 | 16) && t === 241739) { + report(parser, 97); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } +} +function validateFunctionName(parser, context, t) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if ((t & 537079808) === 537079808) { + report(parser, 115); + } + if (t === 122) { + report(parser, 92); + } + if (t === 121) { + report(parser, 92); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } +} +function isStrictReservedWord(parser, context, t) { + if (t === 209008) { + if (context & (4194304 | 2048)) + report(parser, 95); + parser.destructible |= 128; + } + if (t === 241773 && context & 2097152) + report(parser, 94, 'yield'); + return ((t & 20480) === 20480 || + (t & 36864) === 36864 || + t == 122); +} +function isPropertyWithPrivateFieldKey(expr) { + return !expr.property ? false : expr.property.type === 'PrivateIdentifier'; +} +function isValidLabel(parser, labels, name, isIterationStatement) { + while (labels) { + if (labels['$' + name]) { + if (isIterationStatement) + report(parser, 133); + return 1; + } + if (isIterationStatement && labels.loop) + isIterationStatement = 0; + labels = labels['$']; + } + return 0; +} +function validateAndDeclareLabel(parser, labels, name) { + let set = labels; + while (set) { + if (set['$' + name]) + report(parser, 132, name); + set = set['$']; + } + labels['$' + name] = 1; +} +function finishNode(parser, context, start, line, column, node) { + if (context & 2) { + node.start = start; + node.end = parser.startPos; + node.range = [start, parser.startPos]; + } + if (context & 4) { + node.loc = { + start: { + line, + column + }, + end: { + line: parser.startLine, + column: parser.startColumn + } + }; + if (parser.sourceFile) { + node.loc.source = parser.sourceFile; + } + } + return node; +} +function isEqualTagName(elementName) { + switch (elementName.type) { + case 'JSXIdentifier': + return elementName.name; + case 'JSXNamespacedName': + return elementName.namespace + ':' + elementName.name; + case 'JSXMemberExpression': + return isEqualTagName(elementName.object) + '.' + isEqualTagName(elementName.property); + } +} +function createArrowHeadParsingScope(parser, context, value) { + const scope = addChildScope(createScope(), 1024); + addBlockName(parser, context, scope, value, 1, 0); + return scope; +} +function recordScopeError(parser, type, ...params) { + const { index, line, column } = parser; + return { + type, + params, + index, + line, + column + }; +} +function createScope() { + return { + parent: void 0, + type: 2 + }; +} +function addChildScope(parent, type) { + return { + parent, + type, + scopeError: void 0 + }; +} +function addVarOrBlock(parser, context, scope, name, kind, origin) { + if (kind & 4) { + addVarName(parser, context, scope, name, kind); + } + else { + addBlockName(parser, context, scope, name, kind, origin); + } + if (origin & 64) { + declareUnboundVariable(parser, name); + } +} +function addBlockName(parser, context, scope, name, kind, origin) { + const value = scope['#' + name]; + if (value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + else if (context & 256 && + value & 64 && + origin & 2) ; + else { + report(parser, 140, name); + } + } + if (scope.type & 128 && + (scope.parent['#' + name] && (scope.parent['#' + name] & 2) === 0)) { + report(parser, 140, name); + } + if (scope.type & 1024 && value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + } + if (scope.type & 64) { + if (scope.parent['#' + name] & 768) + report(parser, 153, name); + } + scope['#' + name] = kind; +} +function addVarName(parser, context, scope, name, kind) { + let currentScope = scope; + while (currentScope && (currentScope.type & 256) === 0) { + const value = currentScope['#' + name]; + if (value & 248) { + if (context & 256 && + (context & 1024) === 0 && + ((kind & 128 && value & 68) || + (value & 128 && kind & 68))) ; + else { + report(parser, 140, name); + } + } + if (currentScope === scope) { + if (value & 1 && kind & 1) { + currentScope.scopeError = recordScopeError(parser, 140, name); + } + } + if (value & (512 | 256)) { + if ((value & 512) === 0 || + (context & 256) === 0 || + context & 1024) { + report(parser, 140, name); + } + } + currentScope['#' + name] = kind; + currentScope = currentScope.parent; + } +} +function declareUnboundVariable(parser, name) { + if (parser.exportedNames !== void 0 && name !== '') { + if (parser.exportedNames['#' + name]) { + report(parser, 141, name); + } + parser.exportedNames['#' + name] = 1; + } +} +function addBindingToExports(parser, name) { + if (parser.exportedBindings !== void 0 && name !== '') { + parser.exportedBindings['#' + name] = 1; + } +} +function pushComment(context, array) { + return function (type, value, start, end, loc) { + const comment = { + type, + value + }; + if (context & 2) { + comment.start = start; + comment.end = end; + comment.range = [start, end]; + } + if (context & 4) { + comment.loc = loc; + } + array.push(comment); + }; +} +function pushToken(context, array) { + return function (token, start, end, loc) { + const tokens = { + token + }; + if (context & 2) { + tokens.start = start; + tokens.end = end; + tokens.range = [start, end]; + } + if (context & 4) { + tokens.loc = loc; + } + array.push(tokens); + }; +} +function isValidIdentifier(context, t) { + if (context & (1024 | 2097152)) { + if (context & 2048 && t === 209008) + return false; + if (context & 2097152 && t === 241773) + return false; + return (t & 143360) === 143360 || (t & 12288) === 12288; + } + return ((t & 143360) === 143360 || + (t & 12288) === 12288 || + (t & 36864) === 36864); +} +function classifyIdentifier(parser, context, t, isArrow) { + if ((t & 537079808) === 537079808) { + if (context & 1024) + report(parser, 115); + if (isArrow) + parser.flags |= 512; + } + if (!isValidIdentifier(context, t)) + report(parser, 0); +} + +function create(source, sourceFile, onComment, onToken) { + return { + source, + flags: 0, + index: 0, + line: 1, + column: 0, + startPos: 0, + end: source.length, + tokenPos: 0, + startColumn: 0, + colPos: 0, + linePos: 1, + startLine: 1, + sourceFile, + tokenValue: '', + token: 1048576, + tokenRaw: '', + tokenRegExp: void 0, + currentChar: source.charCodeAt(0), + exportedNames: [], + exportedBindings: [], + assignable: 1, + destructible: 0, + onComment, + onToken, + leadingDecorators: [] + }; +} +function parseSource(source, options, context) { + let sourceFile = ''; + let onComment; + let onToken; + if (options != null) { + if (options.module) + context |= 2048 | 1024; + if (options.next) + context |= 1; + if (options.loc) + context |= 4; + if (options.ranges) + context |= 2; + if (options.uniqueKeyInPattern) + context |= -2147483648; + if (options.lexical) + context |= 64; + if (options.webcompat) + context |= 256; + if (options.directives) + context |= 8 | 512; + if (options.globalReturn) + context |= 32; + if (options.raw) + context |= 512; + if (options.preserveParens) + context |= 128; + if (options.impliedStrict) + context |= 1024; + if (options.jsx) + context |= 16; + if (options.identifierPattern) + context |= 268435456; + if (options.specDeviation) + context |= 536870912; + if (options.source) + sourceFile = options.source; + if (options.onComment != null) { + onComment = Array.isArray(options.onComment) ? pushComment(context, options.onComment) : options.onComment; + } + if (options.onToken != null) { + onToken = Array.isArray(options.onToken) ? pushToken(context, options.onToken) : options.onToken; + } + } + const parser = create(source, sourceFile, onComment, onToken); + if (context & 1) + skipHashBang(parser); + const scope = context & 64 ? createScope() : void 0; + let body = []; + let sourceType = 'script'; + if (context & 2048) { + sourceType = 'module'; + body = parseModuleItemList(parser, context | 8192, scope); + if (scope) { + for (const key in parser.exportedBindings) { + if (key[0] === '#' && !scope[key]) + report(parser, 142, key.slice(1)); + } + } + } + else { + body = parseStatementList(parser, context | 8192, scope); + } + const node = { + type: 'Program', + sourceType, + body + }; + if (context & 2) { + node.start = 0; + node.end = source.length; + node.range = [0, source.length]; + } + if (context & 4) { + node.loc = { + start: { line: 1, column: 0 }, + end: { line: parser.line, column: parser.column } + }; + if (parser.sourceFile) + node.loc.source = sourceFile; + } + return node; +} +function parseStatementList(parser, context, scope) { + nextToken(parser, context | 32768 | 1073741824); + const statements = []; + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, linePos, colPos, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) + context |= 1024; + statements.push(parseDirective(parser, context, expr, token, tokenPos, linePos, colPos)); + } + while (parser.token !== 1048576) { + statements.push(parseStatementListItem(parser, context, scope, 4, {})); + } + return statements; +} +function parseModuleItemList(parser, context, scope) { + nextToken(parser, context | 32768); + const statements = []; + if (context & 8) { + while (parser.token === 134283267) { + const { tokenPos, linePos, colPos, token } = parser; + statements.push(parseDirective(parser, context, parseLiteral(parser, context), token, tokenPos, linePos, colPos)); + } + } + while (parser.token !== 1048576) { + statements.push(parseModuleItem(parser, context, scope)); + } + return statements; +} +function parseModuleItem(parser, context, scope) { + parser.leadingDecorators = parseDecorators(parser, context); + let moduleItem; + switch (parser.token) { + case 20566: + moduleItem = parseExportDeclaration(parser, context, scope); + break; + case 86108: + moduleItem = parseImportDeclaration(parser, context, scope); + break; + default: + moduleItem = parseStatementListItem(parser, context, scope, 4, {}); + } + if (parser.leadingDecorators.length) { + report(parser, 164); + } + return moduleItem; +} +function parseStatementListItem(parser, context, scope, origin, labels) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + switch (parser.token) { + case 86106: + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 0, start, line, column); + case 133: + case 86096: + return parseClassDeclaration(parser, context, scope, 0, start, line, column); + case 86092: + return parseLexicalDeclaration(parser, context, scope, 16, 0, start, line, column); + case 241739: + return parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column); + case 20566: + report(parser, 100, 'export'); + case 86108: + nextToken(parser, context); + switch (parser.token) { + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 100, 'import'); + } + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 1, start, line, column); + default: + return parseStatement(parser, context, scope, origin, labels, 1, start, line, column); + } +} +function parseStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + switch (parser.token) { + case 86090: + return parseVariableStatement(parser, context, scope, 0, start, line, column); + case 20574: + return parseReturnStatement(parser, context, start, line, column); + case 20571: + return parseIfStatement(parser, context, scope, labels, start, line, column); + case 20569: + return parseForStatement(parser, context, scope, labels, start, line, column); + case 20564: + return parseDoWhileStatement(parser, context, scope, labels, start, line, column); + case 20580: + return parseWhileStatement(parser, context, scope, labels, start, line, column); + case 86112: + return parseSwitchStatement(parser, context, scope, labels, start, line, column); + case 1074790417: + return parseEmptyStatement(parser, context, start, line, column); + case 2162700: + return parseBlock(parser, context, scope ? addChildScope(scope, 2) : scope, labels, start, line, column); + case 86114: + return parseThrowStatement(parser, context, start, line, column); + case 20557: + return parseBreakStatement(parser, context, labels, start, line, column); + case 20561: + return parseContinueStatement(parser, context, labels, start, line, column); + case 20579: + return parseTryStatement(parser, context, scope, labels, start, line, column); + case 20581: + return parseWithStatement(parser, context, scope, labels, start, line, column); + case 20562: + return parseDebuggerStatement(parser, context, start, line, column); + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 0, start, line, column); + case 20559: + report(parser, 156); + case 20568: + report(parser, 157); + case 86106: + report(parser, context & 1024 + ? 73 + : (context & 256) < 1 + ? 75 + : 74); + case 86096: + report(parser, 76); + default: + return parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column); + } +} +function parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { tokenValue, token } = parser; + let expr; + switch (token) { + case 241739: + expr = parseIdentifier(parser, context, 0); + if (context & 1024) + report(parser, 82); + if (parser.token === 69271571) + report(parser, 81); + break; + default: + expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + if (token & 143360 && parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, allowFuncDecl, start, line, column); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseBlock(parser, context, scope, labels, start, line, column) { + const body = []; + consume(parser, context | 32768, 2162700); + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 2, { $: labels })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'BlockStatement', + body + }); +} +function parseReturnStatement(parser, context, start, line, column) { + if ((context & 32) < 1 && context & 8192) + report(parser, 89); + nextToken(parser, context | 32768); + const argument = parser.flags & 1 || parser.token & 1048576 + ? null + : parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.column); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ReturnStatement', + argument + }); +} +function parseExpressionStatement(parser, context, expression, start, line, column) { + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); +} +function parseLabelledStatement(parser, context, scope, origin, labels, value, expr, token, allowFuncDecl, start, line, column) { + validateBindingIdentifier(parser, context, 0, token, 1); + validateAndDeclareLabel(parser, labels, value); + nextToken(parser, context | 32768); + const body = allowFuncDecl && + (context & 1024) < 1 && + context & 256 && + parser.token === 86106 + ? parseFunctionDeclaration(parser, context, addChildScope(scope, 2), origin, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseStatement(parser, context, scope, origin, labels, allowFuncDecl, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'LabeledStatement', + label: expr, + body + }); +} +function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, 1, start, line, column); + } + const asyncNewLine = parser.flags & 1; + if (!asyncNewLine) { + if (parser.token === 86106) { + if (!allowFuncDecl) + report(parser, 119); + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 1, start, line, column); + } + if ((parser.token & 143360) === 143360) { + expr = parseAsyncArrowAfterIdent(parser, context, 1, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + } + if (parser.token === 67174411) { + expr = parseAsyncArrowOrCallExpression(parser, context, expr, 1, 1, 0, asyncNewLine, start, line, column); + } + else { + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + expr = parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, 0, 1, 0, start, line, column); + } + parser.assignable = 1; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + parser.assignable = 1; + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseDirective(parser, context, expression, token, start, line, column) { + if (token !== 1074790417) { + parser.assignable = 2; + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + if (parser.token !== 1074790417) { + expression = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expression); + if (parser.token === 18) { + expression = parseSequenceExpression(parser, context, 0, start, line, column, expression); + } + } + matchOrInsertSemicolon(parser, context | 32768); + } + return context & 8 && expression.type === 'Literal' && typeof expression.value === 'string' + ? finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression, + directive: expression.raw.slice(1, -1) + }) + : finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); +} +function parseEmptyStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'EmptyStatement' + }); +} +function parseThrowStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + if (parser.flags & 1) + report(parser, 87); + const argument = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ThrowStatement', + argument + }); +} +function parseIfStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + parser.assignable = 1; + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.colPos); + consume(parser, context | 32768, 16); + const consequent = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + let alternate = null; + if (parser.token === 20565) { + nextToken(parser, context | 32768); + alternate = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + } + return finishNode(parser, context, start, line, column, { + type: 'IfStatement', + test, + consequent, + alternate + }); +} +function parseConsequentOrAlternative(parser, context, scope, labels, start, line, column) { + return context & 1024 || + (context & 256) < 1 || + parser.token !== 86106 + ? parseStatement(parser, context, scope, 0, { $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseFunctionDeclaration(parser, context, addChildScope(scope, 2), 0, 0, 0, 0, start, line, column); +} +function parseSwitchStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const discriminant = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + consume(parser, context, 2162700); + const cases = []; + let seenDefault = 0; + if (scope) + scope = addChildScope(scope, 8); + while (parser.token !== 1074790415) { + const { tokenPos, linePos, colPos } = parser; + let test = null; + const consequent = []; + if (consumeOpt(parser, context | 32768, 20558)) { + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + consume(parser, context | 32768, 20563); + if (seenDefault) + report(parser, 86); + seenDefault = 1; + } + consume(parser, context | 32768, 21); + while (parser.token !== 20558 && + parser.token !== 1074790415 && + parser.token !== 20563) { + consequent.push(parseStatementListItem(parser, context | 4096, scope, 2, { + $: labels + })); + } + cases.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'SwitchCase', + test, + consequent + })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'SwitchStatement', + discriminant, + cases + }); +} +function parseWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'WhileStatement', + test, + body + }); +} +function parseIterationStatementBody(parser, context, scope, labels) { + return parseStatement(parser, ((context | 134217728) ^ 134217728) | 131072, scope, 0, { loop: 1, $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos); +} +function parseContinueStatement(parser, context, labels, start, line, column) { + if ((context & 131072) < 1) + report(parser, 65); + nextToken(parser, context); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 1)) + report(parser, 134, tokenValue); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ContinueStatement', + label + }); +} +function parseBreakStatement(parser, context, labels, start, line, column) { + nextToken(parser, context | 32768); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 0)) + report(parser, 134, tokenValue); + } + else if ((context & (4096 | 131072)) < 1) { + report(parser, 66); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'BreakStatement', + label + }); +} +function parseWithStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + if (context & 1024) + report(parser, 88); + consume(parser, context | 32768, 67174411); + const object = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseStatement(parser, context, scope, 2, labels, 0, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'WithStatement', + object, + body + }); +} +function parseDebuggerStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'DebuggerStatement' + }); +} +function parseTryStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const firstScope = scope ? addChildScope(scope, 32) : void 0; + const block = parseBlock(parser, context, firstScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + const { tokenPos, linePos, colPos } = parser; + const handler = consumeOpt(parser, context | 32768, 20559) + ? parseCatchBlock(parser, context, scope, labels, tokenPos, linePos, colPos) + : null; + let finalizer = null; + if (parser.token === 20568) { + nextToken(parser, context | 32768); + const finalizerScope = firstScope ? addChildScope(scope, 4) : void 0; + finalizer = parseBlock(parser, context, finalizerScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + } + if (!handler && !finalizer) { + report(parser, 85); + } + return finishNode(parser, context, start, line, column, { + type: 'TryStatement', + block, + handler, + finalizer + }); +} +function parseCatchBlock(parser, context, scope, labels, start, line, column) { + let param = null; + let additionalScope = scope; + if (consumeOpt(parser, context, 67174411)) { + if (scope) + scope = addChildScope(scope, 4); + param = parseBindingPattern(parser, context, scope, (parser.token & 2097152) === 2097152 + ? 256 + : 512, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 18) { + report(parser, 83); + } + else if (parser.token === 1077936157) { + report(parser, 84); + } + consume(parser, context | 32768, 16); + if (scope) + additionalScope = addChildScope(scope, 64); + } + const body = parseBlock(parser, context, additionalScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'CatchClause', + param, + body + }); +} +function parseDoWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const body = parseIterationStatementBody(parser, context, scope, labels); + consume(parser, context, 20580); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + consumeOpt(parser, context, 1074790417); + return finishNode(parser, context, start, line, column, { + type: 'DoWhileStatement', + body, + test + }); +} +function parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + const declarations = parseVariableDeclarationList(parser, context, scope, 8, 0); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'let', + declarations + }); + } + parser.assignable = 1; + if (context & 1024) + report(parser, 82); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, {}, tokenValue, expr, token, 0, start, line, column); + } + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + expr = parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + else { + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + } + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseLexicalDeclaration(parser, context, scope, kind, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, kind, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: kind & 8 ? 'let' : 'const', + declarations + }); +} +function parseVariableStatement(parser, context, scope, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, 4, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'var', + declarations + }); +} +function parseVariableDeclarationList(parser, context, scope, kind, origin) { + let bindingCount = 1; + const list = [parseVariableDeclaration(parser, context, scope, kind, origin)]; + while (consumeOpt(parser, context, 18)) { + bindingCount++; + list.push(parseVariableDeclaration(parser, context, scope, kind, origin)); + } + if (bindingCount > 1 && origin & 32 && parser.token & 262144) { + report(parser, 58, KeywordDescTable[parser.token & 255]); + } + return list; +} +function parseVariableDeclaration(parser, context, scope, kind, origin) { + const { token, tokenPos, linePos, colPos } = parser; + let init = null; + const id = parseBindingPattern(parser, context, scope, kind, origin, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + init = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (origin & 32 || (token & 2097152) < 1) { + if (parser.token === 274549 || + (parser.token === 8738868 && + (token & 2097152 || (kind & 4) < 1 || context & 1024))) { + reportMessageAt(tokenPos, parser.line, parser.index - 3, 57, parser.token === 274549 ? 'of' : 'in'); + } + } + } + else if ((kind & 16 || (token & 2097152) > 0) && + (parser.token & 262144) !== 262144) { + report(parser, 56, kind & 16 ? 'const' : 'destructuring'); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclarator', + id, + init + }); +} +function parseForStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + const forAwait = (context & 4194304) > 0 && consumeOpt(parser, context, 209008); + consume(parser, context | 32768, 67174411); + if (scope) + scope = addChildScope(scope, 1); + let test = null; + let update = null; + let destructible = 0; + let init = null; + let isVarDecl = parser.token === 86090 || parser.token === 241739 || parser.token === 86092; + let right; + const { token, tokenPos, linePos, colPos } = parser; + if (isVarDecl) { + if (token === 241739) { + init = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + if (parser.token === 8738868) { + if (context & 1024) + report(parser, 64); + } + else { + init = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclaration', + kind: 'let', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 8, 32) + }); + } + parser.assignable = 1; + } + else if (context & 1024) { + report(parser, 64); + } + else { + isVarDecl = false; + parser.assignable = 1; + init = parseMemberOrUpdateExpression(parser, context, init, 0, 0, tokenPos, linePos, colPos); + if (parser.token === 274549) + report(parser, 111); + } + } + else { + nextToken(parser, context); + init = finishNode(parser, context, tokenPos, linePos, colPos, token === 86090 + ? { + type: 'VariableDeclaration', + kind: 'var', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 4, 32) + } + : { + type: 'VariableDeclaration', + kind: 'const', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 16, 32) + }); + parser.assignable = 1; + } + } + else if (token === 1074790417) { + if (forAwait) + report(parser, 79); + } + else if ((token & 2097152) === 2097152) { + init = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos); + destructible = parser.destructible; + if (context & 256 && destructible & 64) { + report(parser, 60); + } + parser.assignable = + destructible & 16 ? 2 : 1; + init = parseMemberOrUpdateExpression(parser, context | 134217728, init, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + init = parseLeftHandSideExpression(parser, context | 134217728, 1, 0, 1, tokenPos, linePos, colPos); + } + if ((parser.token & 262144) === 262144) { + if (parser.token === 274549) { + if (parser.assignable & 2) + report(parser, 77, forAwait ? 'await' : 'of'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + right = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForOfStatement', + left: init, + right, + body, + await: forAwait + }); + } + if (parser.assignable & 2) + report(parser, 77, 'in'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + if (forAwait) + report(parser, 79); + right = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForInStatement', + body, + left: init, + right + }); + } + if (forAwait) + report(parser, 79); + if (!isVarDecl) { + if (destructible & 8 && parser.token !== 1077936157) { + report(parser, 77, 'loop'); + } + init = parseAssignmentExpression(parser, context | 134217728, 0, 0, tokenPos, linePos, colPos, init); + } + if (parser.token === 18) + init = parseSequenceExpression(parser, context, 0, parser.tokenPos, parser.linePos, parser.colPos, init); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 1074790417) + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 16) + update = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForStatement', + init, + test, + update, + body + }); +} +function parseRestrictedIdentifier(parser, context, scope) { + if (!isValidIdentifier(context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) + report(parser, 115); + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 8, 0); + return parseIdentifier(parser, context, 0); +} +function parseImportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context); + let source = null; + const { tokenPos, linePos, colPos } = parser; + let specifiers = []; + if (parser.token === 134283267) { + source = parseLiteral(parser, context); + } + else { + if (parser.token & 143360) { + const local = parseRestrictedIdentifier(parser, context, scope); + specifiers = [ + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportDefaultSpecifier', + local + }) + ]; + if (consumeOpt(parser, context, 18)) { + switch (parser.token) { + case 8457014: + specifiers.push(parseImportNamespaceSpecifier(parser, context, scope)); + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + default: + report(parser, 104); + } + } + } + else { + switch (parser.token) { + case 8457014: + specifiers = [parseImportNamespaceSpecifier(parser, context, scope)]; + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + source = parseModuleSpecifier(parser, context); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ImportDeclaration', + specifiers, + source + }); +} +function parseImportNamespaceSpecifier(parser, context, scope) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + consume(parser, context, 77934); + if ((parser.token & 134217728) === 134217728) { + reportMessageAt(tokenPos, parser.line, parser.index, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportNamespaceSpecifier', + local: parseRestrictedIdentifier(parser, context, scope) + }); +} +function parseModuleSpecifier(parser, context) { + consumeOpt(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Import'); + return parseLiteral(parser, context); +} +function parseImportSpecifierOrNamedImports(parser, context, scope, specifiers) { + nextToken(parser, context); + while (parser.token & 143360) { + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + const imported = parseIdentifier(parser, context, 0); + let local; + if (consumeOpt(parser, context, 77934)) { + if ((parser.token & 134217728) === 134217728 || parser.token === 18) { + report(parser, 103); + } + else { + validateBindingIdentifier(parser, context, 16, parser.token, 0); + } + tokenValue = parser.tokenValue; + local = parseIdentifier(parser, context, 0); + } + else { + validateBindingIdentifier(parser, context, 16, token, 0); + local = imported; + } + if (scope) + addBlockName(parser, context, scope, tokenValue, 8, 0); + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportSpecifier', + local, + imported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + return specifiers; +} +function parseImportMetaDeclaration(parser, context, start, line, column) { + let expr = parseImportMetaExpression(parser, context, finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: 'import' + }), start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseImportCallDeclaration(parser, context, start, line, column) { + let expr = parseImportExpression(parser, context, 0, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseExportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context | 32768); + const specifiers = []; + let declaration = null; + let source = null; + let key; + if (consumeOpt(parser, context | 32768, 20563)) { + switch (parser.token) { + case 86106: { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + } + case 133: + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 1, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + declaration = parseIdentifier(parser, context, 0); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 1, tokenPos, linePos, colPos); + } + else { + if (parser.token === 67174411) { + declaration = parseAsyncArrowOrCallExpression(parser, context, declaration, 1, 1, 0, flags, tokenPos, linePos, colPos); + declaration = parseMemberOrUpdateExpression(parser, context, declaration, 0, 0, tokenPos, linePos, colPos); + declaration = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, declaration); + } + else if (parser.token & 143360) { + if (scope) + scope = createArrowHeadParsingScope(parser, context, parser.tokenValue); + declaration = parseIdentifier(parser, context, 0); + declaration = parseArrowFunctionExpression(parser, context, scope, [declaration], 1, tokenPos, linePos, colPos); + } + } + } + break; + default: + declaration = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + } + if (scope) + declareUnboundVariable(parser, 'default'); + return finishNode(parser, context, start, line, column, { + type: 'ExportDefaultDeclaration', + declaration + }); + } + switch (parser.token) { + case 8457014: { + nextToken(parser, context); + let exported = null; + const isNamedDeclaration = consumeOpt(parser, context, 77934); + if (isNamedDeclaration) { + if (scope) + declareUnboundVariable(parser, parser.tokenValue); + exported = parseIdentifier(parser, context, 0); + } + consume(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExportAllDeclaration', + source, + exported + }); + } + case 2162700: { + nextToken(parser, context); + const tmpExportedNames = []; + const tmpExportedBindings = []; + while (parser.token & 143360) { + const { tokenPos, tokenValue, linePos, colPos } = parser; + const local = parseIdentifier(parser, context, 0); + let exported; + if (parser.token === 77934) { + nextToken(parser, context); + if ((parser.token & 134217728) === 134217728) { + report(parser, 103); + } + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(tokenValue); + } + exported = parseIdentifier(parser, context, 0); + } + else { + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(parser.tokenValue); + } + exported = local; + } + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ExportSpecifier', + local, + exported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + if (consumeOpt(parser, context, 12404)) { + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + } + else if (scope) { + let i = 0; + let iMax = tmpExportedNames.length; + for (; i < iMax; i++) { + declareUnboundVariable(parser, tmpExportedNames[i]); + } + i = 0; + iMax = tmpExportedBindings.length; + for (; i < iMax; i++) { + addBindingToExports(parser, tmpExportedBindings[i]); + } + } + matchOrInsertSemicolon(parser, context | 32768); + break; + } + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 2, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86106: + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 241739: + declaration = parseLexicalDeclaration(parser, context, scope, 8, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86092: + declaration = parseLexicalDeclaration(parser, context, scope, 16, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86090: + declaration = parseVariableStatement(parser, context, scope, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + if ((parser.flags & 1) < 1 && parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 1, tokenPos, linePos, colPos); + if (scope) { + key = declaration.id ? declaration.id.name : ''; + declareUnboundVariable(parser, key); + } + break; + } + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, start, line, column, { + type: 'ExportNamedDeclaration', + declaration, + specifiers, + source + }); +} +function parseExpression(parser, context, canAssign, isPattern, inGroup, start, line, column) { + let expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, isPattern, inGroup, 1, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + return parseAssignmentExpression(parser, context, inGroup, 0, start, line, column, expr); +} +function parseSequenceExpression(parser, context, inGroup, start, line, column, expr) { + const expressions = [expr]; + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + return finishNode(parser, context, start, line, column, { + type: 'SequenceExpression', + expressions + }); +} +function parseExpressions(parser, context, inGroup, canAssign, start, line, column) { + const expr = parseExpression(parser, context, canAssign, 0, inGroup, start, line, column); + return parser.token === 18 + ? parseSequenceExpression(parser, context, inGroup, start, line, column, expr) + : expr; +} +function parseAssignmentExpression(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + if ((token & 4194304) === 4194304) { + if (parser.assignable & 2) + report(parser, 24); + if ((!isPattern && token === 1077936157 && left.type === 'ArrayExpression') || + left.type === 'ObjectExpression') { + reinterpretToPattern(parser, left); + } + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + } + if ((token & 8454144) === 8454144) { + left = parseBinaryExpression(parser, context, inGroup, start, line, column, 4, token, left); + } + if (consumeOpt(parser, context | 32768, 22)) { + left = parseConditionalExpression(parser, context, left, start, line, column); + } + return left; +} +function parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + parser.assignable = 2; + return left; +} +function parseConditionalExpression(parser, context, test, start, line, column) { + const consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 21); + parser.assignable = 1; + const alternate = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ConditionalExpression', + test, + consequent, + alternate + }); +} +function parseBinaryExpression(parser, context, inGroup, start, line, column, minPrec, operator, left) { + const bit = -((context & 134217728) > 0) & 8738868; + let t; + let prec; + parser.assignable = 2; + while (parser.token & 8454144) { + t = parser.token; + prec = t & 3840; + if ((t & 524288 && operator & 268435456) || (operator & 524288 && t & 268435456)) { + report(parser, 159); + } + if (prec + ((t === 8457273) << 8) - ((bit === t) << 12) <= minPrec) + break; + nextToken(parser, context | 32768); + left = finishNode(parser, context, start, line, column, { + type: t & 524288 || t & 268435456 ? 'LogicalExpression' : 'BinaryExpression', + left, + right: parseBinaryExpression(parser, context, inGroup, parser.tokenPos, parser.linePos, parser.colPos, prec, t, parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos)), + operator: KeywordDescTable[t & 255] + }); + } + if (parser.token === 1077936157) + report(parser, 24); + return left; +} +function parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup) { + if (!isLHS) + report(parser, 0); + const unaryOperator = parser.token; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + if (context & 1024 && unaryOperator === 16863278) { + if (arg.type === 'Identifier') { + report(parser, 117); + } + else if (isPropertyWithPrivateFieldKey(arg)) { + report(parser, 123); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UnaryExpression', + operator: KeywordDescTable[unaryOperator & 255], + argument: arg, + prefix: true + }); +} +function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column) { + const { token } = parser; + const expr = parseIdentifier(parser, context, isPattern); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + return parseFunctionExpression(parser, context, 1, inGroup, start, line, column); + } + if ((parser.token & 143360) === 143360) { + if (!isLHS) + report(parser, 0); + return parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column); + } + } + if (!inNew && parser.token === 67174411) { + return parseAsyncArrowOrCallExpression(parser, context, expr, canAssign, 1, 0, flags, start, line, column); + } + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + if (inNew) + report(parser, 48); + return parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + return expr; +} +function parseYieldExpression(parser, context, inGroup, canAssign, start, line, column) { + if (inGroup) + parser.destructible |= 256; + if (context & 2097152) { + nextToken(parser, context | 32768); + if (context & 8388608) + report(parser, 30); + if (!canAssign) + report(parser, 24); + if (parser.token === 22) + report(parser, 120); + let argument = null; + let delegate = false; + if ((parser.flags & 1) < 1) { + delegate = consumeOpt(parser, context | 32768, 8457014); + if (parser.token & (12288 | 65536) || delegate) { + argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'YieldExpression', + argument, + delegate + }); + } + if (context & 1024) + report(parser, 94, 'yield'); + return parseIdentifierOrArrow(parser, context, start, line, column); +} +function parseAwaitExpression(parser, context, inNew, inGroup, start, line, column) { + if (inGroup) + parser.destructible |= 128; + if (context & 4194304 || (context & 2048 && context & 8192)) { + if (inNew) + report(parser, 0); + if (context & 8388608) { + reportMessageAt(parser.index, parser.line, parser.index, 29); + } + nextToken(parser, context | 32768); + const argument = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'AwaitExpression', + argument + }); + } + if (context & 2048) + report(parser, 95); + return parseIdentifierOrArrow(parser, context, start, line, column); +} +function parseFunctionBody(parser, context, scope, origin, firstRestricted, scopeError) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + const body = []; + const prevContext = context; + if (parser.token !== 1074790415) { + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) { + context |= 1024; + if (parser.flags & 128) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 63); + } + if (parser.flags & 64) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 8); + } + } + body.push(parseDirective(parser, context, expr, token, tokenPos, parser.linePos, parser.colPos)); + } + if (context & 1024) { + if (firstRestricted) { + if ((firstRestricted & 537079808) === 537079808) { + report(parser, 115); + } + if ((firstRestricted & 36864) === 36864) { + report(parser, 38); + } + } + if (parser.flags & 512) + report(parser, 115); + if (parser.flags & 256) + report(parser, 114); + } + if (context & 64 && + scope && + scopeError !== void 0 && + (prevContext & 1024) < 1 && + (context & 8192) < 1) { + reportScopeError(scopeError); + } + } + parser.flags = + (parser.flags | 512 | 256 | 64) ^ + (512 | 256 | 64); + parser.destructible = (parser.destructible | 256) ^ 256; + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 4, {})); + } + consume(parser, origin & (16 | 8) ? context | 32768 : context, 1074790415); + parser.flags &= ~(128 | 64); + if (parser.token === 1077936157) + report(parser, 24); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'BlockStatement', + body + }); +} +function parseSuperExpression(parser, context, start, line, column) { + nextToken(parser, context); + switch (parser.token) { + case 67108991: + report(parser, 161); + case 67174411: { + if ((context & 524288) < 1) + report(parser, 26); + if (context & 16384) + report(parser, 143); + parser.assignable = 2; + break; + } + case 69271571: + case 67108877: { + if ((context & 262144) < 1) + report(parser, 27); + if (context & 16384) + report(parser, 143); + parser.assignable = 1; + break; + } + default: + report(parser, 28, 'super'); + } + return finishNode(parser, context, start, line, column, { type: 'Super' }); +} +function parseLeftHandSideExpression(parser, context, canAssign, inGroup, isLHS, start, line, column) { + const expression = parsePrimaryExpression(parser, context, 2, 0, canAssign, 0, inGroup, isLHS, start, line, column); + return parseMemberOrUpdateExpression(parser, context, expression, inGroup, 0, start, line, column); +} +function parseUpdateExpression(parser, context, expr, start, line, column) { + if (parser.assignable & 2) + report(parser, 52); + const { token } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: expr, + operator: KeywordDescTable[token & 255], + prefix: false + }); +} +function parseMemberOrUpdateExpression(parser, context, expr, inGroup, inChain, start, line, column) { + if ((parser.token & 33619968) === 33619968 && (parser.flags & 1) < 1) { + expr = parseUpdateExpression(parser, context, expr, start, line, column); + } + else if ((parser.token & 67108864) === 67108864) { + context = (context | 134217728 | 8192) ^ (134217728 | 8192); + switch (parser.token) { + case 67108877: { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }); + break; + } + case 69271571: { + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67174411: { + if ((parser.flags & 1024) === 1024) { + parser.flags = (parser.flags | 1024) ^ 1024; + return expr; + } + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + const args = parseArguments(parser, context, inGroup); + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67108991: { + nextToken(parser, context); + parser.flags |= 2048; + parser.assignable = 2; + expr = parseOptionalChain(parser, context, expr, start, line, column); + break; + } + default: + if ((parser.flags & 2048) === 2048) { + report(parser, 160); + } + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 1, start, line, column); + } + if (inChain === 0 && (parser.flags & 2048) === 2048) { + parser.flags = (parser.flags | 2048) ^ 2048; + expr = finishNode(parser, context, start, line, column, { + type: 'ChainExpression', + expression: expr + }); + } + return expr; +} +function parseOptionalChain(parser, context, expr, start, line, column) { + let restoreHasOptionalChaining = false; + let node; + if (parser.token === 69271571 || parser.token === 67174411) { + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + } + if (parser.token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, 0, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + optional: true, + property + }); + } + else if (parser.token === 67174411) { + const args = parseArguments(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args, + optional: true + }); + } + else { + if ((parser.token & (143360 | 4096)) < 1) + report(parser, 154); + const property = parseIdentifier(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + optional: true, + property + }); + } + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + return node; +} +function parsePropertyOrPrivatePropertyName(parser, context) { + if ((parser.token & (143360 | 4096)) < 1 && parser.token !== 131) { + report(parser, 154); + } + return context & 1 && parser.token === 131 + ? parsePrivateIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + : parseIdentifier(parser, context, 0); +} +function parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column) { + if (inNew) + report(parser, 53); + if (!isLHS) + report(parser, 0); + const { token } = parser; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.assignable & 2) { + report(parser, 52); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: arg, + operator: KeywordDescTable[token & 255], + prefix: true + }); +} +function parsePrimaryExpression(parser, context, kind, inNew, canAssign, isPattern, inGroup, isLHS, start, line, column) { + if ((parser.token & 143360) === 143360) { + switch (parser.token) { + case 209008: + return parseAwaitExpression(parser, context, inNew, inGroup, start, line, column); + case 241773: + return parseYieldExpression(parser, context, inGroup, canAssign, start, line, column); + case 209007: + return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column); + } + const { token, tokenValue } = parser; + const expr = parseIdentifier(parser, context | 65536, isPattern); + if (parser.token === 10) { + if (!isLHS) + report(parser, 0); + classifyIdentifier(parser, context, token, 1); + return parseArrowFromIdentifier(parser, context, tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + if (context & 16384 && token === 537079928) + report(parser, 126); + if (token === 241739) { + if (context & 1024) + report(parser, 109); + if (kind & (8 | 16)) + report(parser, 97); + } + parser.assignable = + context & 1024 && (token & 537079808) === 537079808 + ? 2 + : 1; + return expr; + } + if ((parser.token & 134217728) === 134217728) { + return parseLiteral(parser, context); + } + switch (parser.token) { + case 33619995: + case 33619996: + return parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column); + case 16863278: + case 16842800: + case 16842801: + case 25233970: + case 25233971: + case 16863277: + case 16863279: + return parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup); + case 86106: + return parseFunctionExpression(parser, context, 0, inGroup, start, line, column); + case 2162700: + return parseObjectLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 69271571: + return parseArrayLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 67174411: + return parseParenthesizedExpression(parser, context, canAssign, 1, 0, start, line, column); + case 86021: + case 86022: + case 86023: + return parseNullOrTrueOrFalseLiteral(parser, context, start, line, column); + case 86113: + return parseThisExpression(parser, context); + case 65540: + return parseRegExpLiteral(parser, context, start, line, column); + case 133: + case 86096: + return parseClassExpression(parser, context, inGroup, start, line, column); + case 86111: + return parseSuperExpression(parser, context, start, line, column); + case 67174409: + return parseTemplateLiteral(parser, context, start, line, column); + case 67174408: + return parseTemplate(parser, context); + case 86109: + return parseNewExpression(parser, context, inGroup, start, line, column); + case 134283389: + return parseBigIntLiteral(parser, context, start, line, column); + case 131: + return parsePrivateIdentifier(parser, context, start, line, column); + case 86108: + return parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column); + case 8456258: + if (context & 16) + return parseJSXRootElementOrFragment(parser, context, 1, start, line, column); + default: + if (isValidIdentifier(context, parser.token)) + return parseIdentifierOrArrow(parser, context, start, line, column); + report(parser, 28, KeywordDescTable[parser.token & 255]); + } +} +function parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column) { + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 67108877) { + return parseImportMetaExpression(parser, context, expr, start, line, column); + } + if (inNew) + report(parser, 137); + expr = parseImportExpression(parser, context, inGroup, start, line, column); + parser.assignable = 2; + return parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); +} +function parseImportMetaExpression(parser, context, meta, start, line, column) { + if ((context & 2048) === 0) + report(parser, 163); + nextToken(parser, context); + if (parser.token !== 143495 && parser.tokenValue !== 'meta') + report(parser, 28, KeywordDescTable[parser.token & 255]); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property: parseIdentifier(parser, context, 0) + }); +} +function parseImportExpression(parser, context, inGroup, start, line, column) { + consume(parser, context | 32768, 67174411); + if (parser.token === 14) + report(parser, 138); + const source = parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + return finishNode(parser, context, start, line, column, { + type: 'ImportExpression', + source + }); +} +function parseBigIntLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1), + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1) + }); +} +function parseTemplateLiteral(parser, context, start, line, column) { + parser.assignable = 2; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + const quasis = [parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)]; + return finishNode(parser, context, start, line, column, { + type: 'TemplateLiteral', + expressions: [], + quasis + }); +} +function parseTemplate(parser, context) { + context = (context | 134217728) ^ 134217728; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + const quasis = [ + parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false) + ]; + const expressions = [parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)]; + if (parser.token !== 1074790415) + report(parser, 80); + while ((parser.token = scanTemplateTail(parser, context)) !== 67174409) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false)); + expressions.push(parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + if (parser.token !== 1074790415) + report(parser, 80); + } + { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'TemplateLiteral', + expressions, + quasis + }); +} +function parseTemplateElement(parser, context, cooked, raw, start, line, col, tail) { + const node = finishNode(parser, context, start, line, col, { + type: 'TemplateElement', + value: { + cooked, + raw + }, + tail + }); + const tailSize = tail ? 1 : 2; + if (context & 2) { + node.start += 1; + node.range[0] += 1; + node.end -= tailSize; + node.range[1] -= tailSize; + } + if (context & 4) { + node.loc.start.column += 1; + node.loc.end.column -= tailSize; + } + return node; +} +function parseSpreadElement(parser, context, start, line, column) { + context = (context | 134217728) ^ 134217728; + consume(parser, context | 32768, 14); + const argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 1; + return finishNode(parser, context, start, line, column, { + type: 'SpreadElement', + argument + }); +} +function parseArguments(parser, context, inGroup) { + nextToken(parser, context | 32768); + const args = []; + if (parser.token === 16) { + nextToken(parser, context); + return args; + } + while (parser.token !== 16) { + if (parser.token === 14) { + args.push(parseSpreadElement(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + else { + args.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + if (parser.token !== 18) + break; + nextToken(parser, context | 32768); + if (parser.token === 16) + break; + } + consume(parser, context, 16); + return args; +} +function parseIdentifier(parser, context, isPattern) { + const { tokenValue, tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + return finishNode(parser, context, tokenPos, linePos, colPos, context & 268435456 + ? { + type: 'Identifier', + name: tokenValue, + pattern: isPattern === 1 + } + : { + type: 'Identifier', + name: tokenValue + }); +} +function parseLiteral(parser, context) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + if (parser.token === 134283389) { + return parseBigIntLiteral(parser, context, tokenPos, linePos, colPos); + } + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, context & 512 + ? { + type: 'Literal', + value: tokenValue, + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue + }); +} +function parseNullOrTrueOrFalseLiteral(parser, context, start, line, column) { + const raw = KeywordDescTable[parser.token & 255]; + const value = parser.token === 86023 ? null : raw === 'true'; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value, + raw + } + : { + type: 'Literal', + value + }); +} +function parseThisExpression(parser, context) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ThisExpression' + }); +} +function parseFunctionDeclaration(parser, context, scope, origin, allowGen, flags, isAsync, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = allowGen ? optionalBit(parser, context, 8457014) : 0; + let id = null; + let firstRestricted; + let functionScope = scope ? createScope() : void 0; + if (parser.token === 67174411) { + if ((flags & 1) < 1) + report(parser, 37, 'Function'); + } + else { + const kind = origin & 4 && ((context & 8192) < 1 || (context & 2048) < 1) + ? 4 + : 64; + validateFunctionName(parser, context | ((context & 3072) << 11), parser.token); + if (scope) { + if (kind & 4) { + addVarName(parser, context, scope, parser.tokenValue, kind); + } + else { + addBlockName(parser, context, scope, parser.tokenValue, kind, origin); + } + functionScope = addChildScope(functionScope, 256); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, parser.tokenValue); + } + } + } + firstRestricted = parser.token; + if (parser.token & 143360) { + id = parseIdentifier(parser, context, 0); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + ((isAsync * 2 + isGenerator) << 21) | + (isGenerator ? 0 : 1073741824); + if (scope) + functionScope = addChildScope(functionScope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, functionScope, 0, 1); + const body = parseFunctionBody(parser, (context | 8192 | 4096 | 131072) ^ + (8192 | 4096 | 131072), scope ? addChildScope(functionScope, 128) : functionScope, 8, firstRestricted, scope ? functionScope.scopeError : void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionDeclaration', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); +} +function parseFunctionExpression(parser, context, isAsync, inGroup, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = optionalBit(parser, context, 8457014); + const generatorAndAsyncFlags = (isAsync * 2 + isGenerator) << 21; + let id = null; + let firstRestricted; + let scope = context & 64 ? createScope() : void 0; + if ((parser.token & (143360 | 4096 | 36864)) > 0) { + validateFunctionName(parser, ((context | 0x1ec0000) ^ 0x1ec0000) | generatorAndAsyncFlags, parser.token); + if (scope) + scope = addChildScope(scope, 256); + firstRestricted = parser.token; + id = parseIdentifier(parser, context, 0); + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + generatorAndAsyncFlags | + (isGenerator ? 0 : 1073741824); + if (scope) + scope = addChildScope(scope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, scope, inGroup, 1); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192 | 4096 | 131072 | 16384), scope ? addChildScope(scope, 128) : scope, 0, firstRestricted, void 0); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); +} +function parseArrayLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseArrayExpressionOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; +} +function parseArrayExpressionOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context | 32768); + const elements = []; + let destructible = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 20) { + if (consumeOpt(parser, context | 32768, 18)) { + elements.push(null); + } + else { + let left; + const { token, tokenPos, linePos, colPos, tokenValue } = parser; + if (token & 143360) { + left = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + if (parser.assignable & 2) + report(parser, 24); + nextToken(parser, context | 32768); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + operator: '=', + left, + right + }); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else { + destructible |= + kind & 1 + ? 32 + : (kind & 2) < 1 + ? 16 + : 0; + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + if (parser.token !== 1077936157) + destructible |= 16; + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token & 2097152) { + left = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + parser.assignable = + parser.destructible & 16 + ? 2 + : 1; + if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 20, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos); + destructible |= parser.destructible; + if (parser.token !== 18 && parser.token !== 20) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + left = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + if ((kind & (2 | 1)) < 1 && token === 67174411) + destructible |= 16; + } + else if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === 67174411) { + destructible |= + parser.assignable & 1 && kind & (2 | 1) + ? 32 + : 16; + } + } + elements.push(left); + if (consumeOpt(parser, context | 32768, 18)) { + if (parser.token === 20) + break; + } + else + break; + } + } + consume(parser, context, 20); + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ArrayPattern' : 'ArrayExpression', + elements + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; +} +function parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node) { + if (parser.token !== 1077936157) + report(parser, 24); + nextToken(parser, context | 32768); + if (destructible & 16) + report(parser, 24); + if (!isPattern) + reinterpretToPattern(parser, node); + const { tokenPos, linePos, colPos } = parser; + const right = parseExpression(parser, context, 1, 1, inGroup, tokenPos, linePos, colPos); + parser.destructible = + ((destructible | 64 | 8) ^ + (8 | 64)) | + (parser.destructible & 128 ? 128 : 0) | + (parser.destructible & 256 ? 256 : 0); + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left: node, + right + } + : { + type: 'AssignmentExpression', + left: node, + operator: '=', + right + }); +} +function parseSpreadOrRestElement(parser, context, scope, closingToken, kind, origin, isAsync, inGroup, isPattern, start, line, column) { + nextToken(parser, context | 32768); + let argument = null; + let destructible = 0; + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + if (token & (4096 | 143360)) { + parser.assignable = 1; + argument = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + token = parser.token; + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== closingToken) { + if (parser.assignable & 2 && parser.token === 1077936157) + report(parser, 68); + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === closingToken || token === 18) { + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + else { + destructible |= 32; + } + destructible |= parser.destructible & 128 ? 128 : 0; + } + else if (token === closingToken) { + report(parser, 39); + } + else if (token & 2097152) { + argument = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + token = parser.token; + if (token !== 1077936157 && token !== closingToken && token !== 18) { + if (parser.destructible & 8) + report(parser, 68); + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + destructible |= parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + else { + if ((parser.token & 8454144) === 8454144) { + argument = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, argument); + } + if (consumeOpt(parser, context | 32768, 22)) { + argument = parseConditionalExpression(parser, context, argument, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + else { + destructible |= + closingToken === 1074790415 && token !== 1077936157 + ? 16 + : parser.destructible; + } + } + else { + destructible |= 32; + argument = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + const { token, tokenPos, linePos, colPos } = parser; + if (token === 1077936157 && token !== closingToken && token !== 18) { + if (parser.assignable & 2) + report(parser, 24); + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + destructible |= 16; + } + else { + if (token === 18) { + destructible |= 16; + } + else if (token !== closingToken) { + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + destructible |= + parser.assignable & 1 ? 32 : 16; + } + parser.destructible = destructible; + if (parser.token !== closingToken && parser.token !== 18) + report(parser, 155); + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + if (parser.token !== closingToken) { + if (kind & 1) + destructible |= isAsync ? 16 : 32; + if (consumeOpt(parser, context | 32768, 1077936157)) { + if (destructible & 16) + report(parser, 24); + reinterpretToPattern(parser, argument); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + argument = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left: argument, + right + } + : { + type: 'AssignmentExpression', + left: argument, + operator: '=', + right + }); + destructible = 16; + } + else { + destructible |= 16; + } + } + parser.destructible = destructible; + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); +} +function parseMethodDefinition(parser, context, kind, inGroup, start, line, column) { + const modifierFlags = (kind & 64) < 1 ? 31981568 : 14680064; + context = + ((context | modifierFlags) ^ modifierFlags) | + ((kind & 88) << 18) | + 100925440; + let scope = context & 64 ? addChildScope(createScope(), 512) : void 0; + const params = parseMethodFormals(parser, context | 8388608, scope, kind, 1, inGroup); + if (scope) + scope = addChildScope(scope, 128); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192), scope, 0, void 0, void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + params, + body, + async: (kind & 16) > 0, + generator: (kind & 8) > 0, + id: null + }); +} +function parseObjectLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseObjectLiteralOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; +} +function parseObjectLiteralOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context); + const properties = []; + let destructible = 0; + let prototypeCount = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 1074790415) { + const { token, tokenValue, linePos, colPos, tokenPos } = parser; + if (token === 14) { + properties.push(parseSpreadOrRestElement(parser, context, scope, 1074790415, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos)); + } + else { + let state = 0; + let key = null; + let value; + const t = parser.token; + if (parser.token & (143360 | 4096) || parser.token === 121) { + key = parseIdentifier(parser, context, 0); + if (parser.token === 18 || parser.token === 1074790415 || parser.token === 1077936157) { + state |= 4; + if (context & 1024 && (token & 537079808) === 537079808) { + destructible |= 16; + } + else { + validateBindingIdentifier(parser, context, kind, token, 0); + } + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + if (consumeOpt(parser, context | 32768, 1077936157)) { + destructible |= 8; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + value = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: context & -2147483648 ? Object.assign({}, key) : key, + right + }); + } + else { + destructible |= + (token === 209008 ? 128 : 0) | + (token === 121 ? 16 : 0); + value = context & -2147483648 ? Object.assign({}, key) : key; + } + } + else if (consumeOpt(parser, context | 32768, 21)) { + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + const tokenAfterColon = parser.token; + const valueAfterColon = parser.tokenValue; + destructible |= t === 121 ? 16 : 0; + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + destructible |= parser.destructible & 128 ? 128 : 0; + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if ((parser.token & 4194304) === 4194304) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token !== 1077936157) { + destructible |= 32; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 69271571) { + destructible |= 16; + if (token === 209007) + state |= 16; + state |= + (token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1) | 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token & (143360 | 4096)) { + destructible |= 16; + if (token === 121) + report(parser, 92); + if (token === 209007) { + if (parser.flags & 1) + report(parser, 128); + state |= 16; + } + key = parseIdentifier(parser, context, 0); + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 67174411) { + destructible |= 16; + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 8457014) { + destructible |= 16; + if (token === 12402 || token === 12403) { + report(parser, 40); + } + else if (token === 143483) { + report(parser, 92); + } + nextToken(parser, context); + state |= + 8 | 1 | (token === 209007 ? 16 : 0); + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + state |= 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if ((parser.token & 134217728) === 134217728) { + if (token === 209007) + state |= 16; + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + destructible |= 16; + key = parseLiteral(parser, context); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 129); + } + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + if (parser.token === 21) { + consume(parser, context | 32768, 21); + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token, tokenValue: valueAfterColon } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if (parser.token === 1077936157) { + if (parser.assignable & 2) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if ((parser.destructible & 8) !== 8) { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible = parser.assignable | 16; + } + else { + report(parser, 130); + } + } + else if (parser.token === 69271571) { + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.destructible & 256 ? 256 : 0; + state |= 2; + if (parser.token === 21) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos, tokenValue, token: tokenAfterColon } = parser; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if ((parser.token & 4194304) === 4194304) { + destructible |= + parser.assignable & 2 + ? 16 + : token === 1077936157 + ? 0 + : 32; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (destructible & 8) { + report(parser, 59); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = + parser.assignable & 2 ? destructible | 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, linePos, colPos); + destructible = 16; + } + else { + report(parser, 41); + } + } + else if (token === 8457014) { + consume(parser, context | 32768, 8457014); + state |= 8; + if (parser.token & 143360) { + const { token, line, index } = parser; + key = parseIdentifier(parser, context, 0); + state |= 1; + if (parser.token === 67174411) { + destructible |= 16; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + reportMessageAt(index, line, index, token === 209007 + ? 43 + : token === 12402 || parser.token === 12403 + ? 42 + : 44, KeywordDescTable[token & 255]); + } + } + else if ((parser.token & 134217728) === 134217728) { + destructible |= 16; + key = parseLiteral(parser, context); + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + destructible |= 16; + state |= 2 | 1; + key = parseComputedPropertyName(parser, context, inGroup); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 122); + } + } + else { + report(parser, 28, KeywordDescTable[token & 255]); + } + destructible |= parser.destructible & 128 ? 128 : 0; + parser.destructible = destructible; + properties.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'Property', + key: key, + value, + kind: !(state & 768) ? 'init' : state & 512 ? 'set' : 'get', + computed: (state & 2) > 0, + method: (state & 1) > 0, + shorthand: (state & 4) > 0 + })); + } + destructible |= parser.destructible; + if (parser.token !== 18) + break; + nextToken(parser, context); + } + consume(parser, context, 1074790415); + if (prototypeCount > 1) + destructible |= 64; + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ObjectPattern' : 'ObjectExpression', + properties + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; +} +function parseMethodFormals(parser, context, scope, kind, type, inGroup) { + consume(parser, context, 67174411); + const params = []; + parser.flags = (parser.flags | 128) ^ 128; + if (parser.token === 16) { + if (kind & 512) { + report(parser, 35, 'Setter', 'one', ''); + } + nextToken(parser, context); + return params; + } + if (kind & 256) { + report(parser, 35, 'Getter', 'no', 's'); + } + if (kind & 512 && parser.token === 14) { + report(parser, 36); + } + context = (context | 134217728) ^ 134217728; + let setterArgs = 0; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left = null; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, type, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) + report(parser, 47); + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: left, + right + }); + } + setterArgs++; + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (kind & 512 && setterArgs !== 1) { + report(parser, 35, 'Setter', 'one', ''); + } + if (scope && scope.scopeError !== void 0) + reportScopeError(scope.scopeError); + if (isSimpleParameterList) + parser.flags |= 128; + consume(parser, context, 16); + return params; +} +function parseComputedPropertyName(parser, context, inGroup) { + nextToken(parser, context | 32768); + const key = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 20); + return key; +} +function parseParenthesizedExpression(parser, context, canAssign, kind, origin, start, line, column) { + parser.flags = (parser.flags | 128) ^ 128; + const { tokenPos: piStart, linePos: plStart, colPos: pcStart } = parser; + nextToken(parser, context | 32768 | 1073741824); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 0, start, line, column); + } + let destructible = 0; + parser.destructible &= ~(256 | 128); + let expr; + let expressions = []; + let isSequence = 0; + let isSimpleParameterList = 0; + const { tokenPos: iStart, linePos: lStart, colPos: cStart } = parser; + parser.assignable = 1; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 1, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808 || + (token & 36864) === 36864) { + isSimpleParameterList = 1; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if ((token & 2097152) === 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + parser.assignable = 2; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 0, 1, 0, tokenPos, linePos, colPos); + if (parser.destructible & 16) + report(parser, 71); + isSimpleParameterList = 1; + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + destructible |= 8; + break; + } + else { + destructible |= 16; + expr = parseExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (parser.token === 18) { + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + } + if (isSequence) { + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + } + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + parser.destructible = destructible; + return expr; + } + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (!consumeOpt(parser, context | 32768, 18)) + break; + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + if (parser.token === 16) { + destructible |= 8; + break; + } + } + if (isSequence) { + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + if (destructible & 16 && destructible & 8) + report(parser, 145); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 46); + if (context & (4194304 | 2048) && destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) { + report(parser, 30); + } + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, isSequence ? expressions : [expr], canAssign, 0, start, line, column); + } + else if (destructible & 8) { + report(parser, 139); + } + parser.destructible = ((parser.destructible | 256) ^ 256) | destructible; + return context & 128 + ? finishNode(parser, context, piStart, plStart, pcStart, { + type: 'ParenthesizedExpression', + expression: expr + }) + : expr; +} +function parseIdentifierOrArrow(parser, context, start, line, column) { + const { tokenValue } = parser; + const expr = parseIdentifier(parser, context, 0); + parser.assignable = 1; + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + return parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + return expr; +} +function parseArrowFromIdentifier(parser, context, value, expr, inNew, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + if (inNew) + report(parser, 48); + parser.flags &= ~128; + const scope = context & 64 ? createArrowHeadParsingScope(parser, context, value) : void 0; + return parseArrowFunctionExpression(parser, context, scope, [expr], isAsync, start, line, column); +} +function parseParenthesizedArrow(parser, context, scope, params, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + for (let i = 0; i < params.length; ++i) + reinterpretToPattern(parser, params[i]); + return parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column); +} +function parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column) { + if (parser.flags & 1) + report(parser, 45); + consume(parser, context | 32768, 10); + context = ((context | 15728640) ^ 15728640) | (isAsync << 22); + const expression = parser.token !== 2162700; + let body; + if (scope && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + if (expression) { + body = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + if (scope) + scope = addChildScope(scope, 128); + body = parseFunctionBody(parser, (context | 134221824 | 8192 | 16384) ^ + (134221824 | 8192 | 16384), scope, 16, void 0, void 0); + switch (parser.token) { + case 69271571: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + break; + case 67108877: + case 67174409: + case 22: + report(parser, 113); + case 67174411: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + parser.flags |= 1024; + break; + } + if ((parser.token & 8454144) === 8454144 && (parser.flags & 1) < 1) + report(parser, 28, KeywordDescTable[parser.token & 255]); + if ((parser.token & 33619968) === 33619968) + report(parser, 121); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ArrowFunctionExpression', + params, + body, + async: isAsync === 1, + expression + }); +} +function parseFormalParametersOrFormalList(parser, context, scope, inGroup, kind) { + consume(parser, context, 67174411); + parser.flags = (parser.flags | 128) ^ 128; + const params = []; + if (consumeOpt(parser, context, 16)) + return params; + context = (context | 134217728) ^ 134217728; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, kind, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) { + report(parser, 47); + } + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left, + right + }); + } + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (isSimpleParameterList) + parser.flags |= 128; + if (scope && (isSimpleParameterList || context & 1024) && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + consume(parser, context, 16); + return params; +} +function parseMembeExpressionNoCall(parser, context, expr, inGroup, start, line, column) { + const { token } = parser; + if (token & 67108864) { + if (token === 67108877) { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }), 0, start, line, column); + } + else if (token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }), 0, start, line, column); + } + else if (token === 67174408 || token === 67174409) { + parser.assignable = 2; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }), 0, start, line, column); + } + } + return expr; +} +function parseNewExpression(parser, context, inGroup, start, line, column) { + const id = parseIdentifier(parser, context | 32768, 0); + const { tokenPos, linePos, colPos } = parser; + if (consumeOpt(parser, context, 67108877)) { + if (context & 67108864 && parser.token === 143494) { + parser.assignable = 2; + return parseMetaProperty(parser, context, id, start, line, column); + } + report(parser, 91); + } + parser.assignable = 2; + if ((parser.token & 16842752) === 16842752) { + report(parser, 62, KeywordDescTable[parser.token & 255]); + } + const expr = parsePrimaryExpression(parser, context, 2, 1, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + context = (context | 134217728) ^ 134217728; + if (parser.token === 67108991) + report(parser, 162); + const callee = parseMembeExpressionNoCall(parser, context, expr, inGroup, tokenPos, linePos, colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'NewExpression', + callee, + arguments: parser.token === 67174411 ? parseArguments(parser, context, inGroup) : [] + }); +} +function parseMetaProperty(parser, context, meta, start, line, column) { + const property = parseIdentifier(parser, context, 0); + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property + }); +} +function parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column) { + if (parser.token === 209008) + report(parser, 29); + if (context & (1024 | 2097152) && parser.token === 241773) { + report(parser, 30); + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context, 0), 0, canAssign, 1, start, line, column); +} +function parseAsyncArrowOrCallExpression(parser, context, callee, canAssign, kind, origin, flags, start, line, column) { + nextToken(parser, context | 32768); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + if (parser.token === 10) { + if (flags & 1) + report(parser, 45); + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 1, start, line, column); + } + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: [] + }); + } + let destructible = 0; + let expr = null; + let isSimpleParameterList = 0; + parser.destructible = + (parser.destructible | 256 | 128) ^ + (256 | 128); + const params = []; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, kind, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808) { + parser.flags |= 512; + } + else if ((token & 36864) === 36864) { + parser.flags |= 256; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token & 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + expr = parseBinaryExpression(parser, context, 1, start, line, column, 4, token, expr); + } + if (consumeOpt(parser, context | 32768, 22)) { + expr = parseConditionalExpression(parser, context, expr, start, line, column); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 1, 1, 0, tokenPos, linePos, colPos); + destructible |= (parser.token === 16 ? 0 : 16) | parser.destructible; + isSimpleParameterList = 1; + } + else { + expr = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + destructible = parser.assignable; + params.push(expr); + while (consumeOpt(parser, context | 32768, 18)) { + params.push(parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos)); + } + destructible |= parser.assignable; + consume(parser, context, 16); + parser.destructible = destructible | 16; + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + params.push(expr); + if (!consumeOpt(parser, context | 32768, 18)) + break; + } + consume(parser, context, 16); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 25); + if (parser.flags & 1 || flags & 1) + report(parser, 45); + if (destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) + report(parser, 30); + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, params, canAssign, 1, start, line, column); + } + else if (destructible & 8) { + report(parser, 59); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); +} +function parseRegExpLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenRegExp, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return context & 512 + ? finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp, + raw: tokenRaw + }) + : finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp + }); +} +function parseClassDeclaration(parser, context, scope, flags, start, line, column) { + context = (context | 16777216 | 1024) ^ 16777216; + let decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + if (parser.leadingDecorators.length) { + parser.leadingDecorators.push(...decorators); + decorators = parser.leadingDecorators; + parser.leadingDecorators = []; + } + nextToken(parser, context); + let id = null; + let superClass = null; + const { tokenValue } = parser; + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) { + report(parser, 114); + } + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + if (scope) { + addBlockName(parser, context, scope, tokenValue, 32, 0); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, tokenValue); + } + } + } + id = parseIdentifier(parser, context, 0); + } + else { + if ((flags & 1) < 1) + report(parser, 37, 'Class'); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, scope, 2, 8, 0); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassDeclaration', + id, + superClass, + decorators, + body + } + : { + type: 'ClassDeclaration', + id, + superClass, + body + }); +} +function parseClassExpression(parser, context, inGroup, start, line, column) { + let id = null; + let superClass = null; + context = (context | 1024 | 16777216) ^ 16777216; + const decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + nextToken(parser, context); + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + id = parseIdentifier(parser, context, 0); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, inGroup, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, void 0, 2, 0, inGroup); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassExpression', + id, + superClass, + decorators, + body + } + : { + type: 'ClassExpression', + id, + superClass, + body + }); +} +function parseDecorators(parser, context) { + const list = []; + if (context & 1) { + while (parser.token === 133) { + list.push(parseDecoratorList(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + } + return list; +} +function parseDecoratorList(parser, context, start, line, column) { + nextToken(parser, context | 32768); + let expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, start, line, column); + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + return finishNode(parser, context, start, line, column, { + type: 'Decorator', + expression + }); +} +function parseClassBody(parser, context, inheritedContext, scope, kind, origin, inGroup) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + context = (context | 134217728) ^ 134217728; + parser.flags = (parser.flags | 32) ^ 32; + const body = []; + let decorators; + while (parser.token !== 1074790415) { + let length = 0; + decorators = parseDecorators(parser, context); + length = decorators.length; + if (length > 0 && parser.tokenValue === 'constructor') { + report(parser, 106); + } + if (parser.token === 1074790415) + report(parser, 105); + if (consumeOpt(parser, context, 1074790417)) { + if (length > 0) + report(parser, 116); + continue; + } + body.push(parseClassElementList(parser, context, scope, inheritedContext, kind, decorators, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + consume(parser, origin & 8 ? context | 32768 : context, 1074790415); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ClassBody', + body + }); +} +function parseClassElementList(parser, context, scope, inheritedContext, type, decorators, isStatic, inGroup, start, line, column) { + let kind = isStatic ? 32 : 0; + let key = null; + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 36864)) { + key = parseIdentifier(parser, context, 0); + switch (token) { + case 36972: + if (!isStatic && parser.token !== 67174411) { + return parseClassElementList(parser, context, scope, inheritedContext, type, decorators, 1, inGroup, start, line, column); + } + break; + case 209007: + if (parser.token !== 67174411 && (parser.flags & 1) < 1) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 16 | (optionalBit(parser, context, 8457014) ? 8 : 0); + } + break; + case 12402: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 256; + } + break; + case 12403: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 512; + } + break; + } + } + else if (token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, inheritedContext, inGroup); + } + else if ((token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (token === 8457014) { + kind |= 8; + nextToken(parser, context); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + context = context | 16384; + } + else if (context & 1 && (parser.token & 1073741824) === 1073741824) { + kind |= 128; + context = context | 16384; + } + else if (token === 122) { + key = parseIdentifier(parser, context, 0); + if (parser.token !== 67174411) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + if (kind & (8 | 16 | 768)) { + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, context, 0); + } + else if (parser.token === 122) { + key = parseIdentifier(parser, context, 0); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + } + else + report(parser, 131); + } + if ((kind & 2) < 1) { + if (parser.tokenValue === 'constructor') { + if ((parser.token & 1073741824) === 1073741824) { + report(parser, 125); + } + else if ((kind & 32) < 1 && parser.token === 67174411) { + if (kind & (768 | 16 | 128 | 8)) { + report(parser, 50, 'accessor'); + } + else if ((context & 524288) < 1) { + if (parser.flags & 32) + report(parser, 51); + else + parser.flags |= 32; + } + } + kind |= 64; + } + else if ((kind & 4096) < 1 && + kind & (32 | 768 | 8 | 16) && + parser.tokenValue === 'prototype') { + report(parser, 49); + } + } + if (context & 1 && parser.token !== 67174411) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + const value = parseMethodDefinition(parser, context, kind, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + decorators, + value + } + : { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + value + }); +} +function parsePrivateIdentifier(parser, context, start, line, column) { + nextToken(parser, context); + const { tokenValue } = parser; + if (tokenValue === 'constructor') + report(parser, 124); + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'PrivateIdentifier', + name: tokenValue + }); +} +function parsePropertyDefinition(parser, context, key, state, decorators, start, line, column) { + let value = null; + if (state & 8) + report(parser, 0); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 537079928) + report(parser, 115); + value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 0, 1, tokenPos, linePos, colPos); + if ((parser.token & 1073741824) !== 1073741824) { + value = parseMemberOrUpdateExpression(parser, context | 16384, value, 0, 0, tokenPos, linePos, colPos); + value = parseAssignmentExpression(parser, context | 16384, 0, 0, tokenPos, linePos, colPos, value); + if (parser.token === 18) { + value = parseSequenceExpression(parser, context, 0, start, line, column, value); + } + } + } + return finishNode(parser, context, start, line, column, { + type: 'PropertyDefinition', + key, + value, + static: (state & 32) > 0, + computed: (state & 2) > 0, + decorators + }); +} +function parseBindingPattern(parser, context, scope, type, origin, start, line, column) { + if (parser.token & 143360) + return parseAndClassifyIdentifier(parser, context, scope, type, origin, start, line, column); + if ((parser.token & 2097152) !== 2097152) + report(parser, 28, KeywordDescTable[parser.token & 255]); + const left = parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column) + : parseObjectLiteralOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column); + if (parser.destructible & 16) + report(parser, 47); + if (parser.destructible & 32) + report(parser, 47); + return left; +} +function parseAndClassifyIdentifier(parser, context, scope, kind, origin, start, line, column) { + const { tokenValue, token } = parser; + if (context & 1024) { + if ((token & 537079808) === 537079808) { + report(parser, 115); + } + else if ((token & 36864) === 36864) { + report(parser, 114); + } + } + if ((token & 20480) === 20480) { + report(parser, 99); + } + if (context & (2048 | 2097152) && token === 241773) { + report(parser, 30); + } + if (token === 241739) { + if (kind & (8 | 16)) + report(parser, 97); + } + if (context & (4194304 | 2048) && token === 209008) { + report(parser, 95); + } + nextToken(parser, context); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + return finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: tokenValue + }); +} +function parseJSXRootElementOrFragment(parser, context, inJSXChild, start, line, column) { + nextToken(parser, context); + if (parser.token === 8456259) { + return finishNode(parser, context, start, line, column, { + type: 'JSXFragment', + openingFragment: parseOpeningFragment(parser, context, start, line, column), + children: parseJSXChildren(parser, context), + closingFragment: parseJSXClosingFragment(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + let closingElement = null; + let children = []; + const openingElement = parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column); + if (!openingElement.selfClosing) { + children = parseJSXChildren(parser, context); + closingElement = parseJSXClosingElement(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos); + const close = isEqualTagName(closingElement.name); + if (isEqualTagName(openingElement.name) !== close) + report(parser, 149, close); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXElement', + children, + openingElement, + closingElement + }); +} +function parseOpeningFragment(parser, context, start, line, column) { + scanJSXToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningFragment' + }); +} +function parseJSXClosingElement(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + const name = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + parser.token = scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingElement', + name + }); +} +function parseJSXClosingFragment(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + consume(parser, context, 8456259); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingFragment' + }); +} +function parseJSXChildren(parser, context) { + const children = []; + while (parser.token !== 25) { + parser.index = parser.tokenPos = parser.startPos; + parser.column = parser.colPos = parser.startColumn; + parser.line = parser.linePos = parser.startLine; + scanJSXToken(parser, context); + children.push(parseJSXChild(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return children; +} +function parseJSXChild(parser, context, start, line, column) { + if (parser.token === 138) + return parseJSXText(parser, context, start, line, column); + if (parser.token === 2162700) + return parseJSXExpressionContainer(parser, context, 0, 0, start, line, column); + if (parser.token === 8456258) + return parseJSXRootElementOrFragment(parser, context, 0, start, line, column); + report(parser, 0); +} +function parseJSXText(parser, context, start, line, column) { + scanJSXToken(parser, context); + const node = { + type: 'JSXText', + value: parser.tokenValue + }; + if (context & 512) { + node.raw = parser.tokenRaw; + } + return finishNode(parser, context, start, line, column, node); +} +function parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column) { + if ((parser.token & 143360) !== 143360 && (parser.token & 4096) !== 4096) + report(parser, 0); + const tagName = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + const attributes = parseJSXAttributes(parser, context); + const selfClosing = parser.token === 8457016; + if (parser.token === 8456259) { + scanJSXToken(parser, context); + } + else { + consume(parser, context, 8457016); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + scanJSXToken(parser, context); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningElement', + name: tagName, + attributes, + selfClosing + }); +} +function parseJSXElementName(parser, context, start, line, column) { + scanJSXIdentifier(parser); + let key = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) + return parseJSXNamespacedName(parser, context, key, start, line, column); + while (consumeOpt(parser, context, 67108877)) { + scanJSXIdentifier(parser); + key = parseJSXMemberExpression(parser, context, key, start, line, column); + } + return key; +} +function parseJSXMemberExpression(parser, context, object, start, line, column) { + const property = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXMemberExpression', + object, + property + }); +} +function parseJSXAttributes(parser, context) { + const attributes = []; + while (parser.token !== 8457016 && parser.token !== 8456259 && parser.token !== 1048576) { + attributes.push(parseJsxAttribute(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return attributes; +} +function parseJSXSpreadAttribute(parser, context, start, line, column) { + nextToken(parser, context); + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadAttribute', + argument: expression + }); +} +function parseJsxAttribute(parser, context, start, line, column) { + if (parser.token === 2162700) + return parseJSXSpreadAttribute(parser, context, start, line, column); + scanJSXIdentifier(parser); + let value = null; + let name = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) { + name = parseJSXNamespacedName(parser, context, name, start, line, column); + } + if (parser.token === 1077936157) { + const token = scanJSXAttributeValue(parser, context); + const { tokenPos, linePos, colPos } = parser; + switch (token) { + case 134283267: + value = parseLiteral(parser, context); + break; + case 8456258: + value = parseJSXRootElementOrFragment(parser, context, 1, tokenPos, linePos, colPos); + break; + case 2162700: + value = parseJSXExpressionContainer(parser, context, 1, 1, tokenPos, linePos, colPos); + break; + default: + report(parser, 148); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXAttribute', + value, + name + }); +} +function parseJSXNamespacedName(parser, context, namespace, start, line, column) { + consume(parser, context, 21); + const name = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXNamespacedName', + namespace, + name + }); +} +function parseJSXExpressionContainer(parser, context, inJSXChild, isAttr, start, line, column) { + nextToken(parser, context); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 14) + return parseJSXSpreadChild(parser, context, tokenPos, linePos, colPos); + let expression = null; + if (parser.token === 1074790415) { + if (isAttr) + report(parser, 151); + expression = parseJSXEmptyExpression(parser, context, parser.startPos, parser.startLine, parser.startColumn); + } + else { + expression = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + } + if (inJSXChild) { + consume(parser, context, 1074790415); + } + else { + scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXExpressionContainer', + expression + }); +} +function parseJSXSpreadChild(parser, context, start, line, column) { + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadChild', + expression + }); +} +function parseJSXEmptyExpression(parser, context, start, line, column) { + parser.startPos = parser.tokenPos; + parser.startLine = parser.linePos; + parser.startColumn = parser.colPos; + return finishNode(parser, context, start, line, column, { + type: 'JSXEmptyExpression' + }); +} +function parseJSXIdentifier(parser, context, start, line, column) { + const { tokenValue } = parser; + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXIdentifier', + name: tokenValue + }); +} + +var estree = /*#__PURE__*/Object.freeze({ + __proto__: null +}); + +var version$1 = "4.2.0"; + +const version = version$1; +function parseScript(source, options) { + return parseSource(source, options, 0); +} +function parseModule(source, options) { + return parseSource(source, options, 1024 | 2048); +} +function parse(source, options) { + return parseSource(source, options, 0); +} + +exports.ESTree = estree; +exports.parse = parse; +exports.parseModule = parseModule; +exports.parseScript = parseScript; +exports.version = version; diff --git a/node_modules/meriyah/dist/meriyah.cjs.min.js b/node_modules/meriyah/dist/meriyah.cjs.min.js new file mode 100644 index 0000000..de9bf7a --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.cjs.min.js @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e={0:"Unexpected token",28:"Unexpected token: '%0'",1:"Octal escape sequences are not allowed in strict mode",2:"Octal escape sequences are not allowed in template strings",3:"Unexpected token `#`",4:"Illegal Unicode escape sequence",5:"Invalid code point %0",6:"Invalid hexadecimal escape sequence",8:"Octal literals are not allowed in strict mode",7:"Decimal integer literals with a leading zero are forbidden in strict mode",9:"Expected number in radix %0",145:"Invalid left-hand side assignment to a destructible right-hand side",10:"Non-number found after exponent indicator",11:"Invalid BigIntLiteral",12:"No identifiers allowed directly after numeric literal",13:"Escapes \\8 or \\9 are not syntactically valid escapes",14:"Unterminated string literal",15:"Unterminated template literal",16:"Multiline comment was not closed properly",17:"The identifier contained dynamic unicode escape that was not closed",18:"Illegal character '%0'",19:"Missing hexadecimal digits",20:"Invalid implicit octal",21:"Invalid line break in string literal",22:"Only unicode escapes are legal in identifier names",23:"Expected '%0'",24:"Invalid left-hand side in assignment",25:"Invalid left-hand side in async arrow",26:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',27:"Member access on super must be in a method",29:"Await expression not allowed in formal parameter",30:"Yield expression not allowed in formal parameter",92:"Unexpected token: 'escaped keyword'",31:"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses",119:"Async functions can only be declared at the top level or inside a block",32:"Unterminated regular expression",33:"Unexpected regular expression flag",34:"Duplicate regular expression flag '%0'",35:"%0 functions must have exactly %1 argument%2",36:"Setter function argument must not be a rest parameter",37:"%0 declaration must have a name in this context",38:"Function name may not contain any reserved words or be eval or arguments in strict mode",39:"The rest operator is missing an argument",40:"A getter cannot be a generator",41:"A computed property name must be followed by a colon or paren",130:"Object literal keys that are strings or numbers must be a method or have a colon",43:"Found `* async x(){}` but this should be `async * x(){}`",42:"Getters and setters can not be generators",44:"'%0' can not be generator method",45:"No line break is allowed after '=>'",46:"The left-hand side of the arrow can only be destructed through assignment",47:"The binding declaration is not destructible",48:"Async arrow can not be followed by new expression",49:"Classes may not have a static property named 'prototype'",50:"Class constructor may not be a %0",51:"Duplicate constructor method in class",52:"Invalid increment/decrement operand",53:"Invalid use of `new` keyword on an increment/decrement expression",54:"`=>` is an invalid assignment target",55:"Rest element may not have a trailing comma",56:"Missing initializer in %0 declaration",57:"'for-%0' loop head declarations can not have an initializer",58:"Invalid left-hand side in for-%0 loop: Must have a single binding",59:"Invalid shorthand property initializer",60:"Property name __proto__ appears more than once in object literal",61:"Let is disallowed as a lexically bound name",62:"Invalid use of '%0' inside new expression",63:"Illegal 'use strict' directive in function with non-simple parameter list",64:'Identifier "let" disallowed as left-hand side expression in strict mode',65:"Illegal continue statement",66:"Illegal break statement",67:"Cannot have `let[...]` as a var name in strict mode",68:"Invalid destructuring assignment target",69:"Rest parameter may not have a default initializer",70:"The rest argument must the be last parameter",71:"Invalid rest argument",73:"In strict mode code, functions can only be declared at top level or inside a block",74:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement",75:"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement",76:"Class declaration can't appear in single-statement context",77:"Invalid left-hand side in for-%0",78:"Invalid assignment in for-%0",79:"for await (... of ...) is only valid in async functions and async generators",80:"The first token after the template expression should be a continuation of the template",82:"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode",81:"`let \n [` is a restricted production at the start of a statement",83:"Catch clause requires exactly one parameter, not more (and no trailing comma)",84:"Catch clause parameter does not support default values",85:"Missing catch or finally after try",86:"More than one default clause in switch statement",87:"Illegal newline after throw",88:"Strict mode code may not include a with statement",89:"Illegal return statement",90:"The left hand side of the for-header binding declaration is not destructible",91:"new.target only allowed within functions",93:"'#' not followed by identifier",99:"Invalid keyword",98:"Can not use 'let' as a class name",97:"'A lexical declaration can't define a 'let' binding",96:"Can not use `let` as variable name in strict mode",94:"'%0' may not be used as an identifier in this context",95:"Await is only valid in async functions",100:"The %0 keyword can only be used with the module goal",101:"Unicode codepoint must not be greater than 0x10FFFF",102:"%0 source must be string",103:"Only a identifier can be used to indicate alias",104:"Only '*' or '{...}' can be imported after default",105:"Trailing decorator may be followed by method",106:"Decorators can't be used with a constructor",108:"HTML comments are only allowed with web compatibility (Annex B)",109:"The identifier 'let' must not be in expression position in strict mode",110:"Cannot assign to `eval` and `arguments` in strict mode",111:"The left-hand side of a for-of loop may not start with 'let'",112:"Block body arrows can not be immediately invoked without a group",113:"Block body arrows can not be immediately accessed without a group",114:"Unexpected strict mode reserved word",115:"Unexpected eval or arguments in strict mode",116:"Decorators must not be followed by a semicolon",117:"Calling delete on expression not allowed in strict mode",118:"Pattern can not have a tail",120:"Can not have a `yield` expression on the left side of a ternary",121:"An arrow function can not have a postfix update operator",122:"Invalid object literal key character after generator star",123:"Private fields can not be deleted",125:"Classes may not have a field called constructor",124:"Classes may not have a private element named constructor",126:"A class field initializer may not contain arguments",127:"Generators can only be declared at the top level or inside a block",128:"Async methods are a restricted production and cannot have a newline following it",129:"Unexpected character after object literal property name",131:"Invalid key token",132:"Label '%0' has already been declared",133:"continue statement must be nested within an iteration statement",134:"Undefined label '%0'",135:"Trailing comma is disallowed inside import(...) arguments",136:"import() requires exactly one argument",137:"Cannot use new with import(...)",138:"... is not allowed in import()",139:"Expected '=>'",140:"Duplicate binding '%0'",141:"Cannot export a duplicate name '%0'",144:"Duplicate %0 for-binding",142:"Exported binding '%0' needs to refer to a top-level declared variable",143:"Unexpected private field",147:"Numeric separators are not allowed at the end of numeric literals",146:"Only one underscore is allowed as numeric separator",148:"JSX value should be either an expression or a quoted JSX text",149:"Expected corresponding JSX closing tag for %0",150:"Adjacent JSX elements must be wrapped in an enclosing tag",151:"JSX attributes must only be assigned a non-empty 'expression'",152:"'%0' has already been declared",153:"'%0' shadowed a catch clause binding",154:"Dot property must be an identifier",155:"Encountered invalid input after spread/rest argument",156:"Catch without try",157:"Finally without try",158:"Expected corresponding closing tag for JSX fragment",159:"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses",160:"Invalid tagged template on optional chain",161:"Invalid optional chain from super property",162:"Invalid optional chain from new expression",163:'Cannot use "import.meta" outside a module',164:"Leading decorators must be attached to a class declaration"};class t extends SyntaxError{constructor(t,n,o,r,...s){const a="["+n+":"+o+"]: "+e[r].replace(/%(\d+)/g,((e,t)=>s[t]));super(`${a}`),this.index=t,this.line=n,this.column=o,this.description=a,this.loc={line:n,column:o}}}function n(e,n,...o){throw new t(e.index,e.line,e.column,n,...o)}function o(e){throw new t(e.index,e.line,e.column,e.type,e.params)}function r(e,n,o,r,...s){throw new t(e,n,o,r,...s)}function s(e,n,o,r){throw new t(e,n,o,r)}const a=((e,t)=>{const n=new Uint32Array(104448);let o=0,r=0;for(;o<3540;){const s=e[o++];if(s<0)r-=s;else{let a=e[o++];2&s&&(a=t[a]),1&s?n.fill(a,r,r+=e[o++]):n[r++]=a}}return n})([-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828e3,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902e3,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532]);function i(e){return e.column++,e.currentChar=e.source.charCodeAt(++e.index)}function l(e,t){if(55296!=(64512&t))return 0;const o=e.source.charCodeAt(e.index+1);return 56320!=(64512&o)?0:(t=e.currentChar=65536+((1023&t)<<10)+(1023&o),0==(1&a[0+(t>>>5)]>>>t)&&n(e,18,d(t)),e.index++,e.column++,1)}function c(e,t){e.currentChar=e.source.charCodeAt(++e.index),e.flags|=1,0==(4&t)&&(e.column=0,e.line++)}function u(e){e.flags|=1,e.currentChar=e.source.charCodeAt(++e.index),e.column=0,e.line++}function d(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(e>>>10)+String.fromCharCode(1023&e)}function p(e){return e<65?e-48:e-65+10&15}const f=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],k=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],g=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function m(e){return e<=127?k[e]:1&a[34816+(e>>>5)]>>>e}function b(e){return e<=127?g[e]:1&a[0+(e>>>5)]>>>e||8204===e||8205===e}const h=["SingleLine","MultiLine","HTMLOpen","HTMLClose","HashbangComment"];function P(e,t,o,r,s,a,i,l){return 2048&r&&n(e,0),y(e,t,o,s,a,i,l)}function y(e,t,n,o,r,s,a){const{index:l}=e;for(e.tokenPos=e.index,e.linePos=e.line,e.colPos=e.column;e.index=e.source.length)return n(e,32)}const s=e.index-1;let a=0,l=e.currentChar;const{index:c}=e;for(;b(l);){switch(l){case 103:2&a&&n(e,34,"g"),a|=2;break;case 105:1&a&&n(e,34,"i"),a|=1;break;case 109:4&a&&n(e,34,"m"),a|=4;break;case 117:16&a&&n(e,34,"g"),a|=16;break;case 121:8&a&&n(e,34,"y"),a|=8;break;case 115:12&a&&n(e,34,"s"),a|=12;break;default:n(e,33)}l=i(e)}const u=e.source.slice(c,e.index),d=e.source.slice(o,s);return e.tokenRegExp={pattern:d,flags:u},512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),e.tokenValue=function(e,t,o){try{return new RegExp(t,o)}catch(t){n(e,32)}}(e,d,u),65540}function w(e,t,o){const{index:r}=e;let s="",a=i(e),l=e.index;for(;0==(8&f[a]);){if(a===o)return s+=e.source.slice(l,e.index),i(e),512&t&&(e.tokenRaw=e.source.slice(r,e.index)),e.tokenValue=s,134283267;if(8==(8&a)&&92===a){if(s+=e.source.slice(l,e.index),a=i(e),a<127||8232===a||8233===a){const n=q(e,t,a);n>=0?s+=d(n):C(e,n,0)}else s+=d(a);l=e.index+1}e.index>=e.end&&n(e,14),a=i(e)}n(e,14)}function q(e,t,n){switch(n){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(e.index1114111)return-5;return e.currentChar<1||125!==e.currentChar?-4:t}{if(0==(64&f[t]))return-4;const n=e.source.charCodeAt(e.index+1);if(0==(64&f[n]))return-4;const o=e.source.charCodeAt(e.index+2);if(0==(64&f[o]))return-4;const r=e.source.charCodeAt(e.index+3);return 0==(64&f[r])?-4:(e.index+=3,e.column+=3,e.currentChar=e.source.charCodeAt(e.index),p(t)<<12|p(n)<<8|p(o)<<4|p(r))}}case 56:case 57:if(0==(256&t))return-3;default:return n}}function C(e,t,o){switch(t){case-1:return;case-2:n(e,o?2:1);case-3:n(e,13);case-4:n(e,6);case-5:n(e,101)}}function E(e,t){const{index:o}=e;let r=67174409,s="",a=i(e);for(;96!==a;){if(36===a&&123===e.source.charCodeAt(e.index+1)){i(e),r=67174408;break}if(8==(8&a)&&92===a)if(a=i(e),a>126)s+=d(a);else{const n=q(e,1024|t,a);if(n>=0)s+=d(n);else{if(-1!==n&&65536&t){s=void 0,a=A(e,a),a<0&&(r=67174408);break}C(e,n,1)}}else e.index=e.end&&n(e,15),a=i(e)}return i(e),e.tokenValue=s,e.tokenRaw=e.source.slice(o+1,e.index-(67174409===r?1:2)),r}function A(e,t){for(;96!==t;){switch(t){case 36:{const n=e.index+1;if(n=e.end&&n(e,15),t=i(e)}return t}function S(e,t){return e.index>=e.end&&n(e,0),e.index--,e.column--,E(e,t)}function D(e,t,o){let r=e.currentChar,a=0,l=9,c=64&o?0:1,u=0,d=0;if(64&o)a="."+L(e,r),r=e.currentChar,110===r&&n(e,11);else{if(48===r)if(r=i(e),120==(32|r)){for(o=136,r=i(e);4160&f[r];)95!==r?(d=1,a=16*a+p(r),u++,r=i(e)):(d||n(e,146),d=0,r=i(e));(u<1||!d)&&n(e,u<1?19:147)}else if(111==(32|r)){for(o=132,r=i(e);4128&f[r];)95!==r?(d=1,a=8*a+(r-48),u++,r=i(e)):(d||n(e,146),d=0,r=i(e));(u<1||!d)&&n(e,u<1?0:147)}else if(98==(32|r)){for(o=130,r=i(e);4224&f[r];)95!==r?(d=1,a=2*a+(r-48),u++,r=i(e)):(d||n(e,146),d=0,r=i(e));(u<1||!d)&&n(e,u<1?0:147)}else if(32&f[r])for(1024&t&&n(e,1),o=1;16&f[r];){if(512&f[r]){o=32,c=0;break}a=8*a+(r-48),r=i(e)}else 512&f[r]?(1024&t&&n(e,1),e.flags|=64,o=32):95===r&&n(e,0);if(48&o){if(c){for(;l>=0&&4112&f[r];)95!==r?(d=0,a=10*a+(r-48),r=i(e),--l):(r=i(e),(95===r||32&o)&&s(e.index,e.line,e.index+1,146),d=1);if(d&&s(e.index,e.line,e.index+1,147),l>=0&&!m(r)&&46!==r)return e.tokenValue=a,512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),134283266}a+=L(e,r),r=e.currentChar,46===r&&(95===i(e)&&n(e,0),o=64,a+="."+L(e,e.currentChar),r=e.currentChar)}}const k=e.index;let g=0;if(110===r&&128&o)g=1,r=i(e);else if(101==(32|r)){r=i(e),256&f[r]&&(r=i(e));const{index:t}=e;(16&f[r])<1&&n(e,10),a+=e.source.substring(k,t)+L(e,r),r=e.currentChar}return(e.index","(","{",".","...","}",")",";",",","[","]",":","?","'",'"',"","++","--","=","<<=",">>=",">>>=","**=","+=","-=","*=","/=","%=","^=","|=","&=","||=","&&=","??=","typeof","delete","void","!","~","+","-","in","instanceof","*","%","/","**","&&","||","===","!==","==","!=","<=",">=","<",">","<<",">>",">>>","&","|","^","var","let","const","break","case","catch","class","continue","debugger","default","do","else","export","extends","finally","for","function","if","import","new","return","super","switch","this","throw","try","while","with","implements","interface","package","private","protected","public","static","yield","as","async","await","constructor","get","set","from","of","enum","eval","arguments","escaped keyword","escaped future reserved keyword","reserved if strict","#","BigIntLiteral","??","?.","WhiteSpace","Illegal","LineTerminator","PrivateField","Template","@","target","meta","LineFeed","Escaped","JSXText"],T=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function R(e,t,n){for(;g[i(e)];);return e.tokenValue=e.source.slice(e.tokenPos,e.index),92!==e.currentChar&&e.currentChar<126?T[e.tokenValue]||208897:I(e,t,0,n)}function N(e,t){const o=B(e);return b(o)||n(e,4),e.tokenValue=d(o),I(e,t,1,4&f[o])}function I(e,t,o,r){let s=e.index;for(;e.index=2&&a<=11){const n=T[e.tokenValue];return void 0===n?208897:o?1024&t?209008===n&&0==(4196352&t)?n:36972===n||36864==(36864&n)?122:121:1073741824&t&&0==(8192&t)&&20480==(20480&n)?n:241773===n?1073741824&t?143483:2097152&t?121:n:209007===n&&1073741824&t?143483:36864==(36864&n)||209008===n&&0==(4194304&t)?n:121:n}return 208897}function U(e){return m(i(e))||n(e,93),131}function B(e){return 117!==e.source.charCodeAt(e.index+1)&&n(e,4),e.currentChar=e.source.charCodeAt(e.index+=2),function(e){let t=0;const o=e.currentChar;if(123===o){const n=e.index-2;for(;64&f[i(e)];)t=t<<4|p(e.currentChar),t>1114111&&s(n,e.line,e.index+1,101);return 125!==e.currentChar&&s(n,e.line,e.index-1,6),i(e),t}0==(64&f[o])&&n(e,6);const r=e.source.charCodeAt(e.index+1);0==(64&f[r])&&n(e,6);const a=e.source.charCodeAt(e.index+2);0==(64&f[a])&&n(e,6);const l=e.source.charCodeAt(e.index+3);0==(64&f[l])&&n(e,6);return t=p(o)<<12|p(r)<<8|p(a)<<4|p(l),e.currentChar=e.source.charCodeAt(e.index+=4),t}(e)}const O=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function G(e,t){if(e.flags=1^(1|e.flags),e.startPos=e.index,e.startColumn=e.column,e.startLine=e.line,e.token=F(e,t,0),e.onToken&&1048576!==e.token){const t={start:{line:e.linePos,column:e.colPos},end:{line:e.line,column:e.column}};e.onToken(function(e){switch(e){case 134283266:return"NumericLiteral";case 134283267:return"StringLiteral";case 86021:case 86022:return"BooleanLiteral";case 86023:return"NullLiteral";case 65540:return"RegularExpression";case 67174408:case 67174409:case 132:return"TemplateLiteral";default:return 143360==(143360&e)?"Identifier":4096==(4096&e)?"Keyword":"Punctuator"}}(e.token),e.tokenPos,e.index,t)}}function F(e,t,o){const r=0===e.index,s=e.source;let l=e.index,p=e.line,f=e.column;for(;e.index=e.end)return 8457014;const t=e.currentChar;return 61===t?(i(e),4194340):42!==t?8457014:61!==i(e)?8457273:(i(e),4194337)}case 8455497:return 61!==i(e)?8455497:(i(e),4194343);case 25233970:{i(e);const t=e.currentChar;return 43===t?(i(e),33619995):61===t?(i(e),4194338):25233970}case 25233971:{i(e);const a=e.currentChar;if(45===a){if(i(e),(1&o||r)&&62===e.currentChar){0==(256&t)&&n(e,108),i(e),o=P(e,s,o,t,3,l,p,f),l=e.tokenPos,p=e.linePos,f=e.colPos;continue}return 33619996}return 61===a?(i(e),4194339):25233971}case 8457016:if(i(e),e.index=48&&k<=57)return D(e,t,80);if(46===k){const t=e.index+1;if(t=48&&t<=57)))return i(e),67108991}return 22}}}else{if((8232^g)<=1){o=-5&o|1,u(e);continue}if(55296==(64512&g)||0!=(1&a[34816+(g>>>5)]>>>g))return 56320==(64512&g)&&(g=(1023&g)<<10|1023&g|65536,0==(1&a[0+(g>>>5)]>>>g)&&n(e,18,d(g)),e.index++,e.currentChar=g),e.column++,e.tokenValue="",I(e,t,0,0);if(160===(k=g)||65279===k||133===k||5760===k||k>=8192&&k<=8203||8239===k||8287===k||12288===k||8201===k||65519===k){i(e);continue}n(e,18,d(g))}}var k;return 1048576}const j={AElig:"Æ",AMP:"&",Aacute:"Á",Abreve:"Ă",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atilde:"Ã",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ETH:"Ð",Eacute:"É",Ecaron:"Ě",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"Í",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"â",acute:"´",acy:"а",aelig:"æ",af:"⁡",afr:"𝔞",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"ð",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"í",ic:"⁣",icirc:"î",icy:"и",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"ó",oast:"⊛",ocir:"⊚",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"ø",osol:"⊘",otilde:"õ",otimes:"⊗",otimesas:"⨶",ouml:"ö",ovbar:"⌽",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"þ",tilde:"˜",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"},H={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function J(e){return e.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g,(e=>{if("#"===e.charAt(1)){const t=e.charAt(2);return function(e){if(e>=55296&&e<=57343||e>1114111)return"�";e in H&&(e=H[e]);return String.fromCodePoint(e)}("X"===t||"x"===t?parseInt(e.slice(3),16):parseInt(e.slice(2),10))}return j[e.slice(1,-1)]||e}))}function M(e,t){return e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.token=8192&f[e.currentChar]?function(e,t){const o=e.currentChar;let r=i(e);const s=e.index;for(;r!==o;)e.index>=e.end&&n(e,14),r=i(e);r!==o&&n(e,14);e.tokenValue=e.source.slice(s,e.index),i(e),512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index));return 134283267}(e,t):F(e,t,0),e.token}function z(e,t){if(e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.index>=e.end)return e.token=1048576;switch(O[e.source.charCodeAt(e.index)]){case 8456258:i(e),47===e.currentChar?(i(e),e.token=25):e.token=8456258;break;case 2162700:i(e),e.token=2162700;break;default:{let n=0;for(;e.index0&&Z(e,t,209008);W(e,32768|t,67174411),o&&(o=ie(o,1));let c,u=null,d=null,p=0,f=null,k=86090===e.token||241739===e.token||86092===e.token;const{token:g,tokenPos:m,linePos:b,colPos:h}=e;k?241739===g?(f=tt(e,t,0),2240512&e.token?(8738868===e.token?1024&t&&n(e,64):f=oe(e,t,m,b,h,{type:"VariableDeclaration",kind:"let",declarations:Se(e,134217728|t,o,8,32)}),e.assignable=1):1024&t?n(e,64):(k=!1,e.assignable=1,f=Me(e,t,f,0,0,m,b,h),274549===e.token&&n(e,111))):(G(e,t),f=oe(e,t,m,b,h,86090===g?{type:"VariableDeclaration",kind:"var",declarations:Se(e,134217728|t,o,4,32)}:{type:"VariableDeclaration",kind:"const",declarations:Se(e,134217728|t,o,16,32)}),e.assignable=1):1074790417===g?l&&n(e,79):2097152==(2097152&g)?(f=2162700===g?ct(e,t,void 0,1,0,0,2,32,m,b,h):st(e,t,void 0,1,0,0,2,32,m,b,h),p=e.destructible,256&t&&64&p&&n(e,60),e.assignable=16&p?2:1,f=Me(e,134217728|t,f,0,0,e.tokenPos,e.linePos,e.colPos)):f=Je(e,134217728|t,1,0,1,m,b,h);if(262144==(262144&e.token)){if(274549===e.token){2&e.assignable&&n(e,77,l?"await":"of"),K(e,f),G(e,32768|t),c=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),W(e,32768|t,16);return oe(e,t,s,a,i,{type:"ForOfStatement",left:f,right:c,body:Ce(e,t,o,r),await:l})}2&e.assignable&&n(e,77,"in"),K(e,f),G(e,32768|t),l&&n(e,79),c=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos),W(e,32768|t,16);return oe(e,t,s,a,i,{type:"ForInStatement",body:Ce(e,t,o,r),left:f,right:c})}l&&n(e,79);k||(8&p&&1077936157!==e.token&&n(e,77,"loop"),f=Oe(e,134217728|t,0,0,m,b,h,f));18===e.token&&(f=Ue(e,t,0,e.tokenPos,e.linePos,e.colPos,f));W(e,32768|t,1074790417),1074790417!==e.token&&(u=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos));W(e,32768|t,1074790417),16!==e.token&&(d=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos));W(e,32768|t,16);const P=Ce(e,t,o,r);return oe(e,t,s,a,i,{type:"ForStatement",init:f,test:u,update:d,body:P})}(e,t,o,s,i,l,c);case 20564:return function(e,t,n,o,r,s,a){G(e,32768|t);const i=Ce(e,t,n,o);W(e,t,20580),W(e,32768|t,67174411);const l=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return W(e,32768|t,16),Z(e,t,1074790417),oe(e,t,r,s,a,{type:"DoWhileStatement",body:i,test:l})}(e,t,o,s,i,l,c);case 20580:return function(e,t,n,o,r,s,a){G(e,t),W(e,32768|t,67174411);const i=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);W(e,32768|t,16);const l=Ce(e,t,n,o);return oe(e,t,r,s,a,{type:"WhileStatement",test:i,body:l})}(e,t,o,s,i,l,c);case 86112:return function(e,t,o,r,s,a,i){G(e,t),W(e,32768|t,67174411);const l=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);W(e,t,16),W(e,t,2162700);const c=[];let u=0;o&&(o=ie(o,8));for(;1074790415!==e.token;){const{tokenPos:s,linePos:a,colPos:i}=e;let l=null;const d=[];for(Z(e,32768|t,20558)?l=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos):(W(e,32768|t,20563),u&&n(e,86),u=1),W(e,32768|t,21);20558!==e.token&&1074790415!==e.token&&20563!==e.token;)d.push(be(e,4096|t,o,2,{$:r}));c.push(oe(e,t,s,a,i,{type:"SwitchCase",test:l,consequent:d}))}return W(e,32768|t,1074790415),oe(e,t,s,a,i,{type:"SwitchStatement",discriminant:l,cases:c})}(e,t,o,s,i,l,c);case 1074790417:return function(e,t,n,o,r){return G(e,32768|t),oe(e,t,n,o,r,{type:"EmptyStatement"})}(e,t,i,l,c);case 2162700:return Pe(e,t,o?ie(o,2):o,s,i,l,c);case 86114:return function(e,t,o,r,s){G(e,32768|t),1&e.flags&&n(e,87);const a=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return _(e,32768|t),oe(e,t,o,r,s,{type:"ThrowStatement",argument:a})}(e,t,i,l,c);case 20557:return function(e,t,o,r,s,a){G(e,32768|t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=tt(e,32768|t,0),ne(e,o,r,0)||n(e,134,r)}else(135168&t)<1&&n(e,66);return _(e,32768|t),oe(e,t,r,s,a,{type:"BreakStatement",label:i})}(e,t,s,i,l,c);case 20561:return function(e,t,o,r,s,a){(131072&t)<1&&n(e,65);G(e,t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=tt(e,32768|t,0),ne(e,o,r,1)||n(e,134,r)}return _(e,32768|t),oe(e,t,r,s,a,{type:"ContinueStatement",label:i})}(e,t,s,i,l,c);case 20579:return function(e,t,o,r,s,a,i){G(e,32768|t);const l=o?ie(o,32):void 0,c=Pe(e,t,l,{$:r},e.tokenPos,e.linePos,e.colPos),{tokenPos:u,linePos:d,colPos:p}=e,f=Z(e,32768|t,20559)?function(e,t,o,r,s,a,i){let l=null,c=o;Z(e,t,67174411)&&(o&&(o=ie(o,4)),l=Et(e,t,o,2097152==(2097152&e.token)?256:512,0,e.tokenPos,e.linePos,e.colPos),18===e.token?n(e,83):1077936157===e.token&&n(e,84),W(e,32768|t,16),o&&(c=ie(o,64)));const u=Pe(e,t,c,{$:r},e.tokenPos,e.linePos,e.colPos);return oe(e,t,s,a,i,{type:"CatchClause",param:l,body:u})}(e,t,o,r,u,d,p):null;let k=null;if(20568===e.token){G(e,32768|t);k=Pe(e,t,l?ie(o,4):void 0,{$:r},e.tokenPos,e.linePos,e.colPos)}f||k||n(e,85);return oe(e,t,s,a,i,{type:"TryStatement",block:c,handler:f,finalizer:k})}(e,t,o,s,i,l,c);case 20581:return function(e,t,o,r,s,a,i){G(e,t),1024&t&&n(e,88);W(e,32768|t,67174411);const l=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);W(e,32768|t,16);const c=he(e,t,o,2,r,0,e.tokenPos,e.linePos,e.colPos);return oe(e,t,s,a,i,{type:"WithStatement",object:l,body:c})}(e,t,o,s,i,l,c);case 20562:return function(e,t,n,o,r){return G(e,32768|t),_(e,32768|t),oe(e,t,n,o,r,{type:"DebuggerStatement"})}(e,t,i,l,c);case 209007:return ve(e,t,o,r,s,0,i,l,c);case 20559:n(e,156);case 20568:n(e,157);case 86106:n(e,1024&t?73:(256&t)<1?75:74);case 86096:n(e,76);default:return function(e,t,o,r,s,a,i,l,c){const{tokenValue:u,token:d}=e;let p;switch(d){case 241739:p=tt(e,t,0),1024&t&&n(e,82),69271571===e.token&&n(e,81);break;default:p=Xe(e,t,2,0,1,0,0,1,e.tokenPos,e.linePos,e.colPos)}if(143360&d&&21===e.token)return xe(e,t,o,r,s,u,p,d,a,i,l,c);p=Me(e,t,p,0,0,i,l,c),p=Oe(e,t,0,0,i,l,c,p),18===e.token&&(p=Ue(e,t,0,i,l,c,p));return ye(e,t,p,i,l,c)}(e,t,o,r,s,a,i,l,c)}}function Pe(e,t,n,o,r,s,a){const i=[];for(W(e,32768|t,2162700);1074790415!==e.token;)i.push(be(e,t,n,2,{$:o}));return W(e,32768|t,1074790415),oe(e,t,r,s,a,{type:"BlockStatement",body:i})}function ye(e,t,n,o,r,s){return _(e,32768|t),oe(e,t,o,r,s,{type:"ExpressionStatement",expression:n})}function xe(e,t,o,r,s,a,i,l,c,u,d,p){Q(e,t,0,l,1),function(e,t,o){let r=t;for(;r;)r["$"+o]&&n(e,132,o),r=r.$;t["$"+o]=1}(e,s,a),G(e,32768|t);return oe(e,t,u,d,p,{type:"LabeledStatement",label:i,body:c&&(1024&t)<1&&256&t&&86106===e.token?ot(e,t,ie(o,2),r,0,0,0,e.tokenPos,e.linePos,e.colPos):he(e,t,o,r,s,c,e.tokenPos,e.linePos,e.colPos)})}function ve(e,t,o,r,s,a,i,l,c){const{token:u,tokenValue:d}=e;let p=tt(e,t,0);if(21===e.token)return xe(e,t,o,r,s,d,p,u,1,i,l,c);const f=1&e.flags;if(!f){if(86106===e.token)return a||n(e,119),ot(e,t,o,r,1,0,1,i,l,c);if(143360==(143360&e.token))return p=bt(e,t,1,i,l,c),18===e.token&&(p=Ue(e,t,0,i,l,c,p)),ye(e,t,p,i,l,c)}return 67174411===e.token?p=ht(e,t,p,1,1,0,f,i,l,c):(10===e.token&&(ke(e,t,u,1),p=pt(e,t,e.tokenValue,p,0,1,0,i,l,c)),e.assignable=1),p=Me(e,t,p,0,0,i,l,c),18===e.token&&(p=Ue(e,t,0,i,l,c,p)),p=Oe(e,t,0,0,i,l,c,p),e.assignable=1,ye(e,t,p,i,l,c)}function we(e,t,n,o,r,s,a){return 1074790417!==o&&(e.assignable=2,n=Me(e,t,n,0,0,r,s,a),1074790417!==e.token&&(n=Oe(e,t,0,0,r,s,a,n),18===e.token&&(n=Ue(e,t,0,r,s,a,n))),_(e,32768|t)),8&t&&"Literal"===n.type&&"string"==typeof n.value?oe(e,t,r,s,a,{type:"ExpressionStatement",expression:n,directive:n.raw.slice(1,-1)}):oe(e,t,r,s,a,{type:"ExpressionStatement",expression:n})}function qe(e,t,n,o,r,s,a){return 1024&t||(256&t)<1||86106!==e.token?he(e,t,n,0,{$:o},0,e.tokenPos,e.linePos,e.colPos):ot(e,t,ie(n,2),0,0,0,0,r,s,a)}function Ce(e,t,n,o){return he(e,134217728^(134217728|t)|131072,n,0,{loop:1,$:o},0,e.tokenPos,e.linePos,e.colPos)}function Ee(e,t,n,o,r,s,a,i){G(e,t);const l=Se(e,t,n,o,r);return _(e,32768|t),oe(e,t,s,a,i,{type:"VariableDeclaration",kind:8&o?"let":"const",declarations:l})}function Ae(e,t,n,o,r,s,a){G(e,t);const i=Se(e,t,n,4,o);return _(e,32768|t),oe(e,t,r,s,a,{type:"VariableDeclaration",kind:"var",declarations:i})}function Se(e,t,o,r,s){let a=1;const i=[De(e,t,o,r,s)];for(;Z(e,t,18);)a++,i.push(De(e,t,o,r,s));return a>1&&32&s&&262144&e.token&&n(e,58,V[255&e.token]),i}function De(e,t,o,s,a){const{token:i,tokenPos:l,linePos:c,colPos:u}=e;let d=null;const p=Et(e,t,o,s,a,l,c,u);return 1077936157===e.token?(G(e,32768|t),d=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),(32&a||(2097152&i)<1)&&(274549===e.token||8738868===e.token&&(2097152&i||(4&s)<1||1024&t))&&r(l,e.line,e.index-3,57,274549===e.token?"of":"in")):(16&s||(2097152&i)>0)&&262144!=(262144&e.token)&&n(e,56,16&s?"const":"destructuring"),oe(e,t,l,c,u,{type:"VariableDeclarator",id:p,init:d})}function Le(e,t,o){return fe(t,e.token)||n(e,114),537079808==(537079808&e.token)&&n(e,115),o&&ce(e,t,o,e.tokenValue,8,0),tt(e,t,0)}function Ve(e,t,n){const{tokenPos:o,linePos:s,colPos:a}=e;return G(e,t),W(e,t,77934),134217728==(134217728&e.token)&&r(o,e.line,e.index,28,V[255&e.token]),oe(e,t,o,s,a,{type:"ImportNamespaceSpecifier",local:Le(e,t,n)})}function Te(e,t,o,r){for(G(e,t);143360&e.token;){let{token:s,tokenValue:a,tokenPos:i,linePos:l,colPos:c}=e;const u=tt(e,t,0);let d;Z(e,t,77934)?(134217728==(134217728&e.token)||18===e.token?n(e,103):Q(e,t,16,e.token,0),a=e.tokenValue,d=tt(e,t,0)):(Q(e,t,16,s,0),d=u),o&&ce(e,t,o,a,8,0),r.push(oe(e,t,i,l,c,{type:"ImportSpecifier",local:d,imported:u})),1074790415!==e.token&&W(e,t,18)}return W(e,t,1074790415),r}function Re(e,t,n,o,r){let s=_e(e,t,oe(e,t,n,o,r,{type:"Identifier",name:"import"}),n,o,r);return s=Me(e,t,s,0,0,n,o,r),s=Oe(e,t,0,0,n,o,r,s),ye(e,t,s,n,o,r)}function Ne(e,t,n,o,r){let s=$e(e,t,0,n,o,r);return s=Me(e,t,s,0,0,n,o,r),ye(e,t,s,n,o,r)}function Ie(e,t,n,o,r,s,a,i){let l=Xe(e,t,2,0,n,o,r,1,s,a,i);return l=Me(e,t,l,r,0,s,a,i),Oe(e,t,r,0,s,a,i,l)}function Ue(e,t,n,o,r,s,a){const i=[a];for(;Z(e,32768|t,18);)i.push(Ie(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos));return oe(e,t,o,r,s,{type:"SequenceExpression",expressions:i})}function Be(e,t,n,o,r,s,a){const i=Ie(e,t,o,0,n,r,s,a);return 18===e.token?Ue(e,t,n,r,s,a,i):i}function Oe(e,t,o,r,s,a,i,l){const{token:c}=e;if(4194304==(4194304&c)){2&e.assignable&&n(e,24),(!r&&1077936157===c&&"ArrayExpression"===l.type||"ObjectExpression"===l.type)&&K(e,l),G(e,32768|t);const u=Ie(e,t,1,1,o,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,oe(e,t,s,a,i,r?{type:"AssignmentPattern",left:l,right:u}:{type:"AssignmentExpression",left:l,operator:V[255&c],right:u})}return 8454144==(8454144&c)&&(l=je(e,t,o,s,a,i,4,c,l)),Z(e,32768|t,22)&&(l=Fe(e,t,l,s,a,i)),l}function Ge(e,t,n,o,r,s,a,i){const{token:l}=e;G(e,32768|t);const c=Ie(e,t,1,1,n,e.tokenPos,e.linePos,e.colPos);return i=oe(e,t,r,s,a,o?{type:"AssignmentPattern",left:i,right:c}:{type:"AssignmentExpression",left:i,operator:V[255&l],right:c}),e.assignable=2,i}function Fe(e,t,n,o,r,s){const a=Ie(e,134217728^(134217728|t),1,0,0,e.tokenPos,e.linePos,e.colPos);W(e,32768|t,21),e.assignable=1;const i=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,oe(e,t,o,r,s,{type:"ConditionalExpression",test:n,consequent:a,alternate:i})}function je(e,t,o,r,s,a,i,l,c){const u=8738868&-((134217728&t)>0);let d,p;for(e.assignable=2;8454144&e.token&&(d=e.token,p=3840&d,(524288&d&&268435456&l||524288&l&&268435456&d)&&n(e,159),!(p+((8457273===d)<<8)-((u===d)<<12)<=i));)G(e,32768|t),c=oe(e,t,r,s,a,{type:524288&d||268435456&d?"LogicalExpression":"BinaryExpression",left:c,right:je(e,t,o,e.tokenPos,e.linePos,e.colPos,p,d,Je(e,t,0,o,1,e.tokenPos,e.linePos,e.colPos)),operator:V[255&d]});return 1077936157===e.token&&n(e,24),c}function He(e,t,s,a,i,l){const{tokenPos:c,linePos:u,colPos:d}=e;W(e,32768|t,2162700);const p=[],f=t;if(1074790415!==e.token){for(;134283267===e.token;){const{index:n,tokenPos:o,tokenValue:s,token:a}=e,i=nt(e,t);$(e,n,o,s)&&(t|=1024,128&e.flags&&r(e.index,e.line,e.tokenPos,63),64&e.flags&&r(e.index,e.line,e.tokenPos,8)),p.push(we(e,t,i,a,o,e.linePos,e.colPos))}1024&t&&(i&&(537079808==(537079808&i)&&n(e,115),36864==(36864&i)&&n(e,38)),512&e.flags&&n(e,115),256&e.flags&&n(e,114)),64&t&&s&&void 0!==l&&(1024&f)<1&&(8192&t)<1&&o(l)}for(e.flags=832^(832|e.flags),e.destructible=256^(256|e.destructible);1074790415!==e.token;)p.push(be(e,t,s,4,{}));return W(e,24&a?32768|t:t,1074790415),e.flags&=-193,1077936157===e.token&&n(e,24),oe(e,t,c,u,d,{type:"BlockStatement",body:p})}function Je(e,t,n,o,r,s,a,i){return Me(e,t,Xe(e,t,2,0,n,0,o,r,s,a,i),o,0,s,a,i)}function Me(e,t,o,r,s,a,i,l){if(33619968==(33619968&e.token)&&(1&e.flags)<1)o=function(e,t,o,r,s,a){2&e.assignable&&n(e,52);const{token:i}=e;return G(e,t),e.assignable=2,oe(e,t,r,s,a,{type:"UpdateExpression",argument:o,operator:V[255&i],prefix:!1})}(e,t,o,a,i,l);else if(67108864==(67108864&e.token)){switch(t=134225920^(134225920|t),e.token){case 67108877:G(e,1073741824|t),e.assignable=1;o=oe(e,t,a,i,l,{type:"MemberExpression",object:o,computed:!1,property:ze(e,t)});break;case 69271571:{let n=!1;2048==(2048&e.flags)&&(n=!0,e.flags=2048^(2048|e.flags)),G(e,32768|t);const{tokenPos:s,linePos:c,colPos:u}=e,d=Be(e,t,r,1,s,c,u);W(e,t,20),e.assignable=1,o=oe(e,t,a,i,l,{type:"MemberExpression",object:o,computed:!0,property:d}),n&&(e.flags|=2048);break}case 67174411:{if(1024==(1024&e.flags))return e.flags=1024^(1024|e.flags),o;let n=!1;2048==(2048&e.flags)&&(n=!0,e.flags=2048^(2048|e.flags));const s=et(e,t,r);e.assignable=2,o=oe(e,t,a,i,l,{type:"CallExpression",callee:o,arguments:s}),n&&(e.flags|=2048);break}case 67108991:G(e,t),e.flags|=2048,e.assignable=2,o=function(e,t,o,r,s,a){let i,l=!1;69271571!==e.token&&67174411!==e.token||2048==(2048&e.flags)&&(l=!0,e.flags=2048^(2048|e.flags));if(69271571===e.token){G(e,32768|t);const{tokenPos:n,linePos:l,colPos:c}=e,u=Be(e,t,0,1,n,l,c);W(e,t,20),e.assignable=2,i=oe(e,t,r,s,a,{type:"MemberExpression",object:o,computed:!0,optional:!0,property:u})}else if(67174411===e.token){const n=et(e,t,0);e.assignable=2,i=oe(e,t,r,s,a,{type:"CallExpression",callee:o,arguments:n,optional:!0})}else{(143360&e.token)<1&&n(e,154);const l=tt(e,t,0);e.assignable=2,i=oe(e,t,r,s,a,{type:"MemberExpression",object:o,computed:!1,optional:!0,property:l})}l&&(e.flags|=2048);return i}(e,t,o,a,i,l);break;default:2048==(2048&e.flags)&&n(e,160),e.assignable=2,o=oe(e,t,a,i,l,{type:"TaggedTemplateExpression",tag:o,quasi:67174408===e.token?We(e,65536|t):Ze(e,t,e.tokenPos,e.linePos,e.colPos)})}o=Me(e,t,o,0,1,a,i,l)}return 0===s&&2048==(2048&e.flags)&&(e.flags=2048^(2048|e.flags),o=oe(e,t,a,i,l,{type:"ChainExpression",expression:o})),o}function ze(e,t){return(143360&e.token)<1&&131!==e.token&&n(e,154),1&t&&131===e.token?qt(e,t,e.tokenPos,e.linePos,e.colPos):tt(e,t,0)}function Xe(e,t,o,s,a,i,l,c,u,d,p){if(143360==(143360&e.token)){switch(e.token){case 209008:return function(e,t,o,s,a,i,l){if(s&&(e.destructible|=128),4194304&t||2048&t&&8192&t){o&&n(e,0),8388608&t&&r(e.index,e.line,e.index,29),G(e,32768|t);const s=Je(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 8457273===e.token&&n(e,31),e.assignable=2,oe(e,t,a,i,l,{type:"AwaitExpression",argument:s})}return 2048&t&&n(e,95),dt(e,t,a,i,l)}(e,t,s,l,u,d,p);case 241773:return function(e,t,o,r,s,a,i){if(o&&(e.destructible|=256),2097152&t){G(e,32768|t),8388608&t&&n(e,30),r||n(e,24),22===e.token&&n(e,120);let o=null,l=!1;return(1&e.flags)<1&&(l=Z(e,32768|t,8457014),(77824&e.token||l)&&(o=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos))),e.assignable=2,oe(e,t,s,a,i,{type:"YieldExpression",argument:o,delegate:l})}return 1024&t&&n(e,94,"yield"),dt(e,t,s,a,i)}(e,t,l,a,u,d,p);case 209007:return function(e,t,o,r,s,a,i,l,c,u){const{token:d}=e,p=tt(e,t,a),{flags:f}=e;if((1&f)<1){if(86106===e.token)return rt(e,t,1,o,l,c,u);if(143360==(143360&e.token))return r||n(e,0),bt(e,t,s,l,c,u)}return i||67174411!==e.token?10===e.token?(ke(e,t,d,1),i&&n(e,48),pt(e,t,e.tokenValue,p,i,s,0,l,c,u)):p:ht(e,t,p,s,1,0,f,l,c,u)}(e,t,l,c,a,i,s,u,d,p)}const{token:f,tokenValue:k}=e,g=tt(e,65536|t,i);return 10===e.token?(c||n(e,0),ke(e,t,f,1),pt(e,t,k,g,s,a,0,u,d,p)):(16384&t&&537079928===f&&n(e,126),241739===f&&(1024&t&&n(e,109),24&o&&n(e,97)),e.assignable=1024&t&&537079808==(537079808&f)?2:1,g)}if(134217728==(134217728&e.token))return nt(e,t);switch(e.token){case 33619995:case 33619996:return function(e,t,o,r,s,a,i){o&&n(e,53),r||n(e,0);const{token:l}=e;G(e,32768|t);const c=Je(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 2&e.assignable&&n(e,52),e.assignable=2,oe(e,t,s,a,i,{type:"UpdateExpression",argument:c,operator:V[255&l],prefix:!0})}(e,t,s,c,u,d,p);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return function(e,t,o,r,s,a,i){o||n(e,0);const l=e.token;G(e,32768|t);const c=Je(e,t,0,i,1,e.tokenPos,e.linePos,e.colPos);var u;return 8457273===e.token&&n(e,31),1024&t&&16863278===l&&("Identifier"===c.type?n(e,117):(u=c).property&&"PrivateIdentifier"===u.property.type&&n(e,123)),e.assignable=2,oe(e,t,r,s,a,{type:"UnaryExpression",operator:V[255&l],argument:c,prefix:!0})}(e,t,c,u,d,p,l);case 86106:return rt(e,t,0,l,u,d,p);case 2162700:return function(e,t,o,r,s,a,i){const l=ct(e,t,void 0,o,r,0,2,0,s,a,i);256&t&&64&e.destructible&&n(e,60);8&e.destructible&&n(e,59);return l}(e,t,a?0:1,l,u,d,p);case 69271571:return function(e,t,o,r,s,a,i){const l=st(e,t,void 0,o,r,0,2,0,s,a,i);256&t&&64&e.destructible&&n(e,60);8&e.destructible&&n(e,59);return l}(e,t,a?0:1,l,u,d,p);case 67174411:return function(e,t,o,r,s,a,i,l){e.flags=128^(128|e.flags);const{tokenPos:c,linePos:u,colPos:d}=e;G(e,1073774592|t);const p=64&t?ie({parent:void 0,type:2},1024):void 0;if(Z(e,t=134217728^(134217728|t),16))return ft(e,t,p,[],o,0,a,i,l);let f,k=0;e.destructible&=-385;let g=[],m=0,b=0;const{tokenPos:h,linePos:P,colPos:y}=e;e.assignable=1;for(;16!==e.token;){const{token:o,tokenPos:a,linePos:i,colPos:l}=e;if(143360&o)p&&ce(e,t,p,e.tokenValue,1,0),f=Xe(e,t,r,0,1,0,1,1,a,i,l),16===e.token||18===e.token?2&e.assignable?(k|=16,b=1):537079808!=(537079808&o)&&36864!=(36864&o)||(b=1):(1077936157===e.token?b=1:k|=16,f=Me(e,t,f,1,0,a,i,l),16!==e.token&&18!==e.token&&(f=Oe(e,t,1,0,a,i,l,f)));else{if(2097152!=(2097152&o)){if(14===o){f=it(e,t,p,16,r,s,0,1,0,a,i,l),16&e.destructible&&n(e,71),b=1,!m||16!==e.token&&18!==e.token||g.push(f),k|=8;break}if(k|=16,f=Ie(e,t,1,0,1,a,i,l),!m||16!==e.token&&18!==e.token||g.push(f),18===e.token&&(m||(m=1,g=[f])),m){for(;Z(e,32768|t,18);)g.push(Ie(e,t,1,0,1,e.tokenPos,e.linePos,e.colPos));e.assignable=2,f=oe(e,t,h,P,y,{type:"SequenceExpression",expressions:g})}return W(e,t,16),e.destructible=k,f}f=2162700===o?ct(e,1073741824|t,p,0,1,0,r,s,a,i,l):st(e,1073741824|t,p,0,1,0,r,s,a,i,l),k|=e.destructible,b=1,e.assignable=2,16!==e.token&&18!==e.token&&(8&k&&n(e,118),f=Me(e,t,f,0,0,a,i,l),k|=16,16!==e.token&&18!==e.token&&(f=Oe(e,t,0,0,a,i,l,f)))}if(!m||16!==e.token&&18!==e.token||g.push(f),!Z(e,32768|t,18))break;if(m||(m=1,g=[f]),16===e.token){k|=8;break}}m&&(e.assignable=2,f=oe(e,t,h,P,y,{type:"SequenceExpression",expressions:g}));W(e,t,16),16&k&&8&k&&n(e,145);if(k|=256&e.destructible?256:0|128&e.destructible?128:0,10===e.token)return 48&k&&n(e,46),4196352&t&&128&k&&n(e,29),2098176&t&&256&k&&n(e,30),b&&(e.flags|=128),ft(e,t,p,m?g:[f],o,0,a,i,l);8&k&&n(e,139);return e.destructible=256^(256|e.destructible)|k,128&t?oe(e,t,c,u,d,{type:"ParenthesizedExpression",expression:f}):f}(e,t,a,1,0,u,d,p);case 86021:case 86022:case 86023:return function(e,t,n,o,r){const s=V[255&e.token],a=86023===e.token?null:"true"===s;return G(e,t),e.assignable=2,oe(e,t,n,o,r,512&t?{type:"Literal",value:a,raw:s}:{type:"Literal",value:a})}(e,t,u,d,p);case 86113:return function(e,t){const{tokenPos:n,linePos:o,colPos:r}=e;return G(e,t),e.assignable=2,oe(e,t,n,o,r,{type:"ThisExpression"})}(e,t);case 65540:return function(e,t,n,o,r){const{tokenRaw:s,tokenRegExp:a,tokenValue:i}=e;return G(e,t),e.assignable=2,oe(e,t,n,o,r,512&t?{type:"Literal",value:i,regex:a,raw:s}:{type:"Literal",value:i,regex:a})}(e,t,u,d,p);case 133:case 86096:return function(e,t,o,r,s,a){let i=null,l=null;const c=yt(e,t=16777216^(16778240|t));c.length&&(r=e.tokenPos,s=e.linePos,a=e.colPos);G(e,t),4096&e.token&&20567!==e.token&&(te(e,t,e.token)&&n(e,114),537079808==(537079808&e.token)&&n(e,115),i=tt(e,t,0));let u=t;Z(e,32768|t,20567)?(l=Je(e,t,0,o,0,e.tokenPos,e.linePos,e.colPos),u|=524288):u=524288^(524288|u);const d=vt(e,u,t,void 0,2,0,o);return e.assignable=2,oe(e,t,r,s,a,1&t?{type:"ClassExpression",id:i,superClass:l,decorators:c,body:d}:{type:"ClassExpression",id:i,superClass:l,body:d})}(e,t,l,u,d,p);case 86111:return function(e,t,o,r,s){switch(G(e,t),e.token){case 67108991:n(e,161);case 67174411:(524288&t)<1&&n(e,26),16384&t&&n(e,143),e.assignable=2;break;case 69271571:case 67108877:(262144&t)<1&&n(e,27),16384&t&&n(e,143),e.assignable=1;break;default:n(e,28,"super")}return oe(e,t,o,r,s,{type:"Super"})}(e,t,u,d,p);case 67174409:return Ze(e,t,u,d,p);case 67174408:return We(e,t);case 86109:return function(e,t,o,r,s,a){const i=tt(e,32768|t,0),{tokenPos:l,linePos:c,colPos:u}=e;if(Z(e,t,67108877)){if(67108864&t&&143494===e.token)return e.assignable=2,function(e,t,n,o,r,s){const a=tt(e,t,0);return oe(e,t,o,r,s,{type:"MetaProperty",meta:n,property:a})}(e,t,i,r,s,a);n(e,91)}e.assignable=2,16842752==(16842752&e.token)&&n(e,62,V[255&e.token]);const d=Xe(e,t,2,1,0,0,o,1,l,c,u);t=134217728^(134217728|t),67108991===e.token&&n(e,162);const p=mt(e,t,d,o,l,c,u);return e.assignable=2,oe(e,t,r,s,a,{type:"NewExpression",callee:p,arguments:67174411===e.token?et(e,t,o):[]})}(e,t,l,u,d,p);case 134283389:return Ye(e,t,u,d,p);case 131:return qt(e,t,u,d,p);case 86108:return function(e,t,o,r,s,a,i){let l=tt(e,t,0);if(67108877===e.token)return _e(e,t,l,s,a,i);o&&n(e,137);return l=$e(e,t,r,s,a,i),e.assignable=2,Me(e,t,l,r,0,s,a,i)}(e,t,s,l,u,d,p);case 8456258:if(16&t)return St(e,t,1,u,d,p);default:if(fe(t,e.token))return dt(e,t,u,d,p);n(e,28,V[255&e.token])}}function _e(e,t,o,r,s,a){return 0==(2048&t)&&n(e,163),G(e,t),143495!==e.token&&"meta"!==e.tokenValue&&n(e,28,V[255&e.token]),e.assignable=2,oe(e,t,r,s,a,{type:"MetaProperty",meta:o,property:tt(e,t,0)})}function $e(e,t,o,r,s,a){W(e,32768|t,67174411),14===e.token&&n(e,138);const i=Ie(e,t,1,0,o,e.tokenPos,e.linePos,e.colPos);return W(e,t,16),oe(e,t,r,s,a,{type:"ImportExpression",source:i})}function Ye(e,t,n,o,r){const{tokenRaw:s,tokenValue:a}=e;return G(e,t),e.assignable=2,oe(e,t,n,o,r,512&t?{type:"Literal",value:a,bigint:s.slice(0,-1),raw:s}:{type:"Literal",value:a,bigint:s.slice(0,-1)})}function Ze(e,t,n,o,r){e.assignable=2;const{tokenValue:s,tokenRaw:a,tokenPos:i,linePos:l,colPos:c}=e;W(e,t,67174409);return oe(e,t,n,o,r,{type:"TemplateLiteral",expressions:[],quasis:[Ke(e,t,s,a,i,l,c,!0)]})}function We(e,t){t=134217728^(134217728|t);const{tokenValue:o,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;W(e,32768|t,67174408);const l=[Ke(e,t,o,r,s,a,i,!1)],c=[Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos)];for(1074790415!==e.token&&n(e,80);67174409!==(e.token=S(e,t));){const{tokenValue:o,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;W(e,32768|t,67174408),l.push(Ke(e,t,o,r,s,a,i,!1)),c.push(Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos)),1074790415!==e.token&&n(e,80)}{const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;W(e,t,67174409),l.push(Ke(e,t,n,o,r,s,a,!0))}return oe(e,t,s,a,i,{type:"TemplateLiteral",expressions:c,quasis:l})}function Ke(e,t,n,o,r,s,a,i){const l=oe(e,t,r,s,a,{type:"TemplateElement",value:{cooked:n,raw:o},tail:i}),c=i?1:2;return 2&t&&(l.start+=1,l.range[0]+=1,l.end-=c,l.range[1]-=c),4&t&&(l.loc.start.column+=1,l.loc.end.column-=c),l}function Qe(e,t,n,o,r){W(e,32768|(t=134217728^(134217728|t)),14);const s=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=1,oe(e,t,n,o,r,{type:"SpreadElement",argument:s})}function et(e,t,n){G(e,32768|t);const o=[];if(16===e.token)return G(e,t),o;for(;16!==e.token&&(14===e.token?o.push(Qe(e,t,e.tokenPos,e.linePos,e.colPos)):o.push(Ie(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos)),18===e.token)&&(G(e,32768|t),16!==e.token););return W(e,t,16),o}function tt(e,t,n){const{tokenValue:o,tokenPos:r,linePos:s,colPos:a}=e;return G(e,t),oe(e,t,r,s,a,268435456&t?{type:"Identifier",name:o,pattern:1===n}:{type:"Identifier",name:o})}function nt(e,t){const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;return 134283389===e.token?Ye(e,t,r,s,a):(G(e,t),e.assignable=2,oe(e,t,r,s,a,512&t?{type:"Literal",value:n,raw:o}:{type:"Literal",value:n}))}function ot(e,t,o,r,s,a,i,l,c,u){G(e,32768|t);const d=s?Y(e,t,8457014):0;let p,f=null,k=o?{parent:void 0,type:2}:void 0;if(67174411===e.token)(1&a)<1&&n(e,37,"Function");else{const s=4&r&&((8192&t)<1||(2048&t)<1)?4:64;ee(e,t|(3072&t)<<11,e.token),o&&(4&s?ue(e,t,o,e.tokenValue,s):ce(e,t,o,e.tokenValue,s,r),k=ie(k,256),a&&2&a&&de(e,e.tokenValue)),p=e.token,143360&e.token?f=tt(e,t,0):n(e,28,V[255&e.token])}t=32243712^(32243712|t)|67108864|2*i+d<<21|(d?0:1073741824),o&&(k=ie(k,512));return oe(e,t,l,c,u,{type:"FunctionDeclaration",id:f,params:gt(e,8388608|t,k,0,1),body:He(e,143360^(143360|t),o?ie(k,128):k,8,p,o?k.scopeError:void 0),async:1===i,generator:1===d})}function rt(e,t,n,o,r,s,a){G(e,32768|t);const i=Y(e,t,8457014),l=2*n+i<<21;let c,u=null,d=64&t?{parent:void 0,type:2}:void 0;(176128&e.token)>0&&(ee(e,32243712^(32243712|t)|l,e.token),d&&(d=ie(d,256)),c=e.token,u=tt(e,t,0)),t=32243712^(32243712|t)|67108864|l|(i?0:1073741824),d&&(d=ie(d,512));const p=gt(e,8388608|t,d,o,1),f=He(e,-134377473&t,d?ie(d,128):d,0,c,void 0);return e.assignable=2,oe(e,t,r,s,a,{type:"FunctionExpression",id:u,params:p,body:f,async:1===n,generator:1===i})}function st(e,t,o,r,s,a,i,l,c,u,d){G(e,32768|t);const p=[];let f=0;for(t=134217728^(134217728|t);20!==e.token;)if(Z(e,32768|t,18))p.push(null);else{let r;const{token:c,tokenPos:u,linePos:d,colPos:k,tokenValue:g}=e;if(143360&c)if(r=Xe(e,t,i,0,1,0,s,1,u,d,k),1077936157===e.token){2&e.assignable&&n(e,24),G(e,32768|t),o&&le(e,t,o,g,i,l);const c=Ie(e,t,1,1,s,e.tokenPos,e.linePos,e.colPos);r=oe(e,t,u,d,k,a?{type:"AssignmentPattern",left:r,right:c}:{type:"AssignmentExpression",operator:"=",left:r,right:c}),f|=256&e.destructible?256:0|128&e.destructible?128:0}else 18===e.token||20===e.token?(2&e.assignable?f|=16:o&&le(e,t,o,g,i,l),f|=256&e.destructible?256:0|128&e.destructible?128:0):(f|=1&i?32:(2&i)<1?16:0,r=Me(e,t,r,s,0,u,d,k),18!==e.token&&20!==e.token?(1077936157!==e.token&&(f|=16),r=Oe(e,t,s,a,u,d,k,r)):1077936157!==e.token&&(f|=2&e.assignable?16:32));else 2097152&c?(r=2162700===e.token?ct(e,t,o,0,s,a,i,l,u,d,k):st(e,t,o,0,s,a,i,l,u,d,k),f|=e.destructible,e.assignable=16&e.destructible?2:1,18===e.token||20===e.token?2&e.assignable&&(f|=16):8&e.destructible?n(e,68):(r=Me(e,t,r,s,0,u,d,k),f=2&e.assignable?16:0,18!==e.token&&20!==e.token?r=Oe(e,t,s,a,u,d,k,r):1077936157!==e.token&&(f|=2&e.assignable?16:32))):14===c?(r=it(e,t,o,20,i,l,0,s,a,u,d,k),f|=e.destructible,18!==e.token&&20!==e.token&&n(e,28,V[255&e.token])):(r=Je(e,t,1,0,1,u,d,k),18!==e.token&&20!==e.token?(r=Oe(e,t,s,a,u,d,k,r),(3&i)<1&&67174411===c&&(f|=16)):2&e.assignable?f|=16:67174411===c&&(f|=1&e.assignable&&3&i?32:16));if(p.push(r),!Z(e,32768|t,18))break;if(20===e.token)break}W(e,t,20);const k=oe(e,t,c,u,d,{type:a?"ArrayPattern":"ArrayExpression",elements:p});return!r&&4194304&e.token?at(e,t,f,s,a,c,u,d,k):(e.destructible=f,k)}function at(e,t,o,r,s,a,i,l,c){1077936157!==e.token&&n(e,24),G(e,32768|t),16&o&&n(e,24),s||K(e,c);const{tokenPos:u,linePos:d,colPos:p}=e,f=Ie(e,t,1,1,r,u,d,p);return e.destructible=72^(72|o)|(128&e.destructible?128:0)|(256&e.destructible?256:0),oe(e,t,a,i,l,s?{type:"AssignmentPattern",left:c,right:f}:{type:"AssignmentExpression",left:c,operator:"=",right:f})}function it(e,t,o,r,s,a,i,l,c,u,d,p){G(e,32768|t);let f=null,k=0,{token:g,tokenValue:m,tokenPos:b,linePos:h,colPos:P}=e;if(143360&g)e.assignable=1,f=Xe(e,t,s,0,1,0,l,1,b,h,P),g=e.token,f=Me(e,t,f,l,0,b,h,P),18!==e.token&&e.token!==r&&(2&e.assignable&&1077936157===e.token&&n(e,68),k|=16,f=Oe(e,t,l,c,b,h,P,f)),2&e.assignable?k|=16:g===r||18===g?o&&le(e,t,o,m,s,a):k|=32,k|=128&e.destructible?128:0;else if(g===r)n(e,39);else{if(!(2097152&g)){k|=32,f=Je(e,t,1,l,1,e.tokenPos,e.linePos,e.colPos);const{token:o,tokenPos:s,linePos:a,colPos:i}=e;return 1077936157===o&&o!==r&&18!==o?(2&e.assignable&&n(e,24),f=Oe(e,t,l,c,s,a,i,f),k|=16):(18===o?k|=16:o!==r&&(f=Oe(e,t,l,c,s,a,i,f)),k|=1&e.assignable?32:16),e.destructible=k,e.token!==r&&18!==e.token&&n(e,155),oe(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}f=2162700===e.token?ct(e,t,o,1,l,c,s,a,b,h,P):st(e,t,o,1,l,c,s,a,b,h,P),g=e.token,1077936157!==g&&g!==r&&18!==g?(8&e.destructible&&n(e,68),f=Me(e,t,f,l,0,b,h,P),k|=2&e.assignable?16:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),f=Oe(e,t,l,c,b,h,P,f)):(8454144==(8454144&e.token)&&(f=je(e,t,1,b,h,P,4,g,f)),Z(e,32768|t,22)&&(f=Fe(e,t,f,b,h,P)),k|=2&e.assignable?16:32)):k|=1074790415===r&&1077936157!==g?16:e.destructible}if(e.token!==r)if(1&s&&(k|=i?16:32),Z(e,32768|t,1077936157)){16&k&&n(e,24),K(e,f);const o=Ie(e,t,1,1,l,e.tokenPos,e.linePos,e.colPos);f=oe(e,t,b,h,P,c?{type:"AssignmentPattern",left:f,right:o}:{type:"AssignmentExpression",left:f,operator:"=",right:o}),k=16}else k|=16;return e.destructible=k,oe(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}function lt(e,t,r,s,a,i,l){const c=(64&r)<1?31981568:14680064;let u=64&(t=(t|c)^c|(88&r)<<18|100925440)?ie({parent:void 0,type:2},512):void 0;const d=function(e,t,r,s,a,i){W(e,t,67174411);const l=[];if(e.flags=128^(128|e.flags),16===e.token)return 512&s&&n(e,35,"Setter","one",""),G(e,t),l;256&s&&n(e,35,"Getter","no","s");512&s&&14===e.token&&n(e,36);t=134217728^(134217728|t);let c=0,u=0;for(;18!==e.token;){let o=null;const{tokenPos:d,linePos:p,colPos:f}=e;if(143360&e.token?((1024&t)<1&&(36864==(36864&e.token)&&(e.flags|=256),537079808==(537079808&e.token)&&(e.flags|=512)),o=At(e,t,r,1|s,0,d,p,f)):(2162700===e.token?o=ct(e,t,r,1,i,1,a,0,d,p,f):69271571===e.token?o=st(e,t,r,1,i,1,a,0,d,p,f):14===e.token&&(o=it(e,t,r,16,a,0,0,i,1,d,p,f)),u=1,48&e.destructible&&n(e,47)),1077936157===e.token){G(e,32768|t),u=1;o=oe(e,t,d,p,f,{type:"AssignmentPattern",left:o,right:Ie(e,t,1,1,0,e.tokenPos,e.linePos,e.colPos)})}if(c++,l.push(o),!Z(e,t,18))break;if(16===e.token)break}512&s&&1!==c&&n(e,35,"Setter","one","");r&&void 0!==r.scopeError&&o(r.scopeError);u&&(e.flags|=128);return W(e,t,16),l}(e,8388608|t,u,r,1,s);u&&(u=ie(u,128));return oe(e,t,a,i,l,{type:"FunctionExpression",params:d,body:He(e,-134230017&t,u,0,void 0,void 0),async:(16&r)>0,generator:(8&r)>0,id:null})}function ct(e,t,o,s,a,i,l,c,u,d,p){G(e,t);const f=[];let k=0,g=0;for(t=134217728^(134217728|t);1074790415!==e.token;){const{token:s,tokenValue:u,linePos:d,colPos:p,tokenPos:m}=e;if(14===s)f.push(it(e,t,o,1074790415,l,c,0,a,i,m,d,p));else{let b,h=0,P=null;const y=e.token;if(143360&e.token||121===e.token)if(P=tt(e,t,0),18===e.token||1074790415===e.token||1077936157===e.token)if(h|=4,1024&t&&537079808==(537079808&s)?k|=16:Q(e,t,l,s,0),o&&le(e,t,o,u,l,c),Z(e,32768|t,1077936157)){k|=8;const n=Ie(e,t,1,1,a,e.tokenPos,e.linePos,e.colPos);k|=256&e.destructible?256:0|128&e.destructible?128:0,b=oe(e,t,m,d,p,{type:"AssignmentPattern",left:-2147483648&t?Object.assign({},P):P,right:n})}else k|=(209008===s?128:0)|(121===s?16:0),b=-2147483648&t?Object.assign({},P):P;else if(Z(e,32768|t,21)){const{tokenPos:r,linePos:d,colPos:p}=e;if("__proto__"===u&&g++,143360&e.token){const n=e.token,s=e.tokenValue;k|=121===y?16:0,b=Xe(e,t,l,0,1,0,a,1,r,d,p);const{token:u}=e;b=Me(e,t,b,a,0,r,d,p),18===e.token||1074790415===e.token?1077936157===u||1074790415===u||18===u?(k|=128&e.destructible?128:0,2&e.assignable?k|=16:o&&143360==(143360&n)&&le(e,t,o,s,l,c)):k|=1&e.assignable?32:16:4194304==(4194304&e.token)?(2&e.assignable?k|=16:1077936157!==u?k|=32:o&&le(e,t,o,s,l,c),b=Oe(e,t,a,i,r,d,p,b)):(k|=16,8454144==(8454144&e.token)&&(b=je(e,t,1,r,d,p,4,u,b)),Z(e,32768|t,22)&&(b=Fe(e,t,b,r,d,p)))}else 2097152==(2097152&e.token)?(b=69271571===e.token?st(e,t,o,0,a,i,l,c,r,d,p):ct(e,t,o,0,a,i,l,c,r,d,p),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&e.destructible?n(e,68):(b=Me(e,t,b,a,0,r,d,p),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=Ge(e,t,a,i,r,d,p,b):(8454144==(8454144&e.token)&&(b=je(e,t,1,r,d,p,4,s,b)),Z(e,32768|t,22)&&(b=Fe(e,t,b,r,d,p)),k|=2&e.assignable?16:32))):(b=Je(e,t,1,a,1,r,d,p),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=Me(e,t,b,a,0,r,d,p),k=2&e.assignable?16:0,18!==e.token&&1074790415!==s&&(1077936157!==e.token&&(k|=16),b=Oe(e,t,a,i,r,d,p,b))))}else 69271571===e.token?(k|=16,209007===s&&(h|=16),h|=2|(12402===s?256:12403===s?512:1),P=ut(e,t,a),k|=e.assignable,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):143360&e.token?(k|=16,121===s&&n(e,92),209007===s&&(1&e.flags&&n(e,128),h|=16),P=tt(e,t,0),h|=12402===s?256:12403===s?512:1,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):67174411===e.token?(k|=16,h|=1,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):8457014===e.token?(k|=16,12402===s||12403===s?n(e,40):143483===s&&n(e,92),G(e,t),h|=9|(209007===s?16:0),143360&e.token?P=tt(e,t,0):134217728==(134217728&e.token)?P=nt(e,t):69271571===e.token?(h|=2,P=ut(e,t,a),k|=e.assignable):n(e,28,V[255&e.token]),b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):134217728==(134217728&e.token)?(209007===s&&(h|=16),h|=12402===s?256:12403===s?512:1,k|=16,P=nt(e,t),b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):n(e,129);else if(134217728==(134217728&e.token))if(P=nt(e,t),21===e.token){W(e,32768|t,21);const{tokenPos:n,linePos:r,colPos:d}=e;if("__proto__"===u&&g++,143360&e.token){b=Xe(e,t,l,0,1,0,a,1,n,r,d);const{token:s,tokenValue:u}=e;b=Me(e,t,b,a,0,n,r,d),18===e.token||1074790415===e.token?1077936157===s||1074790415===s||18===s?2&e.assignable?k|=16:o&&le(e,t,o,u,l,c):k|=1&e.assignable?32:16:1077936157===e.token?(2&e.assignable&&(k|=16),b=Oe(e,t,a,i,n,r,d,b)):(k|=16,b=Oe(e,t,a,i,n,r,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?st(e,t,o,0,a,i,l,c,n,r,d):ct(e,t,o,0,a,i,l,c,n,r,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8!=(8&e.destructible)&&(b=Me(e,t,b,a,0,n,r,d),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=Ge(e,t,a,i,n,r,d,b):(8454144==(8454144&e.token)&&(b=je(e,t,1,n,r,d,4,s,b)),Z(e,32768|t,22)&&(b=Fe(e,t,b,n,r,d)),k|=2&e.assignable?16:32))):(b=Je(e,t,1,0,1,n,r,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=Me(e,t,b,a,0,n,r,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Oe(e,t,a,i,n,r,d,b))))}else 67174411===e.token?(h|=1,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos),k=16|e.assignable):n(e,130);else if(69271571===e.token)if(P=ut(e,t,a),k|=256&e.destructible?256:0,h|=2,21===e.token){G(e,32768|t);const{tokenPos:r,linePos:u,colPos:d,tokenValue:p,token:f}=e;if(143360&e.token){b=Xe(e,t,l,0,1,0,a,1,r,u,d);const{token:n}=e;b=Me(e,t,b,a,0,r,u,d),4194304==(4194304&e.token)?(k|=2&e.assignable?16:1077936157===n?0:32,b=Ge(e,t,a,i,r,u,d,b)):18===e.token||1074790415===e.token?1077936157===n||1074790415===n||18===n?2&e.assignable?k|=16:o&&143360==(143360&f)&&le(e,t,o,p,l,c):k|=1&e.assignable?32:16:(k|=16,b=Oe(e,t,a,i,r,u,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?st(e,t,o,0,a,i,l,c,r,u,d):ct(e,t,o,0,a,i,l,c,r,u,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&k?n(e,59):(b=Me(e,t,b,a,0,r,u,d),k=2&e.assignable?16|k:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,r,u,d,b)):(8454144==(8454144&e.token)&&(b=je(e,t,1,r,u,d,4,s,b)),Z(e,32768|t,22)&&(b=Fe(e,t,b,r,u,d)),k|=2&e.assignable?16:32))):(b=Je(e,t,1,0,1,r,u,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=Me(e,t,b,a,0,r,u,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Oe(e,t,a,i,r,u,d,b))))}else 67174411===e.token?(h|=1,b=lt(e,t,h,a,e.tokenPos,d,p),k=16):n(e,41);else if(8457014===s)if(W(e,32768|t,8457014),h|=8,143360&e.token){const{token:n,line:o,index:s}=e;P=tt(e,t,0),h|=1,67174411===e.token?(k|=16,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):r(s,o,s,209007===n?43:12402===n||12403===e.token?42:44,V[255&n])}else 134217728==(134217728&e.token)?(k|=16,P=nt(e,t),h|=1,b=lt(e,t,h,a,m,d,p)):69271571===e.token?(k|=16,h|=3,P=ut(e,t,a),b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):n(e,122);else n(e,28,V[255&s]);k|=128&e.destructible?128:0,e.destructible=k,f.push(oe(e,t,m,d,p,{type:"Property",key:P,value:b,kind:768&h?512&h?"set":"get":"init",computed:(2&h)>0,method:(1&h)>0,shorthand:(4&h)>0}))}if(k|=e.destructible,18!==e.token)break;G(e,t)}W(e,t,1074790415),g>1&&(k|=64);const m=oe(e,t,u,d,p,{type:i?"ObjectPattern":"ObjectExpression",properties:f});return!s&&4194304&e.token?at(e,t,k,a,i,u,d,p,m):(e.destructible=k,m)}function ut(e,t,n){G(e,32768|t);const o=Ie(e,134217728^(134217728|t),1,0,n,e.tokenPos,e.linePos,e.colPos);return W(e,t,20),o}function dt(e,t,n,o,r){const{tokenValue:s}=e,a=tt(e,t,0);if(e.assignable=1,10===e.token){let i;return 64&t&&(i=se(e,t,s)),e.flags=128^(128|e.flags),kt(e,t,i,[a],0,n,o,r)}return a}function pt(e,t,o,r,s,a,i,l,c,u){a||n(e,54),s&&n(e,48),e.flags&=-129;return kt(e,t,64&t?se(e,t,o):void 0,[r],i,l,c,u)}function ft(e,t,o,r,s,a,i,l,c){s||n(e,54);for(let t=0;t0&&"constructor"===e.tokenValue&&n(e,106),1074790415===e.token&&n(e,105),Z(e,t,1074790417)?a>0&&n(e,116):d.push(wt(e,t,r,o,s,p,0,i,e.tokenPos,e.linePos,e.colPos))}return W(e,8&a?32768|t:t,1074790415),oe(e,t,l,c,u,{type:"ClassBody",body:d})}function wt(e,t,o,r,s,a,i,l,c,u,d){let p=i?32:0,f=null;const{token:k,tokenPos:g,linePos:m,colPos:b}=e;if(176128&k)switch(f=tt(e,t,0),k){case 36972:if(!i&&67174411!==e.token)return wt(e,t,o,r,s,a,1,l,c,u,d);break;case 209007:if(67174411!==e.token&&(1&e.flags)<1){if(1&t&&1073741824==(1073741824&e.token))return Ct(e,t,f,p,a,g,m,b);p|=16|(Y(e,t,8457014)?8:0)}break;case 12402:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Ct(e,t,f,p,a,g,m,b);p|=256}break;case 12403:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Ct(e,t,f,p,a,g,m,b);p|=512}}else 69271571===k?(p|=2,f=ut(e,r,l)):134217728==(134217728&k)?f=nt(e,t):8457014===k?(p|=8,G(e,t)):1&t&&131===e.token?(p|=4096,f=qt(e,t,g,m,b),t|=16384):1&t&&1073741824==(1073741824&e.token)?(p|=128,t|=16384):122===k?(f=tt(e,t,0),67174411!==e.token&&n(e,28,V[255&e.token])):n(e,28,V[255&e.token]);if(792&p&&(143360&e.token?f=tt(e,t,0):134217728==(134217728&e.token)?f=nt(e,t):69271571===e.token?(p|=2,f=ut(e,t,0)):122===e.token?f=tt(e,t,0):1&t&&131===e.token?(p|=4096,f=qt(e,t,g,m,b)):n(e,131)),(2&p)<1&&("constructor"===e.tokenValue?(1073741824==(1073741824&e.token)?n(e,125):(32&p)<1&&67174411===e.token&&(920&p?n(e,50,"accessor"):(524288&t)<1&&(32&e.flags?n(e,51):e.flags|=32)),p|=64):(4096&p)<1&&824&p&&"prototype"===e.tokenValue&&n(e,49)),1&t&&67174411!==e.token)return Ct(e,t,f,p,a,g,m,b);const h=lt(e,t,p,l,e.tokenPos,e.linePos,e.colPos);return oe(e,t,c,u,d,1&t?{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,decorators:a,value:h}:{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,value:h})}function qt(e,t,o,r,s){G(e,t);const{tokenValue:a}=e;return"constructor"===a&&n(e,124),G(e,t),oe(e,t,o,r,s,{type:"PrivateIdentifier",name:a})}function Ct(e,t,o,r,s,a,i,l){let c=null;if(8&r&&n(e,0),1077936157===e.token){G(e,32768|t);const{tokenPos:o,linePos:r,colPos:s}=e;537079928===e.token&&n(e,115),c=Xe(e,16384|t,2,0,1,0,0,1,o,r,s),1073741824!=(1073741824&e.token)&&(c=Me(e,16384|t,c,0,0,o,r,s),c=Oe(e,16384|t,0,0,o,r,s,c),18===e.token&&(c=Ue(e,t,0,a,i,l,c)))}return oe(e,t,a,i,l,{type:"PropertyDefinition",key:o,value:c,static:(32&r)>0,computed:(2&r)>0,decorators:s})}function Et(e,t,o,r,s,a,i,l){if(143360&e.token)return At(e,t,o,r,s,a,i,l);2097152!=(2097152&e.token)&&n(e,28,V[255&e.token]);const c=69271571===e.token?st(e,t,o,1,0,1,r,s,a,i,l):ct(e,t,o,1,0,1,r,s,a,i,l);return 16&e.destructible&&n(e,47),32&e.destructible&&n(e,47),c}function At(e,t,o,r,s,a,i,l){const{tokenValue:c,token:u}=e;return 1024&t&&(537079808==(537079808&u)?n(e,115):36864==(36864&u)&&n(e,114)),20480==(20480&u)&&n(e,99),2099200&t&&241773===u&&n(e,30),241739===u&&24&r&&n(e,97),4196352&t&&209008===u&&n(e,95),G(e,t),o&&le(e,t,o,c,r,s),oe(e,t,a,i,l,{type:"Identifier",name:c})}function St(e,t,o,r,s,a){if(G(e,t),8456259===e.token)return oe(e,t,r,s,a,{type:"JSXFragment",openingFragment:Dt(e,t,r,s,a),children:Vt(e,t),closingFragment:Lt(e,t,o,e.tokenPos,e.linePos,e.colPos)});let i=null,l=[];const c=function(e,t,o,r,s,a){143360!=(143360&e.token)&&4096!=(4096&e.token)&&n(e,0);const i=Rt(e,t,e.tokenPos,e.linePos,e.colPos),l=function(e,t){const n=[];for(;8457016!==e.token&&8456259!==e.token&&1048576!==e.token;)n.push(It(e,t,e.tokenPos,e.linePos,e.colPos));return n}(e,t),c=8457016===e.token;8456259===e.token?z(e,t):(W(e,t,8457016),o?W(e,t,8456259):z(e,t));return oe(e,t,r,s,a,{type:"JSXOpeningElement",name:i,attributes:l,selfClosing:c})}(e,t,o,r,s,a);if(!c.selfClosing){l=Vt(e,t),i=function(e,t,n,o,r,s){W(e,t,25);const a=Rt(e,t,e.tokenPos,e.linePos,e.colPos);n?W(e,t,8456259):e.token=z(e,t);return oe(e,t,o,r,s,{type:"JSXClosingElement",name:a})}(e,t,o,e.tokenPos,e.linePos,e.colPos);const r=re(i.name);re(c.name)!==r&&n(e,149,r)}return oe(e,t,r,s,a,{type:"JSXElement",children:l,openingElement:c,closingElement:i})}function Dt(e,t,n,o,r){return z(e,t),oe(e,t,n,o,r,{type:"JSXOpeningFragment"})}function Lt(e,t,n,o,r,s){return W(e,t,25),W(e,t,8456259),oe(e,t,o,r,s,{type:"JSXClosingFragment"})}function Vt(e,t){const n=[];for(;25!==e.token;)e.index=e.tokenPos=e.startPos,e.column=e.colPos=e.startColumn,e.line=e.linePos=e.startLine,z(e,t),n.push(Tt(e,t,e.tokenPos,e.linePos,e.colPos));return n}function Tt(e,t,o,r,s){return 138===e.token?function(e,t,n,o,r){z(e,t);const s={type:"JSXText",value:e.tokenValue};512&t&&(s.raw=e.tokenRaw);return oe(e,t,n,o,r,s)}(e,t,o,r,s):2162700===e.token?Bt(e,t,0,0,o,r,s):8456258===e.token?St(e,t,0,o,r,s):void n(e,0)}function Rt(e,t,n,o,r){X(e);let s=Ot(e,t,n,o,r);if(21===e.token)return Ut(e,t,s,n,o,r);for(;Z(e,t,67108877);)X(e),s=Nt(e,t,s,n,o,r);return s}function Nt(e,t,n,o,r,s){return oe(e,t,o,r,s,{type:"JSXMemberExpression",object:n,property:Ot(e,t,e.tokenPos,e.linePos,e.colPos)})}function It(e,t,o,r,s){if(2162700===e.token)return function(e,t,n,o,r){G(e,t),W(e,t,14);const s=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return W(e,t,1074790415),oe(e,t,n,o,r,{type:"JSXSpreadAttribute",argument:s})}(e,t,o,r,s);X(e);let a=null,i=Ot(e,t,o,r,s);if(21===e.token&&(i=Ut(e,t,i,o,r,s)),1077936157===e.token){const o=M(e,t),{tokenPos:r,linePos:s,colPos:i}=e;switch(o){case 134283267:a=nt(e,t);break;case 8456258:a=St(e,t,1,r,s,i);break;case 2162700:a=Bt(e,t,1,1,r,s,i);break;default:n(e,148)}}return oe(e,t,o,r,s,{type:"JSXAttribute",value:a,name:i})}function Ut(e,t,n,o,r,s){W(e,t,21);return oe(e,t,o,r,s,{type:"JSXNamespacedName",namespace:n,name:Ot(e,t,e.tokenPos,e.linePos,e.colPos)})}function Bt(e,t,o,r,s,a,i){G(e,t);const{tokenPos:l,linePos:c,colPos:u}=e;if(14===e.token)return function(e,t,n,o,r){W(e,t,14);const s=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return W(e,t,1074790415),oe(e,t,n,o,r,{type:"JSXSpreadChild",expression:s})}(e,t,l,c,u);let d=null;return 1074790415===e.token?(r&&n(e,151),d=function(e,t,n,o,r){return e.startPos=e.tokenPos,e.startLine=e.linePos,e.startColumn=e.colPos,oe(e,t,n,o,r,{type:"JSXEmptyExpression"})}(e,t,e.startPos,e.startLine,e.startColumn)):d=Ie(e,t,1,0,0,l,c,u),o?W(e,t,1074790415):z(e,t),oe(e,t,s,a,i,{type:"JSXExpressionContainer",expression:d})}function Ot(e,t,n,o,r){const{tokenValue:s}=e;return G(e,t),oe(e,t,n,o,r,{type:"JSXIdentifier",name:s})}var Gt=Object.freeze({__proto__:null});exports.ESTree=Gt,exports.parse=function(e,t){return ge(e,t,0)},exports.parseModule=function(e,t){return ge(e,t,3072)},exports.parseScript=function(e,t){return ge(e,t,0)},exports.version="4.2.0"; diff --git a/node_modules/meriyah/dist/meriyah.esm.js b/node_modules/meriyah/dist/meriyah.esm.js new file mode 100644 index 0000000..a6ff1de --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.esm.js @@ -0,0 +1,8782 @@ +const errorMessages = { + [0]: 'Unexpected token', + [28]: "Unexpected token: '%0'", + [1]: 'Octal escape sequences are not allowed in strict mode', + [2]: 'Octal escape sequences are not allowed in template strings', + [3]: 'Unexpected token `#`', + [4]: 'Illegal Unicode escape sequence', + [5]: 'Invalid code point %0', + [6]: 'Invalid hexadecimal escape sequence', + [8]: 'Octal literals are not allowed in strict mode', + [7]: 'Decimal integer literals with a leading zero are forbidden in strict mode', + [9]: 'Expected number in radix %0', + [145]: 'Invalid left-hand side assignment to a destructible right-hand side', + [10]: 'Non-number found after exponent indicator', + [11]: 'Invalid BigIntLiteral', + [12]: 'No identifiers allowed directly after numeric literal', + [13]: 'Escapes \\8 or \\9 are not syntactically valid escapes', + [14]: 'Unterminated string literal', + [15]: 'Unterminated template literal', + [16]: 'Multiline comment was not closed properly', + [17]: 'The identifier contained dynamic unicode escape that was not closed', + [18]: "Illegal character '%0'", + [19]: 'Missing hexadecimal digits', + [20]: 'Invalid implicit octal', + [21]: 'Invalid line break in string literal', + [22]: 'Only unicode escapes are legal in identifier names', + [23]: "Expected '%0'", + [24]: 'Invalid left-hand side in assignment', + [25]: 'Invalid left-hand side in async arrow', + [26]: 'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass', + [27]: 'Member access on super must be in a method', + [29]: 'Await expression not allowed in formal parameter', + [30]: 'Yield expression not allowed in formal parameter', + [92]: "Unexpected token: 'escaped keyword'", + [31]: 'Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses', + [119]: 'Async functions can only be declared at the top level or inside a block', + [32]: 'Unterminated regular expression', + [33]: 'Unexpected regular expression flag', + [34]: "Duplicate regular expression flag '%0'", + [35]: '%0 functions must have exactly %1 argument%2', + [36]: 'Setter function argument must not be a rest parameter', + [37]: '%0 declaration must have a name in this context', + [38]: 'Function name may not contain any reserved words or be eval or arguments in strict mode', + [39]: 'The rest operator is missing an argument', + [40]: 'A getter cannot be a generator', + [41]: 'A computed property name must be followed by a colon or paren', + [130]: 'Object literal keys that are strings or numbers must be a method or have a colon', + [43]: 'Found `* async x(){}` but this should be `async * x(){}`', + [42]: 'Getters and setters can not be generators', + [44]: "'%0' can not be generator method", + [45]: "No line break is allowed after '=>'", + [46]: 'The left-hand side of the arrow can only be destructed through assignment', + [47]: 'The binding declaration is not destructible', + [48]: 'Async arrow can not be followed by new expression', + [49]: "Classes may not have a static property named 'prototype'", + [50]: 'Class constructor may not be a %0', + [51]: 'Duplicate constructor method in class', + [52]: 'Invalid increment/decrement operand', + [53]: 'Invalid use of `new` keyword on an increment/decrement expression', + [54]: '`=>` is an invalid assignment target', + [55]: 'Rest element may not have a trailing comma', + [56]: 'Missing initializer in %0 declaration', + [57]: "'for-%0' loop head declarations can not have an initializer", + [58]: 'Invalid left-hand side in for-%0 loop: Must have a single binding', + [59]: 'Invalid shorthand property initializer', + [60]: 'Property name __proto__ appears more than once in object literal', + [61]: 'Let is disallowed as a lexically bound name', + [62]: "Invalid use of '%0' inside new expression", + [63]: "Illegal 'use strict' directive in function with non-simple parameter list", + [64]: 'Identifier "let" disallowed as left-hand side expression in strict mode', + [65]: 'Illegal continue statement', + [66]: 'Illegal break statement', + [67]: 'Cannot have `let[...]` as a var name in strict mode', + [68]: 'Invalid destructuring assignment target', + [69]: 'Rest parameter may not have a default initializer', + [70]: 'The rest argument must the be last parameter', + [71]: 'Invalid rest argument', + [73]: 'In strict mode code, functions can only be declared at top level or inside a block', + [74]: 'In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement', + [75]: 'Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement', + [76]: "Class declaration can't appear in single-statement context", + [77]: 'Invalid left-hand side in for-%0', + [78]: 'Invalid assignment in for-%0', + [79]: 'for await (... of ...) is only valid in async functions and async generators', + [80]: 'The first token after the template expression should be a continuation of the template', + [82]: '`let` declaration not allowed here and `let` cannot be a regular var name in strict mode', + [81]: '`let \n [` is a restricted production at the start of a statement', + [83]: 'Catch clause requires exactly one parameter, not more (and no trailing comma)', + [84]: 'Catch clause parameter does not support default values', + [85]: 'Missing catch or finally after try', + [86]: 'More than one default clause in switch statement', + [87]: 'Illegal newline after throw', + [88]: 'Strict mode code may not include a with statement', + [89]: 'Illegal return statement', + [90]: 'The left hand side of the for-header binding declaration is not destructible', + [91]: 'new.target only allowed within functions', + [93]: "'#' not followed by identifier", + [99]: 'Invalid keyword', + [98]: "Can not use 'let' as a class name", + [97]: "'A lexical declaration can't define a 'let' binding", + [96]: 'Can not use `let` as variable name in strict mode', + [94]: "'%0' may not be used as an identifier in this context", + [95]: 'Await is only valid in async functions', + [100]: 'The %0 keyword can only be used with the module goal', + [101]: 'Unicode codepoint must not be greater than 0x10FFFF', + [102]: '%0 source must be string', + [103]: 'Only a identifier can be used to indicate alias', + [104]: "Only '*' or '{...}' can be imported after default", + [105]: 'Trailing decorator may be followed by method', + [106]: "Decorators can't be used with a constructor", + [108]: 'HTML comments are only allowed with web compatibility (Annex B)', + [109]: "The identifier 'let' must not be in expression position in strict mode", + [110]: 'Cannot assign to `eval` and `arguments` in strict mode', + [111]: "The left-hand side of a for-of loop may not start with 'let'", + [112]: 'Block body arrows can not be immediately invoked without a group', + [113]: 'Block body arrows can not be immediately accessed without a group', + [114]: 'Unexpected strict mode reserved word', + [115]: 'Unexpected eval or arguments in strict mode', + [116]: 'Decorators must not be followed by a semicolon', + [117]: 'Calling delete on expression not allowed in strict mode', + [118]: 'Pattern can not have a tail', + [120]: 'Can not have a `yield` expression on the left side of a ternary', + [121]: 'An arrow function can not have a postfix update operator', + [122]: 'Invalid object literal key character after generator star', + [123]: 'Private fields can not be deleted', + [125]: 'Classes may not have a field called constructor', + [124]: 'Classes may not have a private element named constructor', + [126]: 'A class field initializer may not contain arguments', + [127]: 'Generators can only be declared at the top level or inside a block', + [128]: 'Async methods are a restricted production and cannot have a newline following it', + [129]: 'Unexpected character after object literal property name', + [131]: 'Invalid key token', + [132]: "Label '%0' has already been declared", + [133]: 'continue statement must be nested within an iteration statement', + [134]: "Undefined label '%0'", + [135]: 'Trailing comma is disallowed inside import(...) arguments', + [136]: 'import() requires exactly one argument', + [137]: 'Cannot use new with import(...)', + [138]: '... is not allowed in import()', + [139]: "Expected '=>'", + [140]: "Duplicate binding '%0'", + [141]: "Cannot export a duplicate name '%0'", + [144]: 'Duplicate %0 for-binding', + [142]: "Exported binding '%0' needs to refer to a top-level declared variable", + [143]: 'Unexpected private field', + [147]: 'Numeric separators are not allowed at the end of numeric literals', + [146]: 'Only one underscore is allowed as numeric separator', + [148]: 'JSX value should be either an expression or a quoted JSX text', + [149]: 'Expected corresponding JSX closing tag for %0', + [150]: 'Adjacent JSX elements must be wrapped in an enclosing tag', + [151]: "JSX attributes must only be assigned a non-empty 'expression'", + [152]: "'%0' has already been declared", + [153]: "'%0' shadowed a catch clause binding", + [154]: 'Dot property must be an identifier', + [155]: 'Encountered invalid input after spread/rest argument', + [156]: 'Catch without try', + [157]: 'Finally without try', + [158]: 'Expected corresponding closing tag for JSX fragment', + [159]: 'Coalescing and logical operators used together in the same expression must be disambiguated with parentheses', + [160]: 'Invalid tagged template on optional chain', + [161]: 'Invalid optional chain from super property', + [162]: 'Invalid optional chain from new expression', + [163]: 'Cannot use "import.meta" outside a module', + [164]: 'Leading decorators must be attached to a class declaration' +}; +class ParseError extends SyntaxError { + constructor(startindex, line, column, type, ...params) { + const message = '[' + line + ':' + column + ']: ' + errorMessages[type].replace(/%(\d+)/g, (_, i) => params[i]); + super(`${message}`); + this.index = startindex; + this.line = line; + this.column = column; + this.description = message; + this.loc = { + line, + column + }; + } +} +function report(parser, type, ...params) { + throw new ParseError(parser.index, parser.line, parser.column, type, ...params); +} +function reportScopeError(scope) { + throw new ParseError(scope.index, scope.line, scope.column, scope.type, scope.params); +} +function reportMessageAt(index, line, column, type, ...params) { + throw new ParseError(index, line, column, type, ...params); +} +function reportScannerError(index, line, column, type) { + throw new ParseError(index, line, column, type); +} + +const unicodeLookup = ((compressed, lookup) => { + const result = new Uint32Array(104448); + let index = 0; + let subIndex = 0; + while (index < 3540) { + const inst = compressed[index++]; + if (inst < 0) { + subIndex -= inst; + } + else { + let code = compressed[index++]; + if (inst & 2) + code = lookup[code]; + if (inst & 1) { + result.fill(code, subIndex, subIndex += compressed[index++]); + } + else { + result[subIndex++] = code; + } + } + } + return result; +})([-1, 2, 24, 2, 25, 2, 5, -1, 0, 77595648, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 16, 2, 60, 2, 0, 0, 4294836735, 0, 3221225471, 0, 4294901942, 2, 61, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 17, 2, 0, 0, 4294961151, 3, 0, 2, 2, 19, 2, 0, 0, 608174079, 2, 0, 2, 131, 2, 6, 2, 56, -1, 2, 37, 0, 4294443263, 2, 1, 3, 0, 3, 0, 4294901711, 2, 39, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2967484831, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 2, 194, 2, 3, 0, 3825204735, 0, 123747807, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1080049119, 0, 458703, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 66, 0, 4284449919, 0, 851904, 2, 4, 2, 11, 0, 67076095, -1, 2, 67, 0, 1073741743, 0, 4093591391, -1, 0, 50331649, 0, 3265266687, 2, 32, 0, 4294844415, 0, 4278190047, 2, 18, 2, 129, -1, 3, 0, 2, 2, 21, 2, 0, 2, 9, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 10, 0, 261632, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 2088959, 2, 27, 2, 8, 0, 909311, 3, 0, 2, 0, 814743551, 2, 41, 0, 67057664, 3, 0, 2, 2, 40, 2, 0, 2, 28, 2, 0, 2, 29, 2, 7, 0, 268374015, 2, 26, 2, 49, 2, 0, 2, 76, 0, 134153215, -1, 2, 6, 2, 0, 2, 7, 0, 2684354559, 0, 67044351, 0, 3221160064, 0, 1, -1, 3, 0, 2, 2, 42, 0, 1046528, 3, 0, 3, 2, 8, 2, 0, 2, 51, 0, 4294960127, 2, 9, 2, 38, 2, 10, 0, 4294377472, 2, 11, 3, 0, 7, 0, 4227858431, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -1, 2, 124, 0, 1048577, 2, 82, 2, 13, -1, 2, 13, 0, 131042, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 1046559, 2, 0, 2, 14, 2, 0, 0, 2147516671, 2, 20, 3, 86, 2, 2, 0, -16, 2, 87, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 2, 121, 2, 0, 0, 3220242431, 3, 0, 3, 2, 19, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 2, 0, 0, 4351, 2, 0, 2, 8, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 22, 2, 8, 2, 18, 3, 0, 2, 0, 67076097, 2, 7, 2, 0, 2, 20, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 3774349439, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, 2, 23, 0, 1638399, 2, 172, 2, 105, 3, 0, 3, 2, 18, 2, 24, 2, 25, 2, 5, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -3, 2, 150, -4, 2, 18, 2, 0, 2, 35, 0, 1, 2, 0, 2, 62, 2, 28, 2, 11, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 21, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277137519, 0, 2269118463, -1, 3, 18, 2, -1, 2, 32, 2, 36, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 46, -10, 2, 0, 0, 203775, -2, 2, 18, 2, 43, 2, 35, -2, 2, 17, 2, 117, 2, 20, 3, 0, 2, 2, 36, 0, 2147549120, 2, 0, 2, 11, 2, 17, 2, 135, 2, 0, 2, 37, 2, 52, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 120, 0, 1090519039, -2, 2, 122, 2, 38, 2, 0, 0, 67045375, 2, 39, 0, 4226678271, 0, 3766565279, 0, 2039759, -4, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 40, 2, 41, -1, 2, 10, 2, 42, -6, 2, 0, 2, 11, -3, 3, 0, 2, 0, 2147484671, 2, 125, 0, 4190109695, 2, 50, -2, 2, 126, 0, 4244635647, 0, 27, 2, 0, 2, 7, 2, 43, 2, 0, 2, 63, -1, 2, 0, 2, 40, -8, 2, 54, 2, 44, 0, 67043329, 2, 127, 2, 45, 0, 8388351, -2, 2, 128, 0, 3028287487, 2, 46, 2, 130, 0, 33259519, 2, 41, -9, 2, 20, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, 2, 41, -2, 2, 17, 2, 49, 2, 0, 2, 20, 2, 50, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 196635, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 0, 1677656575, -166, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 28, -13, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 88, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -42, 0, 4194303871, 0, 2011, -6, 2, 0, 0, 1073684479, 0, 17407, -11, 2, 0, 2, 31, -40, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 42, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -105, 2, 24, -32, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -22381, 3, 0, 7, 2, 23, -6130, 3, 5, 2, -1, 0, 69207040, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 16, 2, 60, 2, 0, 2, 33, -1, 2, 17, 2, 61, -1, 2, 0, 2, 56, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 23, 2, 62, 3, 0, 2, 0, 131135, 2, 95, 0, 70256639, 0, 71303167, 0, 272, 2, 40, 2, 56, -1, 2, 37, 2, 30, -1, 2, 96, 2, 63, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 65, 2, 64, 0, 33554435, 2, 123, 2, 65, 2, 151, 0, 131075, 0, 3594373096, 0, 67094296, 2, 64, -1, 0, 4294828000, 0, 603979263, 2, 160, 0, 3, 0, 4294828001, 0, 602930687, 2, 183, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 66, 2, 36, -1, 2, 4, 0, 917503, 2, 36, -1, 2, 67, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 32, 2, 68, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 11, -1, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 253951, 3, 19, 2, 0, 122879, 2, 0, 2, 8, 0, 276824064, -2, 3, 0, 2, 2, 40, 2, 0, 0, 4294903295, 2, 0, 2, 29, 2, 7, -1, 2, 17, 2, 49, 2, 0, 2, 76, 2, 41, -1, 2, 20, 2, 0, 2, 27, -2, 0, 128, -2, 2, 77, 2, 8, 0, 4064, -1, 2, 119, 0, 4227907585, 2, 0, 2, 118, 2, 0, 2, 48, 2, 173, 2, 9, 2, 38, 2, 10, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -3, 2, 82, 2, 13, -3, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 817183, 2, 0, 2, 14, 2, 0, 0, 33023, 2, 20, 3, 86, 2, -17, 2, 87, 0, 524157950, 2, 4, 2, 0, 2, 88, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 0, 3072, 2, 0, 0, 2147516415, 2, 9, 3, 0, 2, 2, 23, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 0, 4294965179, 0, 7, 2, 0, 2, 8, 2, 91, 2, 8, -1, 0, 1761345536, 2, 95, 0, 4294901823, 2, 36, 2, 18, 2, 96, 2, 34, 2, 166, 0, 2080440287, 2, 0, 2, 33, 2, 143, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 7, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 2700607615, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, -3, 2, 105, 3, 0, 3, 2, 18, -1, 3, 5, 2, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -8, 2, 18, 2, 0, 2, 35, -1, 2, 0, 2, 62, 2, 28, 2, 29, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 17, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277075969, 2, 29, -1, 3, 18, 2, -1, 2, 32, 2, 117, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 48, -10, 2, 0, 0, 197631, -2, 2, 18, 2, 43, 2, 118, -2, 2, 17, 2, 117, 2, 20, 2, 119, 2, 51, -2, 2, 119, 2, 23, 2, 17, 2, 33, 2, 119, 2, 36, 0, 4294901904, 0, 4718591, 2, 119, 2, 34, 0, 335544350, -1, 2, 120, 2, 121, -2, 2, 122, 2, 38, 2, 7, -1, 2, 123, 2, 65, 0, 3758161920, 0, 3, -4, 2, 0, 2, 27, 0, 2147485568, 0, 3, 2, 0, 2, 23, 0, 176, -5, 2, 0, 2, 47, 2, 186, -1, 2, 0, 2, 23, 2, 197, -1, 2, 0, 0, 16779263, -2, 2, 11, -7, 2, 0, 2, 121, -3, 3, 0, 2, 2, 124, 2, 125, 0, 2147549183, 0, 2, -2, 2, 126, 2, 35, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, -1, 2, 0, 2, 40, -8, 2, 54, 2, 47, 0, 1, 2, 127, 2, 23, -3, 2, 128, 2, 35, 2, 129, 2, 130, 0, 16778239, -10, 2, 34, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, -3, 2, 17, 2, 131, 2, 0, 2, 23, 2, 48, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 67583, -1, 2, 103, -2, 0, 11, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 2, 135, -187, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 2, 143, -73, 2, 0, 0, 1065361407, 0, 16384, -11, 2, 0, 2, 121, -40, 3, 0, 6, 2, 117, -1, 3, 0, 2, 0, 2063, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -138, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -28517, 2, 0, 0, 1, -1, 2, 124, 2, 0, 0, 8193, -21, 2, 193, 0, 10255, 0, 4, -11, 2, 64, 2, 171, -1, 0, 71680, -1, 2, 161, 0, 4292900864, 0, 805306431, -5, 2, 150, -1, 2, 157, -1, 0, 6144, -2, 2, 127, -1, 2, 154, -1, 0, 2147532800, 2, 151, 2, 165, 2, 0, 2, 164, 0, 524032, 0, 4, -4, 2, 190, 0, 205128192, 0, 1333757536, 0, 2147483696, 0, 423953, 0, 747766272, 0, 2717763192, 0, 4286578751, 0, 278545, 2, 152, 0, 4294886464, 0, 33292336, 0, 417809, 2, 152, 0, 1327482464, 0, 4278190128, 0, 700594195, 0, 1006647527, 0, 4286497336, 0, 4160749631, 2, 153, 0, 469762560, 0, 4171219488, 0, 8323120, 2, 153, 0, 202375680, 0, 3214918176, 0, 4294508592, 2, 153, -1, 0, 983584, 0, 48, 0, 58720273, 0, 3489923072, 0, 10517376, 0, 4293066815, 0, 1, 0, 2013265920, 2, 177, 2, 0, 0, 2089, 0, 3221225552, 0, 201375904, 2, 0, -2, 0, 256, 0, 122880, 0, 16777216, 2, 150, 0, 4160757760, 2, 0, -6, 2, 167, -11, 0, 3263218176, -1, 0, 49664, 0, 2160197632, 0, 8388802, -1, 0, 12713984, -1, 2, 154, 2, 159, 2, 178, -2, 2, 162, -20, 0, 3758096385, -2, 2, 155, 0, 4292878336, 2, 90, 2, 169, 0, 4294057984, -2, 2, 163, 2, 156, 2, 175, -2, 2, 155, -1, 2, 182, -1, 2, 170, 2, 124, 0, 4026593280, 0, 14, 0, 4292919296, -1, 2, 158, 0, 939588608, -1, 0, 805306368, -1, 2, 124, 0, 1610612736, 2, 156, 2, 157, 2, 4, 2, 0, -2, 2, 158, 2, 159, -3, 0, 267386880, -1, 2, 160, 0, 7168, -1, 0, 65024, 2, 154, 2, 161, 2, 179, -7, 2, 168, -8, 2, 162, -1, 0, 1426112704, 2, 163, -1, 2, 164, 0, 271581216, 0, 2149777408, 2, 23, 2, 161, 2, 124, 0, 851967, 2, 180, -1, 2, 23, 2, 181, -4, 2, 158, -20, 2, 195, 2, 165, -56, 0, 3145728, 2, 185, -4, 2, 166, 2, 124, -4, 0, 32505856, -1, 2, 167, -1, 0, 2147385088, 2, 90, 1, 2155905152, 2, -3, 2, 103, 2, 0, 2, 168, -2, 2, 169, -6, 2, 170, 0, 4026597375, 0, 1, -1, 0, 1, -1, 2, 171, -3, 2, 117, 2, 64, -2, 2, 166, -2, 2, 176, 2, 124, -878, 2, 159, -36, 2, 172, -1, 2, 201, -10, 2, 188, -5, 2, 174, -6, 0, 4294965251, 2, 27, -1, 2, 173, -1, 2, 174, -2, 0, 4227874752, -3, 0, 2146435072, 2, 159, -2, 0, 1006649344, 2, 124, -1, 2, 90, 0, 201375744, -3, 0, 134217720, 2, 90, 0, 4286677377, 0, 32896, -1, 2, 158, -3, 2, 175, -349, 2, 176, 0, 1920, 2, 177, 3, 0, 264, -11, 2, 157, -2, 2, 178, 2, 0, 0, 520617856, 0, 2692743168, 0, 36, -3, 0, 524284, -11, 2, 23, -1, 2, 187, -1, 2, 184, 0, 3221291007, 2, 178, -1, 2, 202, 0, 2158720, -3, 2, 159, 0, 1, -4, 2, 124, 0, 3808625411, 0, 3489628288, 2, 200, 0, 1207959680, 0, 3221274624, 2, 0, -3, 2, 179, 0, 120, 0, 7340032, -2, 2, 180, 2, 4, 2, 23, 2, 163, 3, 0, 4, 2, 159, -1, 2, 181, 2, 177, -1, 0, 8176, 2, 182, 2, 179, 2, 183, -1, 0, 4290773232, 2, 0, -4, 2, 163, 2, 189, 0, 15728640, 2, 177, -1, 2, 161, -1, 0, 4294934512, 3, 0, 4, -9, 2, 90, 2, 170, 2, 184, 3, 0, 4, 0, 704, 0, 1849688064, 2, 185, -1, 2, 124, 0, 4294901887, 2, 0, 0, 130547712, 0, 1879048192, 2, 199, 3, 0, 2, -1, 2, 186, 2, 187, -1, 0, 17829776, 0, 2025848832, 0, 4261477888, -2, 2, 0, -1, 0, 4286580608, -1, 0, 29360128, 2, 192, 0, 16252928, 0, 3791388672, 2, 38, 3, 0, 2, -2, 2, 196, 2, 0, -1, 2, 103, -1, 0, 66584576, -1, 2, 191, 3, 0, 9, 2, 124, -1, 0, 4294755328, 3, 0, 2, -1, 2, 161, 2, 178, 3, 0, 2, 2, 23, 2, 188, 2, 90, -2, 0, 245760, 0, 2147418112, -1, 2, 150, 2, 203, 0, 4227923456, -1, 2, 164, 2, 161, 2, 90, -3, 0, 4292870145, 0, 262144, 2, 124, 3, 0, 2, 0, 1073758848, 2, 189, -1, 0, 4227921920, 2, 190, 0, 68289024, 0, 528402016, 0, 4292927536, 3, 0, 4, -2, 0, 268435456, 2, 91, -2, 2, 191, 3, 0, 5, -1, 2, 192, 2, 163, 2, 0, -2, 0, 4227923936, 2, 62, -1, 2, 155, 2, 95, 2, 0, 2, 154, 2, 158, 3, 0, 6, -1, 2, 177, 3, 0, 3, -2, 0, 2146959360, 0, 9440640, 0, 104857600, 0, 4227923840, 3, 0, 2, 0, 768, 2, 193, 2, 77, -2, 2, 161, -2, 2, 119, -1, 2, 155, 3, 0, 8, 0, 512, 0, 8388608, 2, 194, 2, 172, 2, 187, 0, 4286578944, 3, 0, 2, 0, 1152, 0, 1266679808, 2, 191, 0, 576, 0, 4261707776, 2, 95, 3, 0, 9, 2, 155, 3, 0, 5, 2, 16, -1, 0, 2147221504, -28, 2, 178, 3, 0, 3, -3, 0, 4292902912, -6, 2, 96, 3, 0, 85, -33, 0, 4294934528, 3, 0, 126, -18, 2, 195, 3, 0, 269, -17, 2, 155, 2, 124, 2, 198, 3, 0, 2, 2, 23, 0, 4290822144, -2, 0, 67174336, 0, 520093700, 2, 17, 3, 0, 21, -2, 2, 179, 3, 0, 3, -2, 0, 30720, -1, 0, 32512, 3, 0, 2, 0, 4294770656, -191, 2, 174, -38, 2, 170, 2, 0, 2, 196, 3, 0, 279, -8, 2, 124, 2, 0, 0, 4294508543, 0, 65295, -11, 2, 177, 3, 0, 72, -3, 0, 3758159872, 0, 201391616, 3, 0, 155, -7, 2, 170, -1, 0, 384, -1, 0, 133693440, -3, 2, 196, -2, 2, 26, 3, 0, 4, 2, 169, -2, 2, 90, 2, 155, 3, 0, 4, -2, 2, 164, -1, 2, 150, 0, 335552923, 2, 197, -1, 0, 538974272, 0, 2214592512, 0, 132000, -10, 0, 192, -8, 0, 12288, -21, 0, 134213632, 0, 4294901761, 3, 0, 42, 0, 100663424, 0, 4294965284, 3, 0, 6, -1, 0, 3221282816, 2, 198, 3, 0, 11, -1, 2, 199, 3, 0, 40, -6, 0, 4286578784, 2, 0, -2, 0, 1006694400, 3, 0, 24, 2, 35, -1, 2, 94, 3, 0, 2, 0, 1, 2, 163, 3, 0, 6, 2, 197, 0, 4110942569, 0, 1432950139, 0, 2701658217, 0, 4026532864, 0, 4026532881, 2, 0, 2, 45, 3, 0, 8, -1, 2, 158, -2, 2, 169, 0, 98304, 0, 65537, 2, 170, -5, 0, 4294950912, 2, 0, 2, 118, 0, 65528, 2, 177, 0, 4294770176, 2, 26, 3, 0, 4, -30, 2, 174, 0, 3758153728, -3, 2, 169, -2, 2, 155, 2, 188, 2, 158, -1, 2, 191, -1, 2, 161, 0, 4294754304, 3, 0, 2, -3, 0, 33554432, -2, 2, 200, -3, 2, 169, 0, 4175478784, 2, 201, 0, 4286643712, 0, 4286644216, 2, 0, -4, 2, 202, -1, 2, 165, 0, 4227923967, 3, 0, 32, -1334, 2, 163, 2, 0, -129, 2, 94, -6, 2, 163, -180, 2, 203, -233, 2, 4, 3, 0, 96, -16, 2, 163, 3, 0, 47, -154, 2, 165, 3, 0, 22381, -7, 2, 17, 3, 0, 6128], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 268435455, 2147483647, 1048575, 1073741823, 3892314111, 134217727, 1061158911, 536805376, 4294910143, 4160749567, 4294901759, 4294901760, 536870911, 262143, 8388607, 4294902783, 4294918143, 65535, 67043328, 2281701374, 4294967232, 2097151, 4294903807, 4194303, 255, 67108863, 4294967039, 511, 524287, 131071, 127, 4292870143, 4294902271, 4294549487, 33554431, 1023, 67047423, 4294901888, 4286578687, 4294770687, 67043583, 32767, 15, 2047999, 67043343, 16777215, 4294902000, 4294934527, 4294966783, 4294967279, 2047, 262083, 20511, 4290772991, 41943039, 493567, 4294959104, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 4294967264, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 2044, 4292870144, 4294966272, 4294967280, 8289918, 4294934399, 4294901775, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4294966591, 2445279231, 3670015, 3238002687, 31, 63, 4294967288, 4294705151, 4095, 3221208447, 4294549472, 2147483648, 4285526655, 4294966527, 4294705152, 4294966143, 64, 4294966719, 16383, 3774873592, 458752, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967103, 4160749565, 4087, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901763, 536870912, 2952790016, 202506752, 139264, 402653184, 4261412864, 4227922944, 49152, 61440, 3758096384, 117440512, 65280, 3233808384, 3221225472, 2097152, 4294965248, 32768, 57152, 67108864, 4293918720, 4290772992, 25165824, 57344, 4227915776, 4278190080, 4227907584, 65520, 4026531840, 4227858432, 4160749568, 3758129152, 4294836224, 63488, 1073741824, 4294967040, 4194304, 251658240, 196608, 4294963200, 64512, 417808, 4227923712, 12582912, 50331648, 65472, 4294967168, 4294966784, 16, 4294917120, 2080374784, 4096, 65408, 524288, 65532]); + +function advanceChar(parser) { + parser.column++; + return (parser.currentChar = parser.source.charCodeAt(++parser.index)); +} +function consumeMultiUnitCodePoint(parser, hi) { + if ((hi & 0xfc00) !== 55296) + return 0; + const lo = parser.source.charCodeAt(parser.index + 1); + if ((lo & 0xfc00) !== 0xdc00) + return 0; + hi = parser.currentChar = 65536 + ((hi & 0x3ff) << 10) + (lo & 0x3ff); + if (((unicodeLookup[(hi >>> 5) + 0] >>> hi) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(hi)); + } + parser.index++; + parser.column++; + return 1; +} +function consumeLineFeed(parser, state) { + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.flags |= 1; + if ((state & 4) === 0) { + parser.column = 0; + parser.line++; + } +} +function scanNewLine(parser) { + parser.flags |= 1; + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.column = 0; + parser.line++; +} +function isExoticECMAScriptWhitespace(ch) { + return (ch === 160 || + ch === 65279 || + ch === 133 || + ch === 5760 || + (ch >= 8192 && ch <= 8203) || + ch === 8239 || + ch === 8287 || + ch === 12288 || + ch === 8201 || + ch === 65519); +} +function fromCodePoint(codePoint) { + return codePoint <= 65535 + ? String.fromCharCode(codePoint) + : String.fromCharCode(codePoint >>> 10) + String.fromCharCode(codePoint & 0x3ff); +} +function toHex(code) { + return code < 65 ? code - 48 : (code - 65 + 10) & 0xf; +} +function convertTokenType(t) { + switch (t) { + case 134283266: + return 'NumericLiteral'; + case 134283267: + return 'StringLiteral'; + case 86021: + case 86022: + return 'BooleanLiteral'; + case 86023: + return 'NullLiteral'; + case 65540: + return 'RegularExpression'; + case 67174408: + case 67174409: + case 132: + return 'TemplateLiteral'; + default: + if ((t & 143360) === 143360) + return 'Identifier'; + if ((t & 4096) === 4096) + return 'Keyword'; + return 'Punctuator'; + } +} + +const CharTypes = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8 | 1024, + 0, + 0, + 8 | 2048, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8192, + 0, + 1 | 2, + 0, + 0, + 8192, + 0, + 0, + 0, + 256, + 0, + 256 | 32768, + 0, + 0, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 512 | 64, + 2 | 16 | 512 | 64, + 0, + 0, + 16384, + 0, + 0, + 0, + 0, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 0, + 1, + 0, + 0, + 1 | 2 | 4096, + 0, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 16384, + 0, + 0, + 0, + 0 +]; +const isIdStart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 +]; +const isIdPart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 +]; +function isIdentifierStart(code) { + return code <= 0x7F + ? isIdStart[code] + : (unicodeLookup[(code >>> 5) + 34816] >>> code) & 31 & 1; +} +function isIdentifierPart(code) { + return code <= 0x7F + ? isIdPart[code] + : (unicodeLookup[(code >>> 5) + 0] >>> code) & 31 & 1 || (code === 8204 || code === 8205); +} + +const CommentTypes = ['SingleLine', 'MultiLine', 'HTMLOpen', 'HTMLClose', 'HashbangComment']; +function skipHashBang(parser) { + const source = parser.source; + if (parser.currentChar === 35 && source.charCodeAt(parser.index + 1) === 33) { + advanceChar(parser); + advanceChar(parser); + skipSingleLineComment(parser, source, 0, 4, parser.tokenPos, parser.linePos, parser.colPos); + } +} +function skipSingleHTMLComment(parser, source, state, context, type, start, line, column) { + if (context & 2048) + report(parser, 0); + return skipSingleLineComment(parser, source, state, type, start, line, column); +} +function skipSingleLineComment(parser, source, state, type, start, line, column) { + const { index } = parser; + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + while (parser.index < parser.end) { + if (CharTypes[parser.currentChar] & 8) { + const isCR = parser.currentChar === 13; + scanNewLine(parser); + if (isCR && parser.index < parser.end && parser.currentChar === 10) + parser.currentChar = source.charCodeAt(++parser.index); + break; + } + else if ((parser.currentChar ^ 8232) <= 1) { + scanNewLine(parser); + break; + } + advanceChar(parser); + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + } + if (parser.onComment) { + const loc = { + start: { + line, + column + }, + end: { + line: parser.linePos, + column: parser.colPos + } + }; + parser.onComment(CommentTypes[type & 0xff], source.slice(index, parser.tokenPos), start, parser.tokenPos, loc); + } + return state | 1; +} +function skipMultiLineComment(parser, source, state) { + const { index } = parser; + while (parser.index < parser.end) { + if (parser.currentChar < 0x2b) { + let skippedOneAsterisk = false; + while (parser.currentChar === 42) { + if (!skippedOneAsterisk) { + state &= ~4; + skippedOneAsterisk = true; + } + if (advanceChar(parser) === 47) { + advanceChar(parser); + if (parser.onComment) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onComment(CommentTypes[1 & 0xff], source.slice(index, parser.index - 2), index - 2, parser.index, loc); + } + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + return state; + } + } + if (skippedOneAsterisk) { + continue; + } + if (CharTypes[parser.currentChar] & 8) { + if (parser.currentChar === 13) { + state |= 1 | 4; + scanNewLine(parser); + } + else { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + } + else { + advanceChar(parser); + } + } + else if ((parser.currentChar ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + } + else { + state &= ~4; + advanceChar(parser); + } + } + report(parser, 16); +} + +function scanRegularExpression(parser, context) { + const bodyStart = parser.index; + let preparseState = 0; + loop: while (true) { + const ch = parser.currentChar; + advanceChar(parser); + if (preparseState & 1) { + preparseState &= ~1; + } + else { + switch (ch) { + case 47: + if (!preparseState) + break loop; + else + break; + case 92: + preparseState |= 1; + break; + case 91: + preparseState |= 2; + break; + case 93: + preparseState &= 1; + break; + case 13: + case 10: + case 8232: + case 8233: + report(parser, 32); + } + } + if (parser.index >= parser.source.length) { + return report(parser, 32); + } + } + const bodyEnd = parser.index - 1; + let mask = 0; + let char = parser.currentChar; + const { index: flagStart } = parser; + while (isIdentifierPart(char)) { + switch (char) { + case 103: + if (mask & 2) + report(parser, 34, 'g'); + mask |= 2; + break; + case 105: + if (mask & 1) + report(parser, 34, 'i'); + mask |= 1; + break; + case 109: + if (mask & 4) + report(parser, 34, 'm'); + mask |= 4; + break; + case 117: + if (mask & 16) + report(parser, 34, 'g'); + mask |= 16; + break; + case 121: + if (mask & 8) + report(parser, 34, 'y'); + mask |= 8; + break; + case 115: + if (mask & 12) + report(parser, 34, 's'); + mask |= 12; + break; + default: + report(parser, 33); + } + char = advanceChar(parser); + } + const flags = parser.source.slice(flagStart, parser.index); + const pattern = parser.source.slice(bodyStart, bodyEnd); + parser.tokenRegExp = { pattern, flags }; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = validate(parser, pattern, flags); + return 65540; +} +function validate(parser, pattern, flags) { + try { + return new RegExp(pattern, flags); + } + catch (e) { + report(parser, 32); + } +} + +function scanString(parser, context, quote) { + const { index: start } = parser; + let ret = ''; + let char = advanceChar(parser); + let marker = parser.index; + while ((CharTypes[char] & 8) === 0) { + if (char === quote) { + ret += parser.source.slice(marker, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(start, parser.index); + parser.tokenValue = ret; + return 134283267; + } + if ((char & 8) === 8 && char === 92) { + ret += parser.source.slice(marker, parser.index); + char = advanceChar(parser); + if (char < 0x7f || char === 8232 || char === 8233) { + const code = parseEscape(parser, context, char); + if (code >= 0) + ret += fromCodePoint(code); + else + handleStringError(parser, code, 0); + } + else { + ret += fromCodePoint(char); + } + marker = parser.index + 1; + } + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + report(parser, 14); +} +function parseEscape(parser, context, first) { + switch (first) { + case 98: + return 8; + case 102: + return 12; + case 114: + return 13; + case 110: + return 10; + case 116: + return 9; + case 118: + return 11; + case 13: { + if (parser.index < parser.end) { + const nextChar = parser.source.charCodeAt(parser.index + 1); + if (nextChar === 10) { + parser.index = parser.index + 1; + parser.currentChar = nextChar; + } + } + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + return -1; + case 48: + case 49: + case 50: + case 51: { + let code = first - 48; + let index = parser.index + 1; + let column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if ((CharTypes[next] & 32) === 0) { + if ((code !== 0 || CharTypes[next] & 512) && context & 1024) + return -2; + } + else if (context & 1024) { + return -2; + } + else { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + } + } + parser.flags |= 64; + parser.index = index - 1; + parser.column = column - 1; + } + } + return code; + } + case 52: + case 53: + case 54: + case 55: { + if (context & 1024) + return -2; + let code = first - 48; + const index = parser.index + 1; + const column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + code = (code << 3) | (next - 48); + parser.currentChar = next; + parser.index = index; + parser.column = column; + } + } + parser.flags |= 64; + return code; + } + case 120: { + const ch1 = advanceChar(parser); + if ((CharTypes[ch1] & 64) === 0) + return -4; + const hi = toHex(ch1); + const ch2 = advanceChar(parser); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const lo = toHex(ch2); + return (hi << 4) | lo; + } + case 117: { + const ch = advanceChar(parser); + if (parser.currentChar === 123) { + let code = 0; + while ((CharTypes[advanceChar(parser)] & 64) !== 0) { + code = (code << 4) | toHex(parser.currentChar); + if (code > 1114111) + return -5; + } + if (parser.currentChar < 1 || parser.currentChar !== 125) { + return -4; + } + return code; + } + else { + if ((CharTypes[ch] & 64) === 0) + return -4; + const ch2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const ch3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[ch3] & 64) === 0) + return -4; + const ch4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[ch4] & 64) === 0) + return -4; + parser.index += 3; + parser.column += 3; + parser.currentChar = parser.source.charCodeAt(parser.index); + return (toHex(ch) << 12) | (toHex(ch2) << 8) | (toHex(ch3) << 4) | toHex(ch4); + } + } + case 56: + case 57: + if ((context & 256) === 0) + return -3; + default: + return first; + } +} +function handleStringError(state, code, isTemplate) { + switch (code) { + case -1: + return; + case -2: + report(state, isTemplate ? 2 : 1); + case -3: + report(state, 13); + case -4: + report(state, 6); + case -5: + report(state, 101); + } +} + +function scanTemplate(parser, context) { + const { index: start } = parser; + let token = 67174409; + let ret = ''; + let char = advanceChar(parser); + while (char !== 96) { + if (char === 36 && parser.source.charCodeAt(parser.index + 1) === 123) { + advanceChar(parser); + token = 67174408; + break; + } + else if ((char & 8) === 8 && char === 92) { + char = advanceChar(parser); + if (char > 0x7e) { + ret += fromCodePoint(char); + } + else { + const code = parseEscape(parser, context | 1024, char); + if (code >= 0) { + ret += fromCodePoint(code); + } + else if (code !== -1 && context & 65536) { + ret = undefined; + char = scanBadTemplate(parser, char); + if (char < 0) + token = 67174408; + break; + } + else { + handleStringError(parser, code, 1); + } + } + } + else { + if (parser.index < parser.end && + char === 13 && + parser.source.charCodeAt(parser.index) === 10) { + ret += fromCodePoint(char); + parser.currentChar = parser.source.charCodeAt(++parser.index); + } + if (((char & 83) < 3 && char === 10) || (char ^ 8232) <= 1) { + parser.column = -1; + parser.line++; + } + ret += fromCodePoint(char); + } + if (parser.index >= parser.end) + report(parser, 15); + char = advanceChar(parser); + } + advanceChar(parser); + parser.tokenValue = ret; + parser.tokenRaw = parser.source.slice(start + 1, parser.index - (token === 67174409 ? 1 : 2)); + return token; +} +function scanBadTemplate(parser, ch) { + while (ch !== 96) { + switch (ch) { + case 36: { + const index = parser.index + 1; + if (index < parser.end && parser.source.charCodeAt(index) === 123) { + parser.index = index; + parser.column++; + return -ch; + } + break; + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + } + if (parser.index >= parser.end) + report(parser, 15); + ch = advanceChar(parser); + } + return ch; +} +function scanTemplateTail(parser, context) { + if (parser.index >= parser.end) + report(parser, 0); + parser.index--; + parser.column--; + return scanTemplate(parser, context); +} + +function scanNumber(parser, context, kind) { + let char = parser.currentChar; + let value = 0; + let digit = 9; + let atStart = kind & 64 ? 0 : 1; + let digits = 0; + let allowSeparator = 0; + if (kind & 64) { + value = '.' + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 110) + report(parser, 11); + } + else { + if (char === 48) { + char = advanceChar(parser); + if ((char | 32) === 120) { + kind = 8 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (64 | 4096)) { + if (char === 95) { + if (!allowSeparator) + report(parser, 146); + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 0x10 + toHex(char); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 19 : 147); + } + } + else if ((char | 32) === 111) { + kind = 4 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (32 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 8 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if ((char | 32) === 98) { + kind = 2 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (128 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 2 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if (CharTypes[char] & 32) { + if (context & 1024) + report(parser, 1); + kind = 1; + while (CharTypes[char] & 16) { + if (CharTypes[char] & 512) { + kind = 32; + atStart = 0; + break; + } + value = value * 8 + (char - 48); + char = advanceChar(parser); + } + } + else if (CharTypes[char] & 512) { + if (context & 1024) + report(parser, 1); + parser.flags |= 64; + kind = 32; + } + else if (char === 95) { + report(parser, 0); + } + } + if (kind & 48) { + if (atStart) { + while (digit >= 0 && CharTypes[char] & (16 | 4096)) { + if (char === 95) { + char = advanceChar(parser); + if (char === 95 || kind & 32) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + continue; + } + allowSeparator = 0; + value = 10 * value + (char - 48); + char = advanceChar(parser); + --digit; + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + if (digit >= 0 && !isIdentifierStart(char) && char !== 46) { + parser.tokenValue = value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + } + value += scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 46) { + if (advanceChar(parser) === 95) + report(parser, 0); + kind = 64; + value += '.' + scanDecimalDigitsOrSeparator(parser, parser.currentChar); + char = parser.currentChar; + } + } + } + const end = parser.index; + let isBigInt = 0; + if (char === 110 && kind & 128) { + isBigInt = 1; + char = advanceChar(parser); + } + else { + if ((char | 32) === 101) { + char = advanceChar(parser); + if (CharTypes[char] & 256) + char = advanceChar(parser); + const { index } = parser; + if ((CharTypes[char] & 16) < 1) + report(parser, 10); + value += parser.source.substring(end, index) + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + } + } + if ((parser.index < parser.end && CharTypes[char] & 16) || isIdentifierStart(char)) { + report(parser, 12); + } + if (isBigInt) { + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = BigInt(value); + return 134283389; + } + parser.tokenValue = + kind & (1 | 2 | 8 | 4) + ? value + : kind & 32 + ? parseFloat(parser.source.substring(parser.tokenPos, parser.index)) + : +value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; +} +function scanDecimalDigitsOrSeparator(parser, char) { + let allowSeparator = 0; + let start = parser.index; + let ret = ''; + while (CharTypes[char] & (16 | 4096)) { + if (char === 95) { + const { index } = parser; + char = advanceChar(parser); + if (char === 95) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + ret += parser.source.substring(start, index); + start = parser.index; + continue; + } + allowSeparator = 0; + char = advanceChar(parser); + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + return ret + parser.source.substring(start, parser.index); +} + +const KeywordDescTable = [ + 'end of source', + 'identifier', 'number', 'string', 'regular expression', + 'false', 'true', 'null', + 'template continuation', 'template tail', + '=>', '(', '{', '.', '...', '}', ')', ';', ',', '[', ']', ':', '?', '\'', '"', '', + '++', '--', + '=', '<<=', '>>=', '>>>=', '**=', '+=', '-=', '*=', '/=', '%=', '^=', '|=', + '&=', '||=', '&&=', '??=', + 'typeof', 'delete', 'void', '!', '~', '+', '-', 'in', 'instanceof', '*', '%', '/', '**', '&&', + '||', '===', '!==', '==', '!=', '<=', '>=', '<', '>', '<<', '>>', '>>>', '&', '|', '^', + 'var', 'let', 'const', + 'break', 'case', 'catch', 'class', 'continue', 'debugger', 'default', 'do', 'else', 'export', + 'extends', 'finally', 'for', 'function', 'if', 'import', 'new', 'return', 'super', 'switch', + 'this', 'throw', 'try', 'while', 'with', + 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield', + 'as', 'async', 'await', 'constructor', 'get', 'set', 'from', 'of', + 'enum', 'eval', 'arguments', 'escaped keyword', 'escaped future reserved keyword', 'reserved if strict', '#', + 'BigIntLiteral', '??', '?.', 'WhiteSpace', 'Illegal', 'LineTerminator', 'PrivateField', + 'Template', '@', 'target', 'meta', 'LineFeed', 'Escaped', 'JSXText' +]; +const descKeywordTable = Object.create(null, { + this: { value: 86113 }, + function: { value: 86106 }, + if: { value: 20571 }, + return: { value: 20574 }, + var: { value: 86090 }, + else: { value: 20565 }, + for: { value: 20569 }, + new: { value: 86109 }, + in: { value: 8738868 }, + typeof: { value: 16863277 }, + while: { value: 20580 }, + case: { value: 20558 }, + break: { value: 20557 }, + try: { value: 20579 }, + catch: { value: 20559 }, + delete: { value: 16863278 }, + throw: { value: 86114 }, + switch: { value: 86112 }, + continue: { value: 20561 }, + default: { value: 20563 }, + instanceof: { value: 8476725 }, + do: { value: 20564 }, + void: { value: 16863279 }, + finally: { value: 20568 }, + async: { value: 209007 }, + await: { value: 209008 }, + class: { value: 86096 }, + const: { value: 86092 }, + constructor: { value: 12401 }, + debugger: { value: 20562 }, + export: { value: 20566 }, + extends: { value: 20567 }, + false: { value: 86021 }, + from: { value: 12404 }, + get: { value: 12402 }, + implements: { value: 36966 }, + import: { value: 86108 }, + interface: { value: 36967 }, + let: { value: 241739 }, + null: { value: 86023 }, + of: { value: 274549 }, + package: { value: 36968 }, + private: { value: 36969 }, + protected: { value: 36970 }, + public: { value: 36971 }, + set: { value: 12403 }, + static: { value: 36972 }, + super: { value: 86111 }, + true: { value: 86022 }, + with: { value: 20581 }, + yield: { value: 241773 }, + enum: { value: 86134 }, + eval: { value: 537079927 }, + as: { value: 77934 }, + arguments: { value: 537079928 }, + target: { value: 143494 }, + meta: { value: 143495 }, +}); + +function scanIdentifier(parser, context, isValidAsKeyword) { + while (isIdPart[advanceChar(parser)]) { } + parser.tokenValue = parser.source.slice(parser.tokenPos, parser.index); + return parser.currentChar !== 92 && parser.currentChar < 0x7e + ? descKeywordTable[parser.tokenValue] || 208897 + : scanIdentifierSlowCase(parser, context, 0, isValidAsKeyword); +} +function scanUnicodeIdentifier(parser, context) { + const cookedChar = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(cookedChar)) + report(parser, 4); + parser.tokenValue = fromCodePoint(cookedChar); + return scanIdentifierSlowCase(parser, context, 1, CharTypes[cookedChar] & 4); +} +function scanIdentifierSlowCase(parser, context, hasEscape, isValidAsKeyword) { + let start = parser.index; + while (parser.index < parser.end) { + if (parser.currentChar === 92) { + parser.tokenValue += parser.source.slice(start, parser.index); + hasEscape = 1; + const code = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(code)) + report(parser, 4); + isValidAsKeyword = isValidAsKeyword && CharTypes[code] & 4; + parser.tokenValue += fromCodePoint(code); + start = parser.index; + } + else if (isIdentifierPart(parser.currentChar) || consumeMultiUnitCodePoint(parser, parser.currentChar)) { + advanceChar(parser); + } + else { + break; + } + } + if (parser.index <= parser.end) { + parser.tokenValue += parser.source.slice(start, parser.index); + } + const length = parser.tokenValue.length; + if (isValidAsKeyword && length >= 2 && length <= 11) { + const token = descKeywordTable[parser.tokenValue]; + if (token === void 0) + return 208897; + if (!hasEscape) + return token; + if (context & 1024) { + return token === 209008 && (context & (2048 | 4194304)) === 0 + ? token + : token === 36972 + ? 122 + : (token & 36864) === 36864 + ? 122 + : 121; + } + if (context & 1073741824 && + (context & 8192) === 0 && + (token & 20480) === 20480) + return token; + if (token === 241773) { + return context & 1073741824 + ? 143483 + : context & 2097152 + ? 121 + : token; + } + return token === 209007 && context & 1073741824 + ? 143483 + : (token & 36864) === 36864 + ? token + : token === 209008 && (context & 4194304) === 0 + ? token + : 121; + } + return 208897; +} +function scanPrivateIdentifier(parser) { + if (!isIdentifierStart(advanceChar(parser))) + report(parser, 93); + return 131; +} +function scanIdentifierUnicodeEscape(parser) { + if (parser.source.charCodeAt(parser.index + 1) !== 117) { + report(parser, 4); + } + parser.currentChar = parser.source.charCodeAt((parser.index += 2)); + return scanUnicodeEscape(parser); +} +function scanUnicodeEscape(parser) { + let codePoint = 0; + const char = parser.currentChar; + if (char === 123) { + const begin = parser.index - 2; + while (CharTypes[advanceChar(parser)] & 64) { + codePoint = (codePoint << 4) | toHex(parser.currentChar); + if (codePoint > 1114111) + reportScannerError(begin, parser.line, parser.index + 1, 101); + } + if (parser.currentChar !== 125) { + reportScannerError(begin, parser.line, parser.index - 1, 6); + } + advanceChar(parser); + return codePoint; + } + if ((CharTypes[char] & 64) === 0) + report(parser, 6); + const char2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[char2] & 64) === 0) + report(parser, 6); + const char3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[char3] & 64) === 0) + report(parser, 6); + const char4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[char4] & 64) === 0) + report(parser, 6); + codePoint = (toHex(char) << 12) | (toHex(char2) << 8) | (toHex(char3) << 4) | toHex(char4); + parser.currentChar = parser.source.charCodeAt((parser.index += 4)); + return codePoint; +} + +const TokenLookup = [ + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 136, + 128, + 128, + 130, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 16842800, + 134283267, + 131, + 208897, + 8457015, + 8455751, + 134283267, + 67174411, + 16, + 8457014, + 25233970, + 18, + 25233971, + 67108877, + 8457016, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 21, + 1074790417, + 8456258, + 1077936157, + 8456259, + 22, + 133, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 69271571, + 137, + 20, + 8455497, + 208897, + 132, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 208897, + 4096, + 208897, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 4096, + 4096, + 208897, + 4096, + 4096, + 208897, + 4096, + 4096, + 2162700, + 8455240, + 1074790415, + 16842801, + 129 +]; +function nextToken(parser, context) { + parser.flags = (parser.flags | 1) ^ 1; + parser.startPos = parser.index; + parser.startColumn = parser.column; + parser.startLine = parser.line; + parser.token = scanSingleToken(parser, context, 0); + if (parser.onToken && parser.token !== 1048576) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onToken(convertTokenType(parser.token), parser.tokenPos, parser.index, loc); + } +} +function scanSingleToken(parser, context, state) { + const isStartOfLine = parser.index === 0; + const source = parser.source; + let startPos = parser.index; + let startLine = parser.line; + let startColumn = parser.column; + while (parser.index < parser.end) { + parser.tokenPos = parser.index; + parser.colPos = parser.column; + parser.linePos = parser.line; + let char = parser.currentChar; + if (char <= 0x7e) { + const token = TokenLookup[char]; + switch (token) { + case 67174411: + case 16: + case 2162700: + case 1074790415: + case 69271571: + case 20: + case 21: + case 1074790417: + case 18: + case 16842801: + case 133: + case 129: + advanceChar(parser); + return token; + case 208897: + return scanIdentifier(parser, context, 0); + case 4096: + return scanIdentifier(parser, context, 1); + case 134283266: + return scanNumber(parser, context, 16 | 128); + case 134283267: + return scanString(parser, context, char); + case 132: + return scanTemplate(parser, context); + case 137: + return scanUnicodeIdentifier(parser, context); + case 131: + return scanPrivateIdentifier(parser); + case 128: + advanceChar(parser); + break; + case 130: + state |= 1 | 4; + scanNewLine(parser); + break; + case 136: + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + break; + case 8456258: + let ch = advanceChar(parser); + if (parser.index < parser.end) { + if (ch === 60) { + if (parser.index < parser.end && advanceChar(parser) === 61) { + advanceChar(parser); + return 4194334; + } + return 8456516; + } + else if (ch === 61) { + advanceChar(parser); + return 8456000; + } + if (ch === 33) { + const index = parser.index + 1; + if (index + 1 < parser.end && + source.charCodeAt(index) === 45 && + source.charCodeAt(index + 1) == 45) { + parser.column += 3; + parser.currentChar = source.charCodeAt((parser.index += 3)); + state = skipSingleHTMLComment(parser, source, state, context, 2, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 8456258; + } + if (ch === 47) { + if ((context & 16) < 1) + return 8456258; + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (ch === 42 || ch === 47) + break; + } + advanceChar(parser); + return 25; + } + } + return 8456258; + case 1077936157: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 8455996; + } + return 8455998; + } + if (ch === 62) { + advanceChar(parser); + return 10; + } + return 1077936157; + } + case 16842800: + if (advanceChar(parser) !== 61) { + return 16842800; + } + if (advanceChar(parser) !== 61) { + return 8455999; + } + advanceChar(parser); + return 8455997; + case 8457015: + if (advanceChar(parser) !== 61) + return 8457015; + advanceChar(parser); + return 4194342; + case 8457014: { + advanceChar(parser); + if (parser.index >= parser.end) + return 8457014; + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 4194340; + } + if (ch !== 42) + return 8457014; + if (advanceChar(parser) !== 61) + return 8457273; + advanceChar(parser); + return 4194337; + } + case 8455497: + if (advanceChar(parser) !== 61) + return 8455497; + advanceChar(parser); + return 4194343; + case 25233970: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 43) { + advanceChar(parser); + return 33619995; + } + if (ch === 61) { + advanceChar(parser); + return 4194338; + } + return 25233970; + } + case 25233971: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 45) { + advanceChar(parser); + if ((state & 1 || isStartOfLine) && parser.currentChar === 62) { + if ((context & 256) === 0) + report(parser, 108); + advanceChar(parser); + state = skipSingleHTMLComment(parser, source, state, context, 3, startPos, startLine, startColumn); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 33619996; + } + if (ch === 61) { + advanceChar(parser); + return 4194339; + } + return 25233971; + } + case 8457016: { + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 47) { + advanceChar(parser); + state = skipSingleLineComment(parser, source, state, 0, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (ch === 42) { + advanceChar(parser); + state = skipMultiLineComment(parser, source, state); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (context & 32768) { + return scanRegularExpression(parser, context); + } + if (ch === 61) { + advanceChar(parser); + return 4259877; + } + } + return 8457016; + } + case 67108877: + const next = advanceChar(parser); + if (next >= 48 && next <= 57) + return scanNumber(parser, context, 64 | 16); + if (next === 46) { + const index = parser.index + 1; + if (index < parser.end && source.charCodeAt(index) === 46) { + parser.column += 2; + parser.currentChar = source.charCodeAt((parser.index += 2)); + return 14; + } + } + return 67108877; + case 8455240: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 124) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194346; + } + return 8979003; + } + if (ch === 61) { + advanceChar(parser); + return 4194344; + } + return 8455240; + } + case 8456259: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 8456001; + } + if (ch !== 62) + return 8456259; + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 62) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 4194336; + } + return 8456518; + } + if (ch === 61) { + advanceChar(parser); + return 4194335; + } + } + return 8456517; + } + case 8455751: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 38) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194347; + } + return 8979258; + } + if (ch === 61) { + advanceChar(parser); + return 4194345; + } + return 8455751; + } + case 22: { + let ch = advanceChar(parser); + if (ch === 63) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194348; + } + return 276889982; + } + if (ch === 46) { + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (!(ch >= 48 && ch <= 57)) { + advanceChar(parser); + return 67108991; + } + } + } + return 22; + } + } + } + else { + if ((char ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + continue; + } + if ((char & 0xfc00) === 0xd800 || ((unicodeLookup[(char >>> 5) + 34816] >>> char) & 31 & 1) !== 0) { + if ((char & 0xfc00) === 0xdc00) { + char = ((char & 0x3ff) << 10) | (char & 0x3ff) | 0x10000; + if (((unicodeLookup[(char >>> 5) + 0] >>> char) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(char)); + } + parser.index++; + parser.currentChar = char; + } + parser.column++; + parser.tokenValue = ''; + return scanIdentifierSlowCase(parser, context, 0, 0); + } + if (isExoticECMAScriptWhitespace(char)) { + advanceChar(parser); + continue; + } + report(parser, 18, fromCodePoint(char)); + } + } + return 1048576; +} + +const entities = { + AElig: '\u00C6', + AMP: '\u0026', + Aacute: '\u00C1', + Abreve: '\u0102', + Acirc: '\u00C2', + Acy: '\u0410', + Afr: '\uD835\uDD04', + Agrave: '\u00C0', + Alpha: '\u0391', + Amacr: '\u0100', + And: '\u2A53', + Aogon: '\u0104', + Aopf: '\uD835\uDD38', + ApplyFunction: '\u2061', + Aring: '\u00C5', + Ascr: '\uD835\uDC9C', + Assign: '\u2254', + Atilde: '\u00C3', + Auml: '\u00C4', + Backslash: '\u2216', + Barv: '\u2AE7', + Barwed: '\u2306', + Bcy: '\u0411', + Because: '\u2235', + Bernoullis: '\u212C', + Beta: '\u0392', + Bfr: '\uD835\uDD05', + Bopf: '\uD835\uDD39', + Breve: '\u02D8', + Bscr: '\u212C', + Bumpeq: '\u224E', + CHcy: '\u0427', + COPY: '\u00A9', + Cacute: '\u0106', + Cap: '\u22D2', + CapitalDifferentialD: '\u2145', + Cayleys: '\u212D', + Ccaron: '\u010C', + Ccedil: '\u00C7', + Ccirc: '\u0108', + Cconint: '\u2230', + Cdot: '\u010A', + Cedilla: '\u00B8', + CenterDot: '\u00B7', + Cfr: '\u212D', + Chi: '\u03A7', + CircleDot: '\u2299', + CircleMinus: '\u2296', + CirclePlus: '\u2295', + CircleTimes: '\u2297', + ClockwiseContourIntegral: '\u2232', + CloseCurlyDoubleQuote: '\u201D', + CloseCurlyQuote: '\u2019', + Colon: '\u2237', + Colone: '\u2A74', + Congruent: '\u2261', + Conint: '\u222F', + ContourIntegral: '\u222E', + Copf: '\u2102', + Coproduct: '\u2210', + CounterClockwiseContourIntegral: '\u2233', + Cross: '\u2A2F', + Cscr: '\uD835\uDC9E', + Cup: '\u22D3', + CupCap: '\u224D', + DD: '\u2145', + DDotrahd: '\u2911', + DJcy: '\u0402', + DScy: '\u0405', + DZcy: '\u040F', + Dagger: '\u2021', + Darr: '\u21A1', + Dashv: '\u2AE4', + Dcaron: '\u010E', + Dcy: '\u0414', + Del: '\u2207', + Delta: '\u0394', + Dfr: '\uD835\uDD07', + DiacriticalAcute: '\u00B4', + DiacriticalDot: '\u02D9', + DiacriticalDoubleAcute: '\u02DD', + DiacriticalGrave: '\u0060', + DiacriticalTilde: '\u02DC', + Diamond: '\u22C4', + DifferentialD: '\u2146', + Dopf: '\uD835\uDD3B', + Dot: '\u00A8', + DotDot: '\u20DC', + DotEqual: '\u2250', + DoubleContourIntegral: '\u222F', + DoubleDot: '\u00A8', + DoubleDownArrow: '\u21D3', + DoubleLeftArrow: '\u21D0', + DoubleLeftRightArrow: '\u21D4', + DoubleLeftTee: '\u2AE4', + DoubleLongLeftArrow: '\u27F8', + DoubleLongLeftRightArrow: '\u27FA', + DoubleLongRightArrow: '\u27F9', + DoubleRightArrow: '\u21D2', + DoubleRightTee: '\u22A8', + DoubleUpArrow: '\u21D1', + DoubleUpDownArrow: '\u21D5', + DoubleVerticalBar: '\u2225', + DownArrow: '\u2193', + DownArrowBar: '\u2913', + DownArrowUpArrow: '\u21F5', + DownBreve: '\u0311', + DownLeftRightVector: '\u2950', + DownLeftTeeVector: '\u295E', + DownLeftVector: '\u21BD', + DownLeftVectorBar: '\u2956', + DownRightTeeVector: '\u295F', + DownRightVector: '\u21C1', + DownRightVectorBar: '\u2957', + DownTee: '\u22A4', + DownTeeArrow: '\u21A7', + Downarrow: '\u21D3', + Dscr: '\uD835\uDC9F', + Dstrok: '\u0110', + ENG: '\u014A', + ETH: '\u00D0', + Eacute: '\u00C9', + Ecaron: '\u011A', + Ecirc: '\u00CA', + Ecy: '\u042D', + Edot: '\u0116', + Efr: '\uD835\uDD08', + Egrave: '\u00C8', + Element: '\u2208', + Emacr: '\u0112', + EmptySmallSquare: '\u25FB', + EmptyVerySmallSquare: '\u25AB', + Eogon: '\u0118', + Eopf: '\uD835\uDD3C', + Epsilon: '\u0395', + Equal: '\u2A75', + EqualTilde: '\u2242', + Equilibrium: '\u21CC', + Escr: '\u2130', + Esim: '\u2A73', + Eta: '\u0397', + Euml: '\u00CB', + Exists: '\u2203', + ExponentialE: '\u2147', + Fcy: '\u0424', + Ffr: '\uD835\uDD09', + FilledSmallSquare: '\u25FC', + FilledVerySmallSquare: '\u25AA', + Fopf: '\uD835\uDD3D', + ForAll: '\u2200', + Fouriertrf: '\u2131', + Fscr: '\u2131', + GJcy: '\u0403', + GT: '\u003E', + Gamma: '\u0393', + Gammad: '\u03DC', + Gbreve: '\u011E', + Gcedil: '\u0122', + Gcirc: '\u011C', + Gcy: '\u0413', + Gdot: '\u0120', + Gfr: '\uD835\uDD0A', + Gg: '\u22D9', + Gopf: '\uD835\uDD3E', + GreaterEqual: '\u2265', + GreaterEqualLess: '\u22DB', + GreaterFullEqual: '\u2267', + GreaterGreater: '\u2AA2', + GreaterLess: '\u2277', + GreaterSlantEqual: '\u2A7E', + GreaterTilde: '\u2273', + Gscr: '\uD835\uDCA2', + Gt: '\u226B', + HARDcy: '\u042A', + Hacek: '\u02C7', + Hat: '\u005E', + Hcirc: '\u0124', + Hfr: '\u210C', + HilbertSpace: '\u210B', + Hopf: '\u210D', + HorizontalLine: '\u2500', + Hscr: '\u210B', + Hstrok: '\u0126', + HumpDownHump: '\u224E', + HumpEqual: '\u224F', + IEcy: '\u0415', + IJlig: '\u0132', + IOcy: '\u0401', + Iacute: '\u00CD', + Icirc: '\u00CE', + Icy: '\u0418', + Idot: '\u0130', + Ifr: '\u2111', + Igrave: '\u00CC', + Im: '\u2111', + Imacr: '\u012A', + ImaginaryI: '\u2148', + Implies: '\u21D2', + Int: '\u222C', + Integral: '\u222B', + Intersection: '\u22C2', + InvisibleComma: '\u2063', + InvisibleTimes: '\u2062', + Iogon: '\u012E', + Iopf: '\uD835\uDD40', + Iota: '\u0399', + Iscr: '\u2110', + Itilde: '\u0128', + Iukcy: '\u0406', + Iuml: '\u00CF', + Jcirc: '\u0134', + Jcy: '\u0419', + Jfr: '\uD835\uDD0D', + Jopf: '\uD835\uDD41', + Jscr: '\uD835\uDCA5', + Jsercy: '\u0408', + Jukcy: '\u0404', + KHcy: '\u0425', + KJcy: '\u040C', + Kappa: '\u039A', + Kcedil: '\u0136', + Kcy: '\u041A', + Kfr: '\uD835\uDD0E', + Kopf: '\uD835\uDD42', + Kscr: '\uD835\uDCA6', + LJcy: '\u0409', + LT: '\u003C', + Lacute: '\u0139', + Lambda: '\u039B', + Lang: '\u27EA', + Laplacetrf: '\u2112', + Larr: '\u219E', + Lcaron: '\u013D', + Lcedil: '\u013B', + Lcy: '\u041B', + LeftAngleBracket: '\u27E8', + LeftArrow: '\u2190', + LeftArrowBar: '\u21E4', + LeftArrowRightArrow: '\u21C6', + LeftCeiling: '\u2308', + LeftDoubleBracket: '\u27E6', + LeftDownTeeVector: '\u2961', + LeftDownVector: '\u21C3', + LeftDownVectorBar: '\u2959', + LeftFloor: '\u230A', + LeftRightArrow: '\u2194', + LeftRightVector: '\u294E', + LeftTee: '\u22A3', + LeftTeeArrow: '\u21A4', + LeftTeeVector: '\u295A', + LeftTriangle: '\u22B2', + LeftTriangleBar: '\u29CF', + LeftTriangleEqual: '\u22B4', + LeftUpDownVector: '\u2951', + LeftUpTeeVector: '\u2960', + LeftUpVector: '\u21BF', + LeftUpVectorBar: '\u2958', + LeftVector: '\u21BC', + LeftVectorBar: '\u2952', + Leftarrow: '\u21D0', + Leftrightarrow: '\u21D4', + LessEqualGreater: '\u22DA', + LessFullEqual: '\u2266', + LessGreater: '\u2276', + LessLess: '\u2AA1', + LessSlantEqual: '\u2A7D', + LessTilde: '\u2272', + Lfr: '\uD835\uDD0F', + Ll: '\u22D8', + Lleftarrow: '\u21DA', + Lmidot: '\u013F', + LongLeftArrow: '\u27F5', + LongLeftRightArrow: '\u27F7', + LongRightArrow: '\u27F6', + Longleftarrow: '\u27F8', + Longleftrightarrow: '\u27FA', + Longrightarrow: '\u27F9', + Lopf: '\uD835\uDD43', + LowerLeftArrow: '\u2199', + LowerRightArrow: '\u2198', + Lscr: '\u2112', + Lsh: '\u21B0', + Lstrok: '\u0141', + Lt: '\u226A', + Map: '\u2905', + Mcy: '\u041C', + MediumSpace: '\u205F', + Mellintrf: '\u2133', + Mfr: '\uD835\uDD10', + MinusPlus: '\u2213', + Mopf: '\uD835\uDD44', + Mscr: '\u2133', + Mu: '\u039C', + NJcy: '\u040A', + Nacute: '\u0143', + Ncaron: '\u0147', + Ncedil: '\u0145', + Ncy: '\u041D', + NegativeMediumSpace: '\u200B', + NegativeThickSpace: '\u200B', + NegativeThinSpace: '\u200B', + NegativeVeryThinSpace: '\u200B', + NestedGreaterGreater: '\u226B', + NestedLessLess: '\u226A', + NewLine: '\u000A', + Nfr: '\uD835\uDD11', + NoBreak: '\u2060', + NonBreakingSpace: '\u00A0', + Nopf: '\u2115', + Not: '\u2AEC', + NotCongruent: '\u2262', + NotCupCap: '\u226D', + NotDoubleVerticalBar: '\u2226', + NotElement: '\u2209', + NotEqual: '\u2260', + NotEqualTilde: '\u2242\u0338', + NotExists: '\u2204', + NotGreater: '\u226F', + NotGreaterEqual: '\u2271', + NotGreaterFullEqual: '\u2267\u0338', + NotGreaterGreater: '\u226B\u0338', + NotGreaterLess: '\u2279', + NotGreaterSlantEqual: '\u2A7E\u0338', + NotGreaterTilde: '\u2275', + NotHumpDownHump: '\u224E\u0338', + NotHumpEqual: '\u224F\u0338', + NotLeftTriangle: '\u22EA', + NotLeftTriangleBar: '\u29CF\u0338', + NotLeftTriangleEqual: '\u22EC', + NotLess: '\u226E', + NotLessEqual: '\u2270', + NotLessGreater: '\u2278', + NotLessLess: '\u226A\u0338', + NotLessSlantEqual: '\u2A7D\u0338', + NotLessTilde: '\u2274', + NotNestedGreaterGreater: '\u2AA2\u0338', + NotNestedLessLess: '\u2AA1\u0338', + NotPrecedes: '\u2280', + NotPrecedesEqual: '\u2AAF\u0338', + NotPrecedesSlantEqual: '\u22E0', + NotReverseElement: '\u220C', + NotRightTriangle: '\u22EB', + NotRightTriangleBar: '\u29D0\u0338', + NotRightTriangleEqual: '\u22ED', + NotSquareSubset: '\u228F\u0338', + NotSquareSubsetEqual: '\u22E2', + NotSquareSuperset: '\u2290\u0338', + NotSquareSupersetEqual: '\u22E3', + NotSubset: '\u2282\u20D2', + NotSubsetEqual: '\u2288', + NotSucceeds: '\u2281', + NotSucceedsEqual: '\u2AB0\u0338', + NotSucceedsSlantEqual: '\u22E1', + NotSucceedsTilde: '\u227F\u0338', + NotSuperset: '\u2283\u20D2', + NotSupersetEqual: '\u2289', + NotTilde: '\u2241', + NotTildeEqual: '\u2244', + NotTildeFullEqual: '\u2247', + NotTildeTilde: '\u2249', + NotVerticalBar: '\u2224', + Nscr: '\uD835\uDCA9', + Ntilde: '\u00D1', + Nu: '\u039D', + OElig: '\u0152', + Oacute: '\u00D3', + Ocirc: '\u00D4', + Ocy: '\u041E', + Odblac: '\u0150', + Ofr: '\uD835\uDD12', + Ograve: '\u00D2', + Omacr: '\u014C', + Omega: '\u03A9', + Omicron: '\u039F', + Oopf: '\uD835\uDD46', + OpenCurlyDoubleQuote: '\u201C', + OpenCurlyQuote: '\u2018', + Or: '\u2A54', + Oscr: '\uD835\uDCAA', + Oslash: '\u00D8', + Otilde: '\u00D5', + Otimes: '\u2A37', + Ouml: '\u00D6', + OverBar: '\u203E', + OverBrace: '\u23DE', + OverBracket: '\u23B4', + OverParenthesis: '\u23DC', + PartialD: '\u2202', + Pcy: '\u041F', + Pfr: '\uD835\uDD13', + Phi: '\u03A6', + Pi: '\u03A0', + PlusMinus: '\u00B1', + Poincareplane: '\u210C', + Popf: '\u2119', + Pr: '\u2ABB', + Precedes: '\u227A', + PrecedesEqual: '\u2AAF', + PrecedesSlantEqual: '\u227C', + PrecedesTilde: '\u227E', + Prime: '\u2033', + Product: '\u220F', + Proportion: '\u2237', + Proportional: '\u221D', + Pscr: '\uD835\uDCAB', + Psi: '\u03A8', + QUOT: '\u0022', + Qfr: '\uD835\uDD14', + Qopf: '\u211A', + Qscr: '\uD835\uDCAC', + RBarr: '\u2910', + REG: '\u00AE', + Racute: '\u0154', + Rang: '\u27EB', + Rarr: '\u21A0', + Rarrtl: '\u2916', + Rcaron: '\u0158', + Rcedil: '\u0156', + Rcy: '\u0420', + Re: '\u211C', + ReverseElement: '\u220B', + ReverseEquilibrium: '\u21CB', + ReverseUpEquilibrium: '\u296F', + Rfr: '\u211C', + Rho: '\u03A1', + RightAngleBracket: '\u27E9', + RightArrow: '\u2192', + RightArrowBar: '\u21E5', + RightArrowLeftArrow: '\u21C4', + RightCeiling: '\u2309', + RightDoubleBracket: '\u27E7', + RightDownTeeVector: '\u295D', + RightDownVector: '\u21C2', + RightDownVectorBar: '\u2955', + RightFloor: '\u230B', + RightTee: '\u22A2', + RightTeeArrow: '\u21A6', + RightTeeVector: '\u295B', + RightTriangle: '\u22B3', + RightTriangleBar: '\u29D0', + RightTriangleEqual: '\u22B5', + RightUpDownVector: '\u294F', + RightUpTeeVector: '\u295C', + RightUpVector: '\u21BE', + RightUpVectorBar: '\u2954', + RightVector: '\u21C0', + RightVectorBar: '\u2953', + Rightarrow: '\u21D2', + Ropf: '\u211D', + RoundImplies: '\u2970', + Rrightarrow: '\u21DB', + Rscr: '\u211B', + Rsh: '\u21B1', + RuleDelayed: '\u29F4', + SHCHcy: '\u0429', + SHcy: '\u0428', + SOFTcy: '\u042C', + Sacute: '\u015A', + Sc: '\u2ABC', + Scaron: '\u0160', + Scedil: '\u015E', + Scirc: '\u015C', + Scy: '\u0421', + Sfr: '\uD835\uDD16', + ShortDownArrow: '\u2193', + ShortLeftArrow: '\u2190', + ShortRightArrow: '\u2192', + ShortUpArrow: '\u2191', + Sigma: '\u03A3', + SmallCircle: '\u2218', + Sopf: '\uD835\uDD4A', + Sqrt: '\u221A', + Square: '\u25A1', + SquareIntersection: '\u2293', + SquareSubset: '\u228F', + SquareSubsetEqual: '\u2291', + SquareSuperset: '\u2290', + SquareSupersetEqual: '\u2292', + SquareUnion: '\u2294', + Sscr: '\uD835\uDCAE', + Star: '\u22C6', + Sub: '\u22D0', + Subset: '\u22D0', + SubsetEqual: '\u2286', + Succeeds: '\u227B', + SucceedsEqual: '\u2AB0', + SucceedsSlantEqual: '\u227D', + SucceedsTilde: '\u227F', + SuchThat: '\u220B', + Sum: '\u2211', + Sup: '\u22D1', + Superset: '\u2283', + SupersetEqual: '\u2287', + Supset: '\u22D1', + THORN: '\u00DE', + TRADE: '\u2122', + TSHcy: '\u040B', + TScy: '\u0426', + Tab: '\u0009', + Tau: '\u03A4', + Tcaron: '\u0164', + Tcedil: '\u0162', + Tcy: '\u0422', + Tfr: '\uD835\uDD17', + Therefore: '\u2234', + Theta: '\u0398', + ThickSpace: '\u205F\u200A', + ThinSpace: '\u2009', + Tilde: '\u223C', + TildeEqual: '\u2243', + TildeFullEqual: '\u2245', + TildeTilde: '\u2248', + Topf: '\uD835\uDD4B', + TripleDot: '\u20DB', + Tscr: '\uD835\uDCAF', + Tstrok: '\u0166', + Uacute: '\u00DA', + Uarr: '\u219F', + Uarrocir: '\u2949', + Ubrcy: '\u040E', + Ubreve: '\u016C', + Ucirc: '\u00DB', + Ucy: '\u0423', + Udblac: '\u0170', + Ufr: '\uD835\uDD18', + Ugrave: '\u00D9', + Umacr: '\u016A', + UnderBar: '\u005F', + UnderBrace: '\u23DF', + UnderBracket: '\u23B5', + UnderParenthesis: '\u23DD', + Union: '\u22C3', + UnionPlus: '\u228E', + Uogon: '\u0172', + Uopf: '\uD835\uDD4C', + UpArrow: '\u2191', + UpArrowBar: '\u2912', + UpArrowDownArrow: '\u21C5', + UpDownArrow: '\u2195', + UpEquilibrium: '\u296E', + UpTee: '\u22A5', + UpTeeArrow: '\u21A5', + Uparrow: '\u21D1', + Updownarrow: '\u21D5', + UpperLeftArrow: '\u2196', + UpperRightArrow: '\u2197', + Upsi: '\u03D2', + Upsilon: '\u03A5', + Uring: '\u016E', + Uscr: '\uD835\uDCB0', + Utilde: '\u0168', + Uuml: '\u00DC', + VDash: '\u22AB', + Vbar: '\u2AEB', + Vcy: '\u0412', + Vdash: '\u22A9', + Vdashl: '\u2AE6', + Vee: '\u22C1', + Verbar: '\u2016', + Vert: '\u2016', + VerticalBar: '\u2223', + VerticalLine: '\u007C', + VerticalSeparator: '\u2758', + VerticalTilde: '\u2240', + VeryThinSpace: '\u200A', + Vfr: '\uD835\uDD19', + Vopf: '\uD835\uDD4D', + Vscr: '\uD835\uDCB1', + Vvdash: '\u22AA', + Wcirc: '\u0174', + Wedge: '\u22C0', + Wfr: '\uD835\uDD1A', + Wopf: '\uD835\uDD4E', + Wscr: '\uD835\uDCB2', + Xfr: '\uD835\uDD1B', + Xi: '\u039E', + Xopf: '\uD835\uDD4F', + Xscr: '\uD835\uDCB3', + YAcy: '\u042F', + YIcy: '\u0407', + YUcy: '\u042E', + Yacute: '\u00DD', + Ycirc: '\u0176', + Ycy: '\u042B', + Yfr: '\uD835\uDD1C', + Yopf: '\uD835\uDD50', + Yscr: '\uD835\uDCB4', + Yuml: '\u0178', + ZHcy: '\u0416', + Zacute: '\u0179', + Zcaron: '\u017D', + Zcy: '\u0417', + Zdot: '\u017B', + ZeroWidthSpace: '\u200B', + Zeta: '\u0396', + Zfr: '\u2128', + Zopf: '\u2124', + Zscr: '\uD835\uDCB5', + aacute: '\u00E1', + abreve: '\u0103', + ac: '\u223E', + acE: '\u223E\u0333', + acd: '\u223F', + acirc: '\u00E2', + acute: '\u00B4', + acy: '\u0430', + aelig: '\u00E6', + af: '\u2061', + afr: '\uD835\uDD1E', + agrave: '\u00E0', + alefsym: '\u2135', + aleph: '\u2135', + alpha: '\u03B1', + amacr: '\u0101', + amalg: '\u2A3F', + amp: '\u0026', + and: '\u2227', + andand: '\u2A55', + andd: '\u2A5C', + andslope: '\u2A58', + andv: '\u2A5A', + ang: '\u2220', + ange: '\u29A4', + angle: '\u2220', + angmsd: '\u2221', + angmsdaa: '\u29A8', + angmsdab: '\u29A9', + angmsdac: '\u29AA', + angmsdad: '\u29AB', + angmsdae: '\u29AC', + angmsdaf: '\u29AD', + angmsdag: '\u29AE', + angmsdah: '\u29AF', + angrt: '\u221F', + angrtvb: '\u22BE', + angrtvbd: '\u299D', + angsph: '\u2222', + angst: '\u00C5', + angzarr: '\u237C', + aogon: '\u0105', + aopf: '\uD835\uDD52', + ap: '\u2248', + apE: '\u2A70', + apacir: '\u2A6F', + ape: '\u224A', + apid: '\u224B', + apos: '\u0027', + approx: '\u2248', + approxeq: '\u224A', + aring: '\u00E5', + ascr: '\uD835\uDCB6', + ast: '\u002A', + asymp: '\u2248', + asympeq: '\u224D', + atilde: '\u00E3', + auml: '\u00E4', + awconint: '\u2233', + awint: '\u2A11', + bNot: '\u2AED', + backcong: '\u224C', + backepsilon: '\u03F6', + backprime: '\u2035', + backsim: '\u223D', + backsimeq: '\u22CD', + barvee: '\u22BD', + barwed: '\u2305', + barwedge: '\u2305', + bbrk: '\u23B5', + bbrktbrk: '\u23B6', + bcong: '\u224C', + bcy: '\u0431', + bdquo: '\u201E', + becaus: '\u2235', + because: '\u2235', + bemptyv: '\u29B0', + bepsi: '\u03F6', + bernou: '\u212C', + beta: '\u03B2', + beth: '\u2136', + between: '\u226C', + bfr: '\uD835\uDD1F', + bigcap: '\u22C2', + bigcirc: '\u25EF', + bigcup: '\u22C3', + bigodot: '\u2A00', + bigoplus: '\u2A01', + bigotimes: '\u2A02', + bigsqcup: '\u2A06', + bigstar: '\u2605', + bigtriangledown: '\u25BD', + bigtriangleup: '\u25B3', + biguplus: '\u2A04', + bigvee: '\u22C1', + bigwedge: '\u22C0', + bkarow: '\u290D', + blacklozenge: '\u29EB', + blacksquare: '\u25AA', + blacktriangle: '\u25B4', + blacktriangledown: '\u25BE', + blacktriangleleft: '\u25C2', + blacktriangleright: '\u25B8', + blank: '\u2423', + blk12: '\u2592', + blk14: '\u2591', + blk34: '\u2593', + block: '\u2588', + bne: '\u003D\u20E5', + bnequiv: '\u2261\u20E5', + bnot: '\u2310', + bopf: '\uD835\uDD53', + bot: '\u22A5', + bottom: '\u22A5', + bowtie: '\u22C8', + boxDL: '\u2557', + boxDR: '\u2554', + boxDl: '\u2556', + boxDr: '\u2553', + boxH: '\u2550', + boxHD: '\u2566', + boxHU: '\u2569', + boxHd: '\u2564', + boxHu: '\u2567', + boxUL: '\u255D', + boxUR: '\u255A', + boxUl: '\u255C', + boxUr: '\u2559', + boxV: '\u2551', + boxVH: '\u256C', + boxVL: '\u2563', + boxVR: '\u2560', + boxVh: '\u256B', + boxVl: '\u2562', + boxVr: '\u255F', + boxbox: '\u29C9', + boxdL: '\u2555', + boxdR: '\u2552', + boxdl: '\u2510', + boxdr: '\u250C', + boxh: '\u2500', + boxhD: '\u2565', + boxhU: '\u2568', + boxhd: '\u252C', + boxhu: '\u2534', + boxminus: '\u229F', + boxplus: '\u229E', + boxtimes: '\u22A0', + boxuL: '\u255B', + boxuR: '\u2558', + boxul: '\u2518', + boxur: '\u2514', + boxv: '\u2502', + boxvH: '\u256A', + boxvL: '\u2561', + boxvR: '\u255E', + boxvh: '\u253C', + boxvl: '\u2524', + boxvr: '\u251C', + bprime: '\u2035', + breve: '\u02D8', + brvbar: '\u00A6', + bscr: '\uD835\uDCB7', + bsemi: '\u204F', + bsim: '\u223D', + bsime: '\u22CD', + bsol: '\u005C', + bsolb: '\u29C5', + bsolhsub: '\u27C8', + bull: '\u2022', + bullet: '\u2022', + bump: '\u224E', + bumpE: '\u2AAE', + bumpe: '\u224F', + bumpeq: '\u224F', + cacute: '\u0107', + cap: '\u2229', + capand: '\u2A44', + capbrcup: '\u2A49', + capcap: '\u2A4B', + capcup: '\u2A47', + capdot: '\u2A40', + caps: '\u2229\uFE00', + caret: '\u2041', + caron: '\u02C7', + ccaps: '\u2A4D', + ccaron: '\u010D', + ccedil: '\u00E7', + ccirc: '\u0109', + ccups: '\u2A4C', + ccupssm: '\u2A50', + cdot: '\u010B', + cedil: '\u00B8', + cemptyv: '\u29B2', + cent: '\u00A2', + centerdot: '\u00B7', + cfr: '\uD835\uDD20', + chcy: '\u0447', + check: '\u2713', + checkmark: '\u2713', + chi: '\u03C7', + cir: '\u25CB', + cirE: '\u29C3', + circ: '\u02C6', + circeq: '\u2257', + circlearrowleft: '\u21BA', + circlearrowright: '\u21BB', + circledR: '\u00AE', + circledS: '\u24C8', + circledast: '\u229B', + circledcirc: '\u229A', + circleddash: '\u229D', + cire: '\u2257', + cirfnint: '\u2A10', + cirmid: '\u2AEF', + cirscir: '\u29C2', + clubs: '\u2663', + clubsuit: '\u2663', + colon: '\u003A', + colone: '\u2254', + coloneq: '\u2254', + comma: '\u002C', + commat: '\u0040', + comp: '\u2201', + compfn: '\u2218', + complement: '\u2201', + complexes: '\u2102', + cong: '\u2245', + congdot: '\u2A6D', + conint: '\u222E', + copf: '\uD835\uDD54', + coprod: '\u2210', + copy: '\u00A9', + copysr: '\u2117', + crarr: '\u21B5', + cross: '\u2717', + cscr: '\uD835\uDCB8', + csub: '\u2ACF', + csube: '\u2AD1', + csup: '\u2AD0', + csupe: '\u2AD2', + ctdot: '\u22EF', + cudarrl: '\u2938', + cudarrr: '\u2935', + cuepr: '\u22DE', + cuesc: '\u22DF', + cularr: '\u21B6', + cularrp: '\u293D', + cup: '\u222A', + cupbrcap: '\u2A48', + cupcap: '\u2A46', + cupcup: '\u2A4A', + cupdot: '\u228D', + cupor: '\u2A45', + cups: '\u222A\uFE00', + curarr: '\u21B7', + curarrm: '\u293C', + curlyeqprec: '\u22DE', + curlyeqsucc: '\u22DF', + curlyvee: '\u22CE', + curlywedge: '\u22CF', + curren: '\u00A4', + curvearrowleft: '\u21B6', + curvearrowright: '\u21B7', + cuvee: '\u22CE', + cuwed: '\u22CF', + cwconint: '\u2232', + cwint: '\u2231', + cylcty: '\u232D', + dArr: '\u21D3', + dHar: '\u2965', + dagger: '\u2020', + daleth: '\u2138', + darr: '\u2193', + dash: '\u2010', + dashv: '\u22A3', + dbkarow: '\u290F', + dblac: '\u02DD', + dcaron: '\u010F', + dcy: '\u0434', + dd: '\u2146', + ddagger: '\u2021', + ddarr: '\u21CA', + ddotseq: '\u2A77', + deg: '\u00B0', + delta: '\u03B4', + demptyv: '\u29B1', + dfisht: '\u297F', + dfr: '\uD835\uDD21', + dharl: '\u21C3', + dharr: '\u21C2', + diam: '\u22C4', + diamond: '\u22C4', + diamondsuit: '\u2666', + diams: '\u2666', + die: '\u00A8', + digamma: '\u03DD', + disin: '\u22F2', + div: '\u00F7', + divide: '\u00F7', + divideontimes: '\u22C7', + divonx: '\u22C7', + djcy: '\u0452', + dlcorn: '\u231E', + dlcrop: '\u230D', + dollar: '\u0024', + dopf: '\uD835\uDD55', + dot: '\u02D9', + doteq: '\u2250', + doteqdot: '\u2251', + dotminus: '\u2238', + dotplus: '\u2214', + dotsquare: '\u22A1', + doublebarwedge: '\u2306', + downarrow: '\u2193', + downdownarrows: '\u21CA', + downharpoonleft: '\u21C3', + downharpoonright: '\u21C2', + drbkarow: '\u2910', + drcorn: '\u231F', + drcrop: '\u230C', + dscr: '\uD835\uDCB9', + dscy: '\u0455', + dsol: '\u29F6', + dstrok: '\u0111', + dtdot: '\u22F1', + dtri: '\u25BF', + dtrif: '\u25BE', + duarr: '\u21F5', + duhar: '\u296F', + dwangle: '\u29A6', + dzcy: '\u045F', + dzigrarr: '\u27FF', + eDDot: '\u2A77', + eDot: '\u2251', + eacute: '\u00E9', + easter: '\u2A6E', + ecaron: '\u011B', + ecir: '\u2256', + ecirc: '\u00EA', + ecolon: '\u2255', + ecy: '\u044D', + edot: '\u0117', + ee: '\u2147', + efDot: '\u2252', + efr: '\uD835\uDD22', + eg: '\u2A9A', + egrave: '\u00E8', + egs: '\u2A96', + egsdot: '\u2A98', + el: '\u2A99', + elinters: '\u23E7', + ell: '\u2113', + els: '\u2A95', + elsdot: '\u2A97', + emacr: '\u0113', + empty: '\u2205', + emptyset: '\u2205', + emptyv: '\u2205', + emsp13: '\u2004', + emsp14: '\u2005', + emsp: '\u2003', + eng: '\u014B', + ensp: '\u2002', + eogon: '\u0119', + eopf: '\uD835\uDD56', + epar: '\u22D5', + eparsl: '\u29E3', + eplus: '\u2A71', + epsi: '\u03B5', + epsilon: '\u03B5', + epsiv: '\u03F5', + eqcirc: '\u2256', + eqcolon: '\u2255', + eqsim: '\u2242', + eqslantgtr: '\u2A96', + eqslantless: '\u2A95', + equals: '\u003D', + equest: '\u225F', + equiv: '\u2261', + equivDD: '\u2A78', + eqvparsl: '\u29E5', + erDot: '\u2253', + erarr: '\u2971', + escr: '\u212F', + esdot: '\u2250', + esim: '\u2242', + eta: '\u03B7', + eth: '\u00F0', + euml: '\u00EB', + euro: '\u20AC', + excl: '\u0021', + exist: '\u2203', + expectation: '\u2130', + exponentiale: '\u2147', + fallingdotseq: '\u2252', + fcy: '\u0444', + female: '\u2640', + ffilig: '\uFB03', + fflig: '\uFB00', + ffllig: '\uFB04', + ffr: '\uD835\uDD23', + filig: '\uFB01', + fjlig: '\u0066\u006A', + flat: '\u266D', + fllig: '\uFB02', + fltns: '\u25B1', + fnof: '\u0192', + fopf: '\uD835\uDD57', + forall: '\u2200', + fork: '\u22D4', + forkv: '\u2AD9', + fpartint: '\u2A0D', + frac12: '\u00BD', + frac13: '\u2153', + frac14: '\u00BC', + frac15: '\u2155', + frac16: '\u2159', + frac18: '\u215B', + frac23: '\u2154', + frac25: '\u2156', + frac34: '\u00BE', + frac35: '\u2157', + frac38: '\u215C', + frac45: '\u2158', + frac56: '\u215A', + frac58: '\u215D', + frac78: '\u215E', + frasl: '\u2044', + frown: '\u2322', + fscr: '\uD835\uDCBB', + gE: '\u2267', + gEl: '\u2A8C', + gacute: '\u01F5', + gamma: '\u03B3', + gammad: '\u03DD', + gap: '\u2A86', + gbreve: '\u011F', + gcirc: '\u011D', + gcy: '\u0433', + gdot: '\u0121', + ge: '\u2265', + gel: '\u22DB', + geq: '\u2265', + geqq: '\u2267', + geqslant: '\u2A7E', + ges: '\u2A7E', + gescc: '\u2AA9', + gesdot: '\u2A80', + gesdoto: '\u2A82', + gesdotol: '\u2A84', + gesl: '\u22DB\uFE00', + gesles: '\u2A94', + gfr: '\uD835\uDD24', + gg: '\u226B', + ggg: '\u22D9', + gimel: '\u2137', + gjcy: '\u0453', + gl: '\u2277', + glE: '\u2A92', + gla: '\u2AA5', + glj: '\u2AA4', + gnE: '\u2269', + gnap: '\u2A8A', + gnapprox: '\u2A8A', + gne: '\u2A88', + gneq: '\u2A88', + gneqq: '\u2269', + gnsim: '\u22E7', + gopf: '\uD835\uDD58', + grave: '\u0060', + gscr: '\u210A', + gsim: '\u2273', + gsime: '\u2A8E', + gsiml: '\u2A90', + gt: '\u003E', + gtcc: '\u2AA7', + gtcir: '\u2A7A', + gtdot: '\u22D7', + gtlPar: '\u2995', + gtquest: '\u2A7C', + gtrapprox: '\u2A86', + gtrarr: '\u2978', + gtrdot: '\u22D7', + gtreqless: '\u22DB', + gtreqqless: '\u2A8C', + gtrless: '\u2277', + gtrsim: '\u2273', + gvertneqq: '\u2269\uFE00', + gvnE: '\u2269\uFE00', + hArr: '\u21D4', + hairsp: '\u200A', + half: '\u00BD', + hamilt: '\u210B', + hardcy: '\u044A', + harr: '\u2194', + harrcir: '\u2948', + harrw: '\u21AD', + hbar: '\u210F', + hcirc: '\u0125', + hearts: '\u2665', + heartsuit: '\u2665', + hellip: '\u2026', + hercon: '\u22B9', + hfr: '\uD835\uDD25', + hksearow: '\u2925', + hkswarow: '\u2926', + hoarr: '\u21FF', + homtht: '\u223B', + hookleftarrow: '\u21A9', + hookrightarrow: '\u21AA', + hopf: '\uD835\uDD59', + horbar: '\u2015', + hscr: '\uD835\uDCBD', + hslash: '\u210F', + hstrok: '\u0127', + hybull: '\u2043', + hyphen: '\u2010', + iacute: '\u00ED', + ic: '\u2063', + icirc: '\u00EE', + icy: '\u0438', + iecy: '\u0435', + iexcl: '\u00A1', + iff: '\u21D4', + ifr: '\uD835\uDD26', + igrave: '\u00EC', + ii: '\u2148', + iiiint: '\u2A0C', + iiint: '\u222D', + iinfin: '\u29DC', + iiota: '\u2129', + ijlig: '\u0133', + imacr: '\u012B', + image: '\u2111', + imagline: '\u2110', + imagpart: '\u2111', + imath: '\u0131', + imof: '\u22B7', + imped: '\u01B5', + in: '\u2208', + incare: '\u2105', + infin: '\u221E', + infintie: '\u29DD', + inodot: '\u0131', + int: '\u222B', + intcal: '\u22BA', + integers: '\u2124', + intercal: '\u22BA', + intlarhk: '\u2A17', + intprod: '\u2A3C', + iocy: '\u0451', + iogon: '\u012F', + iopf: '\uD835\uDD5A', + iota: '\u03B9', + iprod: '\u2A3C', + iquest: '\u00BF', + iscr: '\uD835\uDCBE', + isin: '\u2208', + isinE: '\u22F9', + isindot: '\u22F5', + isins: '\u22F4', + isinsv: '\u22F3', + isinv: '\u2208', + it: '\u2062', + itilde: '\u0129', + iukcy: '\u0456', + iuml: '\u00EF', + jcirc: '\u0135', + jcy: '\u0439', + jfr: '\uD835\uDD27', + jmath: '\u0237', + jopf: '\uD835\uDD5B', + jscr: '\uD835\uDCBF', + jsercy: '\u0458', + jukcy: '\u0454', + kappa: '\u03BA', + kappav: '\u03F0', + kcedil: '\u0137', + kcy: '\u043A', + kfr: '\uD835\uDD28', + kgreen: '\u0138', + khcy: '\u0445', + kjcy: '\u045C', + kopf: '\uD835\uDD5C', + kscr: '\uD835\uDCC0', + lAarr: '\u21DA', + lArr: '\u21D0', + lAtail: '\u291B', + lBarr: '\u290E', + lE: '\u2266', + lEg: '\u2A8B', + lHar: '\u2962', + lacute: '\u013A', + laemptyv: '\u29B4', + lagran: '\u2112', + lambda: '\u03BB', + lang: '\u27E8', + langd: '\u2991', + langle: '\u27E8', + lap: '\u2A85', + laquo: '\u00AB', + larr: '\u2190', + larrb: '\u21E4', + larrbfs: '\u291F', + larrfs: '\u291D', + larrhk: '\u21A9', + larrlp: '\u21AB', + larrpl: '\u2939', + larrsim: '\u2973', + larrtl: '\u21A2', + lat: '\u2AAB', + latail: '\u2919', + late: '\u2AAD', + lates: '\u2AAD\uFE00', + lbarr: '\u290C', + lbbrk: '\u2772', + lbrace: '\u007B', + lbrack: '\u005B', + lbrke: '\u298B', + lbrksld: '\u298F', + lbrkslu: '\u298D', + lcaron: '\u013E', + lcedil: '\u013C', + lceil: '\u2308', + lcub: '\u007B', + lcy: '\u043B', + ldca: '\u2936', + ldquo: '\u201C', + ldquor: '\u201E', + ldrdhar: '\u2967', + ldrushar: '\u294B', + ldsh: '\u21B2', + le: '\u2264', + leftarrow: '\u2190', + leftarrowtail: '\u21A2', + leftharpoondown: '\u21BD', + leftharpoonup: '\u21BC', + leftleftarrows: '\u21C7', + leftrightarrow: '\u2194', + leftrightarrows: '\u21C6', + leftrightharpoons: '\u21CB', + leftrightsquigarrow: '\u21AD', + leftthreetimes: '\u22CB', + leg: '\u22DA', + leq: '\u2264', + leqq: '\u2266', + leqslant: '\u2A7D', + les: '\u2A7D', + lescc: '\u2AA8', + lesdot: '\u2A7F', + lesdoto: '\u2A81', + lesdotor: '\u2A83', + lesg: '\u22DA\uFE00', + lesges: '\u2A93', + lessapprox: '\u2A85', + lessdot: '\u22D6', + lesseqgtr: '\u22DA', + lesseqqgtr: '\u2A8B', + lessgtr: '\u2276', + lesssim: '\u2272', + lfisht: '\u297C', + lfloor: '\u230A', + lfr: '\uD835\uDD29', + lg: '\u2276', + lgE: '\u2A91', + lhard: '\u21BD', + lharu: '\u21BC', + lharul: '\u296A', + lhblk: '\u2584', + ljcy: '\u0459', + ll: '\u226A', + llarr: '\u21C7', + llcorner: '\u231E', + llhard: '\u296B', + lltri: '\u25FA', + lmidot: '\u0140', + lmoust: '\u23B0', + lmoustache: '\u23B0', + lnE: '\u2268', + lnap: '\u2A89', + lnapprox: '\u2A89', + lne: '\u2A87', + lneq: '\u2A87', + lneqq: '\u2268', + lnsim: '\u22E6', + loang: '\u27EC', + loarr: '\u21FD', + lobrk: '\u27E6', + longleftarrow: '\u27F5', + longleftrightarrow: '\u27F7', + longmapsto: '\u27FC', + longrightarrow: '\u27F6', + looparrowleft: '\u21AB', + looparrowright: '\u21AC', + lopar: '\u2985', + lopf: '\uD835\uDD5D', + loplus: '\u2A2D', + lotimes: '\u2A34', + lowast: '\u2217', + lowbar: '\u005F', + loz: '\u25CA', + lozenge: '\u25CA', + lozf: '\u29EB', + lpar: '\u0028', + lparlt: '\u2993', + lrarr: '\u21C6', + lrcorner: '\u231F', + lrhar: '\u21CB', + lrhard: '\u296D', + lrm: '\u200E', + lrtri: '\u22BF', + lsaquo: '\u2039', + lscr: '\uD835\uDCC1', + lsh: '\u21B0', + lsim: '\u2272', + lsime: '\u2A8D', + lsimg: '\u2A8F', + lsqb: '\u005B', + lsquo: '\u2018', + lsquor: '\u201A', + lstrok: '\u0142', + lt: '\u003C', + ltcc: '\u2AA6', + ltcir: '\u2A79', + ltdot: '\u22D6', + lthree: '\u22CB', + ltimes: '\u22C9', + ltlarr: '\u2976', + ltquest: '\u2A7B', + ltrPar: '\u2996', + ltri: '\u25C3', + ltrie: '\u22B4', + ltrif: '\u25C2', + lurdshar: '\u294A', + luruhar: '\u2966', + lvertneqq: '\u2268\uFE00', + lvnE: '\u2268\uFE00', + mDDot: '\u223A', + macr: '\u00AF', + male: '\u2642', + malt: '\u2720', + maltese: '\u2720', + map: '\u21A6', + mapsto: '\u21A6', + mapstodown: '\u21A7', + mapstoleft: '\u21A4', + mapstoup: '\u21A5', + marker: '\u25AE', + mcomma: '\u2A29', + mcy: '\u043C', + mdash: '\u2014', + measuredangle: '\u2221', + mfr: '\uD835\uDD2A', + mho: '\u2127', + micro: '\u00B5', + mid: '\u2223', + midast: '\u002A', + midcir: '\u2AF0', + middot: '\u00B7', + minus: '\u2212', + minusb: '\u229F', + minusd: '\u2238', + minusdu: '\u2A2A', + mlcp: '\u2ADB', + mldr: '\u2026', + mnplus: '\u2213', + models: '\u22A7', + mopf: '\uD835\uDD5E', + mp: '\u2213', + mscr: '\uD835\uDCC2', + mstpos: '\u223E', + mu: '\u03BC', + multimap: '\u22B8', + mumap: '\u22B8', + nGg: '\u22D9\u0338', + nGt: '\u226B\u20D2', + nGtv: '\u226B\u0338', + nLeftarrow: '\u21CD', + nLeftrightarrow: '\u21CE', + nLl: '\u22D8\u0338', + nLt: '\u226A\u20D2', + nLtv: '\u226A\u0338', + nRightarrow: '\u21CF', + nVDash: '\u22AF', + nVdash: '\u22AE', + nabla: '\u2207', + nacute: '\u0144', + nang: '\u2220\u20D2', + nap: '\u2249', + napE: '\u2A70\u0338', + napid: '\u224B\u0338', + napos: '\u0149', + napprox: '\u2249', + natur: '\u266E', + natural: '\u266E', + naturals: '\u2115', + nbsp: '\u00A0', + nbump: '\u224E\u0338', + nbumpe: '\u224F\u0338', + ncap: '\u2A43', + ncaron: '\u0148', + ncedil: '\u0146', + ncong: '\u2247', + ncongdot: '\u2A6D\u0338', + ncup: '\u2A42', + ncy: '\u043D', + ndash: '\u2013', + ne: '\u2260', + neArr: '\u21D7', + nearhk: '\u2924', + nearr: '\u2197', + nearrow: '\u2197', + nedot: '\u2250\u0338', + nequiv: '\u2262', + nesear: '\u2928', + nesim: '\u2242\u0338', + nexist: '\u2204', + nexists: '\u2204', + nfr: '\uD835\uDD2B', + ngE: '\u2267\u0338', + nge: '\u2271', + ngeq: '\u2271', + ngeqq: '\u2267\u0338', + ngeqslant: '\u2A7E\u0338', + nges: '\u2A7E\u0338', + ngsim: '\u2275', + ngt: '\u226F', + ngtr: '\u226F', + nhArr: '\u21CE', + nharr: '\u21AE', + nhpar: '\u2AF2', + ni: '\u220B', + nis: '\u22FC', + nisd: '\u22FA', + niv: '\u220B', + njcy: '\u045A', + nlArr: '\u21CD', + nlE: '\u2266\u0338', + nlarr: '\u219A', + nldr: '\u2025', + nle: '\u2270', + nleftarrow: '\u219A', + nleftrightarrow: '\u21AE', + nleq: '\u2270', + nleqq: '\u2266\u0338', + nleqslant: '\u2A7D\u0338', + nles: '\u2A7D\u0338', + nless: '\u226E', + nlsim: '\u2274', + nlt: '\u226E', + nltri: '\u22EA', + nltrie: '\u22EC', + nmid: '\u2224', + nopf: '\uD835\uDD5F', + not: '\u00AC', + notin: '\u2209', + notinE: '\u22F9\u0338', + notindot: '\u22F5\u0338', + notinva: '\u2209', + notinvb: '\u22F7', + notinvc: '\u22F6', + notni: '\u220C', + notniva: '\u220C', + notnivb: '\u22FE', + notnivc: '\u22FD', + npar: '\u2226', + nparallel: '\u2226', + nparsl: '\u2AFD\u20E5', + npart: '\u2202\u0338', + npolint: '\u2A14', + npr: '\u2280', + nprcue: '\u22E0', + npre: '\u2AAF\u0338', + nprec: '\u2280', + npreceq: '\u2AAF\u0338', + nrArr: '\u21CF', + nrarr: '\u219B', + nrarrc: '\u2933\u0338', + nrarrw: '\u219D\u0338', + nrightarrow: '\u219B', + nrtri: '\u22EB', + nrtrie: '\u22ED', + nsc: '\u2281', + nsccue: '\u22E1', + nsce: '\u2AB0\u0338', + nscr: '\uD835\uDCC3', + nshortmid: '\u2224', + nshortparallel: '\u2226', + nsim: '\u2241', + nsime: '\u2244', + nsimeq: '\u2244', + nsmid: '\u2224', + nspar: '\u2226', + nsqsube: '\u22E2', + nsqsupe: '\u22E3', + nsub: '\u2284', + nsubE: '\u2AC5\u0338', + nsube: '\u2288', + nsubset: '\u2282\u20D2', + nsubseteq: '\u2288', + nsubseteqq: '\u2AC5\u0338', + nsucc: '\u2281', + nsucceq: '\u2AB0\u0338', + nsup: '\u2285', + nsupE: '\u2AC6\u0338', + nsupe: '\u2289', + nsupset: '\u2283\u20D2', + nsupseteq: '\u2289', + nsupseteqq: '\u2AC6\u0338', + ntgl: '\u2279', + ntilde: '\u00F1', + ntlg: '\u2278', + ntriangleleft: '\u22EA', + ntrianglelefteq: '\u22EC', + ntriangleright: '\u22EB', + ntrianglerighteq: '\u22ED', + nu: '\u03BD', + num: '\u0023', + numero: '\u2116', + numsp: '\u2007', + nvDash: '\u22AD', + nvHarr: '\u2904', + nvap: '\u224D\u20D2', + nvdash: '\u22AC', + nvge: '\u2265\u20D2', + nvgt: '\u003E\u20D2', + nvinfin: '\u29DE', + nvlArr: '\u2902', + nvle: '\u2264\u20D2', + nvlt: '\u003C\u20D2', + nvltrie: '\u22B4\u20D2', + nvrArr: '\u2903', + nvrtrie: '\u22B5\u20D2', + nvsim: '\u223C\u20D2', + nwArr: '\u21D6', + nwarhk: '\u2923', + nwarr: '\u2196', + nwarrow: '\u2196', + nwnear: '\u2927', + oS: '\u24C8', + oacute: '\u00F3', + oast: '\u229B', + ocir: '\u229A', + ocirc: '\u00F4', + ocy: '\u043E', + odash: '\u229D', + odblac: '\u0151', + odiv: '\u2A38', + odot: '\u2299', + odsold: '\u29BC', + oelig: '\u0153', + ofcir: '\u29BF', + ofr: '\uD835\uDD2C', + ogon: '\u02DB', + ograve: '\u00F2', + ogt: '\u29C1', + ohbar: '\u29B5', + ohm: '\u03A9', + oint: '\u222E', + olarr: '\u21BA', + olcir: '\u29BE', + olcross: '\u29BB', + oline: '\u203E', + olt: '\u29C0', + omacr: '\u014D', + omega: '\u03C9', + omicron: '\u03BF', + omid: '\u29B6', + ominus: '\u2296', + oopf: '\uD835\uDD60', + opar: '\u29B7', + operp: '\u29B9', + oplus: '\u2295', + or: '\u2228', + orarr: '\u21BB', + ord: '\u2A5D', + order: '\u2134', + orderof: '\u2134', + ordf: '\u00AA', + ordm: '\u00BA', + origof: '\u22B6', + oror: '\u2A56', + orslope: '\u2A57', + orv: '\u2A5B', + oscr: '\u2134', + oslash: '\u00F8', + osol: '\u2298', + otilde: '\u00F5', + otimes: '\u2297', + otimesas: '\u2A36', + ouml: '\u00F6', + ovbar: '\u233D', + par: '\u2225', + para: '\u00B6', + parallel: '\u2225', + parsim: '\u2AF3', + parsl: '\u2AFD', + part: '\u2202', + pcy: '\u043F', + percnt: '\u0025', + period: '\u002E', + permil: '\u2030', + perp: '\u22A5', + pertenk: '\u2031', + pfr: '\uD835\uDD2D', + phi: '\u03C6', + phiv: '\u03D5', + phmmat: '\u2133', + phone: '\u260E', + pi: '\u03C0', + pitchfork: '\u22D4', + piv: '\u03D6', + planck: '\u210F', + planckh: '\u210E', + plankv: '\u210F', + plus: '\u002B', + plusacir: '\u2A23', + plusb: '\u229E', + pluscir: '\u2A22', + plusdo: '\u2214', + plusdu: '\u2A25', + pluse: '\u2A72', + plusmn: '\u00B1', + plussim: '\u2A26', + plustwo: '\u2A27', + pm: '\u00B1', + pointint: '\u2A15', + popf: '\uD835\uDD61', + pound: '\u00A3', + pr: '\u227A', + prE: '\u2AB3', + prap: '\u2AB7', + prcue: '\u227C', + pre: '\u2AAF', + prec: '\u227A', + precapprox: '\u2AB7', + preccurlyeq: '\u227C', + preceq: '\u2AAF', + precnapprox: '\u2AB9', + precneqq: '\u2AB5', + precnsim: '\u22E8', + precsim: '\u227E', + prime: '\u2032', + primes: '\u2119', + prnE: '\u2AB5', + prnap: '\u2AB9', + prnsim: '\u22E8', + prod: '\u220F', + profalar: '\u232E', + profline: '\u2312', + profsurf: '\u2313', + prop: '\u221D', + propto: '\u221D', + prsim: '\u227E', + prurel: '\u22B0', + pscr: '\uD835\uDCC5', + psi: '\u03C8', + puncsp: '\u2008', + qfr: '\uD835\uDD2E', + qint: '\u2A0C', + qopf: '\uD835\uDD62', + qprime: '\u2057', + qscr: '\uD835\uDCC6', + quaternions: '\u210D', + quatint: '\u2A16', + quest: '\u003F', + questeq: '\u225F', + quot: '\u0022', + rAarr: '\u21DB', + rArr: '\u21D2', + rAtail: '\u291C', + rBarr: '\u290F', + rHar: '\u2964', + race: '\u223D\u0331', + racute: '\u0155', + radic: '\u221A', + raemptyv: '\u29B3', + rang: '\u27E9', + rangd: '\u2992', + range: '\u29A5', + rangle: '\u27E9', + raquo: '\u00BB', + rarr: '\u2192', + rarrap: '\u2975', + rarrb: '\u21E5', + rarrbfs: '\u2920', + rarrc: '\u2933', + rarrfs: '\u291E', + rarrhk: '\u21AA', + rarrlp: '\u21AC', + rarrpl: '\u2945', + rarrsim: '\u2974', + rarrtl: '\u21A3', + rarrw: '\u219D', + ratail: '\u291A', + ratio: '\u2236', + rationals: '\u211A', + rbarr: '\u290D', + rbbrk: '\u2773', + rbrace: '\u007D', + rbrack: '\u005D', + rbrke: '\u298C', + rbrksld: '\u298E', + rbrkslu: '\u2990', + rcaron: '\u0159', + rcedil: '\u0157', + rceil: '\u2309', + rcub: '\u007D', + rcy: '\u0440', + rdca: '\u2937', + rdldhar: '\u2969', + rdquo: '\u201D', + rdquor: '\u201D', + rdsh: '\u21B3', + real: '\u211C', + realine: '\u211B', + realpart: '\u211C', + reals: '\u211D', + rect: '\u25AD', + reg: '\u00AE', + rfisht: '\u297D', + rfloor: '\u230B', + rfr: '\uD835\uDD2F', + rhard: '\u21C1', + rharu: '\u21C0', + rharul: '\u296C', + rho: '\u03C1', + rhov: '\u03F1', + rightarrow: '\u2192', + rightarrowtail: '\u21A3', + rightharpoondown: '\u21C1', + rightharpoonup: '\u21C0', + rightleftarrows: '\u21C4', + rightleftharpoons: '\u21CC', + rightrightarrows: '\u21C9', + rightsquigarrow: '\u219D', + rightthreetimes: '\u22CC', + ring: '\u02DA', + risingdotseq: '\u2253', + rlarr: '\u21C4', + rlhar: '\u21CC', + rlm: '\u200F', + rmoust: '\u23B1', + rmoustache: '\u23B1', + rnmid: '\u2AEE', + roang: '\u27ED', + roarr: '\u21FE', + robrk: '\u27E7', + ropar: '\u2986', + ropf: '\uD835\uDD63', + roplus: '\u2A2E', + rotimes: '\u2A35', + rpar: '\u0029', + rpargt: '\u2994', + rppolint: '\u2A12', + rrarr: '\u21C9', + rsaquo: '\u203A', + rscr: '\uD835\uDCC7', + rsh: '\u21B1', + rsqb: '\u005D', + rsquo: '\u2019', + rsquor: '\u2019', + rthree: '\u22CC', + rtimes: '\u22CA', + rtri: '\u25B9', + rtrie: '\u22B5', + rtrif: '\u25B8', + rtriltri: '\u29CE', + ruluhar: '\u2968', + rx: '\u211E', + sacute: '\u015B', + sbquo: '\u201A', + sc: '\u227B', + scE: '\u2AB4', + scap: '\u2AB8', + scaron: '\u0161', + sccue: '\u227D', + sce: '\u2AB0', + scedil: '\u015F', + scirc: '\u015D', + scnE: '\u2AB6', + scnap: '\u2ABA', + scnsim: '\u22E9', + scpolint: '\u2A13', + scsim: '\u227F', + scy: '\u0441', + sdot: '\u22C5', + sdotb: '\u22A1', + sdote: '\u2A66', + seArr: '\u21D8', + searhk: '\u2925', + searr: '\u2198', + searrow: '\u2198', + sect: '\u00A7', + semi: '\u003B', + seswar: '\u2929', + setminus: '\u2216', + setmn: '\u2216', + sext: '\u2736', + sfr: '\uD835\uDD30', + sfrown: '\u2322', + sharp: '\u266F', + shchcy: '\u0449', + shcy: '\u0448', + shortmid: '\u2223', + shortparallel: '\u2225', + shy: '\u00AD', + sigma: '\u03C3', + sigmaf: '\u03C2', + sigmav: '\u03C2', + sim: '\u223C', + simdot: '\u2A6A', + sime: '\u2243', + simeq: '\u2243', + simg: '\u2A9E', + simgE: '\u2AA0', + siml: '\u2A9D', + simlE: '\u2A9F', + simne: '\u2246', + simplus: '\u2A24', + simrarr: '\u2972', + slarr: '\u2190', + smallsetminus: '\u2216', + smashp: '\u2A33', + smeparsl: '\u29E4', + smid: '\u2223', + smile: '\u2323', + smt: '\u2AAA', + smte: '\u2AAC', + smtes: '\u2AAC\uFE00', + softcy: '\u044C', + sol: '\u002F', + solb: '\u29C4', + solbar: '\u233F', + sopf: '\uD835\uDD64', + spades: '\u2660', + spadesuit: '\u2660', + spar: '\u2225', + sqcap: '\u2293', + sqcaps: '\u2293\uFE00', + sqcup: '\u2294', + sqcups: '\u2294\uFE00', + sqsub: '\u228F', + sqsube: '\u2291', + sqsubset: '\u228F', + sqsubseteq: '\u2291', + sqsup: '\u2290', + sqsupe: '\u2292', + sqsupset: '\u2290', + sqsupseteq: '\u2292', + squ: '\u25A1', + square: '\u25A1', + squarf: '\u25AA', + squf: '\u25AA', + srarr: '\u2192', + sscr: '\uD835\uDCC8', + ssetmn: '\u2216', + ssmile: '\u2323', + sstarf: '\u22C6', + star: '\u2606', + starf: '\u2605', + straightepsilon: '\u03F5', + straightphi: '\u03D5', + strns: '\u00AF', + sub: '\u2282', + subE: '\u2AC5', + subdot: '\u2ABD', + sube: '\u2286', + subedot: '\u2AC3', + submult: '\u2AC1', + subnE: '\u2ACB', + subne: '\u228A', + subplus: '\u2ABF', + subrarr: '\u2979', + subset: '\u2282', + subseteq: '\u2286', + subseteqq: '\u2AC5', + subsetneq: '\u228A', + subsetneqq: '\u2ACB', + subsim: '\u2AC7', + subsub: '\u2AD5', + subsup: '\u2AD3', + succ: '\u227B', + succapprox: '\u2AB8', + succcurlyeq: '\u227D', + succeq: '\u2AB0', + succnapprox: '\u2ABA', + succneqq: '\u2AB6', + succnsim: '\u22E9', + succsim: '\u227F', + sum: '\u2211', + sung: '\u266A', + sup1: '\u00B9', + sup2: '\u00B2', + sup3: '\u00B3', + sup: '\u2283', + supE: '\u2AC6', + supdot: '\u2ABE', + supdsub: '\u2AD8', + supe: '\u2287', + supedot: '\u2AC4', + suphsol: '\u27C9', + suphsub: '\u2AD7', + suplarr: '\u297B', + supmult: '\u2AC2', + supnE: '\u2ACC', + supne: '\u228B', + supplus: '\u2AC0', + supset: '\u2283', + supseteq: '\u2287', + supseteqq: '\u2AC6', + supsetneq: '\u228B', + supsetneqq: '\u2ACC', + supsim: '\u2AC8', + supsub: '\u2AD4', + supsup: '\u2AD6', + swArr: '\u21D9', + swarhk: '\u2926', + swarr: '\u2199', + swarrow: '\u2199', + swnwar: '\u292A', + szlig: '\u00DF', + target: '\u2316', + tau: '\u03C4', + tbrk: '\u23B4', + tcaron: '\u0165', + tcedil: '\u0163', + tcy: '\u0442', + tdot: '\u20DB', + telrec: '\u2315', + tfr: '\uD835\uDD31', + there4: '\u2234', + therefore: '\u2234', + theta: '\u03B8', + thetasym: '\u03D1', + thetav: '\u03D1', + thickapprox: '\u2248', + thicksim: '\u223C', + thinsp: '\u2009', + thkap: '\u2248', + thksim: '\u223C', + thorn: '\u00FE', + tilde: '\u02DC', + times: '\u00D7', + timesb: '\u22A0', + timesbar: '\u2A31', + timesd: '\u2A30', + tint: '\u222D', + toea: '\u2928', + top: '\u22A4', + topbot: '\u2336', + topcir: '\u2AF1', + topf: '\uD835\uDD65', + topfork: '\u2ADA', + tosa: '\u2929', + tprime: '\u2034', + trade: '\u2122', + triangle: '\u25B5', + triangledown: '\u25BF', + triangleleft: '\u25C3', + trianglelefteq: '\u22B4', + triangleq: '\u225C', + triangleright: '\u25B9', + trianglerighteq: '\u22B5', + tridot: '\u25EC', + trie: '\u225C', + triminus: '\u2A3A', + triplus: '\u2A39', + trisb: '\u29CD', + tritime: '\u2A3B', + trpezium: '\u23E2', + tscr: '\uD835\uDCC9', + tscy: '\u0446', + tshcy: '\u045B', + tstrok: '\u0167', + twixt: '\u226C', + twoheadleftarrow: '\u219E', + twoheadrightarrow: '\u21A0', + uArr: '\u21D1', + uHar: '\u2963', + uacute: '\u00FA', + uarr: '\u2191', + ubrcy: '\u045E', + ubreve: '\u016D', + ucirc: '\u00FB', + ucy: '\u0443', + udarr: '\u21C5', + udblac: '\u0171', + udhar: '\u296E', + ufisht: '\u297E', + ufr: '\uD835\uDD32', + ugrave: '\u00F9', + uharl: '\u21BF', + uharr: '\u21BE', + uhblk: '\u2580', + ulcorn: '\u231C', + ulcorner: '\u231C', + ulcrop: '\u230F', + ultri: '\u25F8', + umacr: '\u016B', + uml: '\u00A8', + uogon: '\u0173', + uopf: '\uD835\uDD66', + uparrow: '\u2191', + updownarrow: '\u2195', + upharpoonleft: '\u21BF', + upharpoonright: '\u21BE', + uplus: '\u228E', + upsi: '\u03C5', + upsih: '\u03D2', + upsilon: '\u03C5', + upuparrows: '\u21C8', + urcorn: '\u231D', + urcorner: '\u231D', + urcrop: '\u230E', + uring: '\u016F', + urtri: '\u25F9', + uscr: '\uD835\uDCCA', + utdot: '\u22F0', + utilde: '\u0169', + utri: '\u25B5', + utrif: '\u25B4', + uuarr: '\u21C8', + uuml: '\u00FC', + uwangle: '\u29A7', + vArr: '\u21D5', + vBar: '\u2AE8', + vBarv: '\u2AE9', + vDash: '\u22A8', + vangrt: '\u299C', + varepsilon: '\u03F5', + varkappa: '\u03F0', + varnothing: '\u2205', + varphi: '\u03D5', + varpi: '\u03D6', + varpropto: '\u221D', + varr: '\u2195', + varrho: '\u03F1', + varsigma: '\u03C2', + varsubsetneq: '\u228A\uFE00', + varsubsetneqq: '\u2ACB\uFE00', + varsupsetneq: '\u228B\uFE00', + varsupsetneqq: '\u2ACC\uFE00', + vartheta: '\u03D1', + vartriangleleft: '\u22B2', + vartriangleright: '\u22B3', + vcy: '\u0432', + vdash: '\u22A2', + vee: '\u2228', + veebar: '\u22BB', + veeeq: '\u225A', + vellip: '\u22EE', + verbar: '\u007C', + vert: '\u007C', + vfr: '\uD835\uDD33', + vltri: '\u22B2', + vnsub: '\u2282\u20D2', + vnsup: '\u2283\u20D2', + vopf: '\uD835\uDD67', + vprop: '\u221D', + vrtri: '\u22B3', + vscr: '\uD835\uDCCB', + vsubnE: '\u2ACB\uFE00', + vsubne: '\u228A\uFE00', + vsupnE: '\u2ACC\uFE00', + vsupne: '\u228B\uFE00', + vzigzag: '\u299A', + wcirc: '\u0175', + wedbar: '\u2A5F', + wedge: '\u2227', + wedgeq: '\u2259', + weierp: '\u2118', + wfr: '\uD835\uDD34', + wopf: '\uD835\uDD68', + wp: '\u2118', + wr: '\u2240', + wreath: '\u2240', + wscr: '\uD835\uDCCC', + xcap: '\u22C2', + xcirc: '\u25EF', + xcup: '\u22C3', + xdtri: '\u25BD', + xfr: '\uD835\uDD35', + xhArr: '\u27FA', + xharr: '\u27F7', + xi: '\u03BE', + xlArr: '\u27F8', + xlarr: '\u27F5', + xmap: '\u27FC', + xnis: '\u22FB', + xodot: '\u2A00', + xopf: '\uD835\uDD69', + xoplus: '\u2A01', + xotime: '\u2A02', + xrArr: '\u27F9', + xrarr: '\u27F6', + xscr: '\uD835\uDCCD', + xsqcup: '\u2A06', + xuplus: '\u2A04', + xutri: '\u25B3', + xvee: '\u22C1', + xwedge: '\u22C0', + yacute: '\u00FD', + yacy: '\u044F', + ycirc: '\u0177', + ycy: '\u044B', + yen: '\u00A5', + yfr: '\uD835\uDD36', + yicy: '\u0457', + yopf: '\uD835\uDD6A', + yscr: '\uD835\uDCCE', + yucy: '\u044E', + yuml: '\u00FF', + zacute: '\u017A', + zcaron: '\u017E', + zcy: '\u0437', + zdot: '\u017C', + zeetrf: '\u2128', + zeta: '\u03B6', + zfr: '\uD835\uDD37', + zhcy: '\u0436', + zigrarr: '\u21DD', + zopf: '\uD835\uDD6B', + zscr: '\uD835\uDCCF', + zwj: '\u200D', + zwnj: '\u200C' +}; +const decodeMap = { + '0': 65533, + '128': 8364, + '130': 8218, + '131': 402, + '132': 8222, + '133': 8230, + '134': 8224, + '135': 8225, + '136': 710, + '137': 8240, + '138': 352, + '139': 8249, + '140': 338, + '142': 381, + '145': 8216, + '146': 8217, + '147': 8220, + '148': 8221, + '149': 8226, + '150': 8211, + '151': 8212, + '152': 732, + '153': 8482, + '154': 353, + '155': 8250, + '156': 339, + '158': 382, + '159': 376 +}; +function decodeHTMLStrict(text) { + return text.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, (key) => { + if (key.charAt(1) === '#') { + const secondChar = key.charAt(2); + const codePoint = secondChar === 'X' || secondChar === 'x' + ? parseInt(key.slice(3), 16) + : parseInt(key.slice(2), 10); + return decodeCodePoint(codePoint); + } + return entities[key.slice(1, -1)] || key; + }); +} +function decodeCodePoint(codePoint) { + if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { + return '\uFFFD'; + } + if (codePoint in decodeMap) { + codePoint = decodeMap[codePoint]; + } + return String.fromCodePoint(codePoint); +} + +function scanJSXAttributeValue(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + parser.token = + CharTypes[parser.currentChar] & 8192 + ? scanJSXString(parser, context) + : scanSingleToken(parser, context, 0); + return parser.token; +} +function scanJSXString(parser, context) { + const quote = parser.currentChar; + let char = advanceChar(parser); + const start = parser.index; + while (char !== quote) { + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + if (char !== quote) + report(parser, 14); + parser.tokenValue = parser.source.slice(start, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283267; +} +function scanJSXToken(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + if (parser.index >= parser.end) + return (parser.token = 1048576); + const token = TokenLookup[parser.source.charCodeAt(parser.index)]; + switch (token) { + case 8456258: { + advanceChar(parser); + if (parser.currentChar === 47) { + advanceChar(parser); + parser.token = 25; + } + else { + parser.token = 8456258; + } + break; + } + case 2162700: { + advanceChar(parser); + parser.token = 2162700; + break; + } + default: { + let state = 0; + while (parser.index < parser.end) { + const type = CharTypes[parser.source.charCodeAt(parser.index)]; + if (type & 1024) { + state |= 1 | 4; + scanNewLine(parser); + } + else if (type & 2048) { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + else { + advanceChar(parser); + } + if (CharTypes[parser.currentChar] & 16384) + break; + } + const raw = parser.source.slice(parser.tokenPos, parser.index); + if (context & 512) + parser.tokenRaw = raw; + parser.tokenValue = decodeHTMLStrict(raw); + parser.token = 138; + } + } + return parser.token; +} +function scanJSXIdentifier(parser) { + if ((parser.token & 143360) === 143360) { + const { index } = parser; + let char = parser.currentChar; + while (CharTypes[char] & (32768 | 2)) { + char = advanceChar(parser); + } + parser.tokenValue += parser.source.slice(index, parser.index); + } + parser.token = 208897; + return parser.token; +} + +function matchOrInsertSemicolon(parser, context, specDeviation) { + if ((parser.flags & 1) === 0 && + (parser.token & 1048576) !== 1048576 && + !specDeviation) { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + consumeOpt(parser, context, 1074790417); +} +function isValidStrictMode(parser, index, tokenPos, tokenValue) { + if (index - tokenPos < 13 && tokenValue === 'use strict') { + if ((parser.token & 1048576) === 1048576 || parser.flags & 1) { + return 1; + } + } + return 0; +} +function optionalBit(parser, context, t) { + if (parser.token !== t) + return 0; + nextToken(parser, context); + return 1; +} +function consumeOpt(parser, context, t) { + if (parser.token !== t) + return false; + nextToken(parser, context); + return true; +} +function consume(parser, context, t) { + if (parser.token !== t) + report(parser, 23, KeywordDescTable[t & 255]); + nextToken(parser, context); +} +function reinterpretToPattern(state, node) { + switch (node.type) { + case 'ArrayExpression': + node.type = 'ArrayPattern'; + const elements = node.elements; + for (let i = 0, n = elements.length; i < n; ++i) { + const element = elements[i]; + if (element) + reinterpretToPattern(state, element); + } + return; + case 'ObjectExpression': + node.type = 'ObjectPattern'; + const properties = node.properties; + for (let i = 0, n = properties.length; i < n; ++i) { + reinterpretToPattern(state, properties[i]); + } + return; + case 'AssignmentExpression': + node.type = 'AssignmentPattern'; + if (node.operator !== '=') + report(state, 68); + delete node.operator; + reinterpretToPattern(state, node.left); + return; + case 'Property': + reinterpretToPattern(state, node.value); + return; + case 'SpreadElement': + node.type = 'RestElement'; + reinterpretToPattern(state, node.argument); + } +} +function validateBindingIdentifier(parser, context, kind, t, skipEvalArgCheck) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if (!skipEvalArgCheck && (t & 537079808) === 537079808) { + report(parser, 115); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (kind & (8 | 16) && t === 241739) { + report(parser, 97); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } +} +function validateFunctionName(parser, context, t) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if ((t & 537079808) === 537079808) { + report(parser, 115); + } + if (t === 122) { + report(parser, 92); + } + if (t === 121) { + report(parser, 92); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } +} +function isStrictReservedWord(parser, context, t) { + if (t === 209008) { + if (context & (4194304 | 2048)) + report(parser, 95); + parser.destructible |= 128; + } + if (t === 241773 && context & 2097152) + report(parser, 94, 'yield'); + return ((t & 20480) === 20480 || + (t & 36864) === 36864 || + t == 122); +} +function isPropertyWithPrivateFieldKey(expr) { + return !expr.property ? false : expr.property.type === 'PrivateIdentifier'; +} +function isValidLabel(parser, labels, name, isIterationStatement) { + while (labels) { + if (labels['$' + name]) { + if (isIterationStatement) + report(parser, 133); + return 1; + } + if (isIterationStatement && labels.loop) + isIterationStatement = 0; + labels = labels['$']; + } + return 0; +} +function validateAndDeclareLabel(parser, labels, name) { + let set = labels; + while (set) { + if (set['$' + name]) + report(parser, 132, name); + set = set['$']; + } + labels['$' + name] = 1; +} +function finishNode(parser, context, start, line, column, node) { + if (context & 2) { + node.start = start; + node.end = parser.startPos; + node.range = [start, parser.startPos]; + } + if (context & 4) { + node.loc = { + start: { + line, + column + }, + end: { + line: parser.startLine, + column: parser.startColumn + } + }; + if (parser.sourceFile) { + node.loc.source = parser.sourceFile; + } + } + return node; +} +function isEqualTagName(elementName) { + switch (elementName.type) { + case 'JSXIdentifier': + return elementName.name; + case 'JSXNamespacedName': + return elementName.namespace + ':' + elementName.name; + case 'JSXMemberExpression': + return isEqualTagName(elementName.object) + '.' + isEqualTagName(elementName.property); + } +} +function createArrowHeadParsingScope(parser, context, value) { + const scope = addChildScope(createScope(), 1024); + addBlockName(parser, context, scope, value, 1, 0); + return scope; +} +function recordScopeError(parser, type, ...params) { + const { index, line, column } = parser; + return { + type, + params, + index, + line, + column + }; +} +function createScope() { + return { + parent: void 0, + type: 2 + }; +} +function addChildScope(parent, type) { + return { + parent, + type, + scopeError: void 0 + }; +} +function addVarOrBlock(parser, context, scope, name, kind, origin) { + if (kind & 4) { + addVarName(parser, context, scope, name, kind); + } + else { + addBlockName(parser, context, scope, name, kind, origin); + } + if (origin & 64) { + declareUnboundVariable(parser, name); + } +} +function addBlockName(parser, context, scope, name, kind, origin) { + const value = scope['#' + name]; + if (value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + else if (context & 256 && + value & 64 && + origin & 2) ; + else { + report(parser, 140, name); + } + } + if (scope.type & 128 && + (scope.parent['#' + name] && (scope.parent['#' + name] & 2) === 0)) { + report(parser, 140, name); + } + if (scope.type & 1024 && value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + } + if (scope.type & 64) { + if (scope.parent['#' + name] & 768) + report(parser, 153, name); + } + scope['#' + name] = kind; +} +function addVarName(parser, context, scope, name, kind) { + let currentScope = scope; + while (currentScope && (currentScope.type & 256) === 0) { + const value = currentScope['#' + name]; + if (value & 248) { + if (context & 256 && + (context & 1024) === 0 && + ((kind & 128 && value & 68) || + (value & 128 && kind & 68))) ; + else { + report(parser, 140, name); + } + } + if (currentScope === scope) { + if (value & 1 && kind & 1) { + currentScope.scopeError = recordScopeError(parser, 140, name); + } + } + if (value & (512 | 256)) { + if ((value & 512) === 0 || + (context & 256) === 0 || + context & 1024) { + report(parser, 140, name); + } + } + currentScope['#' + name] = kind; + currentScope = currentScope.parent; + } +} +function declareUnboundVariable(parser, name) { + if (parser.exportedNames !== void 0 && name !== '') { + if (parser.exportedNames['#' + name]) { + report(parser, 141, name); + } + parser.exportedNames['#' + name] = 1; + } +} +function addBindingToExports(parser, name) { + if (parser.exportedBindings !== void 0 && name !== '') { + parser.exportedBindings['#' + name] = 1; + } +} +function pushComment(context, array) { + return function (type, value, start, end, loc) { + const comment = { + type, + value + }; + if (context & 2) { + comment.start = start; + comment.end = end; + comment.range = [start, end]; + } + if (context & 4) { + comment.loc = loc; + } + array.push(comment); + }; +} +function pushToken(context, array) { + return function (token, start, end, loc) { + const tokens = { + token + }; + if (context & 2) { + tokens.start = start; + tokens.end = end; + tokens.range = [start, end]; + } + if (context & 4) { + tokens.loc = loc; + } + array.push(tokens); + }; +} +function isValidIdentifier(context, t) { + if (context & (1024 | 2097152)) { + if (context & 2048 && t === 209008) + return false; + if (context & 2097152 && t === 241773) + return false; + return (t & 143360) === 143360 || (t & 12288) === 12288; + } + return ((t & 143360) === 143360 || + (t & 12288) === 12288 || + (t & 36864) === 36864); +} +function classifyIdentifier(parser, context, t, isArrow) { + if ((t & 537079808) === 537079808) { + if (context & 1024) + report(parser, 115); + if (isArrow) + parser.flags |= 512; + } + if (!isValidIdentifier(context, t)) + report(parser, 0); +} + +function create(source, sourceFile, onComment, onToken) { + return { + source, + flags: 0, + index: 0, + line: 1, + column: 0, + startPos: 0, + end: source.length, + tokenPos: 0, + startColumn: 0, + colPos: 0, + linePos: 1, + startLine: 1, + sourceFile, + tokenValue: '', + token: 1048576, + tokenRaw: '', + tokenRegExp: void 0, + currentChar: source.charCodeAt(0), + exportedNames: [], + exportedBindings: [], + assignable: 1, + destructible: 0, + onComment, + onToken, + leadingDecorators: [] + }; +} +function parseSource(source, options, context) { + let sourceFile = ''; + let onComment; + let onToken; + if (options != null) { + if (options.module) + context |= 2048 | 1024; + if (options.next) + context |= 1; + if (options.loc) + context |= 4; + if (options.ranges) + context |= 2; + if (options.uniqueKeyInPattern) + context |= -2147483648; + if (options.lexical) + context |= 64; + if (options.webcompat) + context |= 256; + if (options.directives) + context |= 8 | 512; + if (options.globalReturn) + context |= 32; + if (options.raw) + context |= 512; + if (options.preserveParens) + context |= 128; + if (options.impliedStrict) + context |= 1024; + if (options.jsx) + context |= 16; + if (options.identifierPattern) + context |= 268435456; + if (options.specDeviation) + context |= 536870912; + if (options.source) + sourceFile = options.source; + if (options.onComment != null) { + onComment = Array.isArray(options.onComment) ? pushComment(context, options.onComment) : options.onComment; + } + if (options.onToken != null) { + onToken = Array.isArray(options.onToken) ? pushToken(context, options.onToken) : options.onToken; + } + } + const parser = create(source, sourceFile, onComment, onToken); + if (context & 1) + skipHashBang(parser); + const scope = context & 64 ? createScope() : void 0; + let body = []; + let sourceType = 'script'; + if (context & 2048) { + sourceType = 'module'; + body = parseModuleItemList(parser, context | 8192, scope); + if (scope) { + for (const key in parser.exportedBindings) { + if (key[0] === '#' && !scope[key]) + report(parser, 142, key.slice(1)); + } + } + } + else { + body = parseStatementList(parser, context | 8192, scope); + } + const node = { + type: 'Program', + sourceType, + body + }; + if (context & 2) { + node.start = 0; + node.end = source.length; + node.range = [0, source.length]; + } + if (context & 4) { + node.loc = { + start: { line: 1, column: 0 }, + end: { line: parser.line, column: parser.column } + }; + if (parser.sourceFile) + node.loc.source = sourceFile; + } + return node; +} +function parseStatementList(parser, context, scope) { + nextToken(parser, context | 32768 | 1073741824); + const statements = []; + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, linePos, colPos, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) + context |= 1024; + statements.push(parseDirective(parser, context, expr, token, tokenPos, linePos, colPos)); + } + while (parser.token !== 1048576) { + statements.push(parseStatementListItem(parser, context, scope, 4, {})); + } + return statements; +} +function parseModuleItemList(parser, context, scope) { + nextToken(parser, context | 32768); + const statements = []; + if (context & 8) { + while (parser.token === 134283267) { + const { tokenPos, linePos, colPos, token } = parser; + statements.push(parseDirective(parser, context, parseLiteral(parser, context), token, tokenPos, linePos, colPos)); + } + } + while (parser.token !== 1048576) { + statements.push(parseModuleItem(parser, context, scope)); + } + return statements; +} +function parseModuleItem(parser, context, scope) { + parser.leadingDecorators = parseDecorators(parser, context); + let moduleItem; + switch (parser.token) { + case 20566: + moduleItem = parseExportDeclaration(parser, context, scope); + break; + case 86108: + moduleItem = parseImportDeclaration(parser, context, scope); + break; + default: + moduleItem = parseStatementListItem(parser, context, scope, 4, {}); + } + if (parser.leadingDecorators.length) { + report(parser, 164); + } + return moduleItem; +} +function parseStatementListItem(parser, context, scope, origin, labels) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + switch (parser.token) { + case 86106: + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 0, start, line, column); + case 133: + case 86096: + return parseClassDeclaration(parser, context, scope, 0, start, line, column); + case 86092: + return parseLexicalDeclaration(parser, context, scope, 16, 0, start, line, column); + case 241739: + return parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column); + case 20566: + report(parser, 100, 'export'); + case 86108: + nextToken(parser, context); + switch (parser.token) { + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 100, 'import'); + } + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 1, start, line, column); + default: + return parseStatement(parser, context, scope, origin, labels, 1, start, line, column); + } +} +function parseStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + switch (parser.token) { + case 86090: + return parseVariableStatement(parser, context, scope, 0, start, line, column); + case 20574: + return parseReturnStatement(parser, context, start, line, column); + case 20571: + return parseIfStatement(parser, context, scope, labels, start, line, column); + case 20569: + return parseForStatement(parser, context, scope, labels, start, line, column); + case 20564: + return parseDoWhileStatement(parser, context, scope, labels, start, line, column); + case 20580: + return parseWhileStatement(parser, context, scope, labels, start, line, column); + case 86112: + return parseSwitchStatement(parser, context, scope, labels, start, line, column); + case 1074790417: + return parseEmptyStatement(parser, context, start, line, column); + case 2162700: + return parseBlock(parser, context, scope ? addChildScope(scope, 2) : scope, labels, start, line, column); + case 86114: + return parseThrowStatement(parser, context, start, line, column); + case 20557: + return parseBreakStatement(parser, context, labels, start, line, column); + case 20561: + return parseContinueStatement(parser, context, labels, start, line, column); + case 20579: + return parseTryStatement(parser, context, scope, labels, start, line, column); + case 20581: + return parseWithStatement(parser, context, scope, labels, start, line, column); + case 20562: + return parseDebuggerStatement(parser, context, start, line, column); + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 0, start, line, column); + case 20559: + report(parser, 156); + case 20568: + report(parser, 157); + case 86106: + report(parser, context & 1024 + ? 73 + : (context & 256) < 1 + ? 75 + : 74); + case 86096: + report(parser, 76); + default: + return parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column); + } +} +function parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { tokenValue, token } = parser; + let expr; + switch (token) { + case 241739: + expr = parseIdentifier(parser, context, 0); + if (context & 1024) + report(parser, 82); + if (parser.token === 69271571) + report(parser, 81); + break; + default: + expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + if (token & 143360 && parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, allowFuncDecl, start, line, column); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseBlock(parser, context, scope, labels, start, line, column) { + const body = []; + consume(parser, context | 32768, 2162700); + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 2, { $: labels })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'BlockStatement', + body + }); +} +function parseReturnStatement(parser, context, start, line, column) { + if ((context & 32) < 1 && context & 8192) + report(parser, 89); + nextToken(parser, context | 32768); + const argument = parser.flags & 1 || parser.token & 1048576 + ? null + : parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.column); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ReturnStatement', + argument + }); +} +function parseExpressionStatement(parser, context, expression, start, line, column) { + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); +} +function parseLabelledStatement(parser, context, scope, origin, labels, value, expr, token, allowFuncDecl, start, line, column) { + validateBindingIdentifier(parser, context, 0, token, 1); + validateAndDeclareLabel(parser, labels, value); + nextToken(parser, context | 32768); + const body = allowFuncDecl && + (context & 1024) < 1 && + context & 256 && + parser.token === 86106 + ? parseFunctionDeclaration(parser, context, addChildScope(scope, 2), origin, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseStatement(parser, context, scope, origin, labels, allowFuncDecl, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'LabeledStatement', + label: expr, + body + }); +} +function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, 1, start, line, column); + } + const asyncNewLine = parser.flags & 1; + if (!asyncNewLine) { + if (parser.token === 86106) { + if (!allowFuncDecl) + report(parser, 119); + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 1, start, line, column); + } + if ((parser.token & 143360) === 143360) { + expr = parseAsyncArrowAfterIdent(parser, context, 1, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + } + if (parser.token === 67174411) { + expr = parseAsyncArrowOrCallExpression(parser, context, expr, 1, 1, 0, asyncNewLine, start, line, column); + } + else { + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + expr = parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, 0, 1, 0, start, line, column); + } + parser.assignable = 1; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + parser.assignable = 1; + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseDirective(parser, context, expression, token, start, line, column) { + if (token !== 1074790417) { + parser.assignable = 2; + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + if (parser.token !== 1074790417) { + expression = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expression); + if (parser.token === 18) { + expression = parseSequenceExpression(parser, context, 0, start, line, column, expression); + } + } + matchOrInsertSemicolon(parser, context | 32768); + } + return context & 8 && expression.type === 'Literal' && typeof expression.value === 'string' + ? finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression, + directive: expression.raw.slice(1, -1) + }) + : finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); +} +function parseEmptyStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'EmptyStatement' + }); +} +function parseThrowStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + if (parser.flags & 1) + report(parser, 87); + const argument = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ThrowStatement', + argument + }); +} +function parseIfStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + parser.assignable = 1; + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.colPos); + consume(parser, context | 32768, 16); + const consequent = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + let alternate = null; + if (parser.token === 20565) { + nextToken(parser, context | 32768); + alternate = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + } + return finishNode(parser, context, start, line, column, { + type: 'IfStatement', + test, + consequent, + alternate + }); +} +function parseConsequentOrAlternative(parser, context, scope, labels, start, line, column) { + return context & 1024 || + (context & 256) < 1 || + parser.token !== 86106 + ? parseStatement(parser, context, scope, 0, { $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseFunctionDeclaration(parser, context, addChildScope(scope, 2), 0, 0, 0, 0, start, line, column); +} +function parseSwitchStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const discriminant = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + consume(parser, context, 2162700); + const cases = []; + let seenDefault = 0; + if (scope) + scope = addChildScope(scope, 8); + while (parser.token !== 1074790415) { + const { tokenPos, linePos, colPos } = parser; + let test = null; + const consequent = []; + if (consumeOpt(parser, context | 32768, 20558)) { + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + consume(parser, context | 32768, 20563); + if (seenDefault) + report(parser, 86); + seenDefault = 1; + } + consume(parser, context | 32768, 21); + while (parser.token !== 20558 && + parser.token !== 1074790415 && + parser.token !== 20563) { + consequent.push(parseStatementListItem(parser, context | 4096, scope, 2, { + $: labels + })); + } + cases.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'SwitchCase', + test, + consequent + })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'SwitchStatement', + discriminant, + cases + }); +} +function parseWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'WhileStatement', + test, + body + }); +} +function parseIterationStatementBody(parser, context, scope, labels) { + return parseStatement(parser, ((context | 134217728) ^ 134217728) | 131072, scope, 0, { loop: 1, $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos); +} +function parseContinueStatement(parser, context, labels, start, line, column) { + if ((context & 131072) < 1) + report(parser, 65); + nextToken(parser, context); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 1)) + report(parser, 134, tokenValue); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ContinueStatement', + label + }); +} +function parseBreakStatement(parser, context, labels, start, line, column) { + nextToken(parser, context | 32768); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 0)) + report(parser, 134, tokenValue); + } + else if ((context & (4096 | 131072)) < 1) { + report(parser, 66); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'BreakStatement', + label + }); +} +function parseWithStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + if (context & 1024) + report(parser, 88); + consume(parser, context | 32768, 67174411); + const object = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseStatement(parser, context, scope, 2, labels, 0, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'WithStatement', + object, + body + }); +} +function parseDebuggerStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'DebuggerStatement' + }); +} +function parseTryStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const firstScope = scope ? addChildScope(scope, 32) : void 0; + const block = parseBlock(parser, context, firstScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + const { tokenPos, linePos, colPos } = parser; + const handler = consumeOpt(parser, context | 32768, 20559) + ? parseCatchBlock(parser, context, scope, labels, tokenPos, linePos, colPos) + : null; + let finalizer = null; + if (parser.token === 20568) { + nextToken(parser, context | 32768); + const finalizerScope = firstScope ? addChildScope(scope, 4) : void 0; + finalizer = parseBlock(parser, context, finalizerScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + } + if (!handler && !finalizer) { + report(parser, 85); + } + return finishNode(parser, context, start, line, column, { + type: 'TryStatement', + block, + handler, + finalizer + }); +} +function parseCatchBlock(parser, context, scope, labels, start, line, column) { + let param = null; + let additionalScope = scope; + if (consumeOpt(parser, context, 67174411)) { + if (scope) + scope = addChildScope(scope, 4); + param = parseBindingPattern(parser, context, scope, (parser.token & 2097152) === 2097152 + ? 256 + : 512, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 18) { + report(parser, 83); + } + else if (parser.token === 1077936157) { + report(parser, 84); + } + consume(parser, context | 32768, 16); + if (scope) + additionalScope = addChildScope(scope, 64); + } + const body = parseBlock(parser, context, additionalScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'CatchClause', + param, + body + }); +} +function parseDoWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const body = parseIterationStatementBody(parser, context, scope, labels); + consume(parser, context, 20580); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + consumeOpt(parser, context, 1074790417); + return finishNode(parser, context, start, line, column, { + type: 'DoWhileStatement', + body, + test + }); +} +function parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + const declarations = parseVariableDeclarationList(parser, context, scope, 8, 0); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'let', + declarations + }); + } + parser.assignable = 1; + if (context & 1024) + report(parser, 82); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, {}, tokenValue, expr, token, 0, start, line, column); + } + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + expr = parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + else { + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + } + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseLexicalDeclaration(parser, context, scope, kind, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, kind, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: kind & 8 ? 'let' : 'const', + declarations + }); +} +function parseVariableStatement(parser, context, scope, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, 4, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'var', + declarations + }); +} +function parseVariableDeclarationList(parser, context, scope, kind, origin) { + let bindingCount = 1; + const list = [parseVariableDeclaration(parser, context, scope, kind, origin)]; + while (consumeOpt(parser, context, 18)) { + bindingCount++; + list.push(parseVariableDeclaration(parser, context, scope, kind, origin)); + } + if (bindingCount > 1 && origin & 32 && parser.token & 262144) { + report(parser, 58, KeywordDescTable[parser.token & 255]); + } + return list; +} +function parseVariableDeclaration(parser, context, scope, kind, origin) { + const { token, tokenPos, linePos, colPos } = parser; + let init = null; + const id = parseBindingPattern(parser, context, scope, kind, origin, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + init = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (origin & 32 || (token & 2097152) < 1) { + if (parser.token === 274549 || + (parser.token === 8738868 && + (token & 2097152 || (kind & 4) < 1 || context & 1024))) { + reportMessageAt(tokenPos, parser.line, parser.index - 3, 57, parser.token === 274549 ? 'of' : 'in'); + } + } + } + else if ((kind & 16 || (token & 2097152) > 0) && + (parser.token & 262144) !== 262144) { + report(parser, 56, kind & 16 ? 'const' : 'destructuring'); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclarator', + id, + init + }); +} +function parseForStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + const forAwait = (context & 4194304) > 0 && consumeOpt(parser, context, 209008); + consume(parser, context | 32768, 67174411); + if (scope) + scope = addChildScope(scope, 1); + let test = null; + let update = null; + let destructible = 0; + let init = null; + let isVarDecl = parser.token === 86090 || parser.token === 241739 || parser.token === 86092; + let right; + const { token, tokenPos, linePos, colPos } = parser; + if (isVarDecl) { + if (token === 241739) { + init = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + if (parser.token === 8738868) { + if (context & 1024) + report(parser, 64); + } + else { + init = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclaration', + kind: 'let', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 8, 32) + }); + } + parser.assignable = 1; + } + else if (context & 1024) { + report(parser, 64); + } + else { + isVarDecl = false; + parser.assignable = 1; + init = parseMemberOrUpdateExpression(parser, context, init, 0, 0, tokenPos, linePos, colPos); + if (parser.token === 274549) + report(parser, 111); + } + } + else { + nextToken(parser, context); + init = finishNode(parser, context, tokenPos, linePos, colPos, token === 86090 + ? { + type: 'VariableDeclaration', + kind: 'var', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 4, 32) + } + : { + type: 'VariableDeclaration', + kind: 'const', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 16, 32) + }); + parser.assignable = 1; + } + } + else if (token === 1074790417) { + if (forAwait) + report(parser, 79); + } + else if ((token & 2097152) === 2097152) { + init = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos); + destructible = parser.destructible; + if (context & 256 && destructible & 64) { + report(parser, 60); + } + parser.assignable = + destructible & 16 ? 2 : 1; + init = parseMemberOrUpdateExpression(parser, context | 134217728, init, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + init = parseLeftHandSideExpression(parser, context | 134217728, 1, 0, 1, tokenPos, linePos, colPos); + } + if ((parser.token & 262144) === 262144) { + if (parser.token === 274549) { + if (parser.assignable & 2) + report(parser, 77, forAwait ? 'await' : 'of'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + right = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForOfStatement', + left: init, + right, + body, + await: forAwait + }); + } + if (parser.assignable & 2) + report(parser, 77, 'in'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + if (forAwait) + report(parser, 79); + right = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForInStatement', + body, + left: init, + right + }); + } + if (forAwait) + report(parser, 79); + if (!isVarDecl) { + if (destructible & 8 && parser.token !== 1077936157) { + report(parser, 77, 'loop'); + } + init = parseAssignmentExpression(parser, context | 134217728, 0, 0, tokenPos, linePos, colPos, init); + } + if (parser.token === 18) + init = parseSequenceExpression(parser, context, 0, parser.tokenPos, parser.linePos, parser.colPos, init); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 1074790417) + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 16) + update = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForStatement', + init, + test, + update, + body + }); +} +function parseRestrictedIdentifier(parser, context, scope) { + if (!isValidIdentifier(context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) + report(parser, 115); + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 8, 0); + return parseIdentifier(parser, context, 0); +} +function parseImportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context); + let source = null; + const { tokenPos, linePos, colPos } = parser; + let specifiers = []; + if (parser.token === 134283267) { + source = parseLiteral(parser, context); + } + else { + if (parser.token & 143360) { + const local = parseRestrictedIdentifier(parser, context, scope); + specifiers = [ + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportDefaultSpecifier', + local + }) + ]; + if (consumeOpt(parser, context, 18)) { + switch (parser.token) { + case 8457014: + specifiers.push(parseImportNamespaceSpecifier(parser, context, scope)); + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + default: + report(parser, 104); + } + } + } + else { + switch (parser.token) { + case 8457014: + specifiers = [parseImportNamespaceSpecifier(parser, context, scope)]; + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + source = parseModuleSpecifier(parser, context); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ImportDeclaration', + specifiers, + source + }); +} +function parseImportNamespaceSpecifier(parser, context, scope) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + consume(parser, context, 77934); + if ((parser.token & 134217728) === 134217728) { + reportMessageAt(tokenPos, parser.line, parser.index, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportNamespaceSpecifier', + local: parseRestrictedIdentifier(parser, context, scope) + }); +} +function parseModuleSpecifier(parser, context) { + consumeOpt(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Import'); + return parseLiteral(parser, context); +} +function parseImportSpecifierOrNamedImports(parser, context, scope, specifiers) { + nextToken(parser, context); + while (parser.token & 143360) { + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + const imported = parseIdentifier(parser, context, 0); + let local; + if (consumeOpt(parser, context, 77934)) { + if ((parser.token & 134217728) === 134217728 || parser.token === 18) { + report(parser, 103); + } + else { + validateBindingIdentifier(parser, context, 16, parser.token, 0); + } + tokenValue = parser.tokenValue; + local = parseIdentifier(parser, context, 0); + } + else { + validateBindingIdentifier(parser, context, 16, token, 0); + local = imported; + } + if (scope) + addBlockName(parser, context, scope, tokenValue, 8, 0); + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportSpecifier', + local, + imported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + return specifiers; +} +function parseImportMetaDeclaration(parser, context, start, line, column) { + let expr = parseImportMetaExpression(parser, context, finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: 'import' + }), start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseImportCallDeclaration(parser, context, start, line, column) { + let expr = parseImportExpression(parser, context, 0, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + return parseExpressionStatement(parser, context, expr, start, line, column); +} +function parseExportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context | 32768); + const specifiers = []; + let declaration = null; + let source = null; + let key; + if (consumeOpt(parser, context | 32768, 20563)) { + switch (parser.token) { + case 86106: { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + } + case 133: + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 1, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + declaration = parseIdentifier(parser, context, 0); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 1, tokenPos, linePos, colPos); + } + else { + if (parser.token === 67174411) { + declaration = parseAsyncArrowOrCallExpression(parser, context, declaration, 1, 1, 0, flags, tokenPos, linePos, colPos); + declaration = parseMemberOrUpdateExpression(parser, context, declaration, 0, 0, tokenPos, linePos, colPos); + declaration = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, declaration); + } + else if (parser.token & 143360) { + if (scope) + scope = createArrowHeadParsingScope(parser, context, parser.tokenValue); + declaration = parseIdentifier(parser, context, 0); + declaration = parseArrowFunctionExpression(parser, context, scope, [declaration], 1, tokenPos, linePos, colPos); + } + } + } + break; + default: + declaration = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + } + if (scope) + declareUnboundVariable(parser, 'default'); + return finishNode(parser, context, start, line, column, { + type: 'ExportDefaultDeclaration', + declaration + }); + } + switch (parser.token) { + case 8457014: { + nextToken(parser, context); + let exported = null; + const isNamedDeclaration = consumeOpt(parser, context, 77934); + if (isNamedDeclaration) { + if (scope) + declareUnboundVariable(parser, parser.tokenValue); + exported = parseIdentifier(parser, context, 0); + } + consume(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExportAllDeclaration', + source, + exported + }); + } + case 2162700: { + nextToken(parser, context); + const tmpExportedNames = []; + const tmpExportedBindings = []; + while (parser.token & 143360) { + const { tokenPos, tokenValue, linePos, colPos } = parser; + const local = parseIdentifier(parser, context, 0); + let exported; + if (parser.token === 77934) { + nextToken(parser, context); + if ((parser.token & 134217728) === 134217728) { + report(parser, 103); + } + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(tokenValue); + } + exported = parseIdentifier(parser, context, 0); + } + else { + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(parser.tokenValue); + } + exported = local; + } + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ExportSpecifier', + local, + exported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + if (consumeOpt(parser, context, 12404)) { + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + } + else if (scope) { + let i = 0; + let iMax = tmpExportedNames.length; + for (; i < iMax; i++) { + declareUnboundVariable(parser, tmpExportedNames[i]); + } + i = 0; + iMax = tmpExportedBindings.length; + for (; i < iMax; i++) { + addBindingToExports(parser, tmpExportedBindings[i]); + } + } + matchOrInsertSemicolon(parser, context | 32768); + break; + } + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 2, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86106: + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 241739: + declaration = parseLexicalDeclaration(parser, context, scope, 8, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86092: + declaration = parseLexicalDeclaration(parser, context, scope, 16, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86090: + declaration = parseVariableStatement(parser, context, scope, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + if ((parser.flags & 1) < 1 && parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 1, tokenPos, linePos, colPos); + if (scope) { + key = declaration.id ? declaration.id.name : ''; + declareUnboundVariable(parser, key); + } + break; + } + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, start, line, column, { + type: 'ExportNamedDeclaration', + declaration, + specifiers, + source + }); +} +function parseExpression(parser, context, canAssign, isPattern, inGroup, start, line, column) { + let expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, isPattern, inGroup, 1, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + return parseAssignmentExpression(parser, context, inGroup, 0, start, line, column, expr); +} +function parseSequenceExpression(parser, context, inGroup, start, line, column, expr) { + const expressions = [expr]; + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + return finishNode(parser, context, start, line, column, { + type: 'SequenceExpression', + expressions + }); +} +function parseExpressions(parser, context, inGroup, canAssign, start, line, column) { + const expr = parseExpression(parser, context, canAssign, 0, inGroup, start, line, column); + return parser.token === 18 + ? parseSequenceExpression(parser, context, inGroup, start, line, column, expr) + : expr; +} +function parseAssignmentExpression(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + if ((token & 4194304) === 4194304) { + if (parser.assignable & 2) + report(parser, 24); + if ((!isPattern && token === 1077936157 && left.type === 'ArrayExpression') || + left.type === 'ObjectExpression') { + reinterpretToPattern(parser, left); + } + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + } + if ((token & 8454144) === 8454144) { + left = parseBinaryExpression(parser, context, inGroup, start, line, column, 4, token, left); + } + if (consumeOpt(parser, context | 32768, 22)) { + left = parseConditionalExpression(parser, context, left, start, line, column); + } + return left; +} +function parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + parser.assignable = 2; + return left; +} +function parseConditionalExpression(parser, context, test, start, line, column) { + const consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 21); + parser.assignable = 1; + const alternate = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ConditionalExpression', + test, + consequent, + alternate + }); +} +function parseBinaryExpression(parser, context, inGroup, start, line, column, minPrec, operator, left) { + const bit = -((context & 134217728) > 0) & 8738868; + let t; + let prec; + parser.assignable = 2; + while (parser.token & 8454144) { + t = parser.token; + prec = t & 3840; + if ((t & 524288 && operator & 268435456) || (operator & 524288 && t & 268435456)) { + report(parser, 159); + } + if (prec + ((t === 8457273) << 8) - ((bit === t) << 12) <= minPrec) + break; + nextToken(parser, context | 32768); + left = finishNode(parser, context, start, line, column, { + type: t & 524288 || t & 268435456 ? 'LogicalExpression' : 'BinaryExpression', + left, + right: parseBinaryExpression(parser, context, inGroup, parser.tokenPos, parser.linePos, parser.colPos, prec, t, parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos)), + operator: KeywordDescTable[t & 255] + }); + } + if (parser.token === 1077936157) + report(parser, 24); + return left; +} +function parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup) { + if (!isLHS) + report(parser, 0); + const unaryOperator = parser.token; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + if (context & 1024 && unaryOperator === 16863278) { + if (arg.type === 'Identifier') { + report(parser, 117); + } + else if (isPropertyWithPrivateFieldKey(arg)) { + report(parser, 123); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UnaryExpression', + operator: KeywordDescTable[unaryOperator & 255], + argument: arg, + prefix: true + }); +} +function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column) { + const { token } = parser; + const expr = parseIdentifier(parser, context, isPattern); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + return parseFunctionExpression(parser, context, 1, inGroup, start, line, column); + } + if ((parser.token & 143360) === 143360) { + if (!isLHS) + report(parser, 0); + return parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column); + } + } + if (!inNew && parser.token === 67174411) { + return parseAsyncArrowOrCallExpression(parser, context, expr, canAssign, 1, 0, flags, start, line, column); + } + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + if (inNew) + report(parser, 48); + return parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + return expr; +} +function parseYieldExpression(parser, context, inGroup, canAssign, start, line, column) { + if (inGroup) + parser.destructible |= 256; + if (context & 2097152) { + nextToken(parser, context | 32768); + if (context & 8388608) + report(parser, 30); + if (!canAssign) + report(parser, 24); + if (parser.token === 22) + report(parser, 120); + let argument = null; + let delegate = false; + if ((parser.flags & 1) < 1) { + delegate = consumeOpt(parser, context | 32768, 8457014); + if (parser.token & (12288 | 65536) || delegate) { + argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'YieldExpression', + argument, + delegate + }); + } + if (context & 1024) + report(parser, 94, 'yield'); + return parseIdentifierOrArrow(parser, context, start, line, column); +} +function parseAwaitExpression(parser, context, inNew, inGroup, start, line, column) { + if (inGroup) + parser.destructible |= 128; + if (context & 4194304 || (context & 2048 && context & 8192)) { + if (inNew) + report(parser, 0); + if (context & 8388608) { + reportMessageAt(parser.index, parser.line, parser.index, 29); + } + nextToken(parser, context | 32768); + const argument = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'AwaitExpression', + argument + }); + } + if (context & 2048) + report(parser, 95); + return parseIdentifierOrArrow(parser, context, start, line, column); +} +function parseFunctionBody(parser, context, scope, origin, firstRestricted, scopeError) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + const body = []; + const prevContext = context; + if (parser.token !== 1074790415) { + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) { + context |= 1024; + if (parser.flags & 128) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 63); + } + if (parser.flags & 64) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 8); + } + } + body.push(parseDirective(parser, context, expr, token, tokenPos, parser.linePos, parser.colPos)); + } + if (context & 1024) { + if (firstRestricted) { + if ((firstRestricted & 537079808) === 537079808) { + report(parser, 115); + } + if ((firstRestricted & 36864) === 36864) { + report(parser, 38); + } + } + if (parser.flags & 512) + report(parser, 115); + if (parser.flags & 256) + report(parser, 114); + } + if (context & 64 && + scope && + scopeError !== void 0 && + (prevContext & 1024) < 1 && + (context & 8192) < 1) { + reportScopeError(scopeError); + } + } + parser.flags = + (parser.flags | 512 | 256 | 64) ^ + (512 | 256 | 64); + parser.destructible = (parser.destructible | 256) ^ 256; + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 4, {})); + } + consume(parser, origin & (16 | 8) ? context | 32768 : context, 1074790415); + parser.flags &= ~(128 | 64); + if (parser.token === 1077936157) + report(parser, 24); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'BlockStatement', + body + }); +} +function parseSuperExpression(parser, context, start, line, column) { + nextToken(parser, context); + switch (parser.token) { + case 67108991: + report(parser, 161); + case 67174411: { + if ((context & 524288) < 1) + report(parser, 26); + if (context & 16384) + report(parser, 143); + parser.assignable = 2; + break; + } + case 69271571: + case 67108877: { + if ((context & 262144) < 1) + report(parser, 27); + if (context & 16384) + report(parser, 143); + parser.assignable = 1; + break; + } + default: + report(parser, 28, 'super'); + } + return finishNode(parser, context, start, line, column, { type: 'Super' }); +} +function parseLeftHandSideExpression(parser, context, canAssign, inGroup, isLHS, start, line, column) { + const expression = parsePrimaryExpression(parser, context, 2, 0, canAssign, 0, inGroup, isLHS, start, line, column); + return parseMemberOrUpdateExpression(parser, context, expression, inGroup, 0, start, line, column); +} +function parseUpdateExpression(parser, context, expr, start, line, column) { + if (parser.assignable & 2) + report(parser, 52); + const { token } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: expr, + operator: KeywordDescTable[token & 255], + prefix: false + }); +} +function parseMemberOrUpdateExpression(parser, context, expr, inGroup, inChain, start, line, column) { + if ((parser.token & 33619968) === 33619968 && (parser.flags & 1) < 1) { + expr = parseUpdateExpression(parser, context, expr, start, line, column); + } + else if ((parser.token & 67108864) === 67108864) { + context = (context | 134217728 | 8192) ^ (134217728 | 8192); + switch (parser.token) { + case 67108877: { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }); + break; + } + case 69271571: { + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67174411: { + if ((parser.flags & 1024) === 1024) { + parser.flags = (parser.flags | 1024) ^ 1024; + return expr; + } + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + const args = parseArguments(parser, context, inGroup); + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67108991: { + nextToken(parser, context); + parser.flags |= 2048; + parser.assignable = 2; + expr = parseOptionalChain(parser, context, expr, start, line, column); + break; + } + default: + if ((parser.flags & 2048) === 2048) { + report(parser, 160); + } + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 1, start, line, column); + } + if (inChain === 0 && (parser.flags & 2048) === 2048) { + parser.flags = (parser.flags | 2048) ^ 2048; + expr = finishNode(parser, context, start, line, column, { + type: 'ChainExpression', + expression: expr + }); + } + return expr; +} +function parseOptionalChain(parser, context, expr, start, line, column) { + let restoreHasOptionalChaining = false; + let node; + if (parser.token === 69271571 || parser.token === 67174411) { + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + } + if (parser.token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, 0, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + optional: true, + property + }); + } + else if (parser.token === 67174411) { + const args = parseArguments(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args, + optional: true + }); + } + else { + if ((parser.token & (143360 | 4096)) < 1) + report(parser, 154); + const property = parseIdentifier(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + optional: true, + property + }); + } + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + return node; +} +function parsePropertyOrPrivatePropertyName(parser, context) { + if ((parser.token & (143360 | 4096)) < 1 && parser.token !== 131) { + report(parser, 154); + } + return context & 1 && parser.token === 131 + ? parsePrivateIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + : parseIdentifier(parser, context, 0); +} +function parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column) { + if (inNew) + report(parser, 53); + if (!isLHS) + report(parser, 0); + const { token } = parser; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.assignable & 2) { + report(parser, 52); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: arg, + operator: KeywordDescTable[token & 255], + prefix: true + }); +} +function parsePrimaryExpression(parser, context, kind, inNew, canAssign, isPattern, inGroup, isLHS, start, line, column) { + if ((parser.token & 143360) === 143360) { + switch (parser.token) { + case 209008: + return parseAwaitExpression(parser, context, inNew, inGroup, start, line, column); + case 241773: + return parseYieldExpression(parser, context, inGroup, canAssign, start, line, column); + case 209007: + return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column); + } + const { token, tokenValue } = parser; + const expr = parseIdentifier(parser, context | 65536, isPattern); + if (parser.token === 10) { + if (!isLHS) + report(parser, 0); + classifyIdentifier(parser, context, token, 1); + return parseArrowFromIdentifier(parser, context, tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + if (context & 16384 && token === 537079928) + report(parser, 126); + if (token === 241739) { + if (context & 1024) + report(parser, 109); + if (kind & (8 | 16)) + report(parser, 97); + } + parser.assignable = + context & 1024 && (token & 537079808) === 537079808 + ? 2 + : 1; + return expr; + } + if ((parser.token & 134217728) === 134217728) { + return parseLiteral(parser, context); + } + switch (parser.token) { + case 33619995: + case 33619996: + return parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column); + case 16863278: + case 16842800: + case 16842801: + case 25233970: + case 25233971: + case 16863277: + case 16863279: + return parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup); + case 86106: + return parseFunctionExpression(parser, context, 0, inGroup, start, line, column); + case 2162700: + return parseObjectLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 69271571: + return parseArrayLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 67174411: + return parseParenthesizedExpression(parser, context, canAssign, 1, 0, start, line, column); + case 86021: + case 86022: + case 86023: + return parseNullOrTrueOrFalseLiteral(parser, context, start, line, column); + case 86113: + return parseThisExpression(parser, context); + case 65540: + return parseRegExpLiteral(parser, context, start, line, column); + case 133: + case 86096: + return parseClassExpression(parser, context, inGroup, start, line, column); + case 86111: + return parseSuperExpression(parser, context, start, line, column); + case 67174409: + return parseTemplateLiteral(parser, context, start, line, column); + case 67174408: + return parseTemplate(parser, context); + case 86109: + return parseNewExpression(parser, context, inGroup, start, line, column); + case 134283389: + return parseBigIntLiteral(parser, context, start, line, column); + case 131: + return parsePrivateIdentifier(parser, context, start, line, column); + case 86108: + return parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column); + case 8456258: + if (context & 16) + return parseJSXRootElementOrFragment(parser, context, 1, start, line, column); + default: + if (isValidIdentifier(context, parser.token)) + return parseIdentifierOrArrow(parser, context, start, line, column); + report(parser, 28, KeywordDescTable[parser.token & 255]); + } +} +function parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column) { + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 67108877) { + return parseImportMetaExpression(parser, context, expr, start, line, column); + } + if (inNew) + report(parser, 137); + expr = parseImportExpression(parser, context, inGroup, start, line, column); + parser.assignable = 2; + return parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); +} +function parseImportMetaExpression(parser, context, meta, start, line, column) { + if ((context & 2048) === 0) + report(parser, 163); + nextToken(parser, context); + if (parser.token !== 143495 && parser.tokenValue !== 'meta') + report(parser, 28, KeywordDescTable[parser.token & 255]); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property: parseIdentifier(parser, context, 0) + }); +} +function parseImportExpression(parser, context, inGroup, start, line, column) { + consume(parser, context | 32768, 67174411); + if (parser.token === 14) + report(parser, 138); + const source = parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + return finishNode(parser, context, start, line, column, { + type: 'ImportExpression', + source + }); +} +function parseBigIntLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1), + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1) + }); +} +function parseTemplateLiteral(parser, context, start, line, column) { + parser.assignable = 2; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + const quasis = [parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)]; + return finishNode(parser, context, start, line, column, { + type: 'TemplateLiteral', + expressions: [], + quasis + }); +} +function parseTemplate(parser, context) { + context = (context | 134217728) ^ 134217728; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + const quasis = [ + parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false) + ]; + const expressions = [parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)]; + if (parser.token !== 1074790415) + report(parser, 80); + while ((parser.token = scanTemplateTail(parser, context)) !== 67174409) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false)); + expressions.push(parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + if (parser.token !== 1074790415) + report(parser, 80); + } + { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'TemplateLiteral', + expressions, + quasis + }); +} +function parseTemplateElement(parser, context, cooked, raw, start, line, col, tail) { + const node = finishNode(parser, context, start, line, col, { + type: 'TemplateElement', + value: { + cooked, + raw + }, + tail + }); + const tailSize = tail ? 1 : 2; + if (context & 2) { + node.start += 1; + node.range[0] += 1; + node.end -= tailSize; + node.range[1] -= tailSize; + } + if (context & 4) { + node.loc.start.column += 1; + node.loc.end.column -= tailSize; + } + return node; +} +function parseSpreadElement(parser, context, start, line, column) { + context = (context | 134217728) ^ 134217728; + consume(parser, context | 32768, 14); + const argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 1; + return finishNode(parser, context, start, line, column, { + type: 'SpreadElement', + argument + }); +} +function parseArguments(parser, context, inGroup) { + nextToken(parser, context | 32768); + const args = []; + if (parser.token === 16) { + nextToken(parser, context); + return args; + } + while (parser.token !== 16) { + if (parser.token === 14) { + args.push(parseSpreadElement(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + else { + args.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + if (parser.token !== 18) + break; + nextToken(parser, context | 32768); + if (parser.token === 16) + break; + } + consume(parser, context, 16); + return args; +} +function parseIdentifier(parser, context, isPattern) { + const { tokenValue, tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + return finishNode(parser, context, tokenPos, linePos, colPos, context & 268435456 + ? { + type: 'Identifier', + name: tokenValue, + pattern: isPattern === 1 + } + : { + type: 'Identifier', + name: tokenValue + }); +} +function parseLiteral(parser, context) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + if (parser.token === 134283389) { + return parseBigIntLiteral(parser, context, tokenPos, linePos, colPos); + } + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, context & 512 + ? { + type: 'Literal', + value: tokenValue, + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue + }); +} +function parseNullOrTrueOrFalseLiteral(parser, context, start, line, column) { + const raw = KeywordDescTable[parser.token & 255]; + const value = parser.token === 86023 ? null : raw === 'true'; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value, + raw + } + : { + type: 'Literal', + value + }); +} +function parseThisExpression(parser, context) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ThisExpression' + }); +} +function parseFunctionDeclaration(parser, context, scope, origin, allowGen, flags, isAsync, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = allowGen ? optionalBit(parser, context, 8457014) : 0; + let id = null; + let firstRestricted; + let functionScope = scope ? createScope() : void 0; + if (parser.token === 67174411) { + if ((flags & 1) < 1) + report(parser, 37, 'Function'); + } + else { + const kind = origin & 4 && ((context & 8192) < 1 || (context & 2048) < 1) + ? 4 + : 64; + validateFunctionName(parser, context | ((context & 3072) << 11), parser.token); + if (scope) { + if (kind & 4) { + addVarName(parser, context, scope, parser.tokenValue, kind); + } + else { + addBlockName(parser, context, scope, parser.tokenValue, kind, origin); + } + functionScope = addChildScope(functionScope, 256); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, parser.tokenValue); + } + } + } + firstRestricted = parser.token; + if (parser.token & 143360) { + id = parseIdentifier(parser, context, 0); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + ((isAsync * 2 + isGenerator) << 21) | + (isGenerator ? 0 : 1073741824); + if (scope) + functionScope = addChildScope(functionScope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, functionScope, 0, 1); + const body = parseFunctionBody(parser, (context | 8192 | 4096 | 131072) ^ + (8192 | 4096 | 131072), scope ? addChildScope(functionScope, 128) : functionScope, 8, firstRestricted, scope ? functionScope.scopeError : void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionDeclaration', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); +} +function parseFunctionExpression(parser, context, isAsync, inGroup, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = optionalBit(parser, context, 8457014); + const generatorAndAsyncFlags = (isAsync * 2 + isGenerator) << 21; + let id = null; + let firstRestricted; + let scope = context & 64 ? createScope() : void 0; + if ((parser.token & (143360 | 4096 | 36864)) > 0) { + validateFunctionName(parser, ((context | 0x1ec0000) ^ 0x1ec0000) | generatorAndAsyncFlags, parser.token); + if (scope) + scope = addChildScope(scope, 256); + firstRestricted = parser.token; + id = parseIdentifier(parser, context, 0); + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + generatorAndAsyncFlags | + (isGenerator ? 0 : 1073741824); + if (scope) + scope = addChildScope(scope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, scope, inGroup, 1); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192 | 4096 | 131072 | 16384), scope ? addChildScope(scope, 128) : scope, 0, firstRestricted, void 0); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); +} +function parseArrayLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseArrayExpressionOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; +} +function parseArrayExpressionOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context | 32768); + const elements = []; + let destructible = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 20) { + if (consumeOpt(parser, context | 32768, 18)) { + elements.push(null); + } + else { + let left; + const { token, tokenPos, linePos, colPos, tokenValue } = parser; + if (token & 143360) { + left = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + if (parser.assignable & 2) + report(parser, 24); + nextToken(parser, context | 32768); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + operator: '=', + left, + right + }); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else { + destructible |= + kind & 1 + ? 32 + : (kind & 2) < 1 + ? 16 + : 0; + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + if (parser.token !== 1077936157) + destructible |= 16; + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token & 2097152) { + left = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + parser.assignable = + parser.destructible & 16 + ? 2 + : 1; + if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 20, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos); + destructible |= parser.destructible; + if (parser.token !== 18 && parser.token !== 20) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + left = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + if ((kind & (2 | 1)) < 1 && token === 67174411) + destructible |= 16; + } + else if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === 67174411) { + destructible |= + parser.assignable & 1 && kind & (2 | 1) + ? 32 + : 16; + } + } + elements.push(left); + if (consumeOpt(parser, context | 32768, 18)) { + if (parser.token === 20) + break; + } + else + break; + } + } + consume(parser, context, 20); + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ArrayPattern' : 'ArrayExpression', + elements + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; +} +function parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node) { + if (parser.token !== 1077936157) + report(parser, 24); + nextToken(parser, context | 32768); + if (destructible & 16) + report(parser, 24); + if (!isPattern) + reinterpretToPattern(parser, node); + const { tokenPos, linePos, colPos } = parser; + const right = parseExpression(parser, context, 1, 1, inGroup, tokenPos, linePos, colPos); + parser.destructible = + ((destructible | 64 | 8) ^ + (8 | 64)) | + (parser.destructible & 128 ? 128 : 0) | + (parser.destructible & 256 ? 256 : 0); + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left: node, + right + } + : { + type: 'AssignmentExpression', + left: node, + operator: '=', + right + }); +} +function parseSpreadOrRestElement(parser, context, scope, closingToken, kind, origin, isAsync, inGroup, isPattern, start, line, column) { + nextToken(parser, context | 32768); + let argument = null; + let destructible = 0; + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + if (token & (4096 | 143360)) { + parser.assignable = 1; + argument = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + token = parser.token; + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== closingToken) { + if (parser.assignable & 2 && parser.token === 1077936157) + report(parser, 68); + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === closingToken || token === 18) { + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + else { + destructible |= 32; + } + destructible |= parser.destructible & 128 ? 128 : 0; + } + else if (token === closingToken) { + report(parser, 39); + } + else if (token & 2097152) { + argument = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + token = parser.token; + if (token !== 1077936157 && token !== closingToken && token !== 18) { + if (parser.destructible & 8) + report(parser, 68); + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + destructible |= parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + else { + if ((parser.token & 8454144) === 8454144) { + argument = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, argument); + } + if (consumeOpt(parser, context | 32768, 22)) { + argument = parseConditionalExpression(parser, context, argument, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + else { + destructible |= + closingToken === 1074790415 && token !== 1077936157 + ? 16 + : parser.destructible; + } + } + else { + destructible |= 32; + argument = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + const { token, tokenPos, linePos, colPos } = parser; + if (token === 1077936157 && token !== closingToken && token !== 18) { + if (parser.assignable & 2) + report(parser, 24); + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + destructible |= 16; + } + else { + if (token === 18) { + destructible |= 16; + } + else if (token !== closingToken) { + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + destructible |= + parser.assignable & 1 ? 32 : 16; + } + parser.destructible = destructible; + if (parser.token !== closingToken && parser.token !== 18) + report(parser, 155); + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + if (parser.token !== closingToken) { + if (kind & 1) + destructible |= isAsync ? 16 : 32; + if (consumeOpt(parser, context | 32768, 1077936157)) { + if (destructible & 16) + report(parser, 24); + reinterpretToPattern(parser, argument); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + argument = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left: argument, + right + } + : { + type: 'AssignmentExpression', + left: argument, + operator: '=', + right + }); + destructible = 16; + } + else { + destructible |= 16; + } + } + parser.destructible = destructible; + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); +} +function parseMethodDefinition(parser, context, kind, inGroup, start, line, column) { + const modifierFlags = (kind & 64) < 1 ? 31981568 : 14680064; + context = + ((context | modifierFlags) ^ modifierFlags) | + ((kind & 88) << 18) | + 100925440; + let scope = context & 64 ? addChildScope(createScope(), 512) : void 0; + const params = parseMethodFormals(parser, context | 8388608, scope, kind, 1, inGroup); + if (scope) + scope = addChildScope(scope, 128); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192), scope, 0, void 0, void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + params, + body, + async: (kind & 16) > 0, + generator: (kind & 8) > 0, + id: null + }); +} +function parseObjectLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseObjectLiteralOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; +} +function parseObjectLiteralOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context); + const properties = []; + let destructible = 0; + let prototypeCount = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 1074790415) { + const { token, tokenValue, linePos, colPos, tokenPos } = parser; + if (token === 14) { + properties.push(parseSpreadOrRestElement(parser, context, scope, 1074790415, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos)); + } + else { + let state = 0; + let key = null; + let value; + const t = parser.token; + if (parser.token & (143360 | 4096) || parser.token === 121) { + key = parseIdentifier(parser, context, 0); + if (parser.token === 18 || parser.token === 1074790415 || parser.token === 1077936157) { + state |= 4; + if (context & 1024 && (token & 537079808) === 537079808) { + destructible |= 16; + } + else { + validateBindingIdentifier(parser, context, kind, token, 0); + } + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + if (consumeOpt(parser, context | 32768, 1077936157)) { + destructible |= 8; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + value = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: context & -2147483648 ? Object.assign({}, key) : key, + right + }); + } + else { + destructible |= + (token === 209008 ? 128 : 0) | + (token === 121 ? 16 : 0); + value = context & -2147483648 ? Object.assign({}, key) : key; + } + } + else if (consumeOpt(parser, context | 32768, 21)) { + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + const tokenAfterColon = parser.token; + const valueAfterColon = parser.tokenValue; + destructible |= t === 121 ? 16 : 0; + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + destructible |= parser.destructible & 128 ? 128 : 0; + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if ((parser.token & 4194304) === 4194304) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token !== 1077936157) { + destructible |= 32; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 69271571) { + destructible |= 16; + if (token === 209007) + state |= 16; + state |= + (token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1) | 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token & (143360 | 4096)) { + destructible |= 16; + if (token === 121) + report(parser, 92); + if (token === 209007) { + if (parser.flags & 1) + report(parser, 128); + state |= 16; + } + key = parseIdentifier(parser, context, 0); + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 67174411) { + destructible |= 16; + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 8457014) { + destructible |= 16; + if (token === 12402 || token === 12403) { + report(parser, 40); + } + else if (token === 143483) { + report(parser, 92); + } + nextToken(parser, context); + state |= + 8 | 1 | (token === 209007 ? 16 : 0); + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + state |= 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if ((parser.token & 134217728) === 134217728) { + if (token === 209007) + state |= 16; + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + destructible |= 16; + key = parseLiteral(parser, context); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 129); + } + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + if (parser.token === 21) { + consume(parser, context | 32768, 21); + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token, tokenValue: valueAfterColon } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if (parser.token === 1077936157) { + if (parser.assignable & 2) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if ((parser.destructible & 8) !== 8) { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible = parser.assignable | 16; + } + else { + report(parser, 130); + } + } + else if (parser.token === 69271571) { + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.destructible & 256 ? 256 : 0; + state |= 2; + if (parser.token === 21) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos, tokenValue, token: tokenAfterColon } = parser; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if ((parser.token & 4194304) === 4194304) { + destructible |= + parser.assignable & 2 + ? 16 + : token === 1077936157 + ? 0 + : 32; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (destructible & 8) { + report(parser, 59); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = + parser.assignable & 2 ? destructible | 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, linePos, colPos); + destructible = 16; + } + else { + report(parser, 41); + } + } + else if (token === 8457014) { + consume(parser, context | 32768, 8457014); + state |= 8; + if (parser.token & 143360) { + const { token, line, index } = parser; + key = parseIdentifier(parser, context, 0); + state |= 1; + if (parser.token === 67174411) { + destructible |= 16; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + reportMessageAt(index, line, index, token === 209007 + ? 43 + : token === 12402 || parser.token === 12403 + ? 42 + : 44, KeywordDescTable[token & 255]); + } + } + else if ((parser.token & 134217728) === 134217728) { + destructible |= 16; + key = parseLiteral(parser, context); + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + destructible |= 16; + state |= 2 | 1; + key = parseComputedPropertyName(parser, context, inGroup); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 122); + } + } + else { + report(parser, 28, KeywordDescTable[token & 255]); + } + destructible |= parser.destructible & 128 ? 128 : 0; + parser.destructible = destructible; + properties.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'Property', + key: key, + value, + kind: !(state & 768) ? 'init' : state & 512 ? 'set' : 'get', + computed: (state & 2) > 0, + method: (state & 1) > 0, + shorthand: (state & 4) > 0 + })); + } + destructible |= parser.destructible; + if (parser.token !== 18) + break; + nextToken(parser, context); + } + consume(parser, context, 1074790415); + if (prototypeCount > 1) + destructible |= 64; + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ObjectPattern' : 'ObjectExpression', + properties + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; +} +function parseMethodFormals(parser, context, scope, kind, type, inGroup) { + consume(parser, context, 67174411); + const params = []; + parser.flags = (parser.flags | 128) ^ 128; + if (parser.token === 16) { + if (kind & 512) { + report(parser, 35, 'Setter', 'one', ''); + } + nextToken(parser, context); + return params; + } + if (kind & 256) { + report(parser, 35, 'Getter', 'no', 's'); + } + if (kind & 512 && parser.token === 14) { + report(parser, 36); + } + context = (context | 134217728) ^ 134217728; + let setterArgs = 0; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left = null; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, type, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) + report(parser, 47); + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: left, + right + }); + } + setterArgs++; + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (kind & 512 && setterArgs !== 1) { + report(parser, 35, 'Setter', 'one', ''); + } + if (scope && scope.scopeError !== void 0) + reportScopeError(scope.scopeError); + if (isSimpleParameterList) + parser.flags |= 128; + consume(parser, context, 16); + return params; +} +function parseComputedPropertyName(parser, context, inGroup) { + nextToken(parser, context | 32768); + const key = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 20); + return key; +} +function parseParenthesizedExpression(parser, context, canAssign, kind, origin, start, line, column) { + parser.flags = (parser.flags | 128) ^ 128; + const { tokenPos: piStart, linePos: plStart, colPos: pcStart } = parser; + nextToken(parser, context | 32768 | 1073741824); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 0, start, line, column); + } + let destructible = 0; + parser.destructible &= ~(256 | 128); + let expr; + let expressions = []; + let isSequence = 0; + let isSimpleParameterList = 0; + const { tokenPos: iStart, linePos: lStart, colPos: cStart } = parser; + parser.assignable = 1; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 1, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808 || + (token & 36864) === 36864) { + isSimpleParameterList = 1; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if ((token & 2097152) === 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + parser.assignable = 2; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 0, 1, 0, tokenPos, linePos, colPos); + if (parser.destructible & 16) + report(parser, 71); + isSimpleParameterList = 1; + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + destructible |= 8; + break; + } + else { + destructible |= 16; + expr = parseExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (parser.token === 18) { + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + } + if (isSequence) { + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + } + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + parser.destructible = destructible; + return expr; + } + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (!consumeOpt(parser, context | 32768, 18)) + break; + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + if (parser.token === 16) { + destructible |= 8; + break; + } + } + if (isSequence) { + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + if (destructible & 16 && destructible & 8) + report(parser, 145); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 46); + if (context & (4194304 | 2048) && destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) { + report(parser, 30); + } + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, isSequence ? expressions : [expr], canAssign, 0, start, line, column); + } + else if (destructible & 8) { + report(parser, 139); + } + parser.destructible = ((parser.destructible | 256) ^ 256) | destructible; + return context & 128 + ? finishNode(parser, context, piStart, plStart, pcStart, { + type: 'ParenthesizedExpression', + expression: expr + }) + : expr; +} +function parseIdentifierOrArrow(parser, context, start, line, column) { + const { tokenValue } = parser; + const expr = parseIdentifier(parser, context, 0); + parser.assignable = 1; + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + return parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + return expr; +} +function parseArrowFromIdentifier(parser, context, value, expr, inNew, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + if (inNew) + report(parser, 48); + parser.flags &= ~128; + const scope = context & 64 ? createArrowHeadParsingScope(parser, context, value) : void 0; + return parseArrowFunctionExpression(parser, context, scope, [expr], isAsync, start, line, column); +} +function parseParenthesizedArrow(parser, context, scope, params, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + for (let i = 0; i < params.length; ++i) + reinterpretToPattern(parser, params[i]); + return parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column); +} +function parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column) { + if (parser.flags & 1) + report(parser, 45); + consume(parser, context | 32768, 10); + context = ((context | 15728640) ^ 15728640) | (isAsync << 22); + const expression = parser.token !== 2162700; + let body; + if (scope && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + if (expression) { + body = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + if (scope) + scope = addChildScope(scope, 128); + body = parseFunctionBody(parser, (context | 134221824 | 8192 | 16384) ^ + (134221824 | 8192 | 16384), scope, 16, void 0, void 0); + switch (parser.token) { + case 69271571: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + break; + case 67108877: + case 67174409: + case 22: + report(parser, 113); + case 67174411: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + parser.flags |= 1024; + break; + } + if ((parser.token & 8454144) === 8454144 && (parser.flags & 1) < 1) + report(parser, 28, KeywordDescTable[parser.token & 255]); + if ((parser.token & 33619968) === 33619968) + report(parser, 121); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ArrowFunctionExpression', + params, + body, + async: isAsync === 1, + expression + }); +} +function parseFormalParametersOrFormalList(parser, context, scope, inGroup, kind) { + consume(parser, context, 67174411); + parser.flags = (parser.flags | 128) ^ 128; + const params = []; + if (consumeOpt(parser, context, 16)) + return params; + context = (context | 134217728) ^ 134217728; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, kind, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) { + report(parser, 47); + } + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left, + right + }); + } + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (isSimpleParameterList) + parser.flags |= 128; + if (scope && (isSimpleParameterList || context & 1024) && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + consume(parser, context, 16); + return params; +} +function parseMembeExpressionNoCall(parser, context, expr, inGroup, start, line, column) { + const { token } = parser; + if (token & 67108864) { + if (token === 67108877) { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }), 0, start, line, column); + } + else if (token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }), 0, start, line, column); + } + else if (token === 67174408 || token === 67174409) { + parser.assignable = 2; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }), 0, start, line, column); + } + } + return expr; +} +function parseNewExpression(parser, context, inGroup, start, line, column) { + const id = parseIdentifier(parser, context | 32768, 0); + const { tokenPos, linePos, colPos } = parser; + if (consumeOpt(parser, context, 67108877)) { + if (context & 67108864 && parser.token === 143494) { + parser.assignable = 2; + return parseMetaProperty(parser, context, id, start, line, column); + } + report(parser, 91); + } + parser.assignable = 2; + if ((parser.token & 16842752) === 16842752) { + report(parser, 62, KeywordDescTable[parser.token & 255]); + } + const expr = parsePrimaryExpression(parser, context, 2, 1, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + context = (context | 134217728) ^ 134217728; + if (parser.token === 67108991) + report(parser, 162); + const callee = parseMembeExpressionNoCall(parser, context, expr, inGroup, tokenPos, linePos, colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'NewExpression', + callee, + arguments: parser.token === 67174411 ? parseArguments(parser, context, inGroup) : [] + }); +} +function parseMetaProperty(parser, context, meta, start, line, column) { + const property = parseIdentifier(parser, context, 0); + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property + }); +} +function parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column) { + if (parser.token === 209008) + report(parser, 29); + if (context & (1024 | 2097152) && parser.token === 241773) { + report(parser, 30); + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context, 0), 0, canAssign, 1, start, line, column); +} +function parseAsyncArrowOrCallExpression(parser, context, callee, canAssign, kind, origin, flags, start, line, column) { + nextToken(parser, context | 32768); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + if (parser.token === 10) { + if (flags & 1) + report(parser, 45); + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 1, start, line, column); + } + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: [] + }); + } + let destructible = 0; + let expr = null; + let isSimpleParameterList = 0; + parser.destructible = + (parser.destructible | 256 | 128) ^ + (256 | 128); + const params = []; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, kind, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808) { + parser.flags |= 512; + } + else if ((token & 36864) === 36864) { + parser.flags |= 256; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token & 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + expr = parseBinaryExpression(parser, context, 1, start, line, column, 4, token, expr); + } + if (consumeOpt(parser, context | 32768, 22)) { + expr = parseConditionalExpression(parser, context, expr, start, line, column); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 1, 1, 0, tokenPos, linePos, colPos); + destructible |= (parser.token === 16 ? 0 : 16) | parser.destructible; + isSimpleParameterList = 1; + } + else { + expr = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + destructible = parser.assignable; + params.push(expr); + while (consumeOpt(parser, context | 32768, 18)) { + params.push(parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos)); + } + destructible |= parser.assignable; + consume(parser, context, 16); + parser.destructible = destructible | 16; + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + params.push(expr); + if (!consumeOpt(parser, context | 32768, 18)) + break; + } + consume(parser, context, 16); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 25); + if (parser.flags & 1 || flags & 1) + report(parser, 45); + if (destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) + report(parser, 30); + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, params, canAssign, 1, start, line, column); + } + else if (destructible & 8) { + report(parser, 59); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); +} +function parseRegExpLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenRegExp, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return context & 512 + ? finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp, + raw: tokenRaw + }) + : finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp + }); +} +function parseClassDeclaration(parser, context, scope, flags, start, line, column) { + context = (context | 16777216 | 1024) ^ 16777216; + let decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + if (parser.leadingDecorators.length) { + parser.leadingDecorators.push(...decorators); + decorators = parser.leadingDecorators; + parser.leadingDecorators = []; + } + nextToken(parser, context); + let id = null; + let superClass = null; + const { tokenValue } = parser; + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) { + report(parser, 114); + } + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + if (scope) { + addBlockName(parser, context, scope, tokenValue, 32, 0); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, tokenValue); + } + } + } + id = parseIdentifier(parser, context, 0); + } + else { + if ((flags & 1) < 1) + report(parser, 37, 'Class'); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, scope, 2, 8, 0); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassDeclaration', + id, + superClass, + decorators, + body + } + : { + type: 'ClassDeclaration', + id, + superClass, + body + }); +} +function parseClassExpression(parser, context, inGroup, start, line, column) { + let id = null; + let superClass = null; + context = (context | 1024 | 16777216) ^ 16777216; + const decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + nextToken(parser, context); + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + id = parseIdentifier(parser, context, 0); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, inGroup, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, void 0, 2, 0, inGroup); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassExpression', + id, + superClass, + decorators, + body + } + : { + type: 'ClassExpression', + id, + superClass, + body + }); +} +function parseDecorators(parser, context) { + const list = []; + if (context & 1) { + while (parser.token === 133) { + list.push(parseDecoratorList(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + } + return list; +} +function parseDecoratorList(parser, context, start, line, column) { + nextToken(parser, context | 32768); + let expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, start, line, column); + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + return finishNode(parser, context, start, line, column, { + type: 'Decorator', + expression + }); +} +function parseClassBody(parser, context, inheritedContext, scope, kind, origin, inGroup) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + context = (context | 134217728) ^ 134217728; + parser.flags = (parser.flags | 32) ^ 32; + const body = []; + let decorators; + while (parser.token !== 1074790415) { + let length = 0; + decorators = parseDecorators(parser, context); + length = decorators.length; + if (length > 0 && parser.tokenValue === 'constructor') { + report(parser, 106); + } + if (parser.token === 1074790415) + report(parser, 105); + if (consumeOpt(parser, context, 1074790417)) { + if (length > 0) + report(parser, 116); + continue; + } + body.push(parseClassElementList(parser, context, scope, inheritedContext, kind, decorators, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + consume(parser, origin & 8 ? context | 32768 : context, 1074790415); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ClassBody', + body + }); +} +function parseClassElementList(parser, context, scope, inheritedContext, type, decorators, isStatic, inGroup, start, line, column) { + let kind = isStatic ? 32 : 0; + let key = null; + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 36864)) { + key = parseIdentifier(parser, context, 0); + switch (token) { + case 36972: + if (!isStatic && parser.token !== 67174411) { + return parseClassElementList(parser, context, scope, inheritedContext, type, decorators, 1, inGroup, start, line, column); + } + break; + case 209007: + if (parser.token !== 67174411 && (parser.flags & 1) < 1) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 16 | (optionalBit(parser, context, 8457014) ? 8 : 0); + } + break; + case 12402: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 256; + } + break; + case 12403: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 512; + } + break; + } + } + else if (token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, inheritedContext, inGroup); + } + else if ((token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (token === 8457014) { + kind |= 8; + nextToken(parser, context); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + context = context | 16384; + } + else if (context & 1 && (parser.token & 1073741824) === 1073741824) { + kind |= 128; + context = context | 16384; + } + else if (token === 122) { + key = parseIdentifier(parser, context, 0); + if (parser.token !== 67174411) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + if (kind & (8 | 16 | 768)) { + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, context, 0); + } + else if (parser.token === 122) { + key = parseIdentifier(parser, context, 0); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + } + else + report(parser, 131); + } + if ((kind & 2) < 1) { + if (parser.tokenValue === 'constructor') { + if ((parser.token & 1073741824) === 1073741824) { + report(parser, 125); + } + else if ((kind & 32) < 1 && parser.token === 67174411) { + if (kind & (768 | 16 | 128 | 8)) { + report(parser, 50, 'accessor'); + } + else if ((context & 524288) < 1) { + if (parser.flags & 32) + report(parser, 51); + else + parser.flags |= 32; + } + } + kind |= 64; + } + else if ((kind & 4096) < 1 && + kind & (32 | 768 | 8 | 16) && + parser.tokenValue === 'prototype') { + report(parser, 49); + } + } + if (context & 1 && parser.token !== 67174411) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + const value = parseMethodDefinition(parser, context, kind, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + decorators, + value + } + : { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + value + }); +} +function parsePrivateIdentifier(parser, context, start, line, column) { + nextToken(parser, context); + const { tokenValue } = parser; + if (tokenValue === 'constructor') + report(parser, 124); + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'PrivateIdentifier', + name: tokenValue + }); +} +function parsePropertyDefinition(parser, context, key, state, decorators, start, line, column) { + let value = null; + if (state & 8) + report(parser, 0); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 537079928) + report(parser, 115); + value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 0, 1, tokenPos, linePos, colPos); + if ((parser.token & 1073741824) !== 1073741824) { + value = parseMemberOrUpdateExpression(parser, context | 16384, value, 0, 0, tokenPos, linePos, colPos); + value = parseAssignmentExpression(parser, context | 16384, 0, 0, tokenPos, linePos, colPos, value); + if (parser.token === 18) { + value = parseSequenceExpression(parser, context, 0, start, line, column, value); + } + } + } + return finishNode(parser, context, start, line, column, { + type: 'PropertyDefinition', + key, + value, + static: (state & 32) > 0, + computed: (state & 2) > 0, + decorators + }); +} +function parseBindingPattern(parser, context, scope, type, origin, start, line, column) { + if (parser.token & 143360) + return parseAndClassifyIdentifier(parser, context, scope, type, origin, start, line, column); + if ((parser.token & 2097152) !== 2097152) + report(parser, 28, KeywordDescTable[parser.token & 255]); + const left = parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column) + : parseObjectLiteralOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column); + if (parser.destructible & 16) + report(parser, 47); + if (parser.destructible & 32) + report(parser, 47); + return left; +} +function parseAndClassifyIdentifier(parser, context, scope, kind, origin, start, line, column) { + const { tokenValue, token } = parser; + if (context & 1024) { + if ((token & 537079808) === 537079808) { + report(parser, 115); + } + else if ((token & 36864) === 36864) { + report(parser, 114); + } + } + if ((token & 20480) === 20480) { + report(parser, 99); + } + if (context & (2048 | 2097152) && token === 241773) { + report(parser, 30); + } + if (token === 241739) { + if (kind & (8 | 16)) + report(parser, 97); + } + if (context & (4194304 | 2048) && token === 209008) { + report(parser, 95); + } + nextToken(parser, context); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + return finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: tokenValue + }); +} +function parseJSXRootElementOrFragment(parser, context, inJSXChild, start, line, column) { + nextToken(parser, context); + if (parser.token === 8456259) { + return finishNode(parser, context, start, line, column, { + type: 'JSXFragment', + openingFragment: parseOpeningFragment(parser, context, start, line, column), + children: parseJSXChildren(parser, context), + closingFragment: parseJSXClosingFragment(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + let closingElement = null; + let children = []; + const openingElement = parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column); + if (!openingElement.selfClosing) { + children = parseJSXChildren(parser, context); + closingElement = parseJSXClosingElement(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos); + const close = isEqualTagName(closingElement.name); + if (isEqualTagName(openingElement.name) !== close) + report(parser, 149, close); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXElement', + children, + openingElement, + closingElement + }); +} +function parseOpeningFragment(parser, context, start, line, column) { + scanJSXToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningFragment' + }); +} +function parseJSXClosingElement(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + const name = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + parser.token = scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingElement', + name + }); +} +function parseJSXClosingFragment(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + consume(parser, context, 8456259); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingFragment' + }); +} +function parseJSXChildren(parser, context) { + const children = []; + while (parser.token !== 25) { + parser.index = parser.tokenPos = parser.startPos; + parser.column = parser.colPos = parser.startColumn; + parser.line = parser.linePos = parser.startLine; + scanJSXToken(parser, context); + children.push(parseJSXChild(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return children; +} +function parseJSXChild(parser, context, start, line, column) { + if (parser.token === 138) + return parseJSXText(parser, context, start, line, column); + if (parser.token === 2162700) + return parseJSXExpressionContainer(parser, context, 0, 0, start, line, column); + if (parser.token === 8456258) + return parseJSXRootElementOrFragment(parser, context, 0, start, line, column); + report(parser, 0); +} +function parseJSXText(parser, context, start, line, column) { + scanJSXToken(parser, context); + const node = { + type: 'JSXText', + value: parser.tokenValue + }; + if (context & 512) { + node.raw = parser.tokenRaw; + } + return finishNode(parser, context, start, line, column, node); +} +function parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column) { + if ((parser.token & 143360) !== 143360 && (parser.token & 4096) !== 4096) + report(parser, 0); + const tagName = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + const attributes = parseJSXAttributes(parser, context); + const selfClosing = parser.token === 8457016; + if (parser.token === 8456259) { + scanJSXToken(parser, context); + } + else { + consume(parser, context, 8457016); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + scanJSXToken(parser, context); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningElement', + name: tagName, + attributes, + selfClosing + }); +} +function parseJSXElementName(parser, context, start, line, column) { + scanJSXIdentifier(parser); + let key = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) + return parseJSXNamespacedName(parser, context, key, start, line, column); + while (consumeOpt(parser, context, 67108877)) { + scanJSXIdentifier(parser); + key = parseJSXMemberExpression(parser, context, key, start, line, column); + } + return key; +} +function parseJSXMemberExpression(parser, context, object, start, line, column) { + const property = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXMemberExpression', + object, + property + }); +} +function parseJSXAttributes(parser, context) { + const attributes = []; + while (parser.token !== 8457016 && parser.token !== 8456259 && parser.token !== 1048576) { + attributes.push(parseJsxAttribute(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return attributes; +} +function parseJSXSpreadAttribute(parser, context, start, line, column) { + nextToken(parser, context); + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadAttribute', + argument: expression + }); +} +function parseJsxAttribute(parser, context, start, line, column) { + if (parser.token === 2162700) + return parseJSXSpreadAttribute(parser, context, start, line, column); + scanJSXIdentifier(parser); + let value = null; + let name = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) { + name = parseJSXNamespacedName(parser, context, name, start, line, column); + } + if (parser.token === 1077936157) { + const token = scanJSXAttributeValue(parser, context); + const { tokenPos, linePos, colPos } = parser; + switch (token) { + case 134283267: + value = parseLiteral(parser, context); + break; + case 8456258: + value = parseJSXRootElementOrFragment(parser, context, 1, tokenPos, linePos, colPos); + break; + case 2162700: + value = parseJSXExpressionContainer(parser, context, 1, 1, tokenPos, linePos, colPos); + break; + default: + report(parser, 148); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXAttribute', + value, + name + }); +} +function parseJSXNamespacedName(parser, context, namespace, start, line, column) { + consume(parser, context, 21); + const name = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXNamespacedName', + namespace, + name + }); +} +function parseJSXExpressionContainer(parser, context, inJSXChild, isAttr, start, line, column) { + nextToken(parser, context); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 14) + return parseJSXSpreadChild(parser, context, tokenPos, linePos, colPos); + let expression = null; + if (parser.token === 1074790415) { + if (isAttr) + report(parser, 151); + expression = parseJSXEmptyExpression(parser, context, parser.startPos, parser.startLine, parser.startColumn); + } + else { + expression = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + } + if (inJSXChild) { + consume(parser, context, 1074790415); + } + else { + scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXExpressionContainer', + expression + }); +} +function parseJSXSpreadChild(parser, context, start, line, column) { + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadChild', + expression + }); +} +function parseJSXEmptyExpression(parser, context, start, line, column) { + parser.startPos = parser.tokenPos; + parser.startLine = parser.linePos; + parser.startColumn = parser.colPos; + return finishNode(parser, context, start, line, column, { + type: 'JSXEmptyExpression' + }); +} +function parseJSXIdentifier(parser, context, start, line, column) { + const { tokenValue } = parser; + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXIdentifier', + name: tokenValue + }); +} + +var estree = /*#__PURE__*/Object.freeze({ + __proto__: null +}); + +var version$1 = "4.2.0"; + +const version = version$1; +function parseScript(source, options) { + return parseSource(source, options, 0); +} +function parseModule(source, options) { + return parseSource(source, options, 1024 | 2048); +} +function parse(source, options) { + return parseSource(source, options, 0); +} + +export { estree as ESTree, parse, parseModule, parseScript, version }; diff --git a/node_modules/meriyah/dist/meriyah.esm.min.js b/node_modules/meriyah/dist/meriyah.esm.min.js new file mode 100644 index 0000000..a193135 --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.esm.min.js @@ -0,0 +1 @@ +const e={0:"Unexpected token",28:"Unexpected token: '%0'",1:"Octal escape sequences are not allowed in strict mode",2:"Octal escape sequences are not allowed in template strings",3:"Unexpected token `#`",4:"Illegal Unicode escape sequence",5:"Invalid code point %0",6:"Invalid hexadecimal escape sequence",8:"Octal literals are not allowed in strict mode",7:"Decimal integer literals with a leading zero are forbidden in strict mode",9:"Expected number in radix %0",145:"Invalid left-hand side assignment to a destructible right-hand side",10:"Non-number found after exponent indicator",11:"Invalid BigIntLiteral",12:"No identifiers allowed directly after numeric literal",13:"Escapes \\8 or \\9 are not syntactically valid escapes",14:"Unterminated string literal",15:"Unterminated template literal",16:"Multiline comment was not closed properly",17:"The identifier contained dynamic unicode escape that was not closed",18:"Illegal character '%0'",19:"Missing hexadecimal digits",20:"Invalid implicit octal",21:"Invalid line break in string literal",22:"Only unicode escapes are legal in identifier names",23:"Expected '%0'",24:"Invalid left-hand side in assignment",25:"Invalid left-hand side in async arrow",26:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',27:"Member access on super must be in a method",29:"Await expression not allowed in formal parameter",30:"Yield expression not allowed in formal parameter",92:"Unexpected token: 'escaped keyword'",31:"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses",119:"Async functions can only be declared at the top level or inside a block",32:"Unterminated regular expression",33:"Unexpected regular expression flag",34:"Duplicate regular expression flag '%0'",35:"%0 functions must have exactly %1 argument%2",36:"Setter function argument must not be a rest parameter",37:"%0 declaration must have a name in this context",38:"Function name may not contain any reserved words or be eval or arguments in strict mode",39:"The rest operator is missing an argument",40:"A getter cannot be a generator",41:"A computed property name must be followed by a colon or paren",130:"Object literal keys that are strings or numbers must be a method or have a colon",43:"Found `* async x(){}` but this should be `async * x(){}`",42:"Getters and setters can not be generators",44:"'%0' can not be generator method",45:"No line break is allowed after '=>'",46:"The left-hand side of the arrow can only be destructed through assignment",47:"The binding declaration is not destructible",48:"Async arrow can not be followed by new expression",49:"Classes may not have a static property named 'prototype'",50:"Class constructor may not be a %0",51:"Duplicate constructor method in class",52:"Invalid increment/decrement operand",53:"Invalid use of `new` keyword on an increment/decrement expression",54:"`=>` is an invalid assignment target",55:"Rest element may not have a trailing comma",56:"Missing initializer in %0 declaration",57:"'for-%0' loop head declarations can not have an initializer",58:"Invalid left-hand side in for-%0 loop: Must have a single binding",59:"Invalid shorthand property initializer",60:"Property name __proto__ appears more than once in object literal",61:"Let is disallowed as a lexically bound name",62:"Invalid use of '%0' inside new expression",63:"Illegal 'use strict' directive in function with non-simple parameter list",64:'Identifier "let" disallowed as left-hand side expression in strict mode',65:"Illegal continue statement",66:"Illegal break statement",67:"Cannot have `let[...]` as a var name in strict mode",68:"Invalid destructuring assignment target",69:"Rest parameter may not have a default initializer",70:"The rest argument must the be last parameter",71:"Invalid rest argument",73:"In strict mode code, functions can only be declared at top level or inside a block",74:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement",75:"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement",76:"Class declaration can't appear in single-statement context",77:"Invalid left-hand side in for-%0",78:"Invalid assignment in for-%0",79:"for await (... of ...) is only valid in async functions and async generators",80:"The first token after the template expression should be a continuation of the template",82:"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode",81:"`let \n [` is a restricted production at the start of a statement",83:"Catch clause requires exactly one parameter, not more (and no trailing comma)",84:"Catch clause parameter does not support default values",85:"Missing catch or finally after try",86:"More than one default clause in switch statement",87:"Illegal newline after throw",88:"Strict mode code may not include a with statement",89:"Illegal return statement",90:"The left hand side of the for-header binding declaration is not destructible",91:"new.target only allowed within functions",93:"'#' not followed by identifier",99:"Invalid keyword",98:"Can not use 'let' as a class name",97:"'A lexical declaration can't define a 'let' binding",96:"Can not use `let` as variable name in strict mode",94:"'%0' may not be used as an identifier in this context",95:"Await is only valid in async functions",100:"The %0 keyword can only be used with the module goal",101:"Unicode codepoint must not be greater than 0x10FFFF",102:"%0 source must be string",103:"Only a identifier can be used to indicate alias",104:"Only '*' or '{...}' can be imported after default",105:"Trailing decorator may be followed by method",106:"Decorators can't be used with a constructor",108:"HTML comments are only allowed with web compatibility (Annex B)",109:"The identifier 'let' must not be in expression position in strict mode",110:"Cannot assign to `eval` and `arguments` in strict mode",111:"The left-hand side of a for-of loop may not start with 'let'",112:"Block body arrows can not be immediately invoked without a group",113:"Block body arrows can not be immediately accessed without a group",114:"Unexpected strict mode reserved word",115:"Unexpected eval or arguments in strict mode",116:"Decorators must not be followed by a semicolon",117:"Calling delete on expression not allowed in strict mode",118:"Pattern can not have a tail",120:"Can not have a `yield` expression on the left side of a ternary",121:"An arrow function can not have a postfix update operator",122:"Invalid object literal key character after generator star",123:"Private fields can not be deleted",125:"Classes may not have a field called constructor",124:"Classes may not have a private element named constructor",126:"A class field initializer may not contain arguments",127:"Generators can only be declared at the top level or inside a block",128:"Async methods are a restricted production and cannot have a newline following it",129:"Unexpected character after object literal property name",131:"Invalid key token",132:"Label '%0' has already been declared",133:"continue statement must be nested within an iteration statement",134:"Undefined label '%0'",135:"Trailing comma is disallowed inside import(...) arguments",136:"import() requires exactly one argument",137:"Cannot use new with import(...)",138:"... is not allowed in import()",139:"Expected '=>'",140:"Duplicate binding '%0'",141:"Cannot export a duplicate name '%0'",144:"Duplicate %0 for-binding",142:"Exported binding '%0' needs to refer to a top-level declared variable",143:"Unexpected private field",147:"Numeric separators are not allowed at the end of numeric literals",146:"Only one underscore is allowed as numeric separator",148:"JSX value should be either an expression or a quoted JSX text",149:"Expected corresponding JSX closing tag for %0",150:"Adjacent JSX elements must be wrapped in an enclosing tag",151:"JSX attributes must only be assigned a non-empty 'expression'",152:"'%0' has already been declared",153:"'%0' shadowed a catch clause binding",154:"Dot property must be an identifier",155:"Encountered invalid input after spread/rest argument",156:"Catch without try",157:"Finally without try",158:"Expected corresponding closing tag for JSX fragment",159:"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses",160:"Invalid tagged template on optional chain",161:"Invalid optional chain from super property",162:"Invalid optional chain from new expression",163:'Cannot use "import.meta" outside a module',164:"Leading decorators must be attached to a class declaration"};class t extends SyntaxError{constructor(t,n,o,r,...s){const a="["+n+":"+o+"]: "+e[r].replace(/%(\d+)/g,((e,t)=>s[t]));super(`${a}`),this.index=t,this.line=n,this.column=o,this.description=a,this.loc={line:n,column:o}}}function n(e,n,...o){throw new t(e.index,e.line,e.column,n,...o)}function o(e){throw new t(e.index,e.line,e.column,e.type,e.params)}function r(e,n,o,r,...s){throw new t(e,n,o,r,...s)}function s(e,n,o,r){throw new t(e,n,o,r)}const a=((e,t)=>{const n=new Uint32Array(104448);let o=0,r=0;for(;o<3540;){const s=e[o++];if(s<0)r-=s;else{let a=e[o++];2&s&&(a=t[a]),1&s?n.fill(a,r,r+=e[o++]):n[r++]=a}}return n})([-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828e3,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902e3,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532]);function i(e){return e.column++,e.currentChar=e.source.charCodeAt(++e.index)}function l(e,t){if(55296!=(64512&t))return 0;const o=e.source.charCodeAt(e.index+1);return 56320!=(64512&o)?0:(t=e.currentChar=65536+((1023&t)<<10)+(1023&o),0==(1&a[0+(t>>>5)]>>>t)&&n(e,18,d(t)),e.index++,e.column++,1)}function c(e,t){e.currentChar=e.source.charCodeAt(++e.index),e.flags|=1,0==(4&t)&&(e.column=0,e.line++)}function u(e){e.flags|=1,e.currentChar=e.source.charCodeAt(++e.index),e.column=0,e.line++}function d(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(e>>>10)+String.fromCharCode(1023&e)}function p(e){return e<65?e-48:e-65+10&15}const f=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],k=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],g=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function m(e){return e<=127?k[e]:1&a[34816+(e>>>5)]>>>e}function b(e){return e<=127?g[e]:1&a[0+(e>>>5)]>>>e||8204===e||8205===e}const h=["SingleLine","MultiLine","HTMLOpen","HTMLClose","HashbangComment"];function P(e,t,o,r,s,a,i,l){return 2048&r&&n(e,0),y(e,t,o,s,a,i,l)}function y(e,t,n,o,r,s,a){const{index:l}=e;for(e.tokenPos=e.index,e.linePos=e.line,e.colPos=e.column;e.index=e.source.length)return n(e,32)}const s=e.index-1;let a=0,l=e.currentChar;const{index:c}=e;for(;b(l);){switch(l){case 103:2&a&&n(e,34,"g"),a|=2;break;case 105:1&a&&n(e,34,"i"),a|=1;break;case 109:4&a&&n(e,34,"m"),a|=4;break;case 117:16&a&&n(e,34,"g"),a|=16;break;case 121:8&a&&n(e,34,"y"),a|=8;break;case 115:12&a&&n(e,34,"s"),a|=12;break;default:n(e,33)}l=i(e)}const u=e.source.slice(c,e.index),d=e.source.slice(o,s);return e.tokenRegExp={pattern:d,flags:u},512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),e.tokenValue=function(e,t,o){try{return new RegExp(t,o)}catch(t){n(e,32)}}(e,d,u),65540}function w(e,t,o){const{index:r}=e;let s="",a=i(e),l=e.index;for(;0==(8&f[a]);){if(a===o)return s+=e.source.slice(l,e.index),i(e),512&t&&(e.tokenRaw=e.source.slice(r,e.index)),e.tokenValue=s,134283267;if(8==(8&a)&&92===a){if(s+=e.source.slice(l,e.index),a=i(e),a<127||8232===a||8233===a){const n=q(e,t,a);n>=0?s+=d(n):C(e,n,0)}else s+=d(a);l=e.index+1}e.index>=e.end&&n(e,14),a=i(e)}n(e,14)}function q(e,t,n){switch(n){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(e.index1114111)return-5;return e.currentChar<1||125!==e.currentChar?-4:t}{if(0==(64&f[t]))return-4;const n=e.source.charCodeAt(e.index+1);if(0==(64&f[n]))return-4;const o=e.source.charCodeAt(e.index+2);if(0==(64&f[o]))return-4;const r=e.source.charCodeAt(e.index+3);return 0==(64&f[r])?-4:(e.index+=3,e.column+=3,e.currentChar=e.source.charCodeAt(e.index),p(t)<<12|p(n)<<8|p(o)<<4|p(r))}}case 56:case 57:if(0==(256&t))return-3;default:return n}}function C(e,t,o){switch(t){case-1:return;case-2:n(e,o?2:1);case-3:n(e,13);case-4:n(e,6);case-5:n(e,101)}}function E(e,t){const{index:o}=e;let r=67174409,s="",a=i(e);for(;96!==a;){if(36===a&&123===e.source.charCodeAt(e.index+1)){i(e),r=67174408;break}if(8==(8&a)&&92===a)if(a=i(e),a>126)s+=d(a);else{const n=q(e,1024|t,a);if(n>=0)s+=d(n);else{if(-1!==n&&65536&t){s=void 0,a=A(e,a),a<0&&(r=67174408);break}C(e,n,1)}}else e.index=e.end&&n(e,15),a=i(e)}return i(e),e.tokenValue=s,e.tokenRaw=e.source.slice(o+1,e.index-(67174409===r?1:2)),r}function A(e,t){for(;96!==t;){switch(t){case 36:{const n=e.index+1;if(n=e.end&&n(e,15),t=i(e)}return t}function S(e,t){return e.index>=e.end&&n(e,0),e.index--,e.column--,E(e,t)}function D(e,t,o){let r=e.currentChar,a=0,l=9,c=64&o?0:1,u=0,d=0;if(64&o)a="."+L(e,r),r=e.currentChar,110===r&&n(e,11);else{if(48===r)if(r=i(e),120==(32|r)){for(o=136,r=i(e);4160&f[r];)95!==r?(d=1,a=16*a+p(r),u++,r=i(e)):(d||n(e,146),d=0,r=i(e));(u<1||!d)&&n(e,u<1?19:147)}else if(111==(32|r)){for(o=132,r=i(e);4128&f[r];)95!==r?(d=1,a=8*a+(r-48),u++,r=i(e)):(d||n(e,146),d=0,r=i(e));(u<1||!d)&&n(e,u<1?0:147)}else if(98==(32|r)){for(o=130,r=i(e);4224&f[r];)95!==r?(d=1,a=2*a+(r-48),u++,r=i(e)):(d||n(e,146),d=0,r=i(e));(u<1||!d)&&n(e,u<1?0:147)}else if(32&f[r])for(1024&t&&n(e,1),o=1;16&f[r];){if(512&f[r]){o=32,c=0;break}a=8*a+(r-48),r=i(e)}else 512&f[r]?(1024&t&&n(e,1),e.flags|=64,o=32):95===r&&n(e,0);if(48&o){if(c){for(;l>=0&&4112&f[r];)95!==r?(d=0,a=10*a+(r-48),r=i(e),--l):(r=i(e),(95===r||32&o)&&s(e.index,e.line,e.index+1,146),d=1);if(d&&s(e.index,e.line,e.index+1,147),l>=0&&!m(r)&&46!==r)return e.tokenValue=a,512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),134283266}a+=L(e,r),r=e.currentChar,46===r&&(95===i(e)&&n(e,0),o=64,a+="."+L(e,e.currentChar),r=e.currentChar)}}const k=e.index;let g=0;if(110===r&&128&o)g=1,r=i(e);else if(101==(32|r)){r=i(e),256&f[r]&&(r=i(e));const{index:t}=e;(16&f[r])<1&&n(e,10),a+=e.source.substring(k,t)+L(e,r),r=e.currentChar}return(e.index","(","{",".","...","}",")",";",",","[","]",":","?","'",'"',"","++","--","=","<<=",">>=",">>>=","**=","+=","-=","*=","/=","%=","^=","|=","&=","||=","&&=","??=","typeof","delete","void","!","~","+","-","in","instanceof","*","%","/","**","&&","||","===","!==","==","!=","<=",">=","<",">","<<",">>",">>>","&","|","^","var","let","const","break","case","catch","class","continue","debugger","default","do","else","export","extends","finally","for","function","if","import","new","return","super","switch","this","throw","try","while","with","implements","interface","package","private","protected","public","static","yield","as","async","await","constructor","get","set","from","of","enum","eval","arguments","escaped keyword","escaped future reserved keyword","reserved if strict","#","BigIntLiteral","??","?.","WhiteSpace","Illegal","LineTerminator","PrivateField","Template","@","target","meta","LineFeed","Escaped","JSXText"],T=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function R(e,t,n){for(;g[i(e)];);return e.tokenValue=e.source.slice(e.tokenPos,e.index),92!==e.currentChar&&e.currentChar<126?T[e.tokenValue]||208897:I(e,t,0,n)}function N(e,t){const o=B(e);return b(o)||n(e,4),e.tokenValue=d(o),I(e,t,1,4&f[o])}function I(e,t,o,r){let s=e.index;for(;e.index=2&&a<=11){const n=T[e.tokenValue];return void 0===n?208897:o?1024&t?209008===n&&0==(4196352&t)?n:36972===n||36864==(36864&n)?122:121:1073741824&t&&0==(8192&t)&&20480==(20480&n)?n:241773===n?1073741824&t?143483:2097152&t?121:n:209007===n&&1073741824&t?143483:36864==(36864&n)||209008===n&&0==(4194304&t)?n:121:n}return 208897}function U(e){return m(i(e))||n(e,93),131}function B(e){return 117!==e.source.charCodeAt(e.index+1)&&n(e,4),e.currentChar=e.source.charCodeAt(e.index+=2),function(e){let t=0;const o=e.currentChar;if(123===o){const n=e.index-2;for(;64&f[i(e)];)t=t<<4|p(e.currentChar),t>1114111&&s(n,e.line,e.index+1,101);return 125!==e.currentChar&&s(n,e.line,e.index-1,6),i(e),t}0==(64&f[o])&&n(e,6);const r=e.source.charCodeAt(e.index+1);0==(64&f[r])&&n(e,6);const a=e.source.charCodeAt(e.index+2);0==(64&f[a])&&n(e,6);const l=e.source.charCodeAt(e.index+3);0==(64&f[l])&&n(e,6);return t=p(o)<<12|p(r)<<8|p(a)<<4|p(l),e.currentChar=e.source.charCodeAt(e.index+=4),t}(e)}const O=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function G(e,t){if(e.flags=1^(1|e.flags),e.startPos=e.index,e.startColumn=e.column,e.startLine=e.line,e.token=F(e,t,0),e.onToken&&1048576!==e.token){const t={start:{line:e.linePos,column:e.colPos},end:{line:e.line,column:e.column}};e.onToken(function(e){switch(e){case 134283266:return"NumericLiteral";case 134283267:return"StringLiteral";case 86021:case 86022:return"BooleanLiteral";case 86023:return"NullLiteral";case 65540:return"RegularExpression";case 67174408:case 67174409:case 132:return"TemplateLiteral";default:return 143360==(143360&e)?"Identifier":4096==(4096&e)?"Keyword":"Punctuator"}}(e.token),e.tokenPos,e.index,t)}}function F(e,t,o){const r=0===e.index,s=e.source;let l=e.index,p=e.line,f=e.column;for(;e.index=e.end)return 8457014;const t=e.currentChar;return 61===t?(i(e),4194340):42!==t?8457014:61!==i(e)?8457273:(i(e),4194337)}case 8455497:return 61!==i(e)?8455497:(i(e),4194343);case 25233970:{i(e);const t=e.currentChar;return 43===t?(i(e),33619995):61===t?(i(e),4194338):25233970}case 25233971:{i(e);const a=e.currentChar;if(45===a){if(i(e),(1&o||r)&&62===e.currentChar){0==(256&t)&&n(e,108),i(e),o=P(e,s,o,t,3,l,p,f),l=e.tokenPos,p=e.linePos,f=e.colPos;continue}return 33619996}return 61===a?(i(e),4194339):25233971}case 8457016:if(i(e),e.index=48&&k<=57)return D(e,t,80);if(46===k){const t=e.index+1;if(t=48&&t<=57)))return i(e),67108991}return 22}}}else{if((8232^g)<=1){o=-5&o|1,u(e);continue}if(55296==(64512&g)||0!=(1&a[34816+(g>>>5)]>>>g))return 56320==(64512&g)&&(g=(1023&g)<<10|1023&g|65536,0==(1&a[0+(g>>>5)]>>>g)&&n(e,18,d(g)),e.index++,e.currentChar=g),e.column++,e.tokenValue="",I(e,t,0,0);if(160===(k=g)||65279===k||133===k||5760===k||k>=8192&&k<=8203||8239===k||8287===k||12288===k||8201===k||65519===k){i(e);continue}n(e,18,d(g))}}var k;return 1048576}const j={AElig:"Æ",AMP:"&",Aacute:"Á",Abreve:"Ă",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atilde:"Ã",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ETH:"Ð",Eacute:"É",Ecaron:"Ě",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"Í",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"â",acute:"´",acy:"а",aelig:"æ",af:"⁡",afr:"𝔞",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"ð",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"í",ic:"⁣",icirc:"î",icy:"и",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"ó",oast:"⊛",ocir:"⊚",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"ø",osol:"⊘",otilde:"õ",otimes:"⊗",otimesas:"⨶",ouml:"ö",ovbar:"⌽",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"þ",tilde:"˜",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"},H={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function J(e){return e.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g,(e=>{if("#"===e.charAt(1)){const t=e.charAt(2);return function(e){if(e>=55296&&e<=57343||e>1114111)return"�";e in H&&(e=H[e]);return String.fromCodePoint(e)}("X"===t||"x"===t?parseInt(e.slice(3),16):parseInt(e.slice(2),10))}return j[e.slice(1,-1)]||e}))}function M(e,t){return e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.token=8192&f[e.currentChar]?function(e,t){const o=e.currentChar;let r=i(e);const s=e.index;for(;r!==o;)e.index>=e.end&&n(e,14),r=i(e);r!==o&&n(e,14);e.tokenValue=e.source.slice(s,e.index),i(e),512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index));return 134283267}(e,t):F(e,t,0),e.token}function z(e,t){if(e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.index>=e.end)return e.token=1048576;switch(O[e.source.charCodeAt(e.index)]){case 8456258:i(e),47===e.currentChar?(i(e),e.token=25):e.token=8456258;break;case 2162700:i(e),e.token=2162700;break;default:{let n=0;for(;e.index0&&Z(e,t,209008);W(e,32768|t,67174411),o&&(o=ie(o,1));let c,u=null,d=null,p=0,f=null,k=86090===e.token||241739===e.token||86092===e.token;const{token:g,tokenPos:m,linePos:b,colPos:h}=e;k?241739===g?(f=tt(e,t,0),2240512&e.token?(8738868===e.token?1024&t&&n(e,64):f=oe(e,t,m,b,h,{type:"VariableDeclaration",kind:"let",declarations:Se(e,134217728|t,o,8,32)}),e.assignable=1):1024&t?n(e,64):(k=!1,e.assignable=1,f=Me(e,t,f,0,0,m,b,h),274549===e.token&&n(e,111))):(G(e,t),f=oe(e,t,m,b,h,86090===g?{type:"VariableDeclaration",kind:"var",declarations:Se(e,134217728|t,o,4,32)}:{type:"VariableDeclaration",kind:"const",declarations:Se(e,134217728|t,o,16,32)}),e.assignable=1):1074790417===g?l&&n(e,79):2097152==(2097152&g)?(f=2162700===g?ct(e,t,void 0,1,0,0,2,32,m,b,h):st(e,t,void 0,1,0,0,2,32,m,b,h),p=e.destructible,256&t&&64&p&&n(e,60),e.assignable=16&p?2:1,f=Me(e,134217728|t,f,0,0,e.tokenPos,e.linePos,e.colPos)):f=Je(e,134217728|t,1,0,1,m,b,h);if(262144==(262144&e.token)){if(274549===e.token){2&e.assignable&&n(e,77,l?"await":"of"),K(e,f),G(e,32768|t),c=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),W(e,32768|t,16);return oe(e,t,s,a,i,{type:"ForOfStatement",left:f,right:c,body:Ce(e,t,o,r),await:l})}2&e.assignable&&n(e,77,"in"),K(e,f),G(e,32768|t),l&&n(e,79),c=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos),W(e,32768|t,16);return oe(e,t,s,a,i,{type:"ForInStatement",body:Ce(e,t,o,r),left:f,right:c})}l&&n(e,79);k||(8&p&&1077936157!==e.token&&n(e,77,"loop"),f=Oe(e,134217728|t,0,0,m,b,h,f));18===e.token&&(f=Ue(e,t,0,e.tokenPos,e.linePos,e.colPos,f));W(e,32768|t,1074790417),1074790417!==e.token&&(u=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos));W(e,32768|t,1074790417),16!==e.token&&(d=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos));W(e,32768|t,16);const P=Ce(e,t,o,r);return oe(e,t,s,a,i,{type:"ForStatement",init:f,test:u,update:d,body:P})}(e,t,o,s,i,l,c);case 20564:return function(e,t,n,o,r,s,a){G(e,32768|t);const i=Ce(e,t,n,o);W(e,t,20580),W(e,32768|t,67174411);const l=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return W(e,32768|t,16),Z(e,t,1074790417),oe(e,t,r,s,a,{type:"DoWhileStatement",body:i,test:l})}(e,t,o,s,i,l,c);case 20580:return function(e,t,n,o,r,s,a){G(e,t),W(e,32768|t,67174411);const i=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);W(e,32768|t,16);const l=Ce(e,t,n,o);return oe(e,t,r,s,a,{type:"WhileStatement",test:i,body:l})}(e,t,o,s,i,l,c);case 86112:return function(e,t,o,r,s,a,i){G(e,t),W(e,32768|t,67174411);const l=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);W(e,t,16),W(e,t,2162700);const c=[];let u=0;o&&(o=ie(o,8));for(;1074790415!==e.token;){const{tokenPos:s,linePos:a,colPos:i}=e;let l=null;const d=[];for(Z(e,32768|t,20558)?l=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos):(W(e,32768|t,20563),u&&n(e,86),u=1),W(e,32768|t,21);20558!==e.token&&1074790415!==e.token&&20563!==e.token;)d.push(be(e,4096|t,o,2,{$:r}));c.push(oe(e,t,s,a,i,{type:"SwitchCase",test:l,consequent:d}))}return W(e,32768|t,1074790415),oe(e,t,s,a,i,{type:"SwitchStatement",discriminant:l,cases:c})}(e,t,o,s,i,l,c);case 1074790417:return function(e,t,n,o,r){return G(e,32768|t),oe(e,t,n,o,r,{type:"EmptyStatement"})}(e,t,i,l,c);case 2162700:return Pe(e,t,o?ie(o,2):o,s,i,l,c);case 86114:return function(e,t,o,r,s){G(e,32768|t),1&e.flags&&n(e,87);const a=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return _(e,32768|t),oe(e,t,o,r,s,{type:"ThrowStatement",argument:a})}(e,t,i,l,c);case 20557:return function(e,t,o,r,s,a){G(e,32768|t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=tt(e,32768|t,0),ne(e,o,r,0)||n(e,134,r)}else(135168&t)<1&&n(e,66);return _(e,32768|t),oe(e,t,r,s,a,{type:"BreakStatement",label:i})}(e,t,s,i,l,c);case 20561:return function(e,t,o,r,s,a){(131072&t)<1&&n(e,65);G(e,t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=tt(e,32768|t,0),ne(e,o,r,1)||n(e,134,r)}return _(e,32768|t),oe(e,t,r,s,a,{type:"ContinueStatement",label:i})}(e,t,s,i,l,c);case 20579:return function(e,t,o,r,s,a,i){G(e,32768|t);const l=o?ie(o,32):void 0,c=Pe(e,t,l,{$:r},e.tokenPos,e.linePos,e.colPos),{tokenPos:u,linePos:d,colPos:p}=e,f=Z(e,32768|t,20559)?function(e,t,o,r,s,a,i){let l=null,c=o;Z(e,t,67174411)&&(o&&(o=ie(o,4)),l=Et(e,t,o,2097152==(2097152&e.token)?256:512,0,e.tokenPos,e.linePos,e.colPos),18===e.token?n(e,83):1077936157===e.token&&n(e,84),W(e,32768|t,16),o&&(c=ie(o,64)));const u=Pe(e,t,c,{$:r},e.tokenPos,e.linePos,e.colPos);return oe(e,t,s,a,i,{type:"CatchClause",param:l,body:u})}(e,t,o,r,u,d,p):null;let k=null;if(20568===e.token){G(e,32768|t);k=Pe(e,t,l?ie(o,4):void 0,{$:r},e.tokenPos,e.linePos,e.colPos)}f||k||n(e,85);return oe(e,t,s,a,i,{type:"TryStatement",block:c,handler:f,finalizer:k})}(e,t,o,s,i,l,c);case 20581:return function(e,t,o,r,s,a,i){G(e,t),1024&t&&n(e,88);W(e,32768|t,67174411);const l=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);W(e,32768|t,16);const c=he(e,t,o,2,r,0,e.tokenPos,e.linePos,e.colPos);return oe(e,t,s,a,i,{type:"WithStatement",object:l,body:c})}(e,t,o,s,i,l,c);case 20562:return function(e,t,n,o,r){return G(e,32768|t),_(e,32768|t),oe(e,t,n,o,r,{type:"DebuggerStatement"})}(e,t,i,l,c);case 209007:return ve(e,t,o,r,s,0,i,l,c);case 20559:n(e,156);case 20568:n(e,157);case 86106:n(e,1024&t?73:(256&t)<1?75:74);case 86096:n(e,76);default:return function(e,t,o,r,s,a,i,l,c){const{tokenValue:u,token:d}=e;let p;switch(d){case 241739:p=tt(e,t,0),1024&t&&n(e,82),69271571===e.token&&n(e,81);break;default:p=Xe(e,t,2,0,1,0,0,1,e.tokenPos,e.linePos,e.colPos)}if(143360&d&&21===e.token)return xe(e,t,o,r,s,u,p,d,a,i,l,c);p=Me(e,t,p,0,0,i,l,c),p=Oe(e,t,0,0,i,l,c,p),18===e.token&&(p=Ue(e,t,0,i,l,c,p));return ye(e,t,p,i,l,c)}(e,t,o,r,s,a,i,l,c)}}function Pe(e,t,n,o,r,s,a){const i=[];for(W(e,32768|t,2162700);1074790415!==e.token;)i.push(be(e,t,n,2,{$:o}));return W(e,32768|t,1074790415),oe(e,t,r,s,a,{type:"BlockStatement",body:i})}function ye(e,t,n,o,r,s){return _(e,32768|t),oe(e,t,o,r,s,{type:"ExpressionStatement",expression:n})}function xe(e,t,o,r,s,a,i,l,c,u,d,p){Q(e,t,0,l,1),function(e,t,o){let r=t;for(;r;)r["$"+o]&&n(e,132,o),r=r.$;t["$"+o]=1}(e,s,a),G(e,32768|t);return oe(e,t,u,d,p,{type:"LabeledStatement",label:i,body:c&&(1024&t)<1&&256&t&&86106===e.token?ot(e,t,ie(o,2),r,0,0,0,e.tokenPos,e.linePos,e.colPos):he(e,t,o,r,s,c,e.tokenPos,e.linePos,e.colPos)})}function ve(e,t,o,r,s,a,i,l,c){const{token:u,tokenValue:d}=e;let p=tt(e,t,0);if(21===e.token)return xe(e,t,o,r,s,d,p,u,1,i,l,c);const f=1&e.flags;if(!f){if(86106===e.token)return a||n(e,119),ot(e,t,o,r,1,0,1,i,l,c);if(143360==(143360&e.token))return p=bt(e,t,1,i,l,c),18===e.token&&(p=Ue(e,t,0,i,l,c,p)),ye(e,t,p,i,l,c)}return 67174411===e.token?p=ht(e,t,p,1,1,0,f,i,l,c):(10===e.token&&(ke(e,t,u,1),p=pt(e,t,e.tokenValue,p,0,1,0,i,l,c)),e.assignable=1),p=Me(e,t,p,0,0,i,l,c),18===e.token&&(p=Ue(e,t,0,i,l,c,p)),p=Oe(e,t,0,0,i,l,c,p),e.assignable=1,ye(e,t,p,i,l,c)}function we(e,t,n,o,r,s,a){return 1074790417!==o&&(e.assignable=2,n=Me(e,t,n,0,0,r,s,a),1074790417!==e.token&&(n=Oe(e,t,0,0,r,s,a,n),18===e.token&&(n=Ue(e,t,0,r,s,a,n))),_(e,32768|t)),8&t&&"Literal"===n.type&&"string"==typeof n.value?oe(e,t,r,s,a,{type:"ExpressionStatement",expression:n,directive:n.raw.slice(1,-1)}):oe(e,t,r,s,a,{type:"ExpressionStatement",expression:n})}function qe(e,t,n,o,r,s,a){return 1024&t||(256&t)<1||86106!==e.token?he(e,t,n,0,{$:o},0,e.tokenPos,e.linePos,e.colPos):ot(e,t,ie(n,2),0,0,0,0,r,s,a)}function Ce(e,t,n,o){return he(e,134217728^(134217728|t)|131072,n,0,{loop:1,$:o},0,e.tokenPos,e.linePos,e.colPos)}function Ee(e,t,n,o,r,s,a,i){G(e,t);const l=Se(e,t,n,o,r);return _(e,32768|t),oe(e,t,s,a,i,{type:"VariableDeclaration",kind:8&o?"let":"const",declarations:l})}function Ae(e,t,n,o,r,s,a){G(e,t);const i=Se(e,t,n,4,o);return _(e,32768|t),oe(e,t,r,s,a,{type:"VariableDeclaration",kind:"var",declarations:i})}function Se(e,t,o,r,s){let a=1;const i=[De(e,t,o,r,s)];for(;Z(e,t,18);)a++,i.push(De(e,t,o,r,s));return a>1&&32&s&&262144&e.token&&n(e,58,V[255&e.token]),i}function De(e,t,o,s,a){const{token:i,tokenPos:l,linePos:c,colPos:u}=e;let d=null;const p=Et(e,t,o,s,a,l,c,u);return 1077936157===e.token?(G(e,32768|t),d=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),(32&a||(2097152&i)<1)&&(274549===e.token||8738868===e.token&&(2097152&i||(4&s)<1||1024&t))&&r(l,e.line,e.index-3,57,274549===e.token?"of":"in")):(16&s||(2097152&i)>0)&&262144!=(262144&e.token)&&n(e,56,16&s?"const":"destructuring"),oe(e,t,l,c,u,{type:"VariableDeclarator",id:p,init:d})}function Le(e,t,o){return fe(t,e.token)||n(e,114),537079808==(537079808&e.token)&&n(e,115),o&&ce(e,t,o,e.tokenValue,8,0),tt(e,t,0)}function Ve(e,t,n){const{tokenPos:o,linePos:s,colPos:a}=e;return G(e,t),W(e,t,77934),134217728==(134217728&e.token)&&r(o,e.line,e.index,28,V[255&e.token]),oe(e,t,o,s,a,{type:"ImportNamespaceSpecifier",local:Le(e,t,n)})}function Te(e,t,o,r){for(G(e,t);143360&e.token;){let{token:s,tokenValue:a,tokenPos:i,linePos:l,colPos:c}=e;const u=tt(e,t,0);let d;Z(e,t,77934)?(134217728==(134217728&e.token)||18===e.token?n(e,103):Q(e,t,16,e.token,0),a=e.tokenValue,d=tt(e,t,0)):(Q(e,t,16,s,0),d=u),o&&ce(e,t,o,a,8,0),r.push(oe(e,t,i,l,c,{type:"ImportSpecifier",local:d,imported:u})),1074790415!==e.token&&W(e,t,18)}return W(e,t,1074790415),r}function Re(e,t,n,o,r){let s=_e(e,t,oe(e,t,n,o,r,{type:"Identifier",name:"import"}),n,o,r);return s=Me(e,t,s,0,0,n,o,r),s=Oe(e,t,0,0,n,o,r,s),ye(e,t,s,n,o,r)}function Ne(e,t,n,o,r){let s=$e(e,t,0,n,o,r);return s=Me(e,t,s,0,0,n,o,r),ye(e,t,s,n,o,r)}function Ie(e,t,n,o,r,s,a,i){let l=Xe(e,t,2,0,n,o,r,1,s,a,i);return l=Me(e,t,l,r,0,s,a,i),Oe(e,t,r,0,s,a,i,l)}function Ue(e,t,n,o,r,s,a){const i=[a];for(;Z(e,32768|t,18);)i.push(Ie(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos));return oe(e,t,o,r,s,{type:"SequenceExpression",expressions:i})}function Be(e,t,n,o,r,s,a){const i=Ie(e,t,o,0,n,r,s,a);return 18===e.token?Ue(e,t,n,r,s,a,i):i}function Oe(e,t,o,r,s,a,i,l){const{token:c}=e;if(4194304==(4194304&c)){2&e.assignable&&n(e,24),(!r&&1077936157===c&&"ArrayExpression"===l.type||"ObjectExpression"===l.type)&&K(e,l),G(e,32768|t);const u=Ie(e,t,1,1,o,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,oe(e,t,s,a,i,r?{type:"AssignmentPattern",left:l,right:u}:{type:"AssignmentExpression",left:l,operator:V[255&c],right:u})}return 8454144==(8454144&c)&&(l=je(e,t,o,s,a,i,4,c,l)),Z(e,32768|t,22)&&(l=Fe(e,t,l,s,a,i)),l}function Ge(e,t,n,o,r,s,a,i){const{token:l}=e;G(e,32768|t);const c=Ie(e,t,1,1,n,e.tokenPos,e.linePos,e.colPos);return i=oe(e,t,r,s,a,o?{type:"AssignmentPattern",left:i,right:c}:{type:"AssignmentExpression",left:i,operator:V[255&l],right:c}),e.assignable=2,i}function Fe(e,t,n,o,r,s){const a=Ie(e,134217728^(134217728|t),1,0,0,e.tokenPos,e.linePos,e.colPos);W(e,32768|t,21),e.assignable=1;const i=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,oe(e,t,o,r,s,{type:"ConditionalExpression",test:n,consequent:a,alternate:i})}function je(e,t,o,r,s,a,i,l,c){const u=8738868&-((134217728&t)>0);let d,p;for(e.assignable=2;8454144&e.token&&(d=e.token,p=3840&d,(524288&d&&268435456&l||524288&l&&268435456&d)&&n(e,159),!(p+((8457273===d)<<8)-((u===d)<<12)<=i));)G(e,32768|t),c=oe(e,t,r,s,a,{type:524288&d||268435456&d?"LogicalExpression":"BinaryExpression",left:c,right:je(e,t,o,e.tokenPos,e.linePos,e.colPos,p,d,Je(e,t,0,o,1,e.tokenPos,e.linePos,e.colPos)),operator:V[255&d]});return 1077936157===e.token&&n(e,24),c}function He(e,t,s,a,i,l){const{tokenPos:c,linePos:u,colPos:d}=e;W(e,32768|t,2162700);const p=[],f=t;if(1074790415!==e.token){for(;134283267===e.token;){const{index:n,tokenPos:o,tokenValue:s,token:a}=e,i=nt(e,t);$(e,n,o,s)&&(t|=1024,128&e.flags&&r(e.index,e.line,e.tokenPos,63),64&e.flags&&r(e.index,e.line,e.tokenPos,8)),p.push(we(e,t,i,a,o,e.linePos,e.colPos))}1024&t&&(i&&(537079808==(537079808&i)&&n(e,115),36864==(36864&i)&&n(e,38)),512&e.flags&&n(e,115),256&e.flags&&n(e,114)),64&t&&s&&void 0!==l&&(1024&f)<1&&(8192&t)<1&&o(l)}for(e.flags=832^(832|e.flags),e.destructible=256^(256|e.destructible);1074790415!==e.token;)p.push(be(e,t,s,4,{}));return W(e,24&a?32768|t:t,1074790415),e.flags&=-193,1077936157===e.token&&n(e,24),oe(e,t,c,u,d,{type:"BlockStatement",body:p})}function Je(e,t,n,o,r,s,a,i){return Me(e,t,Xe(e,t,2,0,n,0,o,r,s,a,i),o,0,s,a,i)}function Me(e,t,o,r,s,a,i,l){if(33619968==(33619968&e.token)&&(1&e.flags)<1)o=function(e,t,o,r,s,a){2&e.assignable&&n(e,52);const{token:i}=e;return G(e,t),e.assignable=2,oe(e,t,r,s,a,{type:"UpdateExpression",argument:o,operator:V[255&i],prefix:!1})}(e,t,o,a,i,l);else if(67108864==(67108864&e.token)){switch(t=134225920^(134225920|t),e.token){case 67108877:G(e,1073741824|t),e.assignable=1;o=oe(e,t,a,i,l,{type:"MemberExpression",object:o,computed:!1,property:ze(e,t)});break;case 69271571:{let n=!1;2048==(2048&e.flags)&&(n=!0,e.flags=2048^(2048|e.flags)),G(e,32768|t);const{tokenPos:s,linePos:c,colPos:u}=e,d=Be(e,t,r,1,s,c,u);W(e,t,20),e.assignable=1,o=oe(e,t,a,i,l,{type:"MemberExpression",object:o,computed:!0,property:d}),n&&(e.flags|=2048);break}case 67174411:{if(1024==(1024&e.flags))return e.flags=1024^(1024|e.flags),o;let n=!1;2048==(2048&e.flags)&&(n=!0,e.flags=2048^(2048|e.flags));const s=et(e,t,r);e.assignable=2,o=oe(e,t,a,i,l,{type:"CallExpression",callee:o,arguments:s}),n&&(e.flags|=2048);break}case 67108991:G(e,t),e.flags|=2048,e.assignable=2,o=function(e,t,o,r,s,a){let i,l=!1;69271571!==e.token&&67174411!==e.token||2048==(2048&e.flags)&&(l=!0,e.flags=2048^(2048|e.flags));if(69271571===e.token){G(e,32768|t);const{tokenPos:n,linePos:l,colPos:c}=e,u=Be(e,t,0,1,n,l,c);W(e,t,20),e.assignable=2,i=oe(e,t,r,s,a,{type:"MemberExpression",object:o,computed:!0,optional:!0,property:u})}else if(67174411===e.token){const n=et(e,t,0);e.assignable=2,i=oe(e,t,r,s,a,{type:"CallExpression",callee:o,arguments:n,optional:!0})}else{(143360&e.token)<1&&n(e,154);const l=tt(e,t,0);e.assignable=2,i=oe(e,t,r,s,a,{type:"MemberExpression",object:o,computed:!1,optional:!0,property:l})}l&&(e.flags|=2048);return i}(e,t,o,a,i,l);break;default:2048==(2048&e.flags)&&n(e,160),e.assignable=2,o=oe(e,t,a,i,l,{type:"TaggedTemplateExpression",tag:o,quasi:67174408===e.token?We(e,65536|t):Ze(e,t,e.tokenPos,e.linePos,e.colPos)})}o=Me(e,t,o,0,1,a,i,l)}return 0===s&&2048==(2048&e.flags)&&(e.flags=2048^(2048|e.flags),o=oe(e,t,a,i,l,{type:"ChainExpression",expression:o})),o}function ze(e,t){return(143360&e.token)<1&&131!==e.token&&n(e,154),1&t&&131===e.token?qt(e,t,e.tokenPos,e.linePos,e.colPos):tt(e,t,0)}function Xe(e,t,o,s,a,i,l,c,u,d,p){if(143360==(143360&e.token)){switch(e.token){case 209008:return function(e,t,o,s,a,i,l){if(s&&(e.destructible|=128),4194304&t||2048&t&&8192&t){o&&n(e,0),8388608&t&&r(e.index,e.line,e.index,29),G(e,32768|t);const s=Je(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 8457273===e.token&&n(e,31),e.assignable=2,oe(e,t,a,i,l,{type:"AwaitExpression",argument:s})}return 2048&t&&n(e,95),dt(e,t,a,i,l)}(e,t,s,l,u,d,p);case 241773:return function(e,t,o,r,s,a,i){if(o&&(e.destructible|=256),2097152&t){G(e,32768|t),8388608&t&&n(e,30),r||n(e,24),22===e.token&&n(e,120);let o=null,l=!1;return(1&e.flags)<1&&(l=Z(e,32768|t,8457014),(77824&e.token||l)&&(o=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos))),e.assignable=2,oe(e,t,s,a,i,{type:"YieldExpression",argument:o,delegate:l})}return 1024&t&&n(e,94,"yield"),dt(e,t,s,a,i)}(e,t,l,a,u,d,p);case 209007:return function(e,t,o,r,s,a,i,l,c,u){const{token:d}=e,p=tt(e,t,a),{flags:f}=e;if((1&f)<1){if(86106===e.token)return rt(e,t,1,o,l,c,u);if(143360==(143360&e.token))return r||n(e,0),bt(e,t,s,l,c,u)}return i||67174411!==e.token?10===e.token?(ke(e,t,d,1),i&&n(e,48),pt(e,t,e.tokenValue,p,i,s,0,l,c,u)):p:ht(e,t,p,s,1,0,f,l,c,u)}(e,t,l,c,a,i,s,u,d,p)}const{token:f,tokenValue:k}=e,g=tt(e,65536|t,i);return 10===e.token?(c||n(e,0),ke(e,t,f,1),pt(e,t,k,g,s,a,0,u,d,p)):(16384&t&&537079928===f&&n(e,126),241739===f&&(1024&t&&n(e,109),24&o&&n(e,97)),e.assignable=1024&t&&537079808==(537079808&f)?2:1,g)}if(134217728==(134217728&e.token))return nt(e,t);switch(e.token){case 33619995:case 33619996:return function(e,t,o,r,s,a,i){o&&n(e,53),r||n(e,0);const{token:l}=e;G(e,32768|t);const c=Je(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 2&e.assignable&&n(e,52),e.assignable=2,oe(e,t,s,a,i,{type:"UpdateExpression",argument:c,operator:V[255&l],prefix:!0})}(e,t,s,c,u,d,p);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return function(e,t,o,r,s,a,i){o||n(e,0);const l=e.token;G(e,32768|t);const c=Je(e,t,0,i,1,e.tokenPos,e.linePos,e.colPos);var u;return 8457273===e.token&&n(e,31),1024&t&&16863278===l&&("Identifier"===c.type?n(e,117):(u=c).property&&"PrivateIdentifier"===u.property.type&&n(e,123)),e.assignable=2,oe(e,t,r,s,a,{type:"UnaryExpression",operator:V[255&l],argument:c,prefix:!0})}(e,t,c,u,d,p,l);case 86106:return rt(e,t,0,l,u,d,p);case 2162700:return function(e,t,o,r,s,a,i){const l=ct(e,t,void 0,o,r,0,2,0,s,a,i);256&t&&64&e.destructible&&n(e,60);8&e.destructible&&n(e,59);return l}(e,t,a?0:1,l,u,d,p);case 69271571:return function(e,t,o,r,s,a,i){const l=st(e,t,void 0,o,r,0,2,0,s,a,i);256&t&&64&e.destructible&&n(e,60);8&e.destructible&&n(e,59);return l}(e,t,a?0:1,l,u,d,p);case 67174411:return function(e,t,o,r,s,a,i,l){e.flags=128^(128|e.flags);const{tokenPos:c,linePos:u,colPos:d}=e;G(e,1073774592|t);const p=64&t?ie({parent:void 0,type:2},1024):void 0;if(Z(e,t=134217728^(134217728|t),16))return ft(e,t,p,[],o,0,a,i,l);let f,k=0;e.destructible&=-385;let g=[],m=0,b=0;const{tokenPos:h,linePos:P,colPos:y}=e;e.assignable=1;for(;16!==e.token;){const{token:o,tokenPos:a,linePos:i,colPos:l}=e;if(143360&o)p&&ce(e,t,p,e.tokenValue,1,0),f=Xe(e,t,r,0,1,0,1,1,a,i,l),16===e.token||18===e.token?2&e.assignable?(k|=16,b=1):537079808!=(537079808&o)&&36864!=(36864&o)||(b=1):(1077936157===e.token?b=1:k|=16,f=Me(e,t,f,1,0,a,i,l),16!==e.token&&18!==e.token&&(f=Oe(e,t,1,0,a,i,l,f)));else{if(2097152!=(2097152&o)){if(14===o){f=it(e,t,p,16,r,s,0,1,0,a,i,l),16&e.destructible&&n(e,71),b=1,!m||16!==e.token&&18!==e.token||g.push(f),k|=8;break}if(k|=16,f=Ie(e,t,1,0,1,a,i,l),!m||16!==e.token&&18!==e.token||g.push(f),18===e.token&&(m||(m=1,g=[f])),m){for(;Z(e,32768|t,18);)g.push(Ie(e,t,1,0,1,e.tokenPos,e.linePos,e.colPos));e.assignable=2,f=oe(e,t,h,P,y,{type:"SequenceExpression",expressions:g})}return W(e,t,16),e.destructible=k,f}f=2162700===o?ct(e,1073741824|t,p,0,1,0,r,s,a,i,l):st(e,1073741824|t,p,0,1,0,r,s,a,i,l),k|=e.destructible,b=1,e.assignable=2,16!==e.token&&18!==e.token&&(8&k&&n(e,118),f=Me(e,t,f,0,0,a,i,l),k|=16,16!==e.token&&18!==e.token&&(f=Oe(e,t,0,0,a,i,l,f)))}if(!m||16!==e.token&&18!==e.token||g.push(f),!Z(e,32768|t,18))break;if(m||(m=1,g=[f]),16===e.token){k|=8;break}}m&&(e.assignable=2,f=oe(e,t,h,P,y,{type:"SequenceExpression",expressions:g}));W(e,t,16),16&k&&8&k&&n(e,145);if(k|=256&e.destructible?256:0|128&e.destructible?128:0,10===e.token)return 48&k&&n(e,46),4196352&t&&128&k&&n(e,29),2098176&t&&256&k&&n(e,30),b&&(e.flags|=128),ft(e,t,p,m?g:[f],o,0,a,i,l);8&k&&n(e,139);return e.destructible=256^(256|e.destructible)|k,128&t?oe(e,t,c,u,d,{type:"ParenthesizedExpression",expression:f}):f}(e,t,a,1,0,u,d,p);case 86021:case 86022:case 86023:return function(e,t,n,o,r){const s=V[255&e.token],a=86023===e.token?null:"true"===s;return G(e,t),e.assignable=2,oe(e,t,n,o,r,512&t?{type:"Literal",value:a,raw:s}:{type:"Literal",value:a})}(e,t,u,d,p);case 86113:return function(e,t){const{tokenPos:n,linePos:o,colPos:r}=e;return G(e,t),e.assignable=2,oe(e,t,n,o,r,{type:"ThisExpression"})}(e,t);case 65540:return function(e,t,n,o,r){const{tokenRaw:s,tokenRegExp:a,tokenValue:i}=e;return G(e,t),e.assignable=2,oe(e,t,n,o,r,512&t?{type:"Literal",value:i,regex:a,raw:s}:{type:"Literal",value:i,regex:a})}(e,t,u,d,p);case 133:case 86096:return function(e,t,o,r,s,a){let i=null,l=null;const c=yt(e,t=16777216^(16778240|t));c.length&&(r=e.tokenPos,s=e.linePos,a=e.colPos);G(e,t),4096&e.token&&20567!==e.token&&(te(e,t,e.token)&&n(e,114),537079808==(537079808&e.token)&&n(e,115),i=tt(e,t,0));let u=t;Z(e,32768|t,20567)?(l=Je(e,t,0,o,0,e.tokenPos,e.linePos,e.colPos),u|=524288):u=524288^(524288|u);const d=vt(e,u,t,void 0,2,0,o);return e.assignable=2,oe(e,t,r,s,a,1&t?{type:"ClassExpression",id:i,superClass:l,decorators:c,body:d}:{type:"ClassExpression",id:i,superClass:l,body:d})}(e,t,l,u,d,p);case 86111:return function(e,t,o,r,s){switch(G(e,t),e.token){case 67108991:n(e,161);case 67174411:(524288&t)<1&&n(e,26),16384&t&&n(e,143),e.assignable=2;break;case 69271571:case 67108877:(262144&t)<1&&n(e,27),16384&t&&n(e,143),e.assignable=1;break;default:n(e,28,"super")}return oe(e,t,o,r,s,{type:"Super"})}(e,t,u,d,p);case 67174409:return Ze(e,t,u,d,p);case 67174408:return We(e,t);case 86109:return function(e,t,o,r,s,a){const i=tt(e,32768|t,0),{tokenPos:l,linePos:c,colPos:u}=e;if(Z(e,t,67108877)){if(67108864&t&&143494===e.token)return e.assignable=2,function(e,t,n,o,r,s){const a=tt(e,t,0);return oe(e,t,o,r,s,{type:"MetaProperty",meta:n,property:a})}(e,t,i,r,s,a);n(e,91)}e.assignable=2,16842752==(16842752&e.token)&&n(e,62,V[255&e.token]);const d=Xe(e,t,2,1,0,0,o,1,l,c,u);t=134217728^(134217728|t),67108991===e.token&&n(e,162);const p=mt(e,t,d,o,l,c,u);return e.assignable=2,oe(e,t,r,s,a,{type:"NewExpression",callee:p,arguments:67174411===e.token?et(e,t,o):[]})}(e,t,l,u,d,p);case 134283389:return Ye(e,t,u,d,p);case 131:return qt(e,t,u,d,p);case 86108:return function(e,t,o,r,s,a,i){let l=tt(e,t,0);if(67108877===e.token)return _e(e,t,l,s,a,i);o&&n(e,137);return l=$e(e,t,r,s,a,i),e.assignable=2,Me(e,t,l,r,0,s,a,i)}(e,t,s,l,u,d,p);case 8456258:if(16&t)return St(e,t,1,u,d,p);default:if(fe(t,e.token))return dt(e,t,u,d,p);n(e,28,V[255&e.token])}}function _e(e,t,o,r,s,a){return 0==(2048&t)&&n(e,163),G(e,t),143495!==e.token&&"meta"!==e.tokenValue&&n(e,28,V[255&e.token]),e.assignable=2,oe(e,t,r,s,a,{type:"MetaProperty",meta:o,property:tt(e,t,0)})}function $e(e,t,o,r,s,a){W(e,32768|t,67174411),14===e.token&&n(e,138);const i=Ie(e,t,1,0,o,e.tokenPos,e.linePos,e.colPos);return W(e,t,16),oe(e,t,r,s,a,{type:"ImportExpression",source:i})}function Ye(e,t,n,o,r){const{tokenRaw:s,tokenValue:a}=e;return G(e,t),e.assignable=2,oe(e,t,n,o,r,512&t?{type:"Literal",value:a,bigint:s.slice(0,-1),raw:s}:{type:"Literal",value:a,bigint:s.slice(0,-1)})}function Ze(e,t,n,o,r){e.assignable=2;const{tokenValue:s,tokenRaw:a,tokenPos:i,linePos:l,colPos:c}=e;W(e,t,67174409);return oe(e,t,n,o,r,{type:"TemplateLiteral",expressions:[],quasis:[Ke(e,t,s,a,i,l,c,!0)]})}function We(e,t){t=134217728^(134217728|t);const{tokenValue:o,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;W(e,32768|t,67174408);const l=[Ke(e,t,o,r,s,a,i,!1)],c=[Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos)];for(1074790415!==e.token&&n(e,80);67174409!==(e.token=S(e,t));){const{tokenValue:o,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;W(e,32768|t,67174408),l.push(Ke(e,t,o,r,s,a,i,!1)),c.push(Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos)),1074790415!==e.token&&n(e,80)}{const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;W(e,t,67174409),l.push(Ke(e,t,n,o,r,s,a,!0))}return oe(e,t,s,a,i,{type:"TemplateLiteral",expressions:c,quasis:l})}function Ke(e,t,n,o,r,s,a,i){const l=oe(e,t,r,s,a,{type:"TemplateElement",value:{cooked:n,raw:o},tail:i}),c=i?1:2;return 2&t&&(l.start+=1,l.range[0]+=1,l.end-=c,l.range[1]-=c),4&t&&(l.loc.start.column+=1,l.loc.end.column-=c),l}function Qe(e,t,n,o,r){W(e,32768|(t=134217728^(134217728|t)),14);const s=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=1,oe(e,t,n,o,r,{type:"SpreadElement",argument:s})}function et(e,t,n){G(e,32768|t);const o=[];if(16===e.token)return G(e,t),o;for(;16!==e.token&&(14===e.token?o.push(Qe(e,t,e.tokenPos,e.linePos,e.colPos)):o.push(Ie(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos)),18===e.token)&&(G(e,32768|t),16!==e.token););return W(e,t,16),o}function tt(e,t,n){const{tokenValue:o,tokenPos:r,linePos:s,colPos:a}=e;return G(e,t),oe(e,t,r,s,a,268435456&t?{type:"Identifier",name:o,pattern:1===n}:{type:"Identifier",name:o})}function nt(e,t){const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;return 134283389===e.token?Ye(e,t,r,s,a):(G(e,t),e.assignable=2,oe(e,t,r,s,a,512&t?{type:"Literal",value:n,raw:o}:{type:"Literal",value:n}))}function ot(e,t,o,r,s,a,i,l,c,u){G(e,32768|t);const d=s?Y(e,t,8457014):0;let p,f=null,k=o?{parent:void 0,type:2}:void 0;if(67174411===e.token)(1&a)<1&&n(e,37,"Function");else{const s=4&r&&((8192&t)<1||(2048&t)<1)?4:64;ee(e,t|(3072&t)<<11,e.token),o&&(4&s?ue(e,t,o,e.tokenValue,s):ce(e,t,o,e.tokenValue,s,r),k=ie(k,256),a&&2&a&&de(e,e.tokenValue)),p=e.token,143360&e.token?f=tt(e,t,0):n(e,28,V[255&e.token])}t=32243712^(32243712|t)|67108864|2*i+d<<21|(d?0:1073741824),o&&(k=ie(k,512));return oe(e,t,l,c,u,{type:"FunctionDeclaration",id:f,params:gt(e,8388608|t,k,0,1),body:He(e,143360^(143360|t),o?ie(k,128):k,8,p,o?k.scopeError:void 0),async:1===i,generator:1===d})}function rt(e,t,n,o,r,s,a){G(e,32768|t);const i=Y(e,t,8457014),l=2*n+i<<21;let c,u=null,d=64&t?{parent:void 0,type:2}:void 0;(176128&e.token)>0&&(ee(e,32243712^(32243712|t)|l,e.token),d&&(d=ie(d,256)),c=e.token,u=tt(e,t,0)),t=32243712^(32243712|t)|67108864|l|(i?0:1073741824),d&&(d=ie(d,512));const p=gt(e,8388608|t,d,o,1),f=He(e,-134377473&t,d?ie(d,128):d,0,c,void 0);return e.assignable=2,oe(e,t,r,s,a,{type:"FunctionExpression",id:u,params:p,body:f,async:1===n,generator:1===i})}function st(e,t,o,r,s,a,i,l,c,u,d){G(e,32768|t);const p=[];let f=0;for(t=134217728^(134217728|t);20!==e.token;)if(Z(e,32768|t,18))p.push(null);else{let r;const{token:c,tokenPos:u,linePos:d,colPos:k,tokenValue:g}=e;if(143360&c)if(r=Xe(e,t,i,0,1,0,s,1,u,d,k),1077936157===e.token){2&e.assignable&&n(e,24),G(e,32768|t),o&&le(e,t,o,g,i,l);const c=Ie(e,t,1,1,s,e.tokenPos,e.linePos,e.colPos);r=oe(e,t,u,d,k,a?{type:"AssignmentPattern",left:r,right:c}:{type:"AssignmentExpression",operator:"=",left:r,right:c}),f|=256&e.destructible?256:0|128&e.destructible?128:0}else 18===e.token||20===e.token?(2&e.assignable?f|=16:o&&le(e,t,o,g,i,l),f|=256&e.destructible?256:0|128&e.destructible?128:0):(f|=1&i?32:(2&i)<1?16:0,r=Me(e,t,r,s,0,u,d,k),18!==e.token&&20!==e.token?(1077936157!==e.token&&(f|=16),r=Oe(e,t,s,a,u,d,k,r)):1077936157!==e.token&&(f|=2&e.assignable?16:32));else 2097152&c?(r=2162700===e.token?ct(e,t,o,0,s,a,i,l,u,d,k):st(e,t,o,0,s,a,i,l,u,d,k),f|=e.destructible,e.assignable=16&e.destructible?2:1,18===e.token||20===e.token?2&e.assignable&&(f|=16):8&e.destructible?n(e,68):(r=Me(e,t,r,s,0,u,d,k),f=2&e.assignable?16:0,18!==e.token&&20!==e.token?r=Oe(e,t,s,a,u,d,k,r):1077936157!==e.token&&(f|=2&e.assignable?16:32))):14===c?(r=it(e,t,o,20,i,l,0,s,a,u,d,k),f|=e.destructible,18!==e.token&&20!==e.token&&n(e,28,V[255&e.token])):(r=Je(e,t,1,0,1,u,d,k),18!==e.token&&20!==e.token?(r=Oe(e,t,s,a,u,d,k,r),(3&i)<1&&67174411===c&&(f|=16)):2&e.assignable?f|=16:67174411===c&&(f|=1&e.assignable&&3&i?32:16));if(p.push(r),!Z(e,32768|t,18))break;if(20===e.token)break}W(e,t,20);const k=oe(e,t,c,u,d,{type:a?"ArrayPattern":"ArrayExpression",elements:p});return!r&&4194304&e.token?at(e,t,f,s,a,c,u,d,k):(e.destructible=f,k)}function at(e,t,o,r,s,a,i,l,c){1077936157!==e.token&&n(e,24),G(e,32768|t),16&o&&n(e,24),s||K(e,c);const{tokenPos:u,linePos:d,colPos:p}=e,f=Ie(e,t,1,1,r,u,d,p);return e.destructible=72^(72|o)|(128&e.destructible?128:0)|(256&e.destructible?256:0),oe(e,t,a,i,l,s?{type:"AssignmentPattern",left:c,right:f}:{type:"AssignmentExpression",left:c,operator:"=",right:f})}function it(e,t,o,r,s,a,i,l,c,u,d,p){G(e,32768|t);let f=null,k=0,{token:g,tokenValue:m,tokenPos:b,linePos:h,colPos:P}=e;if(143360&g)e.assignable=1,f=Xe(e,t,s,0,1,0,l,1,b,h,P),g=e.token,f=Me(e,t,f,l,0,b,h,P),18!==e.token&&e.token!==r&&(2&e.assignable&&1077936157===e.token&&n(e,68),k|=16,f=Oe(e,t,l,c,b,h,P,f)),2&e.assignable?k|=16:g===r||18===g?o&&le(e,t,o,m,s,a):k|=32,k|=128&e.destructible?128:0;else if(g===r)n(e,39);else{if(!(2097152&g)){k|=32,f=Je(e,t,1,l,1,e.tokenPos,e.linePos,e.colPos);const{token:o,tokenPos:s,linePos:a,colPos:i}=e;return 1077936157===o&&o!==r&&18!==o?(2&e.assignable&&n(e,24),f=Oe(e,t,l,c,s,a,i,f),k|=16):(18===o?k|=16:o!==r&&(f=Oe(e,t,l,c,s,a,i,f)),k|=1&e.assignable?32:16),e.destructible=k,e.token!==r&&18!==e.token&&n(e,155),oe(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}f=2162700===e.token?ct(e,t,o,1,l,c,s,a,b,h,P):st(e,t,o,1,l,c,s,a,b,h,P),g=e.token,1077936157!==g&&g!==r&&18!==g?(8&e.destructible&&n(e,68),f=Me(e,t,f,l,0,b,h,P),k|=2&e.assignable?16:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),f=Oe(e,t,l,c,b,h,P,f)):(8454144==(8454144&e.token)&&(f=je(e,t,1,b,h,P,4,g,f)),Z(e,32768|t,22)&&(f=Fe(e,t,f,b,h,P)),k|=2&e.assignable?16:32)):k|=1074790415===r&&1077936157!==g?16:e.destructible}if(e.token!==r)if(1&s&&(k|=i?16:32),Z(e,32768|t,1077936157)){16&k&&n(e,24),K(e,f);const o=Ie(e,t,1,1,l,e.tokenPos,e.linePos,e.colPos);f=oe(e,t,b,h,P,c?{type:"AssignmentPattern",left:f,right:o}:{type:"AssignmentExpression",left:f,operator:"=",right:o}),k=16}else k|=16;return e.destructible=k,oe(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}function lt(e,t,r,s,a,i,l){const c=(64&r)<1?31981568:14680064;let u=64&(t=(t|c)^c|(88&r)<<18|100925440)?ie({parent:void 0,type:2},512):void 0;const d=function(e,t,r,s,a,i){W(e,t,67174411);const l=[];if(e.flags=128^(128|e.flags),16===e.token)return 512&s&&n(e,35,"Setter","one",""),G(e,t),l;256&s&&n(e,35,"Getter","no","s");512&s&&14===e.token&&n(e,36);t=134217728^(134217728|t);let c=0,u=0;for(;18!==e.token;){let o=null;const{tokenPos:d,linePos:p,colPos:f}=e;if(143360&e.token?((1024&t)<1&&(36864==(36864&e.token)&&(e.flags|=256),537079808==(537079808&e.token)&&(e.flags|=512)),o=At(e,t,r,1|s,0,d,p,f)):(2162700===e.token?o=ct(e,t,r,1,i,1,a,0,d,p,f):69271571===e.token?o=st(e,t,r,1,i,1,a,0,d,p,f):14===e.token&&(o=it(e,t,r,16,a,0,0,i,1,d,p,f)),u=1,48&e.destructible&&n(e,47)),1077936157===e.token){G(e,32768|t),u=1;o=oe(e,t,d,p,f,{type:"AssignmentPattern",left:o,right:Ie(e,t,1,1,0,e.tokenPos,e.linePos,e.colPos)})}if(c++,l.push(o),!Z(e,t,18))break;if(16===e.token)break}512&s&&1!==c&&n(e,35,"Setter","one","");r&&void 0!==r.scopeError&&o(r.scopeError);u&&(e.flags|=128);return W(e,t,16),l}(e,8388608|t,u,r,1,s);u&&(u=ie(u,128));return oe(e,t,a,i,l,{type:"FunctionExpression",params:d,body:He(e,-134230017&t,u,0,void 0,void 0),async:(16&r)>0,generator:(8&r)>0,id:null})}function ct(e,t,o,s,a,i,l,c,u,d,p){G(e,t);const f=[];let k=0,g=0;for(t=134217728^(134217728|t);1074790415!==e.token;){const{token:s,tokenValue:u,linePos:d,colPos:p,tokenPos:m}=e;if(14===s)f.push(it(e,t,o,1074790415,l,c,0,a,i,m,d,p));else{let b,h=0,P=null;const y=e.token;if(143360&e.token||121===e.token)if(P=tt(e,t,0),18===e.token||1074790415===e.token||1077936157===e.token)if(h|=4,1024&t&&537079808==(537079808&s)?k|=16:Q(e,t,l,s,0),o&&le(e,t,o,u,l,c),Z(e,32768|t,1077936157)){k|=8;const n=Ie(e,t,1,1,a,e.tokenPos,e.linePos,e.colPos);k|=256&e.destructible?256:0|128&e.destructible?128:0,b=oe(e,t,m,d,p,{type:"AssignmentPattern",left:-2147483648&t?Object.assign({},P):P,right:n})}else k|=(209008===s?128:0)|(121===s?16:0),b=-2147483648&t?Object.assign({},P):P;else if(Z(e,32768|t,21)){const{tokenPos:r,linePos:d,colPos:p}=e;if("__proto__"===u&&g++,143360&e.token){const n=e.token,s=e.tokenValue;k|=121===y?16:0,b=Xe(e,t,l,0,1,0,a,1,r,d,p);const{token:u}=e;b=Me(e,t,b,a,0,r,d,p),18===e.token||1074790415===e.token?1077936157===u||1074790415===u||18===u?(k|=128&e.destructible?128:0,2&e.assignable?k|=16:o&&143360==(143360&n)&&le(e,t,o,s,l,c)):k|=1&e.assignable?32:16:4194304==(4194304&e.token)?(2&e.assignable?k|=16:1077936157!==u?k|=32:o&&le(e,t,o,s,l,c),b=Oe(e,t,a,i,r,d,p,b)):(k|=16,8454144==(8454144&e.token)&&(b=je(e,t,1,r,d,p,4,u,b)),Z(e,32768|t,22)&&(b=Fe(e,t,b,r,d,p)))}else 2097152==(2097152&e.token)?(b=69271571===e.token?st(e,t,o,0,a,i,l,c,r,d,p):ct(e,t,o,0,a,i,l,c,r,d,p),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&e.destructible?n(e,68):(b=Me(e,t,b,a,0,r,d,p),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=Ge(e,t,a,i,r,d,p,b):(8454144==(8454144&e.token)&&(b=je(e,t,1,r,d,p,4,s,b)),Z(e,32768|t,22)&&(b=Fe(e,t,b,r,d,p)),k|=2&e.assignable?16:32))):(b=Je(e,t,1,a,1,r,d,p),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=Me(e,t,b,a,0,r,d,p),k=2&e.assignable?16:0,18!==e.token&&1074790415!==s&&(1077936157!==e.token&&(k|=16),b=Oe(e,t,a,i,r,d,p,b))))}else 69271571===e.token?(k|=16,209007===s&&(h|=16),h|=2|(12402===s?256:12403===s?512:1),P=ut(e,t,a),k|=e.assignable,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):143360&e.token?(k|=16,121===s&&n(e,92),209007===s&&(1&e.flags&&n(e,128),h|=16),P=tt(e,t,0),h|=12402===s?256:12403===s?512:1,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):67174411===e.token?(k|=16,h|=1,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):8457014===e.token?(k|=16,12402===s||12403===s?n(e,40):143483===s&&n(e,92),G(e,t),h|=9|(209007===s?16:0),143360&e.token?P=tt(e,t,0):134217728==(134217728&e.token)?P=nt(e,t):69271571===e.token?(h|=2,P=ut(e,t,a),k|=e.assignable):n(e,28,V[255&e.token]),b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):134217728==(134217728&e.token)?(209007===s&&(h|=16),h|=12402===s?256:12403===s?512:1,k|=16,P=nt(e,t),b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):n(e,129);else if(134217728==(134217728&e.token))if(P=nt(e,t),21===e.token){W(e,32768|t,21);const{tokenPos:n,linePos:r,colPos:d}=e;if("__proto__"===u&&g++,143360&e.token){b=Xe(e,t,l,0,1,0,a,1,n,r,d);const{token:s,tokenValue:u}=e;b=Me(e,t,b,a,0,n,r,d),18===e.token||1074790415===e.token?1077936157===s||1074790415===s||18===s?2&e.assignable?k|=16:o&&le(e,t,o,u,l,c):k|=1&e.assignable?32:16:1077936157===e.token?(2&e.assignable&&(k|=16),b=Oe(e,t,a,i,n,r,d,b)):(k|=16,b=Oe(e,t,a,i,n,r,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?st(e,t,o,0,a,i,l,c,n,r,d):ct(e,t,o,0,a,i,l,c,n,r,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8!=(8&e.destructible)&&(b=Me(e,t,b,a,0,n,r,d),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=Ge(e,t,a,i,n,r,d,b):(8454144==(8454144&e.token)&&(b=je(e,t,1,n,r,d,4,s,b)),Z(e,32768|t,22)&&(b=Fe(e,t,b,n,r,d)),k|=2&e.assignable?16:32))):(b=Je(e,t,1,0,1,n,r,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=Me(e,t,b,a,0,n,r,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Oe(e,t,a,i,n,r,d,b))))}else 67174411===e.token?(h|=1,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos),k=16|e.assignable):n(e,130);else if(69271571===e.token)if(P=ut(e,t,a),k|=256&e.destructible?256:0,h|=2,21===e.token){G(e,32768|t);const{tokenPos:r,linePos:u,colPos:d,tokenValue:p,token:f}=e;if(143360&e.token){b=Xe(e,t,l,0,1,0,a,1,r,u,d);const{token:n}=e;b=Me(e,t,b,a,0,r,u,d),4194304==(4194304&e.token)?(k|=2&e.assignable?16:1077936157===n?0:32,b=Ge(e,t,a,i,r,u,d,b)):18===e.token||1074790415===e.token?1077936157===n||1074790415===n||18===n?2&e.assignable?k|=16:o&&143360==(143360&f)&&le(e,t,o,p,l,c):k|=1&e.assignable?32:16:(k|=16,b=Oe(e,t,a,i,r,u,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?st(e,t,o,0,a,i,l,c,r,u,d):ct(e,t,o,0,a,i,l,c,r,u,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&k?n(e,59):(b=Me(e,t,b,a,0,r,u,d),k=2&e.assignable?16|k:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,r,u,d,b)):(8454144==(8454144&e.token)&&(b=je(e,t,1,r,u,d,4,s,b)),Z(e,32768|t,22)&&(b=Fe(e,t,b,r,u,d)),k|=2&e.assignable?16:32))):(b=Je(e,t,1,0,1,r,u,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=Me(e,t,b,a,0,r,u,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Oe(e,t,a,i,r,u,d,b))))}else 67174411===e.token?(h|=1,b=lt(e,t,h,a,e.tokenPos,d,p),k=16):n(e,41);else if(8457014===s)if(W(e,32768|t,8457014),h|=8,143360&e.token){const{token:n,line:o,index:s}=e;P=tt(e,t,0),h|=1,67174411===e.token?(k|=16,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):r(s,o,s,209007===n?43:12402===n||12403===e.token?42:44,V[255&n])}else 134217728==(134217728&e.token)?(k|=16,P=nt(e,t),h|=1,b=lt(e,t,h,a,m,d,p)):69271571===e.token?(k|=16,h|=3,P=ut(e,t,a),b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):n(e,122);else n(e,28,V[255&s]);k|=128&e.destructible?128:0,e.destructible=k,f.push(oe(e,t,m,d,p,{type:"Property",key:P,value:b,kind:768&h?512&h?"set":"get":"init",computed:(2&h)>0,method:(1&h)>0,shorthand:(4&h)>0}))}if(k|=e.destructible,18!==e.token)break;G(e,t)}W(e,t,1074790415),g>1&&(k|=64);const m=oe(e,t,u,d,p,{type:i?"ObjectPattern":"ObjectExpression",properties:f});return!s&&4194304&e.token?at(e,t,k,a,i,u,d,p,m):(e.destructible=k,m)}function ut(e,t,n){G(e,32768|t);const o=Ie(e,134217728^(134217728|t),1,0,n,e.tokenPos,e.linePos,e.colPos);return W(e,t,20),o}function dt(e,t,n,o,r){const{tokenValue:s}=e,a=tt(e,t,0);if(e.assignable=1,10===e.token){let i;return 64&t&&(i=se(e,t,s)),e.flags=128^(128|e.flags),kt(e,t,i,[a],0,n,o,r)}return a}function pt(e,t,o,r,s,a,i,l,c,u){a||n(e,54),s&&n(e,48),e.flags&=-129;return kt(e,t,64&t?se(e,t,o):void 0,[r],i,l,c,u)}function ft(e,t,o,r,s,a,i,l,c){s||n(e,54);for(let t=0;t0&&"constructor"===e.tokenValue&&n(e,106),1074790415===e.token&&n(e,105),Z(e,t,1074790417)?a>0&&n(e,116):d.push(wt(e,t,r,o,s,p,0,i,e.tokenPos,e.linePos,e.colPos))}return W(e,8&a?32768|t:t,1074790415),oe(e,t,l,c,u,{type:"ClassBody",body:d})}function wt(e,t,o,r,s,a,i,l,c,u,d){let p=i?32:0,f=null;const{token:k,tokenPos:g,linePos:m,colPos:b}=e;if(176128&k)switch(f=tt(e,t,0),k){case 36972:if(!i&&67174411!==e.token)return wt(e,t,o,r,s,a,1,l,c,u,d);break;case 209007:if(67174411!==e.token&&(1&e.flags)<1){if(1&t&&1073741824==(1073741824&e.token))return Ct(e,t,f,p,a,g,m,b);p|=16|(Y(e,t,8457014)?8:0)}break;case 12402:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Ct(e,t,f,p,a,g,m,b);p|=256}break;case 12403:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Ct(e,t,f,p,a,g,m,b);p|=512}}else 69271571===k?(p|=2,f=ut(e,r,l)):134217728==(134217728&k)?f=nt(e,t):8457014===k?(p|=8,G(e,t)):1&t&&131===e.token?(p|=4096,f=qt(e,t,g,m,b),t|=16384):1&t&&1073741824==(1073741824&e.token)?(p|=128,t|=16384):122===k?(f=tt(e,t,0),67174411!==e.token&&n(e,28,V[255&e.token])):n(e,28,V[255&e.token]);if(792&p&&(143360&e.token?f=tt(e,t,0):134217728==(134217728&e.token)?f=nt(e,t):69271571===e.token?(p|=2,f=ut(e,t,0)):122===e.token?f=tt(e,t,0):1&t&&131===e.token?(p|=4096,f=qt(e,t,g,m,b)):n(e,131)),(2&p)<1&&("constructor"===e.tokenValue?(1073741824==(1073741824&e.token)?n(e,125):(32&p)<1&&67174411===e.token&&(920&p?n(e,50,"accessor"):(524288&t)<1&&(32&e.flags?n(e,51):e.flags|=32)),p|=64):(4096&p)<1&&824&p&&"prototype"===e.tokenValue&&n(e,49)),1&t&&67174411!==e.token)return Ct(e,t,f,p,a,g,m,b);const h=lt(e,t,p,l,e.tokenPos,e.linePos,e.colPos);return oe(e,t,c,u,d,1&t?{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,decorators:a,value:h}:{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,value:h})}function qt(e,t,o,r,s){G(e,t);const{tokenValue:a}=e;return"constructor"===a&&n(e,124),G(e,t),oe(e,t,o,r,s,{type:"PrivateIdentifier",name:a})}function Ct(e,t,o,r,s,a,i,l){let c=null;if(8&r&&n(e,0),1077936157===e.token){G(e,32768|t);const{tokenPos:o,linePos:r,colPos:s}=e;537079928===e.token&&n(e,115),c=Xe(e,16384|t,2,0,1,0,0,1,o,r,s),1073741824!=(1073741824&e.token)&&(c=Me(e,16384|t,c,0,0,o,r,s),c=Oe(e,16384|t,0,0,o,r,s,c),18===e.token&&(c=Ue(e,t,0,a,i,l,c)))}return oe(e,t,a,i,l,{type:"PropertyDefinition",key:o,value:c,static:(32&r)>0,computed:(2&r)>0,decorators:s})}function Et(e,t,o,r,s,a,i,l){if(143360&e.token)return At(e,t,o,r,s,a,i,l);2097152!=(2097152&e.token)&&n(e,28,V[255&e.token]);const c=69271571===e.token?st(e,t,o,1,0,1,r,s,a,i,l):ct(e,t,o,1,0,1,r,s,a,i,l);return 16&e.destructible&&n(e,47),32&e.destructible&&n(e,47),c}function At(e,t,o,r,s,a,i,l){const{tokenValue:c,token:u}=e;return 1024&t&&(537079808==(537079808&u)?n(e,115):36864==(36864&u)&&n(e,114)),20480==(20480&u)&&n(e,99),2099200&t&&241773===u&&n(e,30),241739===u&&24&r&&n(e,97),4196352&t&&209008===u&&n(e,95),G(e,t),o&&le(e,t,o,c,r,s),oe(e,t,a,i,l,{type:"Identifier",name:c})}function St(e,t,o,r,s,a){if(G(e,t),8456259===e.token)return oe(e,t,r,s,a,{type:"JSXFragment",openingFragment:Dt(e,t,r,s,a),children:Vt(e,t),closingFragment:Lt(e,t,o,e.tokenPos,e.linePos,e.colPos)});let i=null,l=[];const c=function(e,t,o,r,s,a){143360!=(143360&e.token)&&4096!=(4096&e.token)&&n(e,0);const i=Rt(e,t,e.tokenPos,e.linePos,e.colPos),l=function(e,t){const n=[];for(;8457016!==e.token&&8456259!==e.token&&1048576!==e.token;)n.push(It(e,t,e.tokenPos,e.linePos,e.colPos));return n}(e,t),c=8457016===e.token;8456259===e.token?z(e,t):(W(e,t,8457016),o?W(e,t,8456259):z(e,t));return oe(e,t,r,s,a,{type:"JSXOpeningElement",name:i,attributes:l,selfClosing:c})}(e,t,o,r,s,a);if(!c.selfClosing){l=Vt(e,t),i=function(e,t,n,o,r,s){W(e,t,25);const a=Rt(e,t,e.tokenPos,e.linePos,e.colPos);n?W(e,t,8456259):e.token=z(e,t);return oe(e,t,o,r,s,{type:"JSXClosingElement",name:a})}(e,t,o,e.tokenPos,e.linePos,e.colPos);const r=re(i.name);re(c.name)!==r&&n(e,149,r)}return oe(e,t,r,s,a,{type:"JSXElement",children:l,openingElement:c,closingElement:i})}function Dt(e,t,n,o,r){return z(e,t),oe(e,t,n,o,r,{type:"JSXOpeningFragment"})}function Lt(e,t,n,o,r,s){return W(e,t,25),W(e,t,8456259),oe(e,t,o,r,s,{type:"JSXClosingFragment"})}function Vt(e,t){const n=[];for(;25!==e.token;)e.index=e.tokenPos=e.startPos,e.column=e.colPos=e.startColumn,e.line=e.linePos=e.startLine,z(e,t),n.push(Tt(e,t,e.tokenPos,e.linePos,e.colPos));return n}function Tt(e,t,o,r,s){return 138===e.token?function(e,t,n,o,r){z(e,t);const s={type:"JSXText",value:e.tokenValue};512&t&&(s.raw=e.tokenRaw);return oe(e,t,n,o,r,s)}(e,t,o,r,s):2162700===e.token?Bt(e,t,0,0,o,r,s):8456258===e.token?St(e,t,0,o,r,s):void n(e,0)}function Rt(e,t,n,o,r){X(e);let s=Ot(e,t,n,o,r);if(21===e.token)return Ut(e,t,s,n,o,r);for(;Z(e,t,67108877);)X(e),s=Nt(e,t,s,n,o,r);return s}function Nt(e,t,n,o,r,s){return oe(e,t,o,r,s,{type:"JSXMemberExpression",object:n,property:Ot(e,t,e.tokenPos,e.linePos,e.colPos)})}function It(e,t,o,r,s){if(2162700===e.token)return function(e,t,n,o,r){G(e,t),W(e,t,14);const s=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return W(e,t,1074790415),oe(e,t,n,o,r,{type:"JSXSpreadAttribute",argument:s})}(e,t,o,r,s);X(e);let a=null,i=Ot(e,t,o,r,s);if(21===e.token&&(i=Ut(e,t,i,o,r,s)),1077936157===e.token){const o=M(e,t),{tokenPos:r,linePos:s,colPos:i}=e;switch(o){case 134283267:a=nt(e,t);break;case 8456258:a=St(e,t,1,r,s,i);break;case 2162700:a=Bt(e,t,1,1,r,s,i);break;default:n(e,148)}}return oe(e,t,o,r,s,{type:"JSXAttribute",value:a,name:i})}function Ut(e,t,n,o,r,s){W(e,t,21);return oe(e,t,o,r,s,{type:"JSXNamespacedName",namespace:n,name:Ot(e,t,e.tokenPos,e.linePos,e.colPos)})}function Bt(e,t,o,r,s,a,i){G(e,t);const{tokenPos:l,linePos:c,colPos:u}=e;if(14===e.token)return function(e,t,n,o,r){W(e,t,14);const s=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return W(e,t,1074790415),oe(e,t,n,o,r,{type:"JSXSpreadChild",expression:s})}(e,t,l,c,u);let d=null;return 1074790415===e.token?(r&&n(e,151),d=function(e,t,n,o,r){return e.startPos=e.tokenPos,e.startLine=e.linePos,e.startColumn=e.colPos,oe(e,t,n,o,r,{type:"JSXEmptyExpression"})}(e,t,e.startPos,e.startLine,e.startColumn)):d=Ie(e,t,1,0,0,l,c,u),o?W(e,t,1074790415):z(e,t),oe(e,t,s,a,i,{type:"JSXExpressionContainer",expression:d})}function Ot(e,t,n,o,r){const{tokenValue:s}=e;return G(e,t),oe(e,t,n,o,r,{type:"JSXIdentifier",name:s})}var Gt=Object.freeze({__proto__:null});const Ft="4.2.0";function jt(e,t){return ge(e,t,0)}function Ht(e,t){return ge(e,t,3072)}function Jt(e,t){return ge(e,t,0)}export{Gt as ESTree,Jt as parse,Ht as parseModule,jt as parseScript,Ft as version}; diff --git a/node_modules/meriyah/dist/meriyah.iife.js b/node_modules/meriyah/dist/meriyah.iife.js new file mode 100644 index 0000000..5a57cde --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.iife.js @@ -0,0 +1,8795 @@ +var meriyah = (function (exports) { + 'use strict'; + + const errorMessages = { + [0]: 'Unexpected token', + [28]: "Unexpected token: '%0'", + [1]: 'Octal escape sequences are not allowed in strict mode', + [2]: 'Octal escape sequences are not allowed in template strings', + [3]: 'Unexpected token `#`', + [4]: 'Illegal Unicode escape sequence', + [5]: 'Invalid code point %0', + [6]: 'Invalid hexadecimal escape sequence', + [8]: 'Octal literals are not allowed in strict mode', + [7]: 'Decimal integer literals with a leading zero are forbidden in strict mode', + [9]: 'Expected number in radix %0', + [145]: 'Invalid left-hand side assignment to a destructible right-hand side', + [10]: 'Non-number found after exponent indicator', + [11]: 'Invalid BigIntLiteral', + [12]: 'No identifiers allowed directly after numeric literal', + [13]: 'Escapes \\8 or \\9 are not syntactically valid escapes', + [14]: 'Unterminated string literal', + [15]: 'Unterminated template literal', + [16]: 'Multiline comment was not closed properly', + [17]: 'The identifier contained dynamic unicode escape that was not closed', + [18]: "Illegal character '%0'", + [19]: 'Missing hexadecimal digits', + [20]: 'Invalid implicit octal', + [21]: 'Invalid line break in string literal', + [22]: 'Only unicode escapes are legal in identifier names', + [23]: "Expected '%0'", + [24]: 'Invalid left-hand side in assignment', + [25]: 'Invalid left-hand side in async arrow', + [26]: 'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass', + [27]: 'Member access on super must be in a method', + [29]: 'Await expression not allowed in formal parameter', + [30]: 'Yield expression not allowed in formal parameter', + [92]: "Unexpected token: 'escaped keyword'", + [31]: 'Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses', + [119]: 'Async functions can only be declared at the top level or inside a block', + [32]: 'Unterminated regular expression', + [33]: 'Unexpected regular expression flag', + [34]: "Duplicate regular expression flag '%0'", + [35]: '%0 functions must have exactly %1 argument%2', + [36]: 'Setter function argument must not be a rest parameter', + [37]: '%0 declaration must have a name in this context', + [38]: 'Function name may not contain any reserved words or be eval or arguments in strict mode', + [39]: 'The rest operator is missing an argument', + [40]: 'A getter cannot be a generator', + [41]: 'A computed property name must be followed by a colon or paren', + [130]: 'Object literal keys that are strings or numbers must be a method or have a colon', + [43]: 'Found `* async x(){}` but this should be `async * x(){}`', + [42]: 'Getters and setters can not be generators', + [44]: "'%0' can not be generator method", + [45]: "No line break is allowed after '=>'", + [46]: 'The left-hand side of the arrow can only be destructed through assignment', + [47]: 'The binding declaration is not destructible', + [48]: 'Async arrow can not be followed by new expression', + [49]: "Classes may not have a static property named 'prototype'", + [50]: 'Class constructor may not be a %0', + [51]: 'Duplicate constructor method in class', + [52]: 'Invalid increment/decrement operand', + [53]: 'Invalid use of `new` keyword on an increment/decrement expression', + [54]: '`=>` is an invalid assignment target', + [55]: 'Rest element may not have a trailing comma', + [56]: 'Missing initializer in %0 declaration', + [57]: "'for-%0' loop head declarations can not have an initializer", + [58]: 'Invalid left-hand side in for-%0 loop: Must have a single binding', + [59]: 'Invalid shorthand property initializer', + [60]: 'Property name __proto__ appears more than once in object literal', + [61]: 'Let is disallowed as a lexically bound name', + [62]: "Invalid use of '%0' inside new expression", + [63]: "Illegal 'use strict' directive in function with non-simple parameter list", + [64]: 'Identifier "let" disallowed as left-hand side expression in strict mode', + [65]: 'Illegal continue statement', + [66]: 'Illegal break statement', + [67]: 'Cannot have `let[...]` as a var name in strict mode', + [68]: 'Invalid destructuring assignment target', + [69]: 'Rest parameter may not have a default initializer', + [70]: 'The rest argument must the be last parameter', + [71]: 'Invalid rest argument', + [73]: 'In strict mode code, functions can only be declared at top level or inside a block', + [74]: 'In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement', + [75]: 'Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement', + [76]: "Class declaration can't appear in single-statement context", + [77]: 'Invalid left-hand side in for-%0', + [78]: 'Invalid assignment in for-%0', + [79]: 'for await (... of ...) is only valid in async functions and async generators', + [80]: 'The first token after the template expression should be a continuation of the template', + [82]: '`let` declaration not allowed here and `let` cannot be a regular var name in strict mode', + [81]: '`let \n [` is a restricted production at the start of a statement', + [83]: 'Catch clause requires exactly one parameter, not more (and no trailing comma)', + [84]: 'Catch clause parameter does not support default values', + [85]: 'Missing catch or finally after try', + [86]: 'More than one default clause in switch statement', + [87]: 'Illegal newline after throw', + [88]: 'Strict mode code may not include a with statement', + [89]: 'Illegal return statement', + [90]: 'The left hand side of the for-header binding declaration is not destructible', + [91]: 'new.target only allowed within functions', + [93]: "'#' not followed by identifier", + [99]: 'Invalid keyword', + [98]: "Can not use 'let' as a class name", + [97]: "'A lexical declaration can't define a 'let' binding", + [96]: 'Can not use `let` as variable name in strict mode', + [94]: "'%0' may not be used as an identifier in this context", + [95]: 'Await is only valid in async functions', + [100]: 'The %0 keyword can only be used with the module goal', + [101]: 'Unicode codepoint must not be greater than 0x10FFFF', + [102]: '%0 source must be string', + [103]: 'Only a identifier can be used to indicate alias', + [104]: "Only '*' or '{...}' can be imported after default", + [105]: 'Trailing decorator may be followed by method', + [106]: "Decorators can't be used with a constructor", + [108]: 'HTML comments are only allowed with web compatibility (Annex B)', + [109]: "The identifier 'let' must not be in expression position in strict mode", + [110]: 'Cannot assign to `eval` and `arguments` in strict mode', + [111]: "The left-hand side of a for-of loop may not start with 'let'", + [112]: 'Block body arrows can not be immediately invoked without a group', + [113]: 'Block body arrows can not be immediately accessed without a group', + [114]: 'Unexpected strict mode reserved word', + [115]: 'Unexpected eval or arguments in strict mode', + [116]: 'Decorators must not be followed by a semicolon', + [117]: 'Calling delete on expression not allowed in strict mode', + [118]: 'Pattern can not have a tail', + [120]: 'Can not have a `yield` expression on the left side of a ternary', + [121]: 'An arrow function can not have a postfix update operator', + [122]: 'Invalid object literal key character after generator star', + [123]: 'Private fields can not be deleted', + [125]: 'Classes may not have a field called constructor', + [124]: 'Classes may not have a private element named constructor', + [126]: 'A class field initializer may not contain arguments', + [127]: 'Generators can only be declared at the top level or inside a block', + [128]: 'Async methods are a restricted production and cannot have a newline following it', + [129]: 'Unexpected character after object literal property name', + [131]: 'Invalid key token', + [132]: "Label '%0' has already been declared", + [133]: 'continue statement must be nested within an iteration statement', + [134]: "Undefined label '%0'", + [135]: 'Trailing comma is disallowed inside import(...) arguments', + [136]: 'import() requires exactly one argument', + [137]: 'Cannot use new with import(...)', + [138]: '... is not allowed in import()', + [139]: "Expected '=>'", + [140]: "Duplicate binding '%0'", + [141]: "Cannot export a duplicate name '%0'", + [144]: 'Duplicate %0 for-binding', + [142]: "Exported binding '%0' needs to refer to a top-level declared variable", + [143]: 'Unexpected private field', + [147]: 'Numeric separators are not allowed at the end of numeric literals', + [146]: 'Only one underscore is allowed as numeric separator', + [148]: 'JSX value should be either an expression or a quoted JSX text', + [149]: 'Expected corresponding JSX closing tag for %0', + [150]: 'Adjacent JSX elements must be wrapped in an enclosing tag', + [151]: "JSX attributes must only be assigned a non-empty 'expression'", + [152]: "'%0' has already been declared", + [153]: "'%0' shadowed a catch clause binding", + [154]: 'Dot property must be an identifier', + [155]: 'Encountered invalid input after spread/rest argument', + [156]: 'Catch without try', + [157]: 'Finally without try', + [158]: 'Expected corresponding closing tag for JSX fragment', + [159]: 'Coalescing and logical operators used together in the same expression must be disambiguated with parentheses', + [160]: 'Invalid tagged template on optional chain', + [161]: 'Invalid optional chain from super property', + [162]: 'Invalid optional chain from new expression', + [163]: 'Cannot use "import.meta" outside a module', + [164]: 'Leading decorators must be attached to a class declaration' + }; + class ParseError extends SyntaxError { + constructor(startindex, line, column, type, ...params) { + const message = '[' + line + ':' + column + ']: ' + errorMessages[type].replace(/%(\d+)/g, (_, i) => params[i]); + super(`${message}`); + this.index = startindex; + this.line = line; + this.column = column; + this.description = message; + this.loc = { + line, + column + }; + } + } + function report(parser, type, ...params) { + throw new ParseError(parser.index, parser.line, parser.column, type, ...params); + } + function reportScopeError(scope) { + throw new ParseError(scope.index, scope.line, scope.column, scope.type, scope.params); + } + function reportMessageAt(index, line, column, type, ...params) { + throw new ParseError(index, line, column, type, ...params); + } + function reportScannerError(index, line, column, type) { + throw new ParseError(index, line, column, type); + } + + const unicodeLookup = ((compressed, lookup) => { + const result = new Uint32Array(104448); + let index = 0; + let subIndex = 0; + while (index < 3540) { + const inst = compressed[index++]; + if (inst < 0) { + subIndex -= inst; + } + else { + let code = compressed[index++]; + if (inst & 2) + code = lookup[code]; + if (inst & 1) { + result.fill(code, subIndex, subIndex += compressed[index++]); + } + else { + result[subIndex++] = code; + } + } + } + return result; + })([-1, 2, 24, 2, 25, 2, 5, -1, 0, 77595648, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 16, 2, 60, 2, 0, 0, 4294836735, 0, 3221225471, 0, 4294901942, 2, 61, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 17, 2, 0, 0, 4294961151, 3, 0, 2, 2, 19, 2, 0, 0, 608174079, 2, 0, 2, 131, 2, 6, 2, 56, -1, 2, 37, 0, 4294443263, 2, 1, 3, 0, 3, 0, 4294901711, 2, 39, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2967484831, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 2, 194, 2, 3, 0, 3825204735, 0, 123747807, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1080049119, 0, 458703, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 66, 0, 4284449919, 0, 851904, 2, 4, 2, 11, 0, 67076095, -1, 2, 67, 0, 1073741743, 0, 4093591391, -1, 0, 50331649, 0, 3265266687, 2, 32, 0, 4294844415, 0, 4278190047, 2, 18, 2, 129, -1, 3, 0, 2, 2, 21, 2, 0, 2, 9, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 10, 0, 261632, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 2088959, 2, 27, 2, 8, 0, 909311, 3, 0, 2, 0, 814743551, 2, 41, 0, 67057664, 3, 0, 2, 2, 40, 2, 0, 2, 28, 2, 0, 2, 29, 2, 7, 0, 268374015, 2, 26, 2, 49, 2, 0, 2, 76, 0, 134153215, -1, 2, 6, 2, 0, 2, 7, 0, 2684354559, 0, 67044351, 0, 3221160064, 0, 1, -1, 3, 0, 2, 2, 42, 0, 1046528, 3, 0, 3, 2, 8, 2, 0, 2, 51, 0, 4294960127, 2, 9, 2, 38, 2, 10, 0, 4294377472, 2, 11, 3, 0, 7, 0, 4227858431, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -1, 2, 124, 0, 1048577, 2, 82, 2, 13, -1, 2, 13, 0, 131042, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 1046559, 2, 0, 2, 14, 2, 0, 0, 2147516671, 2, 20, 3, 86, 2, 2, 0, -16, 2, 87, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 2, 121, 2, 0, 0, 3220242431, 3, 0, 3, 2, 19, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 2, 0, 0, 4351, 2, 0, 2, 8, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 22, 2, 8, 2, 18, 3, 0, 2, 0, 67076097, 2, 7, 2, 0, 2, 20, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 3774349439, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, 2, 23, 0, 1638399, 2, 172, 2, 105, 3, 0, 3, 2, 18, 2, 24, 2, 25, 2, 5, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -3, 2, 150, -4, 2, 18, 2, 0, 2, 35, 0, 1, 2, 0, 2, 62, 2, 28, 2, 11, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 21, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277137519, 0, 2269118463, -1, 3, 18, 2, -1, 2, 32, 2, 36, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 46, -10, 2, 0, 0, 203775, -2, 2, 18, 2, 43, 2, 35, -2, 2, 17, 2, 117, 2, 20, 3, 0, 2, 2, 36, 0, 2147549120, 2, 0, 2, 11, 2, 17, 2, 135, 2, 0, 2, 37, 2, 52, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 120, 0, 1090519039, -2, 2, 122, 2, 38, 2, 0, 0, 67045375, 2, 39, 0, 4226678271, 0, 3766565279, 0, 2039759, -4, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 40, 2, 41, -1, 2, 10, 2, 42, -6, 2, 0, 2, 11, -3, 3, 0, 2, 0, 2147484671, 2, 125, 0, 4190109695, 2, 50, -2, 2, 126, 0, 4244635647, 0, 27, 2, 0, 2, 7, 2, 43, 2, 0, 2, 63, -1, 2, 0, 2, 40, -8, 2, 54, 2, 44, 0, 67043329, 2, 127, 2, 45, 0, 8388351, -2, 2, 128, 0, 3028287487, 2, 46, 2, 130, 0, 33259519, 2, 41, -9, 2, 20, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, 2, 41, -2, 2, 17, 2, 49, 2, 0, 2, 20, 2, 50, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 196635, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 0, 1677656575, -166, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 28, -13, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 88, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -42, 0, 4194303871, 0, 2011, -6, 2, 0, 0, 1073684479, 0, 17407, -11, 2, 0, 2, 31, -40, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 42, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -105, 2, 24, -32, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -22381, 3, 0, 7, 2, 23, -6130, 3, 5, 2, -1, 0, 69207040, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 16, 2, 60, 2, 0, 2, 33, -1, 2, 17, 2, 61, -1, 2, 0, 2, 56, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 23, 2, 62, 3, 0, 2, 0, 131135, 2, 95, 0, 70256639, 0, 71303167, 0, 272, 2, 40, 2, 56, -1, 2, 37, 2, 30, -1, 2, 96, 2, 63, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 65, 2, 64, 0, 33554435, 2, 123, 2, 65, 2, 151, 0, 131075, 0, 3594373096, 0, 67094296, 2, 64, -1, 0, 4294828000, 0, 603979263, 2, 160, 0, 3, 0, 4294828001, 0, 602930687, 2, 183, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 66, 2, 36, -1, 2, 4, 0, 917503, 2, 36, -1, 2, 67, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 32, 2, 68, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 11, -1, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 253951, 3, 19, 2, 0, 122879, 2, 0, 2, 8, 0, 276824064, -2, 3, 0, 2, 2, 40, 2, 0, 0, 4294903295, 2, 0, 2, 29, 2, 7, -1, 2, 17, 2, 49, 2, 0, 2, 76, 2, 41, -1, 2, 20, 2, 0, 2, 27, -2, 0, 128, -2, 2, 77, 2, 8, 0, 4064, -1, 2, 119, 0, 4227907585, 2, 0, 2, 118, 2, 0, 2, 48, 2, 173, 2, 9, 2, 38, 2, 10, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -3, 2, 82, 2, 13, -3, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 817183, 2, 0, 2, 14, 2, 0, 0, 33023, 2, 20, 3, 86, 2, -17, 2, 87, 0, 524157950, 2, 4, 2, 0, 2, 88, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 0, 3072, 2, 0, 0, 2147516415, 2, 9, 3, 0, 2, 2, 23, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 0, 4294965179, 0, 7, 2, 0, 2, 8, 2, 91, 2, 8, -1, 0, 1761345536, 2, 95, 0, 4294901823, 2, 36, 2, 18, 2, 96, 2, 34, 2, 166, 0, 2080440287, 2, 0, 2, 33, 2, 143, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 7, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 2700607615, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, -3, 2, 105, 3, 0, 3, 2, 18, -1, 3, 5, 2, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -8, 2, 18, 2, 0, 2, 35, -1, 2, 0, 2, 62, 2, 28, 2, 29, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 17, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277075969, 2, 29, -1, 3, 18, 2, -1, 2, 32, 2, 117, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 48, -10, 2, 0, 0, 197631, -2, 2, 18, 2, 43, 2, 118, -2, 2, 17, 2, 117, 2, 20, 2, 119, 2, 51, -2, 2, 119, 2, 23, 2, 17, 2, 33, 2, 119, 2, 36, 0, 4294901904, 0, 4718591, 2, 119, 2, 34, 0, 335544350, -1, 2, 120, 2, 121, -2, 2, 122, 2, 38, 2, 7, -1, 2, 123, 2, 65, 0, 3758161920, 0, 3, -4, 2, 0, 2, 27, 0, 2147485568, 0, 3, 2, 0, 2, 23, 0, 176, -5, 2, 0, 2, 47, 2, 186, -1, 2, 0, 2, 23, 2, 197, -1, 2, 0, 0, 16779263, -2, 2, 11, -7, 2, 0, 2, 121, -3, 3, 0, 2, 2, 124, 2, 125, 0, 2147549183, 0, 2, -2, 2, 126, 2, 35, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, -1, 2, 0, 2, 40, -8, 2, 54, 2, 47, 0, 1, 2, 127, 2, 23, -3, 2, 128, 2, 35, 2, 129, 2, 130, 0, 16778239, -10, 2, 34, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, -3, 2, 17, 2, 131, 2, 0, 2, 23, 2, 48, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 67583, -1, 2, 103, -2, 0, 11, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 2, 135, -187, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 2, 143, -73, 2, 0, 0, 1065361407, 0, 16384, -11, 2, 0, 2, 121, -40, 3, 0, 6, 2, 117, -1, 3, 0, 2, 0, 2063, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -138, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -28517, 2, 0, 0, 1, -1, 2, 124, 2, 0, 0, 8193, -21, 2, 193, 0, 10255, 0, 4, -11, 2, 64, 2, 171, -1, 0, 71680, -1, 2, 161, 0, 4292900864, 0, 805306431, -5, 2, 150, -1, 2, 157, -1, 0, 6144, -2, 2, 127, -1, 2, 154, -1, 0, 2147532800, 2, 151, 2, 165, 2, 0, 2, 164, 0, 524032, 0, 4, -4, 2, 190, 0, 205128192, 0, 1333757536, 0, 2147483696, 0, 423953, 0, 747766272, 0, 2717763192, 0, 4286578751, 0, 278545, 2, 152, 0, 4294886464, 0, 33292336, 0, 417809, 2, 152, 0, 1327482464, 0, 4278190128, 0, 700594195, 0, 1006647527, 0, 4286497336, 0, 4160749631, 2, 153, 0, 469762560, 0, 4171219488, 0, 8323120, 2, 153, 0, 202375680, 0, 3214918176, 0, 4294508592, 2, 153, -1, 0, 983584, 0, 48, 0, 58720273, 0, 3489923072, 0, 10517376, 0, 4293066815, 0, 1, 0, 2013265920, 2, 177, 2, 0, 0, 2089, 0, 3221225552, 0, 201375904, 2, 0, -2, 0, 256, 0, 122880, 0, 16777216, 2, 150, 0, 4160757760, 2, 0, -6, 2, 167, -11, 0, 3263218176, -1, 0, 49664, 0, 2160197632, 0, 8388802, -1, 0, 12713984, -1, 2, 154, 2, 159, 2, 178, -2, 2, 162, -20, 0, 3758096385, -2, 2, 155, 0, 4292878336, 2, 90, 2, 169, 0, 4294057984, -2, 2, 163, 2, 156, 2, 175, -2, 2, 155, -1, 2, 182, -1, 2, 170, 2, 124, 0, 4026593280, 0, 14, 0, 4292919296, -1, 2, 158, 0, 939588608, -1, 0, 805306368, -1, 2, 124, 0, 1610612736, 2, 156, 2, 157, 2, 4, 2, 0, -2, 2, 158, 2, 159, -3, 0, 267386880, -1, 2, 160, 0, 7168, -1, 0, 65024, 2, 154, 2, 161, 2, 179, -7, 2, 168, -8, 2, 162, -1, 0, 1426112704, 2, 163, -1, 2, 164, 0, 271581216, 0, 2149777408, 2, 23, 2, 161, 2, 124, 0, 851967, 2, 180, -1, 2, 23, 2, 181, -4, 2, 158, -20, 2, 195, 2, 165, -56, 0, 3145728, 2, 185, -4, 2, 166, 2, 124, -4, 0, 32505856, -1, 2, 167, -1, 0, 2147385088, 2, 90, 1, 2155905152, 2, -3, 2, 103, 2, 0, 2, 168, -2, 2, 169, -6, 2, 170, 0, 4026597375, 0, 1, -1, 0, 1, -1, 2, 171, -3, 2, 117, 2, 64, -2, 2, 166, -2, 2, 176, 2, 124, -878, 2, 159, -36, 2, 172, -1, 2, 201, -10, 2, 188, -5, 2, 174, -6, 0, 4294965251, 2, 27, -1, 2, 173, -1, 2, 174, -2, 0, 4227874752, -3, 0, 2146435072, 2, 159, -2, 0, 1006649344, 2, 124, -1, 2, 90, 0, 201375744, -3, 0, 134217720, 2, 90, 0, 4286677377, 0, 32896, -1, 2, 158, -3, 2, 175, -349, 2, 176, 0, 1920, 2, 177, 3, 0, 264, -11, 2, 157, -2, 2, 178, 2, 0, 0, 520617856, 0, 2692743168, 0, 36, -3, 0, 524284, -11, 2, 23, -1, 2, 187, -1, 2, 184, 0, 3221291007, 2, 178, -1, 2, 202, 0, 2158720, -3, 2, 159, 0, 1, -4, 2, 124, 0, 3808625411, 0, 3489628288, 2, 200, 0, 1207959680, 0, 3221274624, 2, 0, -3, 2, 179, 0, 120, 0, 7340032, -2, 2, 180, 2, 4, 2, 23, 2, 163, 3, 0, 4, 2, 159, -1, 2, 181, 2, 177, -1, 0, 8176, 2, 182, 2, 179, 2, 183, -1, 0, 4290773232, 2, 0, -4, 2, 163, 2, 189, 0, 15728640, 2, 177, -1, 2, 161, -1, 0, 4294934512, 3, 0, 4, -9, 2, 90, 2, 170, 2, 184, 3, 0, 4, 0, 704, 0, 1849688064, 2, 185, -1, 2, 124, 0, 4294901887, 2, 0, 0, 130547712, 0, 1879048192, 2, 199, 3, 0, 2, -1, 2, 186, 2, 187, -1, 0, 17829776, 0, 2025848832, 0, 4261477888, -2, 2, 0, -1, 0, 4286580608, -1, 0, 29360128, 2, 192, 0, 16252928, 0, 3791388672, 2, 38, 3, 0, 2, -2, 2, 196, 2, 0, -1, 2, 103, -1, 0, 66584576, -1, 2, 191, 3, 0, 9, 2, 124, -1, 0, 4294755328, 3, 0, 2, -1, 2, 161, 2, 178, 3, 0, 2, 2, 23, 2, 188, 2, 90, -2, 0, 245760, 0, 2147418112, -1, 2, 150, 2, 203, 0, 4227923456, -1, 2, 164, 2, 161, 2, 90, -3, 0, 4292870145, 0, 262144, 2, 124, 3, 0, 2, 0, 1073758848, 2, 189, -1, 0, 4227921920, 2, 190, 0, 68289024, 0, 528402016, 0, 4292927536, 3, 0, 4, -2, 0, 268435456, 2, 91, -2, 2, 191, 3, 0, 5, -1, 2, 192, 2, 163, 2, 0, -2, 0, 4227923936, 2, 62, -1, 2, 155, 2, 95, 2, 0, 2, 154, 2, 158, 3, 0, 6, -1, 2, 177, 3, 0, 3, -2, 0, 2146959360, 0, 9440640, 0, 104857600, 0, 4227923840, 3, 0, 2, 0, 768, 2, 193, 2, 77, -2, 2, 161, -2, 2, 119, -1, 2, 155, 3, 0, 8, 0, 512, 0, 8388608, 2, 194, 2, 172, 2, 187, 0, 4286578944, 3, 0, 2, 0, 1152, 0, 1266679808, 2, 191, 0, 576, 0, 4261707776, 2, 95, 3, 0, 9, 2, 155, 3, 0, 5, 2, 16, -1, 0, 2147221504, -28, 2, 178, 3, 0, 3, -3, 0, 4292902912, -6, 2, 96, 3, 0, 85, -33, 0, 4294934528, 3, 0, 126, -18, 2, 195, 3, 0, 269, -17, 2, 155, 2, 124, 2, 198, 3, 0, 2, 2, 23, 0, 4290822144, -2, 0, 67174336, 0, 520093700, 2, 17, 3, 0, 21, -2, 2, 179, 3, 0, 3, -2, 0, 30720, -1, 0, 32512, 3, 0, 2, 0, 4294770656, -191, 2, 174, -38, 2, 170, 2, 0, 2, 196, 3, 0, 279, -8, 2, 124, 2, 0, 0, 4294508543, 0, 65295, -11, 2, 177, 3, 0, 72, -3, 0, 3758159872, 0, 201391616, 3, 0, 155, -7, 2, 170, -1, 0, 384, -1, 0, 133693440, -3, 2, 196, -2, 2, 26, 3, 0, 4, 2, 169, -2, 2, 90, 2, 155, 3, 0, 4, -2, 2, 164, -1, 2, 150, 0, 335552923, 2, 197, -1, 0, 538974272, 0, 2214592512, 0, 132000, -10, 0, 192, -8, 0, 12288, -21, 0, 134213632, 0, 4294901761, 3, 0, 42, 0, 100663424, 0, 4294965284, 3, 0, 6, -1, 0, 3221282816, 2, 198, 3, 0, 11, -1, 2, 199, 3, 0, 40, -6, 0, 4286578784, 2, 0, -2, 0, 1006694400, 3, 0, 24, 2, 35, -1, 2, 94, 3, 0, 2, 0, 1, 2, 163, 3, 0, 6, 2, 197, 0, 4110942569, 0, 1432950139, 0, 2701658217, 0, 4026532864, 0, 4026532881, 2, 0, 2, 45, 3, 0, 8, -1, 2, 158, -2, 2, 169, 0, 98304, 0, 65537, 2, 170, -5, 0, 4294950912, 2, 0, 2, 118, 0, 65528, 2, 177, 0, 4294770176, 2, 26, 3, 0, 4, -30, 2, 174, 0, 3758153728, -3, 2, 169, -2, 2, 155, 2, 188, 2, 158, -1, 2, 191, -1, 2, 161, 0, 4294754304, 3, 0, 2, -3, 0, 33554432, -2, 2, 200, -3, 2, 169, 0, 4175478784, 2, 201, 0, 4286643712, 0, 4286644216, 2, 0, -4, 2, 202, -1, 2, 165, 0, 4227923967, 3, 0, 32, -1334, 2, 163, 2, 0, -129, 2, 94, -6, 2, 163, -180, 2, 203, -233, 2, 4, 3, 0, 96, -16, 2, 163, 3, 0, 47, -154, 2, 165, 3, 0, 22381, -7, 2, 17, 3, 0, 6128], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 268435455, 2147483647, 1048575, 1073741823, 3892314111, 134217727, 1061158911, 536805376, 4294910143, 4160749567, 4294901759, 4294901760, 536870911, 262143, 8388607, 4294902783, 4294918143, 65535, 67043328, 2281701374, 4294967232, 2097151, 4294903807, 4194303, 255, 67108863, 4294967039, 511, 524287, 131071, 127, 4292870143, 4294902271, 4294549487, 33554431, 1023, 67047423, 4294901888, 4286578687, 4294770687, 67043583, 32767, 15, 2047999, 67043343, 16777215, 4294902000, 4294934527, 4294966783, 4294967279, 2047, 262083, 20511, 4290772991, 41943039, 493567, 4294959104, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 4294967264, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 2044, 4292870144, 4294966272, 4294967280, 8289918, 4294934399, 4294901775, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4294966591, 2445279231, 3670015, 3238002687, 31, 63, 4294967288, 4294705151, 4095, 3221208447, 4294549472, 2147483648, 4285526655, 4294966527, 4294705152, 4294966143, 64, 4294966719, 16383, 3774873592, 458752, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967103, 4160749565, 4087, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901763, 536870912, 2952790016, 202506752, 139264, 402653184, 4261412864, 4227922944, 49152, 61440, 3758096384, 117440512, 65280, 3233808384, 3221225472, 2097152, 4294965248, 32768, 57152, 67108864, 4293918720, 4290772992, 25165824, 57344, 4227915776, 4278190080, 4227907584, 65520, 4026531840, 4227858432, 4160749568, 3758129152, 4294836224, 63488, 1073741824, 4294967040, 4194304, 251658240, 196608, 4294963200, 64512, 417808, 4227923712, 12582912, 50331648, 65472, 4294967168, 4294966784, 16, 4294917120, 2080374784, 4096, 65408, 524288, 65532]); + + function advanceChar(parser) { + parser.column++; + return (parser.currentChar = parser.source.charCodeAt(++parser.index)); + } + function consumeMultiUnitCodePoint(parser, hi) { + if ((hi & 0xfc00) !== 55296) + return 0; + const lo = parser.source.charCodeAt(parser.index + 1); + if ((lo & 0xfc00) !== 0xdc00) + return 0; + hi = parser.currentChar = 65536 + ((hi & 0x3ff) << 10) + (lo & 0x3ff); + if (((unicodeLookup[(hi >>> 5) + 0] >>> hi) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(hi)); + } + parser.index++; + parser.column++; + return 1; + } + function consumeLineFeed(parser, state) { + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.flags |= 1; + if ((state & 4) === 0) { + parser.column = 0; + parser.line++; + } + } + function scanNewLine(parser) { + parser.flags |= 1; + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.column = 0; + parser.line++; + } + function isExoticECMAScriptWhitespace(ch) { + return (ch === 160 || + ch === 65279 || + ch === 133 || + ch === 5760 || + (ch >= 8192 && ch <= 8203) || + ch === 8239 || + ch === 8287 || + ch === 12288 || + ch === 8201 || + ch === 65519); + } + function fromCodePoint(codePoint) { + return codePoint <= 65535 + ? String.fromCharCode(codePoint) + : String.fromCharCode(codePoint >>> 10) + String.fromCharCode(codePoint & 0x3ff); + } + function toHex(code) { + return code < 65 ? code - 48 : (code - 65 + 10) & 0xf; + } + function convertTokenType(t) { + switch (t) { + case 134283266: + return 'NumericLiteral'; + case 134283267: + return 'StringLiteral'; + case 86021: + case 86022: + return 'BooleanLiteral'; + case 86023: + return 'NullLiteral'; + case 65540: + return 'RegularExpression'; + case 67174408: + case 67174409: + case 132: + return 'TemplateLiteral'; + default: + if ((t & 143360) === 143360) + return 'Identifier'; + if ((t & 4096) === 4096) + return 'Keyword'; + return 'Punctuator'; + } + } + + const CharTypes = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8 | 1024, + 0, + 0, + 8 | 2048, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8192, + 0, + 1 | 2, + 0, + 0, + 8192, + 0, + 0, + 0, + 256, + 0, + 256 | 32768, + 0, + 0, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 512 | 64, + 2 | 16 | 512 | 64, + 0, + 0, + 16384, + 0, + 0, + 0, + 0, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 0, + 1, + 0, + 0, + 1 | 2 | 4096, + 0, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 16384, + 0, + 0, + 0, + 0 + ]; + const isIdStart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ]; + const isIdPart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ]; + function isIdentifierStart(code) { + return code <= 0x7F + ? isIdStart[code] + : (unicodeLookup[(code >>> 5) + 34816] >>> code) & 31 & 1; + } + function isIdentifierPart(code) { + return code <= 0x7F + ? isIdPart[code] + : (unicodeLookup[(code >>> 5) + 0] >>> code) & 31 & 1 || (code === 8204 || code === 8205); + } + + const CommentTypes = ['SingleLine', 'MultiLine', 'HTMLOpen', 'HTMLClose', 'HashbangComment']; + function skipHashBang(parser) { + const source = parser.source; + if (parser.currentChar === 35 && source.charCodeAt(parser.index + 1) === 33) { + advanceChar(parser); + advanceChar(parser); + skipSingleLineComment(parser, source, 0, 4, parser.tokenPos, parser.linePos, parser.colPos); + } + } + function skipSingleHTMLComment(parser, source, state, context, type, start, line, column) { + if (context & 2048) + report(parser, 0); + return skipSingleLineComment(parser, source, state, type, start, line, column); + } + function skipSingleLineComment(parser, source, state, type, start, line, column) { + const { index } = parser; + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + while (parser.index < parser.end) { + if (CharTypes[parser.currentChar] & 8) { + const isCR = parser.currentChar === 13; + scanNewLine(parser); + if (isCR && parser.index < parser.end && parser.currentChar === 10) + parser.currentChar = source.charCodeAt(++parser.index); + break; + } + else if ((parser.currentChar ^ 8232) <= 1) { + scanNewLine(parser); + break; + } + advanceChar(parser); + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + } + if (parser.onComment) { + const loc = { + start: { + line, + column + }, + end: { + line: parser.linePos, + column: parser.colPos + } + }; + parser.onComment(CommentTypes[type & 0xff], source.slice(index, parser.tokenPos), start, parser.tokenPos, loc); + } + return state | 1; + } + function skipMultiLineComment(parser, source, state) { + const { index } = parser; + while (parser.index < parser.end) { + if (parser.currentChar < 0x2b) { + let skippedOneAsterisk = false; + while (parser.currentChar === 42) { + if (!skippedOneAsterisk) { + state &= ~4; + skippedOneAsterisk = true; + } + if (advanceChar(parser) === 47) { + advanceChar(parser); + if (parser.onComment) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onComment(CommentTypes[1 & 0xff], source.slice(index, parser.index - 2), index - 2, parser.index, loc); + } + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + return state; + } + } + if (skippedOneAsterisk) { + continue; + } + if (CharTypes[parser.currentChar] & 8) { + if (parser.currentChar === 13) { + state |= 1 | 4; + scanNewLine(parser); + } + else { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + } + else { + advanceChar(parser); + } + } + else if ((parser.currentChar ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + } + else { + state &= ~4; + advanceChar(parser); + } + } + report(parser, 16); + } + + function scanRegularExpression(parser, context) { + const bodyStart = parser.index; + let preparseState = 0; + loop: while (true) { + const ch = parser.currentChar; + advanceChar(parser); + if (preparseState & 1) { + preparseState &= ~1; + } + else { + switch (ch) { + case 47: + if (!preparseState) + break loop; + else + break; + case 92: + preparseState |= 1; + break; + case 91: + preparseState |= 2; + break; + case 93: + preparseState &= 1; + break; + case 13: + case 10: + case 8232: + case 8233: + report(parser, 32); + } + } + if (parser.index >= parser.source.length) { + return report(parser, 32); + } + } + const bodyEnd = parser.index - 1; + let mask = 0; + let char = parser.currentChar; + const { index: flagStart } = parser; + while (isIdentifierPart(char)) { + switch (char) { + case 103: + if (mask & 2) + report(parser, 34, 'g'); + mask |= 2; + break; + case 105: + if (mask & 1) + report(parser, 34, 'i'); + mask |= 1; + break; + case 109: + if (mask & 4) + report(parser, 34, 'm'); + mask |= 4; + break; + case 117: + if (mask & 16) + report(parser, 34, 'g'); + mask |= 16; + break; + case 121: + if (mask & 8) + report(parser, 34, 'y'); + mask |= 8; + break; + case 115: + if (mask & 12) + report(parser, 34, 's'); + mask |= 12; + break; + default: + report(parser, 33); + } + char = advanceChar(parser); + } + const flags = parser.source.slice(flagStart, parser.index); + const pattern = parser.source.slice(bodyStart, bodyEnd); + parser.tokenRegExp = { pattern, flags }; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = validate(parser, pattern, flags); + return 65540; + } + function validate(parser, pattern, flags) { + try { + return new RegExp(pattern, flags); + } + catch (e) { + report(parser, 32); + } + } + + function scanString(parser, context, quote) { + const { index: start } = parser; + let ret = ''; + let char = advanceChar(parser); + let marker = parser.index; + while ((CharTypes[char] & 8) === 0) { + if (char === quote) { + ret += parser.source.slice(marker, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(start, parser.index); + parser.tokenValue = ret; + return 134283267; + } + if ((char & 8) === 8 && char === 92) { + ret += parser.source.slice(marker, parser.index); + char = advanceChar(parser); + if (char < 0x7f || char === 8232 || char === 8233) { + const code = parseEscape(parser, context, char); + if (code >= 0) + ret += fromCodePoint(code); + else + handleStringError(parser, code, 0); + } + else { + ret += fromCodePoint(char); + } + marker = parser.index + 1; + } + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + report(parser, 14); + } + function parseEscape(parser, context, first) { + switch (first) { + case 98: + return 8; + case 102: + return 12; + case 114: + return 13; + case 110: + return 10; + case 116: + return 9; + case 118: + return 11; + case 13: { + if (parser.index < parser.end) { + const nextChar = parser.source.charCodeAt(parser.index + 1); + if (nextChar === 10) { + parser.index = parser.index + 1; + parser.currentChar = nextChar; + } + } + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + return -1; + case 48: + case 49: + case 50: + case 51: { + let code = first - 48; + let index = parser.index + 1; + let column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if ((CharTypes[next] & 32) === 0) { + if ((code !== 0 || CharTypes[next] & 512) && context & 1024) + return -2; + } + else if (context & 1024) { + return -2; + } + else { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + } + } + parser.flags |= 64; + parser.index = index - 1; + parser.column = column - 1; + } + } + return code; + } + case 52: + case 53: + case 54: + case 55: { + if (context & 1024) + return -2; + let code = first - 48; + const index = parser.index + 1; + const column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + code = (code << 3) | (next - 48); + parser.currentChar = next; + parser.index = index; + parser.column = column; + } + } + parser.flags |= 64; + return code; + } + case 120: { + const ch1 = advanceChar(parser); + if ((CharTypes[ch1] & 64) === 0) + return -4; + const hi = toHex(ch1); + const ch2 = advanceChar(parser); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const lo = toHex(ch2); + return (hi << 4) | lo; + } + case 117: { + const ch = advanceChar(parser); + if (parser.currentChar === 123) { + let code = 0; + while ((CharTypes[advanceChar(parser)] & 64) !== 0) { + code = (code << 4) | toHex(parser.currentChar); + if (code > 1114111) + return -5; + } + if (parser.currentChar < 1 || parser.currentChar !== 125) { + return -4; + } + return code; + } + else { + if ((CharTypes[ch] & 64) === 0) + return -4; + const ch2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const ch3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[ch3] & 64) === 0) + return -4; + const ch4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[ch4] & 64) === 0) + return -4; + parser.index += 3; + parser.column += 3; + parser.currentChar = parser.source.charCodeAt(parser.index); + return (toHex(ch) << 12) | (toHex(ch2) << 8) | (toHex(ch3) << 4) | toHex(ch4); + } + } + case 56: + case 57: + if ((context & 256) === 0) + return -3; + default: + return first; + } + } + function handleStringError(state, code, isTemplate) { + switch (code) { + case -1: + return; + case -2: + report(state, isTemplate ? 2 : 1); + case -3: + report(state, 13); + case -4: + report(state, 6); + case -5: + report(state, 101); + } + } + + function scanTemplate(parser, context) { + const { index: start } = parser; + let token = 67174409; + let ret = ''; + let char = advanceChar(parser); + while (char !== 96) { + if (char === 36 && parser.source.charCodeAt(parser.index + 1) === 123) { + advanceChar(parser); + token = 67174408; + break; + } + else if ((char & 8) === 8 && char === 92) { + char = advanceChar(parser); + if (char > 0x7e) { + ret += fromCodePoint(char); + } + else { + const code = parseEscape(parser, context | 1024, char); + if (code >= 0) { + ret += fromCodePoint(code); + } + else if (code !== -1 && context & 65536) { + ret = undefined; + char = scanBadTemplate(parser, char); + if (char < 0) + token = 67174408; + break; + } + else { + handleStringError(parser, code, 1); + } + } + } + else { + if (parser.index < parser.end && + char === 13 && + parser.source.charCodeAt(parser.index) === 10) { + ret += fromCodePoint(char); + parser.currentChar = parser.source.charCodeAt(++parser.index); + } + if (((char & 83) < 3 && char === 10) || (char ^ 8232) <= 1) { + parser.column = -1; + parser.line++; + } + ret += fromCodePoint(char); + } + if (parser.index >= parser.end) + report(parser, 15); + char = advanceChar(parser); + } + advanceChar(parser); + parser.tokenValue = ret; + parser.tokenRaw = parser.source.slice(start + 1, parser.index - (token === 67174409 ? 1 : 2)); + return token; + } + function scanBadTemplate(parser, ch) { + while (ch !== 96) { + switch (ch) { + case 36: { + const index = parser.index + 1; + if (index < parser.end && parser.source.charCodeAt(index) === 123) { + parser.index = index; + parser.column++; + return -ch; + } + break; + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + } + if (parser.index >= parser.end) + report(parser, 15); + ch = advanceChar(parser); + } + return ch; + } + function scanTemplateTail(parser, context) { + if (parser.index >= parser.end) + report(parser, 0); + parser.index--; + parser.column--; + return scanTemplate(parser, context); + } + + function scanNumber(parser, context, kind) { + let char = parser.currentChar; + let value = 0; + let digit = 9; + let atStart = kind & 64 ? 0 : 1; + let digits = 0; + let allowSeparator = 0; + if (kind & 64) { + value = '.' + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 110) + report(parser, 11); + } + else { + if (char === 48) { + char = advanceChar(parser); + if ((char | 32) === 120) { + kind = 8 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (64 | 4096)) { + if (char === 95) { + if (!allowSeparator) + report(parser, 146); + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 0x10 + toHex(char); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 19 : 147); + } + } + else if ((char | 32) === 111) { + kind = 4 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (32 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 8 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if ((char | 32) === 98) { + kind = 2 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (128 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 2 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if (CharTypes[char] & 32) { + if (context & 1024) + report(parser, 1); + kind = 1; + while (CharTypes[char] & 16) { + if (CharTypes[char] & 512) { + kind = 32; + atStart = 0; + break; + } + value = value * 8 + (char - 48); + char = advanceChar(parser); + } + } + else if (CharTypes[char] & 512) { + if (context & 1024) + report(parser, 1); + parser.flags |= 64; + kind = 32; + } + else if (char === 95) { + report(parser, 0); + } + } + if (kind & 48) { + if (atStart) { + while (digit >= 0 && CharTypes[char] & (16 | 4096)) { + if (char === 95) { + char = advanceChar(parser); + if (char === 95 || kind & 32) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + continue; + } + allowSeparator = 0; + value = 10 * value + (char - 48); + char = advanceChar(parser); + --digit; + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + if (digit >= 0 && !isIdentifierStart(char) && char !== 46) { + parser.tokenValue = value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + } + value += scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 46) { + if (advanceChar(parser) === 95) + report(parser, 0); + kind = 64; + value += '.' + scanDecimalDigitsOrSeparator(parser, parser.currentChar); + char = parser.currentChar; + } + } + } + const end = parser.index; + let isBigInt = 0; + if (char === 110 && kind & 128) { + isBigInt = 1; + char = advanceChar(parser); + } + else { + if ((char | 32) === 101) { + char = advanceChar(parser); + if (CharTypes[char] & 256) + char = advanceChar(parser); + const { index } = parser; + if ((CharTypes[char] & 16) < 1) + report(parser, 10); + value += parser.source.substring(end, index) + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + } + } + if ((parser.index < parser.end && CharTypes[char] & 16) || isIdentifierStart(char)) { + report(parser, 12); + } + if (isBigInt) { + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = BigInt(value); + return 134283389; + } + parser.tokenValue = + kind & (1 | 2 | 8 | 4) + ? value + : kind & 32 + ? parseFloat(parser.source.substring(parser.tokenPos, parser.index)) + : +value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + function scanDecimalDigitsOrSeparator(parser, char) { + let allowSeparator = 0; + let start = parser.index; + let ret = ''; + while (CharTypes[char] & (16 | 4096)) { + if (char === 95) { + const { index } = parser; + char = advanceChar(parser); + if (char === 95) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + ret += parser.source.substring(start, index); + start = parser.index; + continue; + } + allowSeparator = 0; + char = advanceChar(parser); + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + return ret + parser.source.substring(start, parser.index); + } + + const KeywordDescTable = [ + 'end of source', + 'identifier', 'number', 'string', 'regular expression', + 'false', 'true', 'null', + 'template continuation', 'template tail', + '=>', '(', '{', '.', '...', '}', ')', ';', ',', '[', ']', ':', '?', '\'', '"', '', + '++', '--', + '=', '<<=', '>>=', '>>>=', '**=', '+=', '-=', '*=', '/=', '%=', '^=', '|=', + '&=', '||=', '&&=', '??=', + 'typeof', 'delete', 'void', '!', '~', '+', '-', 'in', 'instanceof', '*', '%', '/', '**', '&&', + '||', '===', '!==', '==', '!=', '<=', '>=', '<', '>', '<<', '>>', '>>>', '&', '|', '^', + 'var', 'let', 'const', + 'break', 'case', 'catch', 'class', 'continue', 'debugger', 'default', 'do', 'else', 'export', + 'extends', 'finally', 'for', 'function', 'if', 'import', 'new', 'return', 'super', 'switch', + 'this', 'throw', 'try', 'while', 'with', + 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield', + 'as', 'async', 'await', 'constructor', 'get', 'set', 'from', 'of', + 'enum', 'eval', 'arguments', 'escaped keyword', 'escaped future reserved keyword', 'reserved if strict', '#', + 'BigIntLiteral', '??', '?.', 'WhiteSpace', 'Illegal', 'LineTerminator', 'PrivateField', + 'Template', '@', 'target', 'meta', 'LineFeed', 'Escaped', 'JSXText' + ]; + const descKeywordTable = Object.create(null, { + this: { value: 86113 }, + function: { value: 86106 }, + if: { value: 20571 }, + return: { value: 20574 }, + var: { value: 86090 }, + else: { value: 20565 }, + for: { value: 20569 }, + new: { value: 86109 }, + in: { value: 8738868 }, + typeof: { value: 16863277 }, + while: { value: 20580 }, + case: { value: 20558 }, + break: { value: 20557 }, + try: { value: 20579 }, + catch: { value: 20559 }, + delete: { value: 16863278 }, + throw: { value: 86114 }, + switch: { value: 86112 }, + continue: { value: 20561 }, + default: { value: 20563 }, + instanceof: { value: 8476725 }, + do: { value: 20564 }, + void: { value: 16863279 }, + finally: { value: 20568 }, + async: { value: 209007 }, + await: { value: 209008 }, + class: { value: 86096 }, + const: { value: 86092 }, + constructor: { value: 12401 }, + debugger: { value: 20562 }, + export: { value: 20566 }, + extends: { value: 20567 }, + false: { value: 86021 }, + from: { value: 12404 }, + get: { value: 12402 }, + implements: { value: 36966 }, + import: { value: 86108 }, + interface: { value: 36967 }, + let: { value: 241739 }, + null: { value: 86023 }, + of: { value: 274549 }, + package: { value: 36968 }, + private: { value: 36969 }, + protected: { value: 36970 }, + public: { value: 36971 }, + set: { value: 12403 }, + static: { value: 36972 }, + super: { value: 86111 }, + true: { value: 86022 }, + with: { value: 20581 }, + yield: { value: 241773 }, + enum: { value: 86134 }, + eval: { value: 537079927 }, + as: { value: 77934 }, + arguments: { value: 537079928 }, + target: { value: 143494 }, + meta: { value: 143495 }, + }); + + function scanIdentifier(parser, context, isValidAsKeyword) { + while (isIdPart[advanceChar(parser)]) { } + parser.tokenValue = parser.source.slice(parser.tokenPos, parser.index); + return parser.currentChar !== 92 && parser.currentChar < 0x7e + ? descKeywordTable[parser.tokenValue] || 208897 + : scanIdentifierSlowCase(parser, context, 0, isValidAsKeyword); + } + function scanUnicodeIdentifier(parser, context) { + const cookedChar = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(cookedChar)) + report(parser, 4); + parser.tokenValue = fromCodePoint(cookedChar); + return scanIdentifierSlowCase(parser, context, 1, CharTypes[cookedChar] & 4); + } + function scanIdentifierSlowCase(parser, context, hasEscape, isValidAsKeyword) { + let start = parser.index; + while (parser.index < parser.end) { + if (parser.currentChar === 92) { + parser.tokenValue += parser.source.slice(start, parser.index); + hasEscape = 1; + const code = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(code)) + report(parser, 4); + isValidAsKeyword = isValidAsKeyword && CharTypes[code] & 4; + parser.tokenValue += fromCodePoint(code); + start = parser.index; + } + else if (isIdentifierPart(parser.currentChar) || consumeMultiUnitCodePoint(parser, parser.currentChar)) { + advanceChar(parser); + } + else { + break; + } + } + if (parser.index <= parser.end) { + parser.tokenValue += parser.source.slice(start, parser.index); + } + const length = parser.tokenValue.length; + if (isValidAsKeyword && length >= 2 && length <= 11) { + const token = descKeywordTable[parser.tokenValue]; + if (token === void 0) + return 208897; + if (!hasEscape) + return token; + if (context & 1024) { + return token === 209008 && (context & (2048 | 4194304)) === 0 + ? token + : token === 36972 + ? 122 + : (token & 36864) === 36864 + ? 122 + : 121; + } + if (context & 1073741824 && + (context & 8192) === 0 && + (token & 20480) === 20480) + return token; + if (token === 241773) { + return context & 1073741824 + ? 143483 + : context & 2097152 + ? 121 + : token; + } + return token === 209007 && context & 1073741824 + ? 143483 + : (token & 36864) === 36864 + ? token + : token === 209008 && (context & 4194304) === 0 + ? token + : 121; + } + return 208897; + } + function scanPrivateIdentifier(parser) { + if (!isIdentifierStart(advanceChar(parser))) + report(parser, 93); + return 131; + } + function scanIdentifierUnicodeEscape(parser) { + if (parser.source.charCodeAt(parser.index + 1) !== 117) { + report(parser, 4); + } + parser.currentChar = parser.source.charCodeAt((parser.index += 2)); + return scanUnicodeEscape(parser); + } + function scanUnicodeEscape(parser) { + let codePoint = 0; + const char = parser.currentChar; + if (char === 123) { + const begin = parser.index - 2; + while (CharTypes[advanceChar(parser)] & 64) { + codePoint = (codePoint << 4) | toHex(parser.currentChar); + if (codePoint > 1114111) + reportScannerError(begin, parser.line, parser.index + 1, 101); + } + if (parser.currentChar !== 125) { + reportScannerError(begin, parser.line, parser.index - 1, 6); + } + advanceChar(parser); + return codePoint; + } + if ((CharTypes[char] & 64) === 0) + report(parser, 6); + const char2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[char2] & 64) === 0) + report(parser, 6); + const char3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[char3] & 64) === 0) + report(parser, 6); + const char4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[char4] & 64) === 0) + report(parser, 6); + codePoint = (toHex(char) << 12) | (toHex(char2) << 8) | (toHex(char3) << 4) | toHex(char4); + parser.currentChar = parser.source.charCodeAt((parser.index += 4)); + return codePoint; + } + + const TokenLookup = [ + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 136, + 128, + 128, + 130, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 16842800, + 134283267, + 131, + 208897, + 8457015, + 8455751, + 134283267, + 67174411, + 16, + 8457014, + 25233970, + 18, + 25233971, + 67108877, + 8457016, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 21, + 1074790417, + 8456258, + 1077936157, + 8456259, + 22, + 133, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 69271571, + 137, + 20, + 8455497, + 208897, + 132, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 208897, + 4096, + 208897, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 4096, + 4096, + 208897, + 4096, + 4096, + 208897, + 4096, + 4096, + 2162700, + 8455240, + 1074790415, + 16842801, + 129 + ]; + function nextToken(parser, context) { + parser.flags = (parser.flags | 1) ^ 1; + parser.startPos = parser.index; + parser.startColumn = parser.column; + parser.startLine = parser.line; + parser.token = scanSingleToken(parser, context, 0); + if (parser.onToken && parser.token !== 1048576) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onToken(convertTokenType(parser.token), parser.tokenPos, parser.index, loc); + } + } + function scanSingleToken(parser, context, state) { + const isStartOfLine = parser.index === 0; + const source = parser.source; + let startPos = parser.index; + let startLine = parser.line; + let startColumn = parser.column; + while (parser.index < parser.end) { + parser.tokenPos = parser.index; + parser.colPos = parser.column; + parser.linePos = parser.line; + let char = parser.currentChar; + if (char <= 0x7e) { + const token = TokenLookup[char]; + switch (token) { + case 67174411: + case 16: + case 2162700: + case 1074790415: + case 69271571: + case 20: + case 21: + case 1074790417: + case 18: + case 16842801: + case 133: + case 129: + advanceChar(parser); + return token; + case 208897: + return scanIdentifier(parser, context, 0); + case 4096: + return scanIdentifier(parser, context, 1); + case 134283266: + return scanNumber(parser, context, 16 | 128); + case 134283267: + return scanString(parser, context, char); + case 132: + return scanTemplate(parser, context); + case 137: + return scanUnicodeIdentifier(parser, context); + case 131: + return scanPrivateIdentifier(parser); + case 128: + advanceChar(parser); + break; + case 130: + state |= 1 | 4; + scanNewLine(parser); + break; + case 136: + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + break; + case 8456258: + let ch = advanceChar(parser); + if (parser.index < parser.end) { + if (ch === 60) { + if (parser.index < parser.end && advanceChar(parser) === 61) { + advanceChar(parser); + return 4194334; + } + return 8456516; + } + else if (ch === 61) { + advanceChar(parser); + return 8456000; + } + if (ch === 33) { + const index = parser.index + 1; + if (index + 1 < parser.end && + source.charCodeAt(index) === 45 && + source.charCodeAt(index + 1) == 45) { + parser.column += 3; + parser.currentChar = source.charCodeAt((parser.index += 3)); + state = skipSingleHTMLComment(parser, source, state, context, 2, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 8456258; + } + if (ch === 47) { + if ((context & 16) < 1) + return 8456258; + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (ch === 42 || ch === 47) + break; + } + advanceChar(parser); + return 25; + } + } + return 8456258; + case 1077936157: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 8455996; + } + return 8455998; + } + if (ch === 62) { + advanceChar(parser); + return 10; + } + return 1077936157; + } + case 16842800: + if (advanceChar(parser) !== 61) { + return 16842800; + } + if (advanceChar(parser) !== 61) { + return 8455999; + } + advanceChar(parser); + return 8455997; + case 8457015: + if (advanceChar(parser) !== 61) + return 8457015; + advanceChar(parser); + return 4194342; + case 8457014: { + advanceChar(parser); + if (parser.index >= parser.end) + return 8457014; + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 4194340; + } + if (ch !== 42) + return 8457014; + if (advanceChar(parser) !== 61) + return 8457273; + advanceChar(parser); + return 4194337; + } + case 8455497: + if (advanceChar(parser) !== 61) + return 8455497; + advanceChar(parser); + return 4194343; + case 25233970: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 43) { + advanceChar(parser); + return 33619995; + } + if (ch === 61) { + advanceChar(parser); + return 4194338; + } + return 25233970; + } + case 25233971: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 45) { + advanceChar(parser); + if ((state & 1 || isStartOfLine) && parser.currentChar === 62) { + if ((context & 256) === 0) + report(parser, 108); + advanceChar(parser); + state = skipSingleHTMLComment(parser, source, state, context, 3, startPos, startLine, startColumn); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 33619996; + } + if (ch === 61) { + advanceChar(parser); + return 4194339; + } + return 25233971; + } + case 8457016: { + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 47) { + advanceChar(parser); + state = skipSingleLineComment(parser, source, state, 0, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (ch === 42) { + advanceChar(parser); + state = skipMultiLineComment(parser, source, state); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (context & 32768) { + return scanRegularExpression(parser, context); + } + if (ch === 61) { + advanceChar(parser); + return 4259877; + } + } + return 8457016; + } + case 67108877: + const next = advanceChar(parser); + if (next >= 48 && next <= 57) + return scanNumber(parser, context, 64 | 16); + if (next === 46) { + const index = parser.index + 1; + if (index < parser.end && source.charCodeAt(index) === 46) { + parser.column += 2; + parser.currentChar = source.charCodeAt((parser.index += 2)); + return 14; + } + } + return 67108877; + case 8455240: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 124) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194346; + } + return 8979003; + } + if (ch === 61) { + advanceChar(parser); + return 4194344; + } + return 8455240; + } + case 8456259: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 8456001; + } + if (ch !== 62) + return 8456259; + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 62) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 4194336; + } + return 8456518; + } + if (ch === 61) { + advanceChar(parser); + return 4194335; + } + } + return 8456517; + } + case 8455751: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 38) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194347; + } + return 8979258; + } + if (ch === 61) { + advanceChar(parser); + return 4194345; + } + return 8455751; + } + case 22: { + let ch = advanceChar(parser); + if (ch === 63) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194348; + } + return 276889982; + } + if (ch === 46) { + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (!(ch >= 48 && ch <= 57)) { + advanceChar(parser); + return 67108991; + } + } + } + return 22; + } + } + } + else { + if ((char ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + continue; + } + if ((char & 0xfc00) === 0xd800 || ((unicodeLookup[(char >>> 5) + 34816] >>> char) & 31 & 1) !== 0) { + if ((char & 0xfc00) === 0xdc00) { + char = ((char & 0x3ff) << 10) | (char & 0x3ff) | 0x10000; + if (((unicodeLookup[(char >>> 5) + 0] >>> char) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(char)); + } + parser.index++; + parser.currentChar = char; + } + parser.column++; + parser.tokenValue = ''; + return scanIdentifierSlowCase(parser, context, 0, 0); + } + if (isExoticECMAScriptWhitespace(char)) { + advanceChar(parser); + continue; + } + report(parser, 18, fromCodePoint(char)); + } + } + return 1048576; + } + + const entities = { + AElig: '\u00C6', + AMP: '\u0026', + Aacute: '\u00C1', + Abreve: '\u0102', + Acirc: '\u00C2', + Acy: '\u0410', + Afr: '\uD835\uDD04', + Agrave: '\u00C0', + Alpha: '\u0391', + Amacr: '\u0100', + And: '\u2A53', + Aogon: '\u0104', + Aopf: '\uD835\uDD38', + ApplyFunction: '\u2061', + Aring: '\u00C5', + Ascr: '\uD835\uDC9C', + Assign: '\u2254', + Atilde: '\u00C3', + Auml: '\u00C4', + Backslash: '\u2216', + Barv: '\u2AE7', + Barwed: '\u2306', + Bcy: '\u0411', + Because: '\u2235', + Bernoullis: '\u212C', + Beta: '\u0392', + Bfr: '\uD835\uDD05', + Bopf: '\uD835\uDD39', + Breve: '\u02D8', + Bscr: '\u212C', + Bumpeq: '\u224E', + CHcy: '\u0427', + COPY: '\u00A9', + Cacute: '\u0106', + Cap: '\u22D2', + CapitalDifferentialD: '\u2145', + Cayleys: '\u212D', + Ccaron: '\u010C', + Ccedil: '\u00C7', + Ccirc: '\u0108', + Cconint: '\u2230', + Cdot: '\u010A', + Cedilla: '\u00B8', + CenterDot: '\u00B7', + Cfr: '\u212D', + Chi: '\u03A7', + CircleDot: '\u2299', + CircleMinus: '\u2296', + CirclePlus: '\u2295', + CircleTimes: '\u2297', + ClockwiseContourIntegral: '\u2232', + CloseCurlyDoubleQuote: '\u201D', + CloseCurlyQuote: '\u2019', + Colon: '\u2237', + Colone: '\u2A74', + Congruent: '\u2261', + Conint: '\u222F', + ContourIntegral: '\u222E', + Copf: '\u2102', + Coproduct: '\u2210', + CounterClockwiseContourIntegral: '\u2233', + Cross: '\u2A2F', + Cscr: '\uD835\uDC9E', + Cup: '\u22D3', + CupCap: '\u224D', + DD: '\u2145', + DDotrahd: '\u2911', + DJcy: '\u0402', + DScy: '\u0405', + DZcy: '\u040F', + Dagger: '\u2021', + Darr: '\u21A1', + Dashv: '\u2AE4', + Dcaron: '\u010E', + Dcy: '\u0414', + Del: '\u2207', + Delta: '\u0394', + Dfr: '\uD835\uDD07', + DiacriticalAcute: '\u00B4', + DiacriticalDot: '\u02D9', + DiacriticalDoubleAcute: '\u02DD', + DiacriticalGrave: '\u0060', + DiacriticalTilde: '\u02DC', + Diamond: '\u22C4', + DifferentialD: '\u2146', + Dopf: '\uD835\uDD3B', + Dot: '\u00A8', + DotDot: '\u20DC', + DotEqual: '\u2250', + DoubleContourIntegral: '\u222F', + DoubleDot: '\u00A8', + DoubleDownArrow: '\u21D3', + DoubleLeftArrow: '\u21D0', + DoubleLeftRightArrow: '\u21D4', + DoubleLeftTee: '\u2AE4', + DoubleLongLeftArrow: '\u27F8', + DoubleLongLeftRightArrow: '\u27FA', + DoubleLongRightArrow: '\u27F9', + DoubleRightArrow: '\u21D2', + DoubleRightTee: '\u22A8', + DoubleUpArrow: '\u21D1', + DoubleUpDownArrow: '\u21D5', + DoubleVerticalBar: '\u2225', + DownArrow: '\u2193', + DownArrowBar: '\u2913', + DownArrowUpArrow: '\u21F5', + DownBreve: '\u0311', + DownLeftRightVector: '\u2950', + DownLeftTeeVector: '\u295E', + DownLeftVector: '\u21BD', + DownLeftVectorBar: '\u2956', + DownRightTeeVector: '\u295F', + DownRightVector: '\u21C1', + DownRightVectorBar: '\u2957', + DownTee: '\u22A4', + DownTeeArrow: '\u21A7', + Downarrow: '\u21D3', + Dscr: '\uD835\uDC9F', + Dstrok: '\u0110', + ENG: '\u014A', + ETH: '\u00D0', + Eacute: '\u00C9', + Ecaron: '\u011A', + Ecirc: '\u00CA', + Ecy: '\u042D', + Edot: '\u0116', + Efr: '\uD835\uDD08', + Egrave: '\u00C8', + Element: '\u2208', + Emacr: '\u0112', + EmptySmallSquare: '\u25FB', + EmptyVerySmallSquare: '\u25AB', + Eogon: '\u0118', + Eopf: '\uD835\uDD3C', + Epsilon: '\u0395', + Equal: '\u2A75', + EqualTilde: '\u2242', + Equilibrium: '\u21CC', + Escr: '\u2130', + Esim: '\u2A73', + Eta: '\u0397', + Euml: '\u00CB', + Exists: '\u2203', + ExponentialE: '\u2147', + Fcy: '\u0424', + Ffr: '\uD835\uDD09', + FilledSmallSquare: '\u25FC', + FilledVerySmallSquare: '\u25AA', + Fopf: '\uD835\uDD3D', + ForAll: '\u2200', + Fouriertrf: '\u2131', + Fscr: '\u2131', + GJcy: '\u0403', + GT: '\u003E', + Gamma: '\u0393', + Gammad: '\u03DC', + Gbreve: '\u011E', + Gcedil: '\u0122', + Gcirc: '\u011C', + Gcy: '\u0413', + Gdot: '\u0120', + Gfr: '\uD835\uDD0A', + Gg: '\u22D9', + Gopf: '\uD835\uDD3E', + GreaterEqual: '\u2265', + GreaterEqualLess: '\u22DB', + GreaterFullEqual: '\u2267', + GreaterGreater: '\u2AA2', + GreaterLess: '\u2277', + GreaterSlantEqual: '\u2A7E', + GreaterTilde: '\u2273', + Gscr: '\uD835\uDCA2', + Gt: '\u226B', + HARDcy: '\u042A', + Hacek: '\u02C7', + Hat: '\u005E', + Hcirc: '\u0124', + Hfr: '\u210C', + HilbertSpace: '\u210B', + Hopf: '\u210D', + HorizontalLine: '\u2500', + Hscr: '\u210B', + Hstrok: '\u0126', + HumpDownHump: '\u224E', + HumpEqual: '\u224F', + IEcy: '\u0415', + IJlig: '\u0132', + IOcy: '\u0401', + Iacute: '\u00CD', + Icirc: '\u00CE', + Icy: '\u0418', + Idot: '\u0130', + Ifr: '\u2111', + Igrave: '\u00CC', + Im: '\u2111', + Imacr: '\u012A', + ImaginaryI: '\u2148', + Implies: '\u21D2', + Int: '\u222C', + Integral: '\u222B', + Intersection: '\u22C2', + InvisibleComma: '\u2063', + InvisibleTimes: '\u2062', + Iogon: '\u012E', + Iopf: '\uD835\uDD40', + Iota: '\u0399', + Iscr: '\u2110', + Itilde: '\u0128', + Iukcy: '\u0406', + Iuml: '\u00CF', + Jcirc: '\u0134', + Jcy: '\u0419', + Jfr: '\uD835\uDD0D', + Jopf: '\uD835\uDD41', + Jscr: '\uD835\uDCA5', + Jsercy: '\u0408', + Jukcy: '\u0404', + KHcy: '\u0425', + KJcy: '\u040C', + Kappa: '\u039A', + Kcedil: '\u0136', + Kcy: '\u041A', + Kfr: '\uD835\uDD0E', + Kopf: '\uD835\uDD42', + Kscr: '\uD835\uDCA6', + LJcy: '\u0409', + LT: '\u003C', + Lacute: '\u0139', + Lambda: '\u039B', + Lang: '\u27EA', + Laplacetrf: '\u2112', + Larr: '\u219E', + Lcaron: '\u013D', + Lcedil: '\u013B', + Lcy: '\u041B', + LeftAngleBracket: '\u27E8', + LeftArrow: '\u2190', + LeftArrowBar: '\u21E4', + LeftArrowRightArrow: '\u21C6', + LeftCeiling: '\u2308', + LeftDoubleBracket: '\u27E6', + LeftDownTeeVector: '\u2961', + LeftDownVector: '\u21C3', + LeftDownVectorBar: '\u2959', + LeftFloor: '\u230A', + LeftRightArrow: '\u2194', + LeftRightVector: '\u294E', + LeftTee: '\u22A3', + LeftTeeArrow: '\u21A4', + LeftTeeVector: '\u295A', + LeftTriangle: '\u22B2', + LeftTriangleBar: '\u29CF', + LeftTriangleEqual: '\u22B4', + LeftUpDownVector: '\u2951', + LeftUpTeeVector: '\u2960', + LeftUpVector: '\u21BF', + LeftUpVectorBar: '\u2958', + LeftVector: '\u21BC', + LeftVectorBar: '\u2952', + Leftarrow: '\u21D0', + Leftrightarrow: '\u21D4', + LessEqualGreater: '\u22DA', + LessFullEqual: '\u2266', + LessGreater: '\u2276', + LessLess: '\u2AA1', + LessSlantEqual: '\u2A7D', + LessTilde: '\u2272', + Lfr: '\uD835\uDD0F', + Ll: '\u22D8', + Lleftarrow: '\u21DA', + Lmidot: '\u013F', + LongLeftArrow: '\u27F5', + LongLeftRightArrow: '\u27F7', + LongRightArrow: '\u27F6', + Longleftarrow: '\u27F8', + Longleftrightarrow: '\u27FA', + Longrightarrow: '\u27F9', + Lopf: '\uD835\uDD43', + LowerLeftArrow: '\u2199', + LowerRightArrow: '\u2198', + Lscr: '\u2112', + Lsh: '\u21B0', + Lstrok: '\u0141', + Lt: '\u226A', + Map: '\u2905', + Mcy: '\u041C', + MediumSpace: '\u205F', + Mellintrf: '\u2133', + Mfr: '\uD835\uDD10', + MinusPlus: '\u2213', + Mopf: '\uD835\uDD44', + Mscr: '\u2133', + Mu: '\u039C', + NJcy: '\u040A', + Nacute: '\u0143', + Ncaron: '\u0147', + Ncedil: '\u0145', + Ncy: '\u041D', + NegativeMediumSpace: '\u200B', + NegativeThickSpace: '\u200B', + NegativeThinSpace: '\u200B', + NegativeVeryThinSpace: '\u200B', + NestedGreaterGreater: '\u226B', + NestedLessLess: '\u226A', + NewLine: '\u000A', + Nfr: '\uD835\uDD11', + NoBreak: '\u2060', + NonBreakingSpace: '\u00A0', + Nopf: '\u2115', + Not: '\u2AEC', + NotCongruent: '\u2262', + NotCupCap: '\u226D', + NotDoubleVerticalBar: '\u2226', + NotElement: '\u2209', + NotEqual: '\u2260', + NotEqualTilde: '\u2242\u0338', + NotExists: '\u2204', + NotGreater: '\u226F', + NotGreaterEqual: '\u2271', + NotGreaterFullEqual: '\u2267\u0338', + NotGreaterGreater: '\u226B\u0338', + NotGreaterLess: '\u2279', + NotGreaterSlantEqual: '\u2A7E\u0338', + NotGreaterTilde: '\u2275', + NotHumpDownHump: '\u224E\u0338', + NotHumpEqual: '\u224F\u0338', + NotLeftTriangle: '\u22EA', + NotLeftTriangleBar: '\u29CF\u0338', + NotLeftTriangleEqual: '\u22EC', + NotLess: '\u226E', + NotLessEqual: '\u2270', + NotLessGreater: '\u2278', + NotLessLess: '\u226A\u0338', + NotLessSlantEqual: '\u2A7D\u0338', + NotLessTilde: '\u2274', + NotNestedGreaterGreater: '\u2AA2\u0338', + NotNestedLessLess: '\u2AA1\u0338', + NotPrecedes: '\u2280', + NotPrecedesEqual: '\u2AAF\u0338', + NotPrecedesSlantEqual: '\u22E0', + NotReverseElement: '\u220C', + NotRightTriangle: '\u22EB', + NotRightTriangleBar: '\u29D0\u0338', + NotRightTriangleEqual: '\u22ED', + NotSquareSubset: '\u228F\u0338', + NotSquareSubsetEqual: '\u22E2', + NotSquareSuperset: '\u2290\u0338', + NotSquareSupersetEqual: '\u22E3', + NotSubset: '\u2282\u20D2', + NotSubsetEqual: '\u2288', + NotSucceeds: '\u2281', + NotSucceedsEqual: '\u2AB0\u0338', + NotSucceedsSlantEqual: '\u22E1', + NotSucceedsTilde: '\u227F\u0338', + NotSuperset: '\u2283\u20D2', + NotSupersetEqual: '\u2289', + NotTilde: '\u2241', + NotTildeEqual: '\u2244', + NotTildeFullEqual: '\u2247', + NotTildeTilde: '\u2249', + NotVerticalBar: '\u2224', + Nscr: '\uD835\uDCA9', + Ntilde: '\u00D1', + Nu: '\u039D', + OElig: '\u0152', + Oacute: '\u00D3', + Ocirc: '\u00D4', + Ocy: '\u041E', + Odblac: '\u0150', + Ofr: '\uD835\uDD12', + Ograve: '\u00D2', + Omacr: '\u014C', + Omega: '\u03A9', + Omicron: '\u039F', + Oopf: '\uD835\uDD46', + OpenCurlyDoubleQuote: '\u201C', + OpenCurlyQuote: '\u2018', + Or: '\u2A54', + Oscr: '\uD835\uDCAA', + Oslash: '\u00D8', + Otilde: '\u00D5', + Otimes: '\u2A37', + Ouml: '\u00D6', + OverBar: '\u203E', + OverBrace: '\u23DE', + OverBracket: '\u23B4', + OverParenthesis: '\u23DC', + PartialD: '\u2202', + Pcy: '\u041F', + Pfr: '\uD835\uDD13', + Phi: '\u03A6', + Pi: '\u03A0', + PlusMinus: '\u00B1', + Poincareplane: '\u210C', + Popf: '\u2119', + Pr: '\u2ABB', + Precedes: '\u227A', + PrecedesEqual: '\u2AAF', + PrecedesSlantEqual: '\u227C', + PrecedesTilde: '\u227E', + Prime: '\u2033', + Product: '\u220F', + Proportion: '\u2237', + Proportional: '\u221D', + Pscr: '\uD835\uDCAB', + Psi: '\u03A8', + QUOT: '\u0022', + Qfr: '\uD835\uDD14', + Qopf: '\u211A', + Qscr: '\uD835\uDCAC', + RBarr: '\u2910', + REG: '\u00AE', + Racute: '\u0154', + Rang: '\u27EB', + Rarr: '\u21A0', + Rarrtl: '\u2916', + Rcaron: '\u0158', + Rcedil: '\u0156', + Rcy: '\u0420', + Re: '\u211C', + ReverseElement: '\u220B', + ReverseEquilibrium: '\u21CB', + ReverseUpEquilibrium: '\u296F', + Rfr: '\u211C', + Rho: '\u03A1', + RightAngleBracket: '\u27E9', + RightArrow: '\u2192', + RightArrowBar: '\u21E5', + RightArrowLeftArrow: '\u21C4', + RightCeiling: '\u2309', + RightDoubleBracket: '\u27E7', + RightDownTeeVector: '\u295D', + RightDownVector: '\u21C2', + RightDownVectorBar: '\u2955', + RightFloor: '\u230B', + RightTee: '\u22A2', + RightTeeArrow: '\u21A6', + RightTeeVector: '\u295B', + RightTriangle: '\u22B3', + RightTriangleBar: '\u29D0', + RightTriangleEqual: '\u22B5', + RightUpDownVector: '\u294F', + RightUpTeeVector: '\u295C', + RightUpVector: '\u21BE', + RightUpVectorBar: '\u2954', + RightVector: '\u21C0', + RightVectorBar: '\u2953', + Rightarrow: '\u21D2', + Ropf: '\u211D', + RoundImplies: '\u2970', + Rrightarrow: '\u21DB', + Rscr: '\u211B', + Rsh: '\u21B1', + RuleDelayed: '\u29F4', + SHCHcy: '\u0429', + SHcy: '\u0428', + SOFTcy: '\u042C', + Sacute: '\u015A', + Sc: '\u2ABC', + Scaron: '\u0160', + Scedil: '\u015E', + Scirc: '\u015C', + Scy: '\u0421', + Sfr: '\uD835\uDD16', + ShortDownArrow: '\u2193', + ShortLeftArrow: '\u2190', + ShortRightArrow: '\u2192', + ShortUpArrow: '\u2191', + Sigma: '\u03A3', + SmallCircle: '\u2218', + Sopf: '\uD835\uDD4A', + Sqrt: '\u221A', + Square: '\u25A1', + SquareIntersection: '\u2293', + SquareSubset: '\u228F', + SquareSubsetEqual: '\u2291', + SquareSuperset: '\u2290', + SquareSupersetEqual: '\u2292', + SquareUnion: '\u2294', + Sscr: '\uD835\uDCAE', + Star: '\u22C6', + Sub: '\u22D0', + Subset: '\u22D0', + SubsetEqual: '\u2286', + Succeeds: '\u227B', + SucceedsEqual: '\u2AB0', + SucceedsSlantEqual: '\u227D', + SucceedsTilde: '\u227F', + SuchThat: '\u220B', + Sum: '\u2211', + Sup: '\u22D1', + Superset: '\u2283', + SupersetEqual: '\u2287', + Supset: '\u22D1', + THORN: '\u00DE', + TRADE: '\u2122', + TSHcy: '\u040B', + TScy: '\u0426', + Tab: '\u0009', + Tau: '\u03A4', + Tcaron: '\u0164', + Tcedil: '\u0162', + Tcy: '\u0422', + Tfr: '\uD835\uDD17', + Therefore: '\u2234', + Theta: '\u0398', + ThickSpace: '\u205F\u200A', + ThinSpace: '\u2009', + Tilde: '\u223C', + TildeEqual: '\u2243', + TildeFullEqual: '\u2245', + TildeTilde: '\u2248', + Topf: '\uD835\uDD4B', + TripleDot: '\u20DB', + Tscr: '\uD835\uDCAF', + Tstrok: '\u0166', + Uacute: '\u00DA', + Uarr: '\u219F', + Uarrocir: '\u2949', + Ubrcy: '\u040E', + Ubreve: '\u016C', + Ucirc: '\u00DB', + Ucy: '\u0423', + Udblac: '\u0170', + Ufr: '\uD835\uDD18', + Ugrave: '\u00D9', + Umacr: '\u016A', + UnderBar: '\u005F', + UnderBrace: '\u23DF', + UnderBracket: '\u23B5', + UnderParenthesis: '\u23DD', + Union: '\u22C3', + UnionPlus: '\u228E', + Uogon: '\u0172', + Uopf: '\uD835\uDD4C', + UpArrow: '\u2191', + UpArrowBar: '\u2912', + UpArrowDownArrow: '\u21C5', + UpDownArrow: '\u2195', + UpEquilibrium: '\u296E', + UpTee: '\u22A5', + UpTeeArrow: '\u21A5', + Uparrow: '\u21D1', + Updownarrow: '\u21D5', + UpperLeftArrow: '\u2196', + UpperRightArrow: '\u2197', + Upsi: '\u03D2', + Upsilon: '\u03A5', + Uring: '\u016E', + Uscr: '\uD835\uDCB0', + Utilde: '\u0168', + Uuml: '\u00DC', + VDash: '\u22AB', + Vbar: '\u2AEB', + Vcy: '\u0412', + Vdash: '\u22A9', + Vdashl: '\u2AE6', + Vee: '\u22C1', + Verbar: '\u2016', + Vert: '\u2016', + VerticalBar: '\u2223', + VerticalLine: '\u007C', + VerticalSeparator: '\u2758', + VerticalTilde: '\u2240', + VeryThinSpace: '\u200A', + Vfr: '\uD835\uDD19', + Vopf: '\uD835\uDD4D', + Vscr: '\uD835\uDCB1', + Vvdash: '\u22AA', + Wcirc: '\u0174', + Wedge: '\u22C0', + Wfr: '\uD835\uDD1A', + Wopf: '\uD835\uDD4E', + Wscr: '\uD835\uDCB2', + Xfr: '\uD835\uDD1B', + Xi: '\u039E', + Xopf: '\uD835\uDD4F', + Xscr: '\uD835\uDCB3', + YAcy: '\u042F', + YIcy: '\u0407', + YUcy: '\u042E', + Yacute: '\u00DD', + Ycirc: '\u0176', + Ycy: '\u042B', + Yfr: '\uD835\uDD1C', + Yopf: '\uD835\uDD50', + Yscr: '\uD835\uDCB4', + Yuml: '\u0178', + ZHcy: '\u0416', + Zacute: '\u0179', + Zcaron: '\u017D', + Zcy: '\u0417', + Zdot: '\u017B', + ZeroWidthSpace: '\u200B', + Zeta: '\u0396', + Zfr: '\u2128', + Zopf: '\u2124', + Zscr: '\uD835\uDCB5', + aacute: '\u00E1', + abreve: '\u0103', + ac: '\u223E', + acE: '\u223E\u0333', + acd: '\u223F', + acirc: '\u00E2', + acute: '\u00B4', + acy: '\u0430', + aelig: '\u00E6', + af: '\u2061', + afr: '\uD835\uDD1E', + agrave: '\u00E0', + alefsym: '\u2135', + aleph: '\u2135', + alpha: '\u03B1', + amacr: '\u0101', + amalg: '\u2A3F', + amp: '\u0026', + and: '\u2227', + andand: '\u2A55', + andd: '\u2A5C', + andslope: '\u2A58', + andv: '\u2A5A', + ang: '\u2220', + ange: '\u29A4', + angle: '\u2220', + angmsd: '\u2221', + angmsdaa: '\u29A8', + angmsdab: '\u29A9', + angmsdac: '\u29AA', + angmsdad: '\u29AB', + angmsdae: '\u29AC', + angmsdaf: '\u29AD', + angmsdag: '\u29AE', + angmsdah: '\u29AF', + angrt: '\u221F', + angrtvb: '\u22BE', + angrtvbd: '\u299D', + angsph: '\u2222', + angst: '\u00C5', + angzarr: '\u237C', + aogon: '\u0105', + aopf: '\uD835\uDD52', + ap: '\u2248', + apE: '\u2A70', + apacir: '\u2A6F', + ape: '\u224A', + apid: '\u224B', + apos: '\u0027', + approx: '\u2248', + approxeq: '\u224A', + aring: '\u00E5', + ascr: '\uD835\uDCB6', + ast: '\u002A', + asymp: '\u2248', + asympeq: '\u224D', + atilde: '\u00E3', + auml: '\u00E4', + awconint: '\u2233', + awint: '\u2A11', + bNot: '\u2AED', + backcong: '\u224C', + backepsilon: '\u03F6', + backprime: '\u2035', + backsim: '\u223D', + backsimeq: '\u22CD', + barvee: '\u22BD', + barwed: '\u2305', + barwedge: '\u2305', + bbrk: '\u23B5', + bbrktbrk: '\u23B6', + bcong: '\u224C', + bcy: '\u0431', + bdquo: '\u201E', + becaus: '\u2235', + because: '\u2235', + bemptyv: '\u29B0', + bepsi: '\u03F6', + bernou: '\u212C', + beta: '\u03B2', + beth: '\u2136', + between: '\u226C', + bfr: '\uD835\uDD1F', + bigcap: '\u22C2', + bigcirc: '\u25EF', + bigcup: '\u22C3', + bigodot: '\u2A00', + bigoplus: '\u2A01', + bigotimes: '\u2A02', + bigsqcup: '\u2A06', + bigstar: '\u2605', + bigtriangledown: '\u25BD', + bigtriangleup: '\u25B3', + biguplus: '\u2A04', + bigvee: '\u22C1', + bigwedge: '\u22C0', + bkarow: '\u290D', + blacklozenge: '\u29EB', + blacksquare: '\u25AA', + blacktriangle: '\u25B4', + blacktriangledown: '\u25BE', + blacktriangleleft: '\u25C2', + blacktriangleright: '\u25B8', + blank: '\u2423', + blk12: '\u2592', + blk14: '\u2591', + blk34: '\u2593', + block: '\u2588', + bne: '\u003D\u20E5', + bnequiv: '\u2261\u20E5', + bnot: '\u2310', + bopf: '\uD835\uDD53', + bot: '\u22A5', + bottom: '\u22A5', + bowtie: '\u22C8', + boxDL: '\u2557', + boxDR: '\u2554', + boxDl: '\u2556', + boxDr: '\u2553', + boxH: '\u2550', + boxHD: '\u2566', + boxHU: '\u2569', + boxHd: '\u2564', + boxHu: '\u2567', + boxUL: '\u255D', + boxUR: '\u255A', + boxUl: '\u255C', + boxUr: '\u2559', + boxV: '\u2551', + boxVH: '\u256C', + boxVL: '\u2563', + boxVR: '\u2560', + boxVh: '\u256B', + boxVl: '\u2562', + boxVr: '\u255F', + boxbox: '\u29C9', + boxdL: '\u2555', + boxdR: '\u2552', + boxdl: '\u2510', + boxdr: '\u250C', + boxh: '\u2500', + boxhD: '\u2565', + boxhU: '\u2568', + boxhd: '\u252C', + boxhu: '\u2534', + boxminus: '\u229F', + boxplus: '\u229E', + boxtimes: '\u22A0', + boxuL: '\u255B', + boxuR: '\u2558', + boxul: '\u2518', + boxur: '\u2514', + boxv: '\u2502', + boxvH: '\u256A', + boxvL: '\u2561', + boxvR: '\u255E', + boxvh: '\u253C', + boxvl: '\u2524', + boxvr: '\u251C', + bprime: '\u2035', + breve: '\u02D8', + brvbar: '\u00A6', + bscr: '\uD835\uDCB7', + bsemi: '\u204F', + bsim: '\u223D', + bsime: '\u22CD', + bsol: '\u005C', + bsolb: '\u29C5', + bsolhsub: '\u27C8', + bull: '\u2022', + bullet: '\u2022', + bump: '\u224E', + bumpE: '\u2AAE', + bumpe: '\u224F', + bumpeq: '\u224F', + cacute: '\u0107', + cap: '\u2229', + capand: '\u2A44', + capbrcup: '\u2A49', + capcap: '\u2A4B', + capcup: '\u2A47', + capdot: '\u2A40', + caps: '\u2229\uFE00', + caret: '\u2041', + caron: '\u02C7', + ccaps: '\u2A4D', + ccaron: '\u010D', + ccedil: '\u00E7', + ccirc: '\u0109', + ccups: '\u2A4C', + ccupssm: '\u2A50', + cdot: '\u010B', + cedil: '\u00B8', + cemptyv: '\u29B2', + cent: '\u00A2', + centerdot: '\u00B7', + cfr: '\uD835\uDD20', + chcy: '\u0447', + check: '\u2713', + checkmark: '\u2713', + chi: '\u03C7', + cir: '\u25CB', + cirE: '\u29C3', + circ: '\u02C6', + circeq: '\u2257', + circlearrowleft: '\u21BA', + circlearrowright: '\u21BB', + circledR: '\u00AE', + circledS: '\u24C8', + circledast: '\u229B', + circledcirc: '\u229A', + circleddash: '\u229D', + cire: '\u2257', + cirfnint: '\u2A10', + cirmid: '\u2AEF', + cirscir: '\u29C2', + clubs: '\u2663', + clubsuit: '\u2663', + colon: '\u003A', + colone: '\u2254', + coloneq: '\u2254', + comma: '\u002C', + commat: '\u0040', + comp: '\u2201', + compfn: '\u2218', + complement: '\u2201', + complexes: '\u2102', + cong: '\u2245', + congdot: '\u2A6D', + conint: '\u222E', + copf: '\uD835\uDD54', + coprod: '\u2210', + copy: '\u00A9', + copysr: '\u2117', + crarr: '\u21B5', + cross: '\u2717', + cscr: '\uD835\uDCB8', + csub: '\u2ACF', + csube: '\u2AD1', + csup: '\u2AD0', + csupe: '\u2AD2', + ctdot: '\u22EF', + cudarrl: '\u2938', + cudarrr: '\u2935', + cuepr: '\u22DE', + cuesc: '\u22DF', + cularr: '\u21B6', + cularrp: '\u293D', + cup: '\u222A', + cupbrcap: '\u2A48', + cupcap: '\u2A46', + cupcup: '\u2A4A', + cupdot: '\u228D', + cupor: '\u2A45', + cups: '\u222A\uFE00', + curarr: '\u21B7', + curarrm: '\u293C', + curlyeqprec: '\u22DE', + curlyeqsucc: '\u22DF', + curlyvee: '\u22CE', + curlywedge: '\u22CF', + curren: '\u00A4', + curvearrowleft: '\u21B6', + curvearrowright: '\u21B7', + cuvee: '\u22CE', + cuwed: '\u22CF', + cwconint: '\u2232', + cwint: '\u2231', + cylcty: '\u232D', + dArr: '\u21D3', + dHar: '\u2965', + dagger: '\u2020', + daleth: '\u2138', + darr: '\u2193', + dash: '\u2010', + dashv: '\u22A3', + dbkarow: '\u290F', + dblac: '\u02DD', + dcaron: '\u010F', + dcy: '\u0434', + dd: '\u2146', + ddagger: '\u2021', + ddarr: '\u21CA', + ddotseq: '\u2A77', + deg: '\u00B0', + delta: '\u03B4', + demptyv: '\u29B1', + dfisht: '\u297F', + dfr: '\uD835\uDD21', + dharl: '\u21C3', + dharr: '\u21C2', + diam: '\u22C4', + diamond: '\u22C4', + diamondsuit: '\u2666', + diams: '\u2666', + die: '\u00A8', + digamma: '\u03DD', + disin: '\u22F2', + div: '\u00F7', + divide: '\u00F7', + divideontimes: '\u22C7', + divonx: '\u22C7', + djcy: '\u0452', + dlcorn: '\u231E', + dlcrop: '\u230D', + dollar: '\u0024', + dopf: '\uD835\uDD55', + dot: '\u02D9', + doteq: '\u2250', + doteqdot: '\u2251', + dotminus: '\u2238', + dotplus: '\u2214', + dotsquare: '\u22A1', + doublebarwedge: '\u2306', + downarrow: '\u2193', + downdownarrows: '\u21CA', + downharpoonleft: '\u21C3', + downharpoonright: '\u21C2', + drbkarow: '\u2910', + drcorn: '\u231F', + drcrop: '\u230C', + dscr: '\uD835\uDCB9', + dscy: '\u0455', + dsol: '\u29F6', + dstrok: '\u0111', + dtdot: '\u22F1', + dtri: '\u25BF', + dtrif: '\u25BE', + duarr: '\u21F5', + duhar: '\u296F', + dwangle: '\u29A6', + dzcy: '\u045F', + dzigrarr: '\u27FF', + eDDot: '\u2A77', + eDot: '\u2251', + eacute: '\u00E9', + easter: '\u2A6E', + ecaron: '\u011B', + ecir: '\u2256', + ecirc: '\u00EA', + ecolon: '\u2255', + ecy: '\u044D', + edot: '\u0117', + ee: '\u2147', + efDot: '\u2252', + efr: '\uD835\uDD22', + eg: '\u2A9A', + egrave: '\u00E8', + egs: '\u2A96', + egsdot: '\u2A98', + el: '\u2A99', + elinters: '\u23E7', + ell: '\u2113', + els: '\u2A95', + elsdot: '\u2A97', + emacr: '\u0113', + empty: '\u2205', + emptyset: '\u2205', + emptyv: '\u2205', + emsp13: '\u2004', + emsp14: '\u2005', + emsp: '\u2003', + eng: '\u014B', + ensp: '\u2002', + eogon: '\u0119', + eopf: '\uD835\uDD56', + epar: '\u22D5', + eparsl: '\u29E3', + eplus: '\u2A71', + epsi: '\u03B5', + epsilon: '\u03B5', + epsiv: '\u03F5', + eqcirc: '\u2256', + eqcolon: '\u2255', + eqsim: '\u2242', + eqslantgtr: '\u2A96', + eqslantless: '\u2A95', + equals: '\u003D', + equest: '\u225F', + equiv: '\u2261', + equivDD: '\u2A78', + eqvparsl: '\u29E5', + erDot: '\u2253', + erarr: '\u2971', + escr: '\u212F', + esdot: '\u2250', + esim: '\u2242', + eta: '\u03B7', + eth: '\u00F0', + euml: '\u00EB', + euro: '\u20AC', + excl: '\u0021', + exist: '\u2203', + expectation: '\u2130', + exponentiale: '\u2147', + fallingdotseq: '\u2252', + fcy: '\u0444', + female: '\u2640', + ffilig: '\uFB03', + fflig: '\uFB00', + ffllig: '\uFB04', + ffr: '\uD835\uDD23', + filig: '\uFB01', + fjlig: '\u0066\u006A', + flat: '\u266D', + fllig: '\uFB02', + fltns: '\u25B1', + fnof: '\u0192', + fopf: '\uD835\uDD57', + forall: '\u2200', + fork: '\u22D4', + forkv: '\u2AD9', + fpartint: '\u2A0D', + frac12: '\u00BD', + frac13: '\u2153', + frac14: '\u00BC', + frac15: '\u2155', + frac16: '\u2159', + frac18: '\u215B', + frac23: '\u2154', + frac25: '\u2156', + frac34: '\u00BE', + frac35: '\u2157', + frac38: '\u215C', + frac45: '\u2158', + frac56: '\u215A', + frac58: '\u215D', + frac78: '\u215E', + frasl: '\u2044', + frown: '\u2322', + fscr: '\uD835\uDCBB', + gE: '\u2267', + gEl: '\u2A8C', + gacute: '\u01F5', + gamma: '\u03B3', + gammad: '\u03DD', + gap: '\u2A86', + gbreve: '\u011F', + gcirc: '\u011D', + gcy: '\u0433', + gdot: '\u0121', + ge: '\u2265', + gel: '\u22DB', + geq: '\u2265', + geqq: '\u2267', + geqslant: '\u2A7E', + ges: '\u2A7E', + gescc: '\u2AA9', + gesdot: '\u2A80', + gesdoto: '\u2A82', + gesdotol: '\u2A84', + gesl: '\u22DB\uFE00', + gesles: '\u2A94', + gfr: '\uD835\uDD24', + gg: '\u226B', + ggg: '\u22D9', + gimel: '\u2137', + gjcy: '\u0453', + gl: '\u2277', + glE: '\u2A92', + gla: '\u2AA5', + glj: '\u2AA4', + gnE: '\u2269', + gnap: '\u2A8A', + gnapprox: '\u2A8A', + gne: '\u2A88', + gneq: '\u2A88', + gneqq: '\u2269', + gnsim: '\u22E7', + gopf: '\uD835\uDD58', + grave: '\u0060', + gscr: '\u210A', + gsim: '\u2273', + gsime: '\u2A8E', + gsiml: '\u2A90', + gt: '\u003E', + gtcc: '\u2AA7', + gtcir: '\u2A7A', + gtdot: '\u22D7', + gtlPar: '\u2995', + gtquest: '\u2A7C', + gtrapprox: '\u2A86', + gtrarr: '\u2978', + gtrdot: '\u22D7', + gtreqless: '\u22DB', + gtreqqless: '\u2A8C', + gtrless: '\u2277', + gtrsim: '\u2273', + gvertneqq: '\u2269\uFE00', + gvnE: '\u2269\uFE00', + hArr: '\u21D4', + hairsp: '\u200A', + half: '\u00BD', + hamilt: '\u210B', + hardcy: '\u044A', + harr: '\u2194', + harrcir: '\u2948', + harrw: '\u21AD', + hbar: '\u210F', + hcirc: '\u0125', + hearts: '\u2665', + heartsuit: '\u2665', + hellip: '\u2026', + hercon: '\u22B9', + hfr: '\uD835\uDD25', + hksearow: '\u2925', + hkswarow: '\u2926', + hoarr: '\u21FF', + homtht: '\u223B', + hookleftarrow: '\u21A9', + hookrightarrow: '\u21AA', + hopf: '\uD835\uDD59', + horbar: '\u2015', + hscr: '\uD835\uDCBD', + hslash: '\u210F', + hstrok: '\u0127', + hybull: '\u2043', + hyphen: '\u2010', + iacute: '\u00ED', + ic: '\u2063', + icirc: '\u00EE', + icy: '\u0438', + iecy: '\u0435', + iexcl: '\u00A1', + iff: '\u21D4', + ifr: '\uD835\uDD26', + igrave: '\u00EC', + ii: '\u2148', + iiiint: '\u2A0C', + iiint: '\u222D', + iinfin: '\u29DC', + iiota: '\u2129', + ijlig: '\u0133', + imacr: '\u012B', + image: '\u2111', + imagline: '\u2110', + imagpart: '\u2111', + imath: '\u0131', + imof: '\u22B7', + imped: '\u01B5', + in: '\u2208', + incare: '\u2105', + infin: '\u221E', + infintie: '\u29DD', + inodot: '\u0131', + int: '\u222B', + intcal: '\u22BA', + integers: '\u2124', + intercal: '\u22BA', + intlarhk: '\u2A17', + intprod: '\u2A3C', + iocy: '\u0451', + iogon: '\u012F', + iopf: '\uD835\uDD5A', + iota: '\u03B9', + iprod: '\u2A3C', + iquest: '\u00BF', + iscr: '\uD835\uDCBE', + isin: '\u2208', + isinE: '\u22F9', + isindot: '\u22F5', + isins: '\u22F4', + isinsv: '\u22F3', + isinv: '\u2208', + it: '\u2062', + itilde: '\u0129', + iukcy: '\u0456', + iuml: '\u00EF', + jcirc: '\u0135', + jcy: '\u0439', + jfr: '\uD835\uDD27', + jmath: '\u0237', + jopf: '\uD835\uDD5B', + jscr: '\uD835\uDCBF', + jsercy: '\u0458', + jukcy: '\u0454', + kappa: '\u03BA', + kappav: '\u03F0', + kcedil: '\u0137', + kcy: '\u043A', + kfr: '\uD835\uDD28', + kgreen: '\u0138', + khcy: '\u0445', + kjcy: '\u045C', + kopf: '\uD835\uDD5C', + kscr: '\uD835\uDCC0', + lAarr: '\u21DA', + lArr: '\u21D0', + lAtail: '\u291B', + lBarr: '\u290E', + lE: '\u2266', + lEg: '\u2A8B', + lHar: '\u2962', + lacute: '\u013A', + laemptyv: '\u29B4', + lagran: '\u2112', + lambda: '\u03BB', + lang: '\u27E8', + langd: '\u2991', + langle: '\u27E8', + lap: '\u2A85', + laquo: '\u00AB', + larr: '\u2190', + larrb: '\u21E4', + larrbfs: '\u291F', + larrfs: '\u291D', + larrhk: '\u21A9', + larrlp: '\u21AB', + larrpl: '\u2939', + larrsim: '\u2973', + larrtl: '\u21A2', + lat: '\u2AAB', + latail: '\u2919', + late: '\u2AAD', + lates: '\u2AAD\uFE00', + lbarr: '\u290C', + lbbrk: '\u2772', + lbrace: '\u007B', + lbrack: '\u005B', + lbrke: '\u298B', + lbrksld: '\u298F', + lbrkslu: '\u298D', + lcaron: '\u013E', + lcedil: '\u013C', + lceil: '\u2308', + lcub: '\u007B', + lcy: '\u043B', + ldca: '\u2936', + ldquo: '\u201C', + ldquor: '\u201E', + ldrdhar: '\u2967', + ldrushar: '\u294B', + ldsh: '\u21B2', + le: '\u2264', + leftarrow: '\u2190', + leftarrowtail: '\u21A2', + leftharpoondown: '\u21BD', + leftharpoonup: '\u21BC', + leftleftarrows: '\u21C7', + leftrightarrow: '\u2194', + leftrightarrows: '\u21C6', + leftrightharpoons: '\u21CB', + leftrightsquigarrow: '\u21AD', + leftthreetimes: '\u22CB', + leg: '\u22DA', + leq: '\u2264', + leqq: '\u2266', + leqslant: '\u2A7D', + les: '\u2A7D', + lescc: '\u2AA8', + lesdot: '\u2A7F', + lesdoto: '\u2A81', + lesdotor: '\u2A83', + lesg: '\u22DA\uFE00', + lesges: '\u2A93', + lessapprox: '\u2A85', + lessdot: '\u22D6', + lesseqgtr: '\u22DA', + lesseqqgtr: '\u2A8B', + lessgtr: '\u2276', + lesssim: '\u2272', + lfisht: '\u297C', + lfloor: '\u230A', + lfr: '\uD835\uDD29', + lg: '\u2276', + lgE: '\u2A91', + lhard: '\u21BD', + lharu: '\u21BC', + lharul: '\u296A', + lhblk: '\u2584', + ljcy: '\u0459', + ll: '\u226A', + llarr: '\u21C7', + llcorner: '\u231E', + llhard: '\u296B', + lltri: '\u25FA', + lmidot: '\u0140', + lmoust: '\u23B0', + lmoustache: '\u23B0', + lnE: '\u2268', + lnap: '\u2A89', + lnapprox: '\u2A89', + lne: '\u2A87', + lneq: '\u2A87', + lneqq: '\u2268', + lnsim: '\u22E6', + loang: '\u27EC', + loarr: '\u21FD', + lobrk: '\u27E6', + longleftarrow: '\u27F5', + longleftrightarrow: '\u27F7', + longmapsto: '\u27FC', + longrightarrow: '\u27F6', + looparrowleft: '\u21AB', + looparrowright: '\u21AC', + lopar: '\u2985', + lopf: '\uD835\uDD5D', + loplus: '\u2A2D', + lotimes: '\u2A34', + lowast: '\u2217', + lowbar: '\u005F', + loz: '\u25CA', + lozenge: '\u25CA', + lozf: '\u29EB', + lpar: '\u0028', + lparlt: '\u2993', + lrarr: '\u21C6', + lrcorner: '\u231F', + lrhar: '\u21CB', + lrhard: '\u296D', + lrm: '\u200E', + lrtri: '\u22BF', + lsaquo: '\u2039', + lscr: '\uD835\uDCC1', + lsh: '\u21B0', + lsim: '\u2272', + lsime: '\u2A8D', + lsimg: '\u2A8F', + lsqb: '\u005B', + lsquo: '\u2018', + lsquor: '\u201A', + lstrok: '\u0142', + lt: '\u003C', + ltcc: '\u2AA6', + ltcir: '\u2A79', + ltdot: '\u22D6', + lthree: '\u22CB', + ltimes: '\u22C9', + ltlarr: '\u2976', + ltquest: '\u2A7B', + ltrPar: '\u2996', + ltri: '\u25C3', + ltrie: '\u22B4', + ltrif: '\u25C2', + lurdshar: '\u294A', + luruhar: '\u2966', + lvertneqq: '\u2268\uFE00', + lvnE: '\u2268\uFE00', + mDDot: '\u223A', + macr: '\u00AF', + male: '\u2642', + malt: '\u2720', + maltese: '\u2720', + map: '\u21A6', + mapsto: '\u21A6', + mapstodown: '\u21A7', + mapstoleft: '\u21A4', + mapstoup: '\u21A5', + marker: '\u25AE', + mcomma: '\u2A29', + mcy: '\u043C', + mdash: '\u2014', + measuredangle: '\u2221', + mfr: '\uD835\uDD2A', + mho: '\u2127', + micro: '\u00B5', + mid: '\u2223', + midast: '\u002A', + midcir: '\u2AF0', + middot: '\u00B7', + minus: '\u2212', + minusb: '\u229F', + minusd: '\u2238', + minusdu: '\u2A2A', + mlcp: '\u2ADB', + mldr: '\u2026', + mnplus: '\u2213', + models: '\u22A7', + mopf: '\uD835\uDD5E', + mp: '\u2213', + mscr: '\uD835\uDCC2', + mstpos: '\u223E', + mu: '\u03BC', + multimap: '\u22B8', + mumap: '\u22B8', + nGg: '\u22D9\u0338', + nGt: '\u226B\u20D2', + nGtv: '\u226B\u0338', + nLeftarrow: '\u21CD', + nLeftrightarrow: '\u21CE', + nLl: '\u22D8\u0338', + nLt: '\u226A\u20D2', + nLtv: '\u226A\u0338', + nRightarrow: '\u21CF', + nVDash: '\u22AF', + nVdash: '\u22AE', + nabla: '\u2207', + nacute: '\u0144', + nang: '\u2220\u20D2', + nap: '\u2249', + napE: '\u2A70\u0338', + napid: '\u224B\u0338', + napos: '\u0149', + napprox: '\u2249', + natur: '\u266E', + natural: '\u266E', + naturals: '\u2115', + nbsp: '\u00A0', + nbump: '\u224E\u0338', + nbumpe: '\u224F\u0338', + ncap: '\u2A43', + ncaron: '\u0148', + ncedil: '\u0146', + ncong: '\u2247', + ncongdot: '\u2A6D\u0338', + ncup: '\u2A42', + ncy: '\u043D', + ndash: '\u2013', + ne: '\u2260', + neArr: '\u21D7', + nearhk: '\u2924', + nearr: '\u2197', + nearrow: '\u2197', + nedot: '\u2250\u0338', + nequiv: '\u2262', + nesear: '\u2928', + nesim: '\u2242\u0338', + nexist: '\u2204', + nexists: '\u2204', + nfr: '\uD835\uDD2B', + ngE: '\u2267\u0338', + nge: '\u2271', + ngeq: '\u2271', + ngeqq: '\u2267\u0338', + ngeqslant: '\u2A7E\u0338', + nges: '\u2A7E\u0338', + ngsim: '\u2275', + ngt: '\u226F', + ngtr: '\u226F', + nhArr: '\u21CE', + nharr: '\u21AE', + nhpar: '\u2AF2', + ni: '\u220B', + nis: '\u22FC', + nisd: '\u22FA', + niv: '\u220B', + njcy: '\u045A', + nlArr: '\u21CD', + nlE: '\u2266\u0338', + nlarr: '\u219A', + nldr: '\u2025', + nle: '\u2270', + nleftarrow: '\u219A', + nleftrightarrow: '\u21AE', + nleq: '\u2270', + nleqq: '\u2266\u0338', + nleqslant: '\u2A7D\u0338', + nles: '\u2A7D\u0338', + nless: '\u226E', + nlsim: '\u2274', + nlt: '\u226E', + nltri: '\u22EA', + nltrie: '\u22EC', + nmid: '\u2224', + nopf: '\uD835\uDD5F', + not: '\u00AC', + notin: '\u2209', + notinE: '\u22F9\u0338', + notindot: '\u22F5\u0338', + notinva: '\u2209', + notinvb: '\u22F7', + notinvc: '\u22F6', + notni: '\u220C', + notniva: '\u220C', + notnivb: '\u22FE', + notnivc: '\u22FD', + npar: '\u2226', + nparallel: '\u2226', + nparsl: '\u2AFD\u20E5', + npart: '\u2202\u0338', + npolint: '\u2A14', + npr: '\u2280', + nprcue: '\u22E0', + npre: '\u2AAF\u0338', + nprec: '\u2280', + npreceq: '\u2AAF\u0338', + nrArr: '\u21CF', + nrarr: '\u219B', + nrarrc: '\u2933\u0338', + nrarrw: '\u219D\u0338', + nrightarrow: '\u219B', + nrtri: '\u22EB', + nrtrie: '\u22ED', + nsc: '\u2281', + nsccue: '\u22E1', + nsce: '\u2AB0\u0338', + nscr: '\uD835\uDCC3', + nshortmid: '\u2224', + nshortparallel: '\u2226', + nsim: '\u2241', + nsime: '\u2244', + nsimeq: '\u2244', + nsmid: '\u2224', + nspar: '\u2226', + nsqsube: '\u22E2', + nsqsupe: '\u22E3', + nsub: '\u2284', + nsubE: '\u2AC5\u0338', + nsube: '\u2288', + nsubset: '\u2282\u20D2', + nsubseteq: '\u2288', + nsubseteqq: '\u2AC5\u0338', + nsucc: '\u2281', + nsucceq: '\u2AB0\u0338', + nsup: '\u2285', + nsupE: '\u2AC6\u0338', + nsupe: '\u2289', + nsupset: '\u2283\u20D2', + nsupseteq: '\u2289', + nsupseteqq: '\u2AC6\u0338', + ntgl: '\u2279', + ntilde: '\u00F1', + ntlg: '\u2278', + ntriangleleft: '\u22EA', + ntrianglelefteq: '\u22EC', + ntriangleright: '\u22EB', + ntrianglerighteq: '\u22ED', + nu: '\u03BD', + num: '\u0023', + numero: '\u2116', + numsp: '\u2007', + nvDash: '\u22AD', + nvHarr: '\u2904', + nvap: '\u224D\u20D2', + nvdash: '\u22AC', + nvge: '\u2265\u20D2', + nvgt: '\u003E\u20D2', + nvinfin: '\u29DE', + nvlArr: '\u2902', + nvle: '\u2264\u20D2', + nvlt: '\u003C\u20D2', + nvltrie: '\u22B4\u20D2', + nvrArr: '\u2903', + nvrtrie: '\u22B5\u20D2', + nvsim: '\u223C\u20D2', + nwArr: '\u21D6', + nwarhk: '\u2923', + nwarr: '\u2196', + nwarrow: '\u2196', + nwnear: '\u2927', + oS: '\u24C8', + oacute: '\u00F3', + oast: '\u229B', + ocir: '\u229A', + ocirc: '\u00F4', + ocy: '\u043E', + odash: '\u229D', + odblac: '\u0151', + odiv: '\u2A38', + odot: '\u2299', + odsold: '\u29BC', + oelig: '\u0153', + ofcir: '\u29BF', + ofr: '\uD835\uDD2C', + ogon: '\u02DB', + ograve: '\u00F2', + ogt: '\u29C1', + ohbar: '\u29B5', + ohm: '\u03A9', + oint: '\u222E', + olarr: '\u21BA', + olcir: '\u29BE', + olcross: '\u29BB', + oline: '\u203E', + olt: '\u29C0', + omacr: '\u014D', + omega: '\u03C9', + omicron: '\u03BF', + omid: '\u29B6', + ominus: '\u2296', + oopf: '\uD835\uDD60', + opar: '\u29B7', + operp: '\u29B9', + oplus: '\u2295', + or: '\u2228', + orarr: '\u21BB', + ord: '\u2A5D', + order: '\u2134', + orderof: '\u2134', + ordf: '\u00AA', + ordm: '\u00BA', + origof: '\u22B6', + oror: '\u2A56', + orslope: '\u2A57', + orv: '\u2A5B', + oscr: '\u2134', + oslash: '\u00F8', + osol: '\u2298', + otilde: '\u00F5', + otimes: '\u2297', + otimesas: '\u2A36', + ouml: '\u00F6', + ovbar: '\u233D', + par: '\u2225', + para: '\u00B6', + parallel: '\u2225', + parsim: '\u2AF3', + parsl: '\u2AFD', + part: '\u2202', + pcy: '\u043F', + percnt: '\u0025', + period: '\u002E', + permil: '\u2030', + perp: '\u22A5', + pertenk: '\u2031', + pfr: '\uD835\uDD2D', + phi: '\u03C6', + phiv: '\u03D5', + phmmat: '\u2133', + phone: '\u260E', + pi: '\u03C0', + pitchfork: '\u22D4', + piv: '\u03D6', + planck: '\u210F', + planckh: '\u210E', + plankv: '\u210F', + plus: '\u002B', + plusacir: '\u2A23', + plusb: '\u229E', + pluscir: '\u2A22', + plusdo: '\u2214', + plusdu: '\u2A25', + pluse: '\u2A72', + plusmn: '\u00B1', + plussim: '\u2A26', + plustwo: '\u2A27', + pm: '\u00B1', + pointint: '\u2A15', + popf: '\uD835\uDD61', + pound: '\u00A3', + pr: '\u227A', + prE: '\u2AB3', + prap: '\u2AB7', + prcue: '\u227C', + pre: '\u2AAF', + prec: '\u227A', + precapprox: '\u2AB7', + preccurlyeq: '\u227C', + preceq: '\u2AAF', + precnapprox: '\u2AB9', + precneqq: '\u2AB5', + precnsim: '\u22E8', + precsim: '\u227E', + prime: '\u2032', + primes: '\u2119', + prnE: '\u2AB5', + prnap: '\u2AB9', + prnsim: '\u22E8', + prod: '\u220F', + profalar: '\u232E', + profline: '\u2312', + profsurf: '\u2313', + prop: '\u221D', + propto: '\u221D', + prsim: '\u227E', + prurel: '\u22B0', + pscr: '\uD835\uDCC5', + psi: '\u03C8', + puncsp: '\u2008', + qfr: '\uD835\uDD2E', + qint: '\u2A0C', + qopf: '\uD835\uDD62', + qprime: '\u2057', + qscr: '\uD835\uDCC6', + quaternions: '\u210D', + quatint: '\u2A16', + quest: '\u003F', + questeq: '\u225F', + quot: '\u0022', + rAarr: '\u21DB', + rArr: '\u21D2', + rAtail: '\u291C', + rBarr: '\u290F', + rHar: '\u2964', + race: '\u223D\u0331', + racute: '\u0155', + radic: '\u221A', + raemptyv: '\u29B3', + rang: '\u27E9', + rangd: '\u2992', + range: '\u29A5', + rangle: '\u27E9', + raquo: '\u00BB', + rarr: '\u2192', + rarrap: '\u2975', + rarrb: '\u21E5', + rarrbfs: '\u2920', + rarrc: '\u2933', + rarrfs: '\u291E', + rarrhk: '\u21AA', + rarrlp: '\u21AC', + rarrpl: '\u2945', + rarrsim: '\u2974', + rarrtl: '\u21A3', + rarrw: '\u219D', + ratail: '\u291A', + ratio: '\u2236', + rationals: '\u211A', + rbarr: '\u290D', + rbbrk: '\u2773', + rbrace: '\u007D', + rbrack: '\u005D', + rbrke: '\u298C', + rbrksld: '\u298E', + rbrkslu: '\u2990', + rcaron: '\u0159', + rcedil: '\u0157', + rceil: '\u2309', + rcub: '\u007D', + rcy: '\u0440', + rdca: '\u2937', + rdldhar: '\u2969', + rdquo: '\u201D', + rdquor: '\u201D', + rdsh: '\u21B3', + real: '\u211C', + realine: '\u211B', + realpart: '\u211C', + reals: '\u211D', + rect: '\u25AD', + reg: '\u00AE', + rfisht: '\u297D', + rfloor: '\u230B', + rfr: '\uD835\uDD2F', + rhard: '\u21C1', + rharu: '\u21C0', + rharul: '\u296C', + rho: '\u03C1', + rhov: '\u03F1', + rightarrow: '\u2192', + rightarrowtail: '\u21A3', + rightharpoondown: '\u21C1', + rightharpoonup: '\u21C0', + rightleftarrows: '\u21C4', + rightleftharpoons: '\u21CC', + rightrightarrows: '\u21C9', + rightsquigarrow: '\u219D', + rightthreetimes: '\u22CC', + ring: '\u02DA', + risingdotseq: '\u2253', + rlarr: '\u21C4', + rlhar: '\u21CC', + rlm: '\u200F', + rmoust: '\u23B1', + rmoustache: '\u23B1', + rnmid: '\u2AEE', + roang: '\u27ED', + roarr: '\u21FE', + robrk: '\u27E7', + ropar: '\u2986', + ropf: '\uD835\uDD63', + roplus: '\u2A2E', + rotimes: '\u2A35', + rpar: '\u0029', + rpargt: '\u2994', + rppolint: '\u2A12', + rrarr: '\u21C9', + rsaquo: '\u203A', + rscr: '\uD835\uDCC7', + rsh: '\u21B1', + rsqb: '\u005D', + rsquo: '\u2019', + rsquor: '\u2019', + rthree: '\u22CC', + rtimes: '\u22CA', + rtri: '\u25B9', + rtrie: '\u22B5', + rtrif: '\u25B8', + rtriltri: '\u29CE', + ruluhar: '\u2968', + rx: '\u211E', + sacute: '\u015B', + sbquo: '\u201A', + sc: '\u227B', + scE: '\u2AB4', + scap: '\u2AB8', + scaron: '\u0161', + sccue: '\u227D', + sce: '\u2AB0', + scedil: '\u015F', + scirc: '\u015D', + scnE: '\u2AB6', + scnap: '\u2ABA', + scnsim: '\u22E9', + scpolint: '\u2A13', + scsim: '\u227F', + scy: '\u0441', + sdot: '\u22C5', + sdotb: '\u22A1', + sdote: '\u2A66', + seArr: '\u21D8', + searhk: '\u2925', + searr: '\u2198', + searrow: '\u2198', + sect: '\u00A7', + semi: '\u003B', + seswar: '\u2929', + setminus: '\u2216', + setmn: '\u2216', + sext: '\u2736', + sfr: '\uD835\uDD30', + sfrown: '\u2322', + sharp: '\u266F', + shchcy: '\u0449', + shcy: '\u0448', + shortmid: '\u2223', + shortparallel: '\u2225', + shy: '\u00AD', + sigma: '\u03C3', + sigmaf: '\u03C2', + sigmav: '\u03C2', + sim: '\u223C', + simdot: '\u2A6A', + sime: '\u2243', + simeq: '\u2243', + simg: '\u2A9E', + simgE: '\u2AA0', + siml: '\u2A9D', + simlE: '\u2A9F', + simne: '\u2246', + simplus: '\u2A24', + simrarr: '\u2972', + slarr: '\u2190', + smallsetminus: '\u2216', + smashp: '\u2A33', + smeparsl: '\u29E4', + smid: '\u2223', + smile: '\u2323', + smt: '\u2AAA', + smte: '\u2AAC', + smtes: '\u2AAC\uFE00', + softcy: '\u044C', + sol: '\u002F', + solb: '\u29C4', + solbar: '\u233F', + sopf: '\uD835\uDD64', + spades: '\u2660', + spadesuit: '\u2660', + spar: '\u2225', + sqcap: '\u2293', + sqcaps: '\u2293\uFE00', + sqcup: '\u2294', + sqcups: '\u2294\uFE00', + sqsub: '\u228F', + sqsube: '\u2291', + sqsubset: '\u228F', + sqsubseteq: '\u2291', + sqsup: '\u2290', + sqsupe: '\u2292', + sqsupset: '\u2290', + sqsupseteq: '\u2292', + squ: '\u25A1', + square: '\u25A1', + squarf: '\u25AA', + squf: '\u25AA', + srarr: '\u2192', + sscr: '\uD835\uDCC8', + ssetmn: '\u2216', + ssmile: '\u2323', + sstarf: '\u22C6', + star: '\u2606', + starf: '\u2605', + straightepsilon: '\u03F5', + straightphi: '\u03D5', + strns: '\u00AF', + sub: '\u2282', + subE: '\u2AC5', + subdot: '\u2ABD', + sube: '\u2286', + subedot: '\u2AC3', + submult: '\u2AC1', + subnE: '\u2ACB', + subne: '\u228A', + subplus: '\u2ABF', + subrarr: '\u2979', + subset: '\u2282', + subseteq: '\u2286', + subseteqq: '\u2AC5', + subsetneq: '\u228A', + subsetneqq: '\u2ACB', + subsim: '\u2AC7', + subsub: '\u2AD5', + subsup: '\u2AD3', + succ: '\u227B', + succapprox: '\u2AB8', + succcurlyeq: '\u227D', + succeq: '\u2AB0', + succnapprox: '\u2ABA', + succneqq: '\u2AB6', + succnsim: '\u22E9', + succsim: '\u227F', + sum: '\u2211', + sung: '\u266A', + sup1: '\u00B9', + sup2: '\u00B2', + sup3: '\u00B3', + sup: '\u2283', + supE: '\u2AC6', + supdot: '\u2ABE', + supdsub: '\u2AD8', + supe: '\u2287', + supedot: '\u2AC4', + suphsol: '\u27C9', + suphsub: '\u2AD7', + suplarr: '\u297B', + supmult: '\u2AC2', + supnE: '\u2ACC', + supne: '\u228B', + supplus: '\u2AC0', + supset: '\u2283', + supseteq: '\u2287', + supseteqq: '\u2AC6', + supsetneq: '\u228B', + supsetneqq: '\u2ACC', + supsim: '\u2AC8', + supsub: '\u2AD4', + supsup: '\u2AD6', + swArr: '\u21D9', + swarhk: '\u2926', + swarr: '\u2199', + swarrow: '\u2199', + swnwar: '\u292A', + szlig: '\u00DF', + target: '\u2316', + tau: '\u03C4', + tbrk: '\u23B4', + tcaron: '\u0165', + tcedil: '\u0163', + tcy: '\u0442', + tdot: '\u20DB', + telrec: '\u2315', + tfr: '\uD835\uDD31', + there4: '\u2234', + therefore: '\u2234', + theta: '\u03B8', + thetasym: '\u03D1', + thetav: '\u03D1', + thickapprox: '\u2248', + thicksim: '\u223C', + thinsp: '\u2009', + thkap: '\u2248', + thksim: '\u223C', + thorn: '\u00FE', + tilde: '\u02DC', + times: '\u00D7', + timesb: '\u22A0', + timesbar: '\u2A31', + timesd: '\u2A30', + tint: '\u222D', + toea: '\u2928', + top: '\u22A4', + topbot: '\u2336', + topcir: '\u2AF1', + topf: '\uD835\uDD65', + topfork: '\u2ADA', + tosa: '\u2929', + tprime: '\u2034', + trade: '\u2122', + triangle: '\u25B5', + triangledown: '\u25BF', + triangleleft: '\u25C3', + trianglelefteq: '\u22B4', + triangleq: '\u225C', + triangleright: '\u25B9', + trianglerighteq: '\u22B5', + tridot: '\u25EC', + trie: '\u225C', + triminus: '\u2A3A', + triplus: '\u2A39', + trisb: '\u29CD', + tritime: '\u2A3B', + trpezium: '\u23E2', + tscr: '\uD835\uDCC9', + tscy: '\u0446', + tshcy: '\u045B', + tstrok: '\u0167', + twixt: '\u226C', + twoheadleftarrow: '\u219E', + twoheadrightarrow: '\u21A0', + uArr: '\u21D1', + uHar: '\u2963', + uacute: '\u00FA', + uarr: '\u2191', + ubrcy: '\u045E', + ubreve: '\u016D', + ucirc: '\u00FB', + ucy: '\u0443', + udarr: '\u21C5', + udblac: '\u0171', + udhar: '\u296E', + ufisht: '\u297E', + ufr: '\uD835\uDD32', + ugrave: '\u00F9', + uharl: '\u21BF', + uharr: '\u21BE', + uhblk: '\u2580', + ulcorn: '\u231C', + ulcorner: '\u231C', + ulcrop: '\u230F', + ultri: '\u25F8', + umacr: '\u016B', + uml: '\u00A8', + uogon: '\u0173', + uopf: '\uD835\uDD66', + uparrow: '\u2191', + updownarrow: '\u2195', + upharpoonleft: '\u21BF', + upharpoonright: '\u21BE', + uplus: '\u228E', + upsi: '\u03C5', + upsih: '\u03D2', + upsilon: '\u03C5', + upuparrows: '\u21C8', + urcorn: '\u231D', + urcorner: '\u231D', + urcrop: '\u230E', + uring: '\u016F', + urtri: '\u25F9', + uscr: '\uD835\uDCCA', + utdot: '\u22F0', + utilde: '\u0169', + utri: '\u25B5', + utrif: '\u25B4', + uuarr: '\u21C8', + uuml: '\u00FC', + uwangle: '\u29A7', + vArr: '\u21D5', + vBar: '\u2AE8', + vBarv: '\u2AE9', + vDash: '\u22A8', + vangrt: '\u299C', + varepsilon: '\u03F5', + varkappa: '\u03F0', + varnothing: '\u2205', + varphi: '\u03D5', + varpi: '\u03D6', + varpropto: '\u221D', + varr: '\u2195', + varrho: '\u03F1', + varsigma: '\u03C2', + varsubsetneq: '\u228A\uFE00', + varsubsetneqq: '\u2ACB\uFE00', + varsupsetneq: '\u228B\uFE00', + varsupsetneqq: '\u2ACC\uFE00', + vartheta: '\u03D1', + vartriangleleft: '\u22B2', + vartriangleright: '\u22B3', + vcy: '\u0432', + vdash: '\u22A2', + vee: '\u2228', + veebar: '\u22BB', + veeeq: '\u225A', + vellip: '\u22EE', + verbar: '\u007C', + vert: '\u007C', + vfr: '\uD835\uDD33', + vltri: '\u22B2', + vnsub: '\u2282\u20D2', + vnsup: '\u2283\u20D2', + vopf: '\uD835\uDD67', + vprop: '\u221D', + vrtri: '\u22B3', + vscr: '\uD835\uDCCB', + vsubnE: '\u2ACB\uFE00', + vsubne: '\u228A\uFE00', + vsupnE: '\u2ACC\uFE00', + vsupne: '\u228B\uFE00', + vzigzag: '\u299A', + wcirc: '\u0175', + wedbar: '\u2A5F', + wedge: '\u2227', + wedgeq: '\u2259', + weierp: '\u2118', + wfr: '\uD835\uDD34', + wopf: '\uD835\uDD68', + wp: '\u2118', + wr: '\u2240', + wreath: '\u2240', + wscr: '\uD835\uDCCC', + xcap: '\u22C2', + xcirc: '\u25EF', + xcup: '\u22C3', + xdtri: '\u25BD', + xfr: '\uD835\uDD35', + xhArr: '\u27FA', + xharr: '\u27F7', + xi: '\u03BE', + xlArr: '\u27F8', + xlarr: '\u27F5', + xmap: '\u27FC', + xnis: '\u22FB', + xodot: '\u2A00', + xopf: '\uD835\uDD69', + xoplus: '\u2A01', + xotime: '\u2A02', + xrArr: '\u27F9', + xrarr: '\u27F6', + xscr: '\uD835\uDCCD', + xsqcup: '\u2A06', + xuplus: '\u2A04', + xutri: '\u25B3', + xvee: '\u22C1', + xwedge: '\u22C0', + yacute: '\u00FD', + yacy: '\u044F', + ycirc: '\u0177', + ycy: '\u044B', + yen: '\u00A5', + yfr: '\uD835\uDD36', + yicy: '\u0457', + yopf: '\uD835\uDD6A', + yscr: '\uD835\uDCCE', + yucy: '\u044E', + yuml: '\u00FF', + zacute: '\u017A', + zcaron: '\u017E', + zcy: '\u0437', + zdot: '\u017C', + zeetrf: '\u2128', + zeta: '\u03B6', + zfr: '\uD835\uDD37', + zhcy: '\u0436', + zigrarr: '\u21DD', + zopf: '\uD835\uDD6B', + zscr: '\uD835\uDCCF', + zwj: '\u200D', + zwnj: '\u200C' + }; + const decodeMap = { + '0': 65533, + '128': 8364, + '130': 8218, + '131': 402, + '132': 8222, + '133': 8230, + '134': 8224, + '135': 8225, + '136': 710, + '137': 8240, + '138': 352, + '139': 8249, + '140': 338, + '142': 381, + '145': 8216, + '146': 8217, + '147': 8220, + '148': 8221, + '149': 8226, + '150': 8211, + '151': 8212, + '152': 732, + '153': 8482, + '154': 353, + '155': 8250, + '156': 339, + '158': 382, + '159': 376 + }; + function decodeHTMLStrict(text) { + return text.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, (key) => { + if (key.charAt(1) === '#') { + const secondChar = key.charAt(2); + const codePoint = secondChar === 'X' || secondChar === 'x' + ? parseInt(key.slice(3), 16) + : parseInt(key.slice(2), 10); + return decodeCodePoint(codePoint); + } + return entities[key.slice(1, -1)] || key; + }); + } + function decodeCodePoint(codePoint) { + if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { + return '\uFFFD'; + } + if (codePoint in decodeMap) { + codePoint = decodeMap[codePoint]; + } + return String.fromCodePoint(codePoint); + } + + function scanJSXAttributeValue(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + parser.token = + CharTypes[parser.currentChar] & 8192 + ? scanJSXString(parser, context) + : scanSingleToken(parser, context, 0); + return parser.token; + } + function scanJSXString(parser, context) { + const quote = parser.currentChar; + let char = advanceChar(parser); + const start = parser.index; + while (char !== quote) { + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + if (char !== quote) + report(parser, 14); + parser.tokenValue = parser.source.slice(start, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283267; + } + function scanJSXToken(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + if (parser.index >= parser.end) + return (parser.token = 1048576); + const token = TokenLookup[parser.source.charCodeAt(parser.index)]; + switch (token) { + case 8456258: { + advanceChar(parser); + if (parser.currentChar === 47) { + advanceChar(parser); + parser.token = 25; + } + else { + parser.token = 8456258; + } + break; + } + case 2162700: { + advanceChar(parser); + parser.token = 2162700; + break; + } + default: { + let state = 0; + while (parser.index < parser.end) { + const type = CharTypes[parser.source.charCodeAt(parser.index)]; + if (type & 1024) { + state |= 1 | 4; + scanNewLine(parser); + } + else if (type & 2048) { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + else { + advanceChar(parser); + } + if (CharTypes[parser.currentChar] & 16384) + break; + } + const raw = parser.source.slice(parser.tokenPos, parser.index); + if (context & 512) + parser.tokenRaw = raw; + parser.tokenValue = decodeHTMLStrict(raw); + parser.token = 138; + } + } + return parser.token; + } + function scanJSXIdentifier(parser) { + if ((parser.token & 143360) === 143360) { + const { index } = parser; + let char = parser.currentChar; + while (CharTypes[char] & (32768 | 2)) { + char = advanceChar(parser); + } + parser.tokenValue += parser.source.slice(index, parser.index); + } + parser.token = 208897; + return parser.token; + } + + function matchOrInsertSemicolon(parser, context, specDeviation) { + if ((parser.flags & 1) === 0 && + (parser.token & 1048576) !== 1048576 && + !specDeviation) { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + consumeOpt(parser, context, 1074790417); + } + function isValidStrictMode(parser, index, tokenPos, tokenValue) { + if (index - tokenPos < 13 && tokenValue === 'use strict') { + if ((parser.token & 1048576) === 1048576 || parser.flags & 1) { + return 1; + } + } + return 0; + } + function optionalBit(parser, context, t) { + if (parser.token !== t) + return 0; + nextToken(parser, context); + return 1; + } + function consumeOpt(parser, context, t) { + if (parser.token !== t) + return false; + nextToken(parser, context); + return true; + } + function consume(parser, context, t) { + if (parser.token !== t) + report(parser, 23, KeywordDescTable[t & 255]); + nextToken(parser, context); + } + function reinterpretToPattern(state, node) { + switch (node.type) { + case 'ArrayExpression': + node.type = 'ArrayPattern'; + const elements = node.elements; + for (let i = 0, n = elements.length; i < n; ++i) { + const element = elements[i]; + if (element) + reinterpretToPattern(state, element); + } + return; + case 'ObjectExpression': + node.type = 'ObjectPattern'; + const properties = node.properties; + for (let i = 0, n = properties.length; i < n; ++i) { + reinterpretToPattern(state, properties[i]); + } + return; + case 'AssignmentExpression': + node.type = 'AssignmentPattern'; + if (node.operator !== '=') + report(state, 68); + delete node.operator; + reinterpretToPattern(state, node.left); + return; + case 'Property': + reinterpretToPattern(state, node.value); + return; + case 'SpreadElement': + node.type = 'RestElement'; + reinterpretToPattern(state, node.argument); + } + } + function validateBindingIdentifier(parser, context, kind, t, skipEvalArgCheck) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if (!skipEvalArgCheck && (t & 537079808) === 537079808) { + report(parser, 115); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (kind & (8 | 16) && t === 241739) { + report(parser, 97); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } + } + function validateFunctionName(parser, context, t) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if ((t & 537079808) === 537079808) { + report(parser, 115); + } + if (t === 122) { + report(parser, 92); + } + if (t === 121) { + report(parser, 92); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } + } + function isStrictReservedWord(parser, context, t) { + if (t === 209008) { + if (context & (4194304 | 2048)) + report(parser, 95); + parser.destructible |= 128; + } + if (t === 241773 && context & 2097152) + report(parser, 94, 'yield'); + return ((t & 20480) === 20480 || + (t & 36864) === 36864 || + t == 122); + } + function isPropertyWithPrivateFieldKey(expr) { + return !expr.property ? false : expr.property.type === 'PrivateIdentifier'; + } + function isValidLabel(parser, labels, name, isIterationStatement) { + while (labels) { + if (labels['$' + name]) { + if (isIterationStatement) + report(parser, 133); + return 1; + } + if (isIterationStatement && labels.loop) + isIterationStatement = 0; + labels = labels['$']; + } + return 0; + } + function validateAndDeclareLabel(parser, labels, name) { + let set = labels; + while (set) { + if (set['$' + name]) + report(parser, 132, name); + set = set['$']; + } + labels['$' + name] = 1; + } + function finishNode(parser, context, start, line, column, node) { + if (context & 2) { + node.start = start; + node.end = parser.startPos; + node.range = [start, parser.startPos]; + } + if (context & 4) { + node.loc = { + start: { + line, + column + }, + end: { + line: parser.startLine, + column: parser.startColumn + } + }; + if (parser.sourceFile) { + node.loc.source = parser.sourceFile; + } + } + return node; + } + function isEqualTagName(elementName) { + switch (elementName.type) { + case 'JSXIdentifier': + return elementName.name; + case 'JSXNamespacedName': + return elementName.namespace + ':' + elementName.name; + case 'JSXMemberExpression': + return isEqualTagName(elementName.object) + '.' + isEqualTagName(elementName.property); + } + } + function createArrowHeadParsingScope(parser, context, value) { + const scope = addChildScope(createScope(), 1024); + addBlockName(parser, context, scope, value, 1, 0); + return scope; + } + function recordScopeError(parser, type, ...params) { + const { index, line, column } = parser; + return { + type, + params, + index, + line, + column + }; + } + function createScope() { + return { + parent: void 0, + type: 2 + }; + } + function addChildScope(parent, type) { + return { + parent, + type, + scopeError: void 0 + }; + } + function addVarOrBlock(parser, context, scope, name, kind, origin) { + if (kind & 4) { + addVarName(parser, context, scope, name, kind); + } + else { + addBlockName(parser, context, scope, name, kind, origin); + } + if (origin & 64) { + declareUnboundVariable(parser, name); + } + } + function addBlockName(parser, context, scope, name, kind, origin) { + const value = scope['#' + name]; + if (value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + else if (context & 256 && + value & 64 && + origin & 2) ; + else { + report(parser, 140, name); + } + } + if (scope.type & 128 && + (scope.parent['#' + name] && (scope.parent['#' + name] & 2) === 0)) { + report(parser, 140, name); + } + if (scope.type & 1024 && value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + } + if (scope.type & 64) { + if (scope.parent['#' + name] & 768) + report(parser, 153, name); + } + scope['#' + name] = kind; + } + function addVarName(parser, context, scope, name, kind) { + let currentScope = scope; + while (currentScope && (currentScope.type & 256) === 0) { + const value = currentScope['#' + name]; + if (value & 248) { + if (context & 256 && + (context & 1024) === 0 && + ((kind & 128 && value & 68) || + (value & 128 && kind & 68))) ; + else { + report(parser, 140, name); + } + } + if (currentScope === scope) { + if (value & 1 && kind & 1) { + currentScope.scopeError = recordScopeError(parser, 140, name); + } + } + if (value & (512 | 256)) { + if ((value & 512) === 0 || + (context & 256) === 0 || + context & 1024) { + report(parser, 140, name); + } + } + currentScope['#' + name] = kind; + currentScope = currentScope.parent; + } + } + function declareUnboundVariable(parser, name) { + if (parser.exportedNames !== void 0 && name !== '') { + if (parser.exportedNames['#' + name]) { + report(parser, 141, name); + } + parser.exportedNames['#' + name] = 1; + } + } + function addBindingToExports(parser, name) { + if (parser.exportedBindings !== void 0 && name !== '') { + parser.exportedBindings['#' + name] = 1; + } + } + function pushComment(context, array) { + return function (type, value, start, end, loc) { + const comment = { + type, + value + }; + if (context & 2) { + comment.start = start; + comment.end = end; + comment.range = [start, end]; + } + if (context & 4) { + comment.loc = loc; + } + array.push(comment); + }; + } + function pushToken(context, array) { + return function (token, start, end, loc) { + const tokens = { + token + }; + if (context & 2) { + tokens.start = start; + tokens.end = end; + tokens.range = [start, end]; + } + if (context & 4) { + tokens.loc = loc; + } + array.push(tokens); + }; + } + function isValidIdentifier(context, t) { + if (context & (1024 | 2097152)) { + if (context & 2048 && t === 209008) + return false; + if (context & 2097152 && t === 241773) + return false; + return (t & 143360) === 143360 || (t & 12288) === 12288; + } + return ((t & 143360) === 143360 || + (t & 12288) === 12288 || + (t & 36864) === 36864); + } + function classifyIdentifier(parser, context, t, isArrow) { + if ((t & 537079808) === 537079808) { + if (context & 1024) + report(parser, 115); + if (isArrow) + parser.flags |= 512; + } + if (!isValidIdentifier(context, t)) + report(parser, 0); + } + + function create(source, sourceFile, onComment, onToken) { + return { + source, + flags: 0, + index: 0, + line: 1, + column: 0, + startPos: 0, + end: source.length, + tokenPos: 0, + startColumn: 0, + colPos: 0, + linePos: 1, + startLine: 1, + sourceFile, + tokenValue: '', + token: 1048576, + tokenRaw: '', + tokenRegExp: void 0, + currentChar: source.charCodeAt(0), + exportedNames: [], + exportedBindings: [], + assignable: 1, + destructible: 0, + onComment, + onToken, + leadingDecorators: [] + }; + } + function parseSource(source, options, context) { + let sourceFile = ''; + let onComment; + let onToken; + if (options != null) { + if (options.module) + context |= 2048 | 1024; + if (options.next) + context |= 1; + if (options.loc) + context |= 4; + if (options.ranges) + context |= 2; + if (options.uniqueKeyInPattern) + context |= -2147483648; + if (options.lexical) + context |= 64; + if (options.webcompat) + context |= 256; + if (options.directives) + context |= 8 | 512; + if (options.globalReturn) + context |= 32; + if (options.raw) + context |= 512; + if (options.preserveParens) + context |= 128; + if (options.impliedStrict) + context |= 1024; + if (options.jsx) + context |= 16; + if (options.identifierPattern) + context |= 268435456; + if (options.specDeviation) + context |= 536870912; + if (options.source) + sourceFile = options.source; + if (options.onComment != null) { + onComment = Array.isArray(options.onComment) ? pushComment(context, options.onComment) : options.onComment; + } + if (options.onToken != null) { + onToken = Array.isArray(options.onToken) ? pushToken(context, options.onToken) : options.onToken; + } + } + const parser = create(source, sourceFile, onComment, onToken); + if (context & 1) + skipHashBang(parser); + const scope = context & 64 ? createScope() : void 0; + let body = []; + let sourceType = 'script'; + if (context & 2048) { + sourceType = 'module'; + body = parseModuleItemList(parser, context | 8192, scope); + if (scope) { + for (const key in parser.exportedBindings) { + if (key[0] === '#' && !scope[key]) + report(parser, 142, key.slice(1)); + } + } + } + else { + body = parseStatementList(parser, context | 8192, scope); + } + const node = { + type: 'Program', + sourceType, + body + }; + if (context & 2) { + node.start = 0; + node.end = source.length; + node.range = [0, source.length]; + } + if (context & 4) { + node.loc = { + start: { line: 1, column: 0 }, + end: { line: parser.line, column: parser.column } + }; + if (parser.sourceFile) + node.loc.source = sourceFile; + } + return node; + } + function parseStatementList(parser, context, scope) { + nextToken(parser, context | 32768 | 1073741824); + const statements = []; + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, linePos, colPos, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) + context |= 1024; + statements.push(parseDirective(parser, context, expr, token, tokenPos, linePos, colPos)); + } + while (parser.token !== 1048576) { + statements.push(parseStatementListItem(parser, context, scope, 4, {})); + } + return statements; + } + function parseModuleItemList(parser, context, scope) { + nextToken(parser, context | 32768); + const statements = []; + if (context & 8) { + while (parser.token === 134283267) { + const { tokenPos, linePos, colPos, token } = parser; + statements.push(parseDirective(parser, context, parseLiteral(parser, context), token, tokenPos, linePos, colPos)); + } + } + while (parser.token !== 1048576) { + statements.push(parseModuleItem(parser, context, scope)); + } + return statements; + } + function parseModuleItem(parser, context, scope) { + parser.leadingDecorators = parseDecorators(parser, context); + let moduleItem; + switch (parser.token) { + case 20566: + moduleItem = parseExportDeclaration(parser, context, scope); + break; + case 86108: + moduleItem = parseImportDeclaration(parser, context, scope); + break; + default: + moduleItem = parseStatementListItem(parser, context, scope, 4, {}); + } + if (parser.leadingDecorators.length) { + report(parser, 164); + } + return moduleItem; + } + function parseStatementListItem(parser, context, scope, origin, labels) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + switch (parser.token) { + case 86106: + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 0, start, line, column); + case 133: + case 86096: + return parseClassDeclaration(parser, context, scope, 0, start, line, column); + case 86092: + return parseLexicalDeclaration(parser, context, scope, 16, 0, start, line, column); + case 241739: + return parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column); + case 20566: + report(parser, 100, 'export'); + case 86108: + nextToken(parser, context); + switch (parser.token) { + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 100, 'import'); + } + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 1, start, line, column); + default: + return parseStatement(parser, context, scope, origin, labels, 1, start, line, column); + } + } + function parseStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + switch (parser.token) { + case 86090: + return parseVariableStatement(parser, context, scope, 0, start, line, column); + case 20574: + return parseReturnStatement(parser, context, start, line, column); + case 20571: + return parseIfStatement(parser, context, scope, labels, start, line, column); + case 20569: + return parseForStatement(parser, context, scope, labels, start, line, column); + case 20564: + return parseDoWhileStatement(parser, context, scope, labels, start, line, column); + case 20580: + return parseWhileStatement(parser, context, scope, labels, start, line, column); + case 86112: + return parseSwitchStatement(parser, context, scope, labels, start, line, column); + case 1074790417: + return parseEmptyStatement(parser, context, start, line, column); + case 2162700: + return parseBlock(parser, context, scope ? addChildScope(scope, 2) : scope, labels, start, line, column); + case 86114: + return parseThrowStatement(parser, context, start, line, column); + case 20557: + return parseBreakStatement(parser, context, labels, start, line, column); + case 20561: + return parseContinueStatement(parser, context, labels, start, line, column); + case 20579: + return parseTryStatement(parser, context, scope, labels, start, line, column); + case 20581: + return parseWithStatement(parser, context, scope, labels, start, line, column); + case 20562: + return parseDebuggerStatement(parser, context, start, line, column); + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 0, start, line, column); + case 20559: + report(parser, 156); + case 20568: + report(parser, 157); + case 86106: + report(parser, context & 1024 + ? 73 + : (context & 256) < 1 + ? 75 + : 74); + case 86096: + report(parser, 76); + default: + return parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column); + } + } + function parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { tokenValue, token } = parser; + let expr; + switch (token) { + case 241739: + expr = parseIdentifier(parser, context, 0); + if (context & 1024) + report(parser, 82); + if (parser.token === 69271571) + report(parser, 81); + break; + default: + expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + if (token & 143360 && parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, allowFuncDecl, start, line, column); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseBlock(parser, context, scope, labels, start, line, column) { + const body = []; + consume(parser, context | 32768, 2162700); + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 2, { $: labels })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'BlockStatement', + body + }); + } + function parseReturnStatement(parser, context, start, line, column) { + if ((context & 32) < 1 && context & 8192) + report(parser, 89); + nextToken(parser, context | 32768); + const argument = parser.flags & 1 || parser.token & 1048576 + ? null + : parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.column); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ReturnStatement', + argument + }); + } + function parseExpressionStatement(parser, context, expression, start, line, column) { + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); + } + function parseLabelledStatement(parser, context, scope, origin, labels, value, expr, token, allowFuncDecl, start, line, column) { + validateBindingIdentifier(parser, context, 0, token, 1); + validateAndDeclareLabel(parser, labels, value); + nextToken(parser, context | 32768); + const body = allowFuncDecl && + (context & 1024) < 1 && + context & 256 && + parser.token === 86106 + ? parseFunctionDeclaration(parser, context, addChildScope(scope, 2), origin, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseStatement(parser, context, scope, origin, labels, allowFuncDecl, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'LabeledStatement', + label: expr, + body + }); + } + function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, 1, start, line, column); + } + const asyncNewLine = parser.flags & 1; + if (!asyncNewLine) { + if (parser.token === 86106) { + if (!allowFuncDecl) + report(parser, 119); + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 1, start, line, column); + } + if ((parser.token & 143360) === 143360) { + expr = parseAsyncArrowAfterIdent(parser, context, 1, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + } + if (parser.token === 67174411) { + expr = parseAsyncArrowOrCallExpression(parser, context, expr, 1, 1, 0, asyncNewLine, start, line, column); + } + else { + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + expr = parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, 0, 1, 0, start, line, column); + } + parser.assignable = 1; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + parser.assignable = 1; + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseDirective(parser, context, expression, token, start, line, column) { + if (token !== 1074790417) { + parser.assignable = 2; + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + if (parser.token !== 1074790417) { + expression = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expression); + if (parser.token === 18) { + expression = parseSequenceExpression(parser, context, 0, start, line, column, expression); + } + } + matchOrInsertSemicolon(parser, context | 32768); + } + return context & 8 && expression.type === 'Literal' && typeof expression.value === 'string' + ? finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression, + directive: expression.raw.slice(1, -1) + }) + : finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); + } + function parseEmptyStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'EmptyStatement' + }); + } + function parseThrowStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + if (parser.flags & 1) + report(parser, 87); + const argument = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ThrowStatement', + argument + }); + } + function parseIfStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + parser.assignable = 1; + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.colPos); + consume(parser, context | 32768, 16); + const consequent = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + let alternate = null; + if (parser.token === 20565) { + nextToken(parser, context | 32768); + alternate = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + } + return finishNode(parser, context, start, line, column, { + type: 'IfStatement', + test, + consequent, + alternate + }); + } + function parseConsequentOrAlternative(parser, context, scope, labels, start, line, column) { + return context & 1024 || + (context & 256) < 1 || + parser.token !== 86106 + ? parseStatement(parser, context, scope, 0, { $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseFunctionDeclaration(parser, context, addChildScope(scope, 2), 0, 0, 0, 0, start, line, column); + } + function parseSwitchStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const discriminant = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + consume(parser, context, 2162700); + const cases = []; + let seenDefault = 0; + if (scope) + scope = addChildScope(scope, 8); + while (parser.token !== 1074790415) { + const { tokenPos, linePos, colPos } = parser; + let test = null; + const consequent = []; + if (consumeOpt(parser, context | 32768, 20558)) { + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + consume(parser, context | 32768, 20563); + if (seenDefault) + report(parser, 86); + seenDefault = 1; + } + consume(parser, context | 32768, 21); + while (parser.token !== 20558 && + parser.token !== 1074790415 && + parser.token !== 20563) { + consequent.push(parseStatementListItem(parser, context | 4096, scope, 2, { + $: labels + })); + } + cases.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'SwitchCase', + test, + consequent + })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'SwitchStatement', + discriminant, + cases + }); + } + function parseWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'WhileStatement', + test, + body + }); + } + function parseIterationStatementBody(parser, context, scope, labels) { + return parseStatement(parser, ((context | 134217728) ^ 134217728) | 131072, scope, 0, { loop: 1, $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + function parseContinueStatement(parser, context, labels, start, line, column) { + if ((context & 131072) < 1) + report(parser, 65); + nextToken(parser, context); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 1)) + report(parser, 134, tokenValue); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ContinueStatement', + label + }); + } + function parseBreakStatement(parser, context, labels, start, line, column) { + nextToken(parser, context | 32768); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 0)) + report(parser, 134, tokenValue); + } + else if ((context & (4096 | 131072)) < 1) { + report(parser, 66); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'BreakStatement', + label + }); + } + function parseWithStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + if (context & 1024) + report(parser, 88); + consume(parser, context | 32768, 67174411); + const object = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseStatement(parser, context, scope, 2, labels, 0, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'WithStatement', + object, + body + }); + } + function parseDebuggerStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'DebuggerStatement' + }); + } + function parseTryStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const firstScope = scope ? addChildScope(scope, 32) : void 0; + const block = parseBlock(parser, context, firstScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + const { tokenPos, linePos, colPos } = parser; + const handler = consumeOpt(parser, context | 32768, 20559) + ? parseCatchBlock(parser, context, scope, labels, tokenPos, linePos, colPos) + : null; + let finalizer = null; + if (parser.token === 20568) { + nextToken(parser, context | 32768); + const finalizerScope = firstScope ? addChildScope(scope, 4) : void 0; + finalizer = parseBlock(parser, context, finalizerScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + } + if (!handler && !finalizer) { + report(parser, 85); + } + return finishNode(parser, context, start, line, column, { + type: 'TryStatement', + block, + handler, + finalizer + }); + } + function parseCatchBlock(parser, context, scope, labels, start, line, column) { + let param = null; + let additionalScope = scope; + if (consumeOpt(parser, context, 67174411)) { + if (scope) + scope = addChildScope(scope, 4); + param = parseBindingPattern(parser, context, scope, (parser.token & 2097152) === 2097152 + ? 256 + : 512, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 18) { + report(parser, 83); + } + else if (parser.token === 1077936157) { + report(parser, 84); + } + consume(parser, context | 32768, 16); + if (scope) + additionalScope = addChildScope(scope, 64); + } + const body = parseBlock(parser, context, additionalScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'CatchClause', + param, + body + }); + } + function parseDoWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const body = parseIterationStatementBody(parser, context, scope, labels); + consume(parser, context, 20580); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + consumeOpt(parser, context, 1074790417); + return finishNode(parser, context, start, line, column, { + type: 'DoWhileStatement', + body, + test + }); + } + function parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + const declarations = parseVariableDeclarationList(parser, context, scope, 8, 0); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'let', + declarations + }); + } + parser.assignable = 1; + if (context & 1024) + report(parser, 82); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, {}, tokenValue, expr, token, 0, start, line, column); + } + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + expr = parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + else { + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + } + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseLexicalDeclaration(parser, context, scope, kind, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, kind, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: kind & 8 ? 'let' : 'const', + declarations + }); + } + function parseVariableStatement(parser, context, scope, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, 4, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'var', + declarations + }); + } + function parseVariableDeclarationList(parser, context, scope, kind, origin) { + let bindingCount = 1; + const list = [parseVariableDeclaration(parser, context, scope, kind, origin)]; + while (consumeOpt(parser, context, 18)) { + bindingCount++; + list.push(parseVariableDeclaration(parser, context, scope, kind, origin)); + } + if (bindingCount > 1 && origin & 32 && parser.token & 262144) { + report(parser, 58, KeywordDescTable[parser.token & 255]); + } + return list; + } + function parseVariableDeclaration(parser, context, scope, kind, origin) { + const { token, tokenPos, linePos, colPos } = parser; + let init = null; + const id = parseBindingPattern(parser, context, scope, kind, origin, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + init = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (origin & 32 || (token & 2097152) < 1) { + if (parser.token === 274549 || + (parser.token === 8738868 && + (token & 2097152 || (kind & 4) < 1 || context & 1024))) { + reportMessageAt(tokenPos, parser.line, parser.index - 3, 57, parser.token === 274549 ? 'of' : 'in'); + } + } + } + else if ((kind & 16 || (token & 2097152) > 0) && + (parser.token & 262144) !== 262144) { + report(parser, 56, kind & 16 ? 'const' : 'destructuring'); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclarator', + id, + init + }); + } + function parseForStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + const forAwait = (context & 4194304) > 0 && consumeOpt(parser, context, 209008); + consume(parser, context | 32768, 67174411); + if (scope) + scope = addChildScope(scope, 1); + let test = null; + let update = null; + let destructible = 0; + let init = null; + let isVarDecl = parser.token === 86090 || parser.token === 241739 || parser.token === 86092; + let right; + const { token, tokenPos, linePos, colPos } = parser; + if (isVarDecl) { + if (token === 241739) { + init = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + if (parser.token === 8738868) { + if (context & 1024) + report(parser, 64); + } + else { + init = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclaration', + kind: 'let', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 8, 32) + }); + } + parser.assignable = 1; + } + else if (context & 1024) { + report(parser, 64); + } + else { + isVarDecl = false; + parser.assignable = 1; + init = parseMemberOrUpdateExpression(parser, context, init, 0, 0, tokenPos, linePos, colPos); + if (parser.token === 274549) + report(parser, 111); + } + } + else { + nextToken(parser, context); + init = finishNode(parser, context, tokenPos, linePos, colPos, token === 86090 + ? { + type: 'VariableDeclaration', + kind: 'var', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 4, 32) + } + : { + type: 'VariableDeclaration', + kind: 'const', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 16, 32) + }); + parser.assignable = 1; + } + } + else if (token === 1074790417) { + if (forAwait) + report(parser, 79); + } + else if ((token & 2097152) === 2097152) { + init = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos); + destructible = parser.destructible; + if (context & 256 && destructible & 64) { + report(parser, 60); + } + parser.assignable = + destructible & 16 ? 2 : 1; + init = parseMemberOrUpdateExpression(parser, context | 134217728, init, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + init = parseLeftHandSideExpression(parser, context | 134217728, 1, 0, 1, tokenPos, linePos, colPos); + } + if ((parser.token & 262144) === 262144) { + if (parser.token === 274549) { + if (parser.assignable & 2) + report(parser, 77, forAwait ? 'await' : 'of'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + right = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForOfStatement', + left: init, + right, + body, + await: forAwait + }); + } + if (parser.assignable & 2) + report(parser, 77, 'in'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + if (forAwait) + report(parser, 79); + right = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForInStatement', + body, + left: init, + right + }); + } + if (forAwait) + report(parser, 79); + if (!isVarDecl) { + if (destructible & 8 && parser.token !== 1077936157) { + report(parser, 77, 'loop'); + } + init = parseAssignmentExpression(parser, context | 134217728, 0, 0, tokenPos, linePos, colPos, init); + } + if (parser.token === 18) + init = parseSequenceExpression(parser, context, 0, parser.tokenPos, parser.linePos, parser.colPos, init); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 1074790417) + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 16) + update = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForStatement', + init, + test, + update, + body + }); + } + function parseRestrictedIdentifier(parser, context, scope) { + if (!isValidIdentifier(context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) + report(parser, 115); + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 8, 0); + return parseIdentifier(parser, context, 0); + } + function parseImportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context); + let source = null; + const { tokenPos, linePos, colPos } = parser; + let specifiers = []; + if (parser.token === 134283267) { + source = parseLiteral(parser, context); + } + else { + if (parser.token & 143360) { + const local = parseRestrictedIdentifier(parser, context, scope); + specifiers = [ + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportDefaultSpecifier', + local + }) + ]; + if (consumeOpt(parser, context, 18)) { + switch (parser.token) { + case 8457014: + specifiers.push(parseImportNamespaceSpecifier(parser, context, scope)); + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + default: + report(parser, 104); + } + } + } + else { + switch (parser.token) { + case 8457014: + specifiers = [parseImportNamespaceSpecifier(parser, context, scope)]; + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + source = parseModuleSpecifier(parser, context); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ImportDeclaration', + specifiers, + source + }); + } + function parseImportNamespaceSpecifier(parser, context, scope) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + consume(parser, context, 77934); + if ((parser.token & 134217728) === 134217728) { + reportMessageAt(tokenPos, parser.line, parser.index, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportNamespaceSpecifier', + local: parseRestrictedIdentifier(parser, context, scope) + }); + } + function parseModuleSpecifier(parser, context) { + consumeOpt(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Import'); + return parseLiteral(parser, context); + } + function parseImportSpecifierOrNamedImports(parser, context, scope, specifiers) { + nextToken(parser, context); + while (parser.token & 143360) { + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + const imported = parseIdentifier(parser, context, 0); + let local; + if (consumeOpt(parser, context, 77934)) { + if ((parser.token & 134217728) === 134217728 || parser.token === 18) { + report(parser, 103); + } + else { + validateBindingIdentifier(parser, context, 16, parser.token, 0); + } + tokenValue = parser.tokenValue; + local = parseIdentifier(parser, context, 0); + } + else { + validateBindingIdentifier(parser, context, 16, token, 0); + local = imported; + } + if (scope) + addBlockName(parser, context, scope, tokenValue, 8, 0); + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportSpecifier', + local, + imported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + return specifiers; + } + function parseImportMetaDeclaration(parser, context, start, line, column) { + let expr = parseImportMetaExpression(parser, context, finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: 'import' + }), start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseImportCallDeclaration(parser, context, start, line, column) { + let expr = parseImportExpression(parser, context, 0, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseExportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context | 32768); + const specifiers = []; + let declaration = null; + let source = null; + let key; + if (consumeOpt(parser, context | 32768, 20563)) { + switch (parser.token) { + case 86106: { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + } + case 133: + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 1, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + declaration = parseIdentifier(parser, context, 0); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 1, tokenPos, linePos, colPos); + } + else { + if (parser.token === 67174411) { + declaration = parseAsyncArrowOrCallExpression(parser, context, declaration, 1, 1, 0, flags, tokenPos, linePos, colPos); + declaration = parseMemberOrUpdateExpression(parser, context, declaration, 0, 0, tokenPos, linePos, colPos); + declaration = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, declaration); + } + else if (parser.token & 143360) { + if (scope) + scope = createArrowHeadParsingScope(parser, context, parser.tokenValue); + declaration = parseIdentifier(parser, context, 0); + declaration = parseArrowFunctionExpression(parser, context, scope, [declaration], 1, tokenPos, linePos, colPos); + } + } + } + break; + default: + declaration = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + } + if (scope) + declareUnboundVariable(parser, 'default'); + return finishNode(parser, context, start, line, column, { + type: 'ExportDefaultDeclaration', + declaration + }); + } + switch (parser.token) { + case 8457014: { + nextToken(parser, context); + let exported = null; + const isNamedDeclaration = consumeOpt(parser, context, 77934); + if (isNamedDeclaration) { + if (scope) + declareUnboundVariable(parser, parser.tokenValue); + exported = parseIdentifier(parser, context, 0); + } + consume(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExportAllDeclaration', + source, + exported + }); + } + case 2162700: { + nextToken(parser, context); + const tmpExportedNames = []; + const tmpExportedBindings = []; + while (parser.token & 143360) { + const { tokenPos, tokenValue, linePos, colPos } = parser; + const local = parseIdentifier(parser, context, 0); + let exported; + if (parser.token === 77934) { + nextToken(parser, context); + if ((parser.token & 134217728) === 134217728) { + report(parser, 103); + } + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(tokenValue); + } + exported = parseIdentifier(parser, context, 0); + } + else { + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(parser.tokenValue); + } + exported = local; + } + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ExportSpecifier', + local, + exported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + if (consumeOpt(parser, context, 12404)) { + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + } + else if (scope) { + let i = 0; + let iMax = tmpExportedNames.length; + for (; i < iMax; i++) { + declareUnboundVariable(parser, tmpExportedNames[i]); + } + i = 0; + iMax = tmpExportedBindings.length; + for (; i < iMax; i++) { + addBindingToExports(parser, tmpExportedBindings[i]); + } + } + matchOrInsertSemicolon(parser, context | 32768); + break; + } + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 2, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86106: + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 241739: + declaration = parseLexicalDeclaration(parser, context, scope, 8, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86092: + declaration = parseLexicalDeclaration(parser, context, scope, 16, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86090: + declaration = parseVariableStatement(parser, context, scope, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + if ((parser.flags & 1) < 1 && parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 1, tokenPos, linePos, colPos); + if (scope) { + key = declaration.id ? declaration.id.name : ''; + declareUnboundVariable(parser, key); + } + break; + } + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, start, line, column, { + type: 'ExportNamedDeclaration', + declaration, + specifiers, + source + }); + } + function parseExpression(parser, context, canAssign, isPattern, inGroup, start, line, column) { + let expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, isPattern, inGroup, 1, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + return parseAssignmentExpression(parser, context, inGroup, 0, start, line, column, expr); + } + function parseSequenceExpression(parser, context, inGroup, start, line, column, expr) { + const expressions = [expr]; + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + return finishNode(parser, context, start, line, column, { + type: 'SequenceExpression', + expressions + }); + } + function parseExpressions(parser, context, inGroup, canAssign, start, line, column) { + const expr = parseExpression(parser, context, canAssign, 0, inGroup, start, line, column); + return parser.token === 18 + ? parseSequenceExpression(parser, context, inGroup, start, line, column, expr) + : expr; + } + function parseAssignmentExpression(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + if ((token & 4194304) === 4194304) { + if (parser.assignable & 2) + report(parser, 24); + if ((!isPattern && token === 1077936157 && left.type === 'ArrayExpression') || + left.type === 'ObjectExpression') { + reinterpretToPattern(parser, left); + } + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + } + if ((token & 8454144) === 8454144) { + left = parseBinaryExpression(parser, context, inGroup, start, line, column, 4, token, left); + } + if (consumeOpt(parser, context | 32768, 22)) { + left = parseConditionalExpression(parser, context, left, start, line, column); + } + return left; + } + function parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + parser.assignable = 2; + return left; + } + function parseConditionalExpression(parser, context, test, start, line, column) { + const consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 21); + parser.assignable = 1; + const alternate = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ConditionalExpression', + test, + consequent, + alternate + }); + } + function parseBinaryExpression(parser, context, inGroup, start, line, column, minPrec, operator, left) { + const bit = -((context & 134217728) > 0) & 8738868; + let t; + let prec; + parser.assignable = 2; + while (parser.token & 8454144) { + t = parser.token; + prec = t & 3840; + if ((t & 524288 && operator & 268435456) || (operator & 524288 && t & 268435456)) { + report(parser, 159); + } + if (prec + ((t === 8457273) << 8) - ((bit === t) << 12) <= minPrec) + break; + nextToken(parser, context | 32768); + left = finishNode(parser, context, start, line, column, { + type: t & 524288 || t & 268435456 ? 'LogicalExpression' : 'BinaryExpression', + left, + right: parseBinaryExpression(parser, context, inGroup, parser.tokenPos, parser.linePos, parser.colPos, prec, t, parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos)), + operator: KeywordDescTable[t & 255] + }); + } + if (parser.token === 1077936157) + report(parser, 24); + return left; + } + function parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup) { + if (!isLHS) + report(parser, 0); + const unaryOperator = parser.token; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + if (context & 1024 && unaryOperator === 16863278) { + if (arg.type === 'Identifier') { + report(parser, 117); + } + else if (isPropertyWithPrivateFieldKey(arg)) { + report(parser, 123); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UnaryExpression', + operator: KeywordDescTable[unaryOperator & 255], + argument: arg, + prefix: true + }); + } + function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column) { + const { token } = parser; + const expr = parseIdentifier(parser, context, isPattern); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + return parseFunctionExpression(parser, context, 1, inGroup, start, line, column); + } + if ((parser.token & 143360) === 143360) { + if (!isLHS) + report(parser, 0); + return parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column); + } + } + if (!inNew && parser.token === 67174411) { + return parseAsyncArrowOrCallExpression(parser, context, expr, canAssign, 1, 0, flags, start, line, column); + } + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + if (inNew) + report(parser, 48); + return parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + return expr; + } + function parseYieldExpression(parser, context, inGroup, canAssign, start, line, column) { + if (inGroup) + parser.destructible |= 256; + if (context & 2097152) { + nextToken(parser, context | 32768); + if (context & 8388608) + report(parser, 30); + if (!canAssign) + report(parser, 24); + if (parser.token === 22) + report(parser, 120); + let argument = null; + let delegate = false; + if ((parser.flags & 1) < 1) { + delegate = consumeOpt(parser, context | 32768, 8457014); + if (parser.token & (12288 | 65536) || delegate) { + argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'YieldExpression', + argument, + delegate + }); + } + if (context & 1024) + report(parser, 94, 'yield'); + return parseIdentifierOrArrow(parser, context, start, line, column); + } + function parseAwaitExpression(parser, context, inNew, inGroup, start, line, column) { + if (inGroup) + parser.destructible |= 128; + if (context & 4194304 || (context & 2048 && context & 8192)) { + if (inNew) + report(parser, 0); + if (context & 8388608) { + reportMessageAt(parser.index, parser.line, parser.index, 29); + } + nextToken(parser, context | 32768); + const argument = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'AwaitExpression', + argument + }); + } + if (context & 2048) + report(parser, 95); + return parseIdentifierOrArrow(parser, context, start, line, column); + } + function parseFunctionBody(parser, context, scope, origin, firstRestricted, scopeError) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + const body = []; + const prevContext = context; + if (parser.token !== 1074790415) { + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) { + context |= 1024; + if (parser.flags & 128) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 63); + } + if (parser.flags & 64) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 8); + } + } + body.push(parseDirective(parser, context, expr, token, tokenPos, parser.linePos, parser.colPos)); + } + if (context & 1024) { + if (firstRestricted) { + if ((firstRestricted & 537079808) === 537079808) { + report(parser, 115); + } + if ((firstRestricted & 36864) === 36864) { + report(parser, 38); + } + } + if (parser.flags & 512) + report(parser, 115); + if (parser.flags & 256) + report(parser, 114); + } + if (context & 64 && + scope && + scopeError !== void 0 && + (prevContext & 1024) < 1 && + (context & 8192) < 1) { + reportScopeError(scopeError); + } + } + parser.flags = + (parser.flags | 512 | 256 | 64) ^ + (512 | 256 | 64); + parser.destructible = (parser.destructible | 256) ^ 256; + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 4, {})); + } + consume(parser, origin & (16 | 8) ? context | 32768 : context, 1074790415); + parser.flags &= ~(128 | 64); + if (parser.token === 1077936157) + report(parser, 24); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'BlockStatement', + body + }); + } + function parseSuperExpression(parser, context, start, line, column) { + nextToken(parser, context); + switch (parser.token) { + case 67108991: + report(parser, 161); + case 67174411: { + if ((context & 524288) < 1) + report(parser, 26); + if (context & 16384) + report(parser, 143); + parser.assignable = 2; + break; + } + case 69271571: + case 67108877: { + if ((context & 262144) < 1) + report(parser, 27); + if (context & 16384) + report(parser, 143); + parser.assignable = 1; + break; + } + default: + report(parser, 28, 'super'); + } + return finishNode(parser, context, start, line, column, { type: 'Super' }); + } + function parseLeftHandSideExpression(parser, context, canAssign, inGroup, isLHS, start, line, column) { + const expression = parsePrimaryExpression(parser, context, 2, 0, canAssign, 0, inGroup, isLHS, start, line, column); + return parseMemberOrUpdateExpression(parser, context, expression, inGroup, 0, start, line, column); + } + function parseUpdateExpression(parser, context, expr, start, line, column) { + if (parser.assignable & 2) + report(parser, 52); + const { token } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: expr, + operator: KeywordDescTable[token & 255], + prefix: false + }); + } + function parseMemberOrUpdateExpression(parser, context, expr, inGroup, inChain, start, line, column) { + if ((parser.token & 33619968) === 33619968 && (parser.flags & 1) < 1) { + expr = parseUpdateExpression(parser, context, expr, start, line, column); + } + else if ((parser.token & 67108864) === 67108864) { + context = (context | 134217728 | 8192) ^ (134217728 | 8192); + switch (parser.token) { + case 67108877: { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }); + break; + } + case 69271571: { + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67174411: { + if ((parser.flags & 1024) === 1024) { + parser.flags = (parser.flags | 1024) ^ 1024; + return expr; + } + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + const args = parseArguments(parser, context, inGroup); + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67108991: { + nextToken(parser, context); + parser.flags |= 2048; + parser.assignable = 2; + expr = parseOptionalChain(parser, context, expr, start, line, column); + break; + } + default: + if ((parser.flags & 2048) === 2048) { + report(parser, 160); + } + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 1, start, line, column); + } + if (inChain === 0 && (parser.flags & 2048) === 2048) { + parser.flags = (parser.flags | 2048) ^ 2048; + expr = finishNode(parser, context, start, line, column, { + type: 'ChainExpression', + expression: expr + }); + } + return expr; + } + function parseOptionalChain(parser, context, expr, start, line, column) { + let restoreHasOptionalChaining = false; + let node; + if (parser.token === 69271571 || parser.token === 67174411) { + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + } + if (parser.token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, 0, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + optional: true, + property + }); + } + else if (parser.token === 67174411) { + const args = parseArguments(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args, + optional: true + }); + } + else { + if ((parser.token & (143360 | 4096)) < 1) + report(parser, 154); + const property = parseIdentifier(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + optional: true, + property + }); + } + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + return node; + } + function parsePropertyOrPrivatePropertyName(parser, context) { + if ((parser.token & (143360 | 4096)) < 1 && parser.token !== 131) { + report(parser, 154); + } + return context & 1 && parser.token === 131 + ? parsePrivateIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + : parseIdentifier(parser, context, 0); + } + function parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column) { + if (inNew) + report(parser, 53); + if (!isLHS) + report(parser, 0); + const { token } = parser; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.assignable & 2) { + report(parser, 52); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: arg, + operator: KeywordDescTable[token & 255], + prefix: true + }); + } + function parsePrimaryExpression(parser, context, kind, inNew, canAssign, isPattern, inGroup, isLHS, start, line, column) { + if ((parser.token & 143360) === 143360) { + switch (parser.token) { + case 209008: + return parseAwaitExpression(parser, context, inNew, inGroup, start, line, column); + case 241773: + return parseYieldExpression(parser, context, inGroup, canAssign, start, line, column); + case 209007: + return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column); + } + const { token, tokenValue } = parser; + const expr = parseIdentifier(parser, context | 65536, isPattern); + if (parser.token === 10) { + if (!isLHS) + report(parser, 0); + classifyIdentifier(parser, context, token, 1); + return parseArrowFromIdentifier(parser, context, tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + if (context & 16384 && token === 537079928) + report(parser, 126); + if (token === 241739) { + if (context & 1024) + report(parser, 109); + if (kind & (8 | 16)) + report(parser, 97); + } + parser.assignable = + context & 1024 && (token & 537079808) === 537079808 + ? 2 + : 1; + return expr; + } + if ((parser.token & 134217728) === 134217728) { + return parseLiteral(parser, context); + } + switch (parser.token) { + case 33619995: + case 33619996: + return parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column); + case 16863278: + case 16842800: + case 16842801: + case 25233970: + case 25233971: + case 16863277: + case 16863279: + return parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup); + case 86106: + return parseFunctionExpression(parser, context, 0, inGroup, start, line, column); + case 2162700: + return parseObjectLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 69271571: + return parseArrayLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 67174411: + return parseParenthesizedExpression(parser, context, canAssign, 1, 0, start, line, column); + case 86021: + case 86022: + case 86023: + return parseNullOrTrueOrFalseLiteral(parser, context, start, line, column); + case 86113: + return parseThisExpression(parser, context); + case 65540: + return parseRegExpLiteral(parser, context, start, line, column); + case 133: + case 86096: + return parseClassExpression(parser, context, inGroup, start, line, column); + case 86111: + return parseSuperExpression(parser, context, start, line, column); + case 67174409: + return parseTemplateLiteral(parser, context, start, line, column); + case 67174408: + return parseTemplate(parser, context); + case 86109: + return parseNewExpression(parser, context, inGroup, start, line, column); + case 134283389: + return parseBigIntLiteral(parser, context, start, line, column); + case 131: + return parsePrivateIdentifier(parser, context, start, line, column); + case 86108: + return parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column); + case 8456258: + if (context & 16) + return parseJSXRootElementOrFragment(parser, context, 1, start, line, column); + default: + if (isValidIdentifier(context, parser.token)) + return parseIdentifierOrArrow(parser, context, start, line, column); + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + function parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column) { + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 67108877) { + return parseImportMetaExpression(parser, context, expr, start, line, column); + } + if (inNew) + report(parser, 137); + expr = parseImportExpression(parser, context, inGroup, start, line, column); + parser.assignable = 2; + return parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + } + function parseImportMetaExpression(parser, context, meta, start, line, column) { + if ((context & 2048) === 0) + report(parser, 163); + nextToken(parser, context); + if (parser.token !== 143495 && parser.tokenValue !== 'meta') + report(parser, 28, KeywordDescTable[parser.token & 255]); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property: parseIdentifier(parser, context, 0) + }); + } + function parseImportExpression(parser, context, inGroup, start, line, column) { + consume(parser, context | 32768, 67174411); + if (parser.token === 14) + report(parser, 138); + const source = parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + return finishNode(parser, context, start, line, column, { + type: 'ImportExpression', + source + }); + } + function parseBigIntLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1), + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1) + }); + } + function parseTemplateLiteral(parser, context, start, line, column) { + parser.assignable = 2; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + const quasis = [parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)]; + return finishNode(parser, context, start, line, column, { + type: 'TemplateLiteral', + expressions: [], + quasis + }); + } + function parseTemplate(parser, context) { + context = (context | 134217728) ^ 134217728; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + const quasis = [ + parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false) + ]; + const expressions = [parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)]; + if (parser.token !== 1074790415) + report(parser, 80); + while ((parser.token = scanTemplateTail(parser, context)) !== 67174409) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false)); + expressions.push(parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + if (parser.token !== 1074790415) + report(parser, 80); + } + { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'TemplateLiteral', + expressions, + quasis + }); + } + function parseTemplateElement(parser, context, cooked, raw, start, line, col, tail) { + const node = finishNode(parser, context, start, line, col, { + type: 'TemplateElement', + value: { + cooked, + raw + }, + tail + }); + const tailSize = tail ? 1 : 2; + if (context & 2) { + node.start += 1; + node.range[0] += 1; + node.end -= tailSize; + node.range[1] -= tailSize; + } + if (context & 4) { + node.loc.start.column += 1; + node.loc.end.column -= tailSize; + } + return node; + } + function parseSpreadElement(parser, context, start, line, column) { + context = (context | 134217728) ^ 134217728; + consume(parser, context | 32768, 14); + const argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 1; + return finishNode(parser, context, start, line, column, { + type: 'SpreadElement', + argument + }); + } + function parseArguments(parser, context, inGroup) { + nextToken(parser, context | 32768); + const args = []; + if (parser.token === 16) { + nextToken(parser, context); + return args; + } + while (parser.token !== 16) { + if (parser.token === 14) { + args.push(parseSpreadElement(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + else { + args.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + if (parser.token !== 18) + break; + nextToken(parser, context | 32768); + if (parser.token === 16) + break; + } + consume(parser, context, 16); + return args; + } + function parseIdentifier(parser, context, isPattern) { + const { tokenValue, tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + return finishNode(parser, context, tokenPos, linePos, colPos, context & 268435456 + ? { + type: 'Identifier', + name: tokenValue, + pattern: isPattern === 1 + } + : { + type: 'Identifier', + name: tokenValue + }); + } + function parseLiteral(parser, context) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + if (parser.token === 134283389) { + return parseBigIntLiteral(parser, context, tokenPos, linePos, colPos); + } + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, context & 512 + ? { + type: 'Literal', + value: tokenValue, + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue + }); + } + function parseNullOrTrueOrFalseLiteral(parser, context, start, line, column) { + const raw = KeywordDescTable[parser.token & 255]; + const value = parser.token === 86023 ? null : raw === 'true'; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value, + raw + } + : { + type: 'Literal', + value + }); + } + function parseThisExpression(parser, context) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ThisExpression' + }); + } + function parseFunctionDeclaration(parser, context, scope, origin, allowGen, flags, isAsync, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = allowGen ? optionalBit(parser, context, 8457014) : 0; + let id = null; + let firstRestricted; + let functionScope = scope ? createScope() : void 0; + if (parser.token === 67174411) { + if ((flags & 1) < 1) + report(parser, 37, 'Function'); + } + else { + const kind = origin & 4 && ((context & 8192) < 1 || (context & 2048) < 1) + ? 4 + : 64; + validateFunctionName(parser, context | ((context & 3072) << 11), parser.token); + if (scope) { + if (kind & 4) { + addVarName(parser, context, scope, parser.tokenValue, kind); + } + else { + addBlockName(parser, context, scope, parser.tokenValue, kind, origin); + } + functionScope = addChildScope(functionScope, 256); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, parser.tokenValue); + } + } + } + firstRestricted = parser.token; + if (parser.token & 143360) { + id = parseIdentifier(parser, context, 0); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + ((isAsync * 2 + isGenerator) << 21) | + (isGenerator ? 0 : 1073741824); + if (scope) + functionScope = addChildScope(functionScope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, functionScope, 0, 1); + const body = parseFunctionBody(parser, (context | 8192 | 4096 | 131072) ^ + (8192 | 4096 | 131072), scope ? addChildScope(functionScope, 128) : functionScope, 8, firstRestricted, scope ? functionScope.scopeError : void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionDeclaration', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); + } + function parseFunctionExpression(parser, context, isAsync, inGroup, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = optionalBit(parser, context, 8457014); + const generatorAndAsyncFlags = (isAsync * 2 + isGenerator) << 21; + let id = null; + let firstRestricted; + let scope = context & 64 ? createScope() : void 0; + if ((parser.token & (143360 | 4096 | 36864)) > 0) { + validateFunctionName(parser, ((context | 0x1ec0000) ^ 0x1ec0000) | generatorAndAsyncFlags, parser.token); + if (scope) + scope = addChildScope(scope, 256); + firstRestricted = parser.token; + id = parseIdentifier(parser, context, 0); + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + generatorAndAsyncFlags | + (isGenerator ? 0 : 1073741824); + if (scope) + scope = addChildScope(scope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, scope, inGroup, 1); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192 | 4096 | 131072 | 16384), scope ? addChildScope(scope, 128) : scope, 0, firstRestricted, void 0); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); + } + function parseArrayLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseArrayExpressionOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; + } + function parseArrayExpressionOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context | 32768); + const elements = []; + let destructible = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 20) { + if (consumeOpt(parser, context | 32768, 18)) { + elements.push(null); + } + else { + let left; + const { token, tokenPos, linePos, colPos, tokenValue } = parser; + if (token & 143360) { + left = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + if (parser.assignable & 2) + report(parser, 24); + nextToken(parser, context | 32768); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + operator: '=', + left, + right + }); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else { + destructible |= + kind & 1 + ? 32 + : (kind & 2) < 1 + ? 16 + : 0; + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + if (parser.token !== 1077936157) + destructible |= 16; + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token & 2097152) { + left = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + parser.assignable = + parser.destructible & 16 + ? 2 + : 1; + if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 20, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos); + destructible |= parser.destructible; + if (parser.token !== 18 && parser.token !== 20) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + left = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + if ((kind & (2 | 1)) < 1 && token === 67174411) + destructible |= 16; + } + else if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === 67174411) { + destructible |= + parser.assignable & 1 && kind & (2 | 1) + ? 32 + : 16; + } + } + elements.push(left); + if (consumeOpt(parser, context | 32768, 18)) { + if (parser.token === 20) + break; + } + else + break; + } + } + consume(parser, context, 20); + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ArrayPattern' : 'ArrayExpression', + elements + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; + } + function parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node) { + if (parser.token !== 1077936157) + report(parser, 24); + nextToken(parser, context | 32768); + if (destructible & 16) + report(parser, 24); + if (!isPattern) + reinterpretToPattern(parser, node); + const { tokenPos, linePos, colPos } = parser; + const right = parseExpression(parser, context, 1, 1, inGroup, tokenPos, linePos, colPos); + parser.destructible = + ((destructible | 64 | 8) ^ + (8 | 64)) | + (parser.destructible & 128 ? 128 : 0) | + (parser.destructible & 256 ? 256 : 0); + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left: node, + right + } + : { + type: 'AssignmentExpression', + left: node, + operator: '=', + right + }); + } + function parseSpreadOrRestElement(parser, context, scope, closingToken, kind, origin, isAsync, inGroup, isPattern, start, line, column) { + nextToken(parser, context | 32768); + let argument = null; + let destructible = 0; + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + if (token & (4096 | 143360)) { + parser.assignable = 1; + argument = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + token = parser.token; + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== closingToken) { + if (parser.assignable & 2 && parser.token === 1077936157) + report(parser, 68); + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === closingToken || token === 18) { + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + else { + destructible |= 32; + } + destructible |= parser.destructible & 128 ? 128 : 0; + } + else if (token === closingToken) { + report(parser, 39); + } + else if (token & 2097152) { + argument = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + token = parser.token; + if (token !== 1077936157 && token !== closingToken && token !== 18) { + if (parser.destructible & 8) + report(parser, 68); + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + destructible |= parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + else { + if ((parser.token & 8454144) === 8454144) { + argument = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, argument); + } + if (consumeOpt(parser, context | 32768, 22)) { + argument = parseConditionalExpression(parser, context, argument, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + else { + destructible |= + closingToken === 1074790415 && token !== 1077936157 + ? 16 + : parser.destructible; + } + } + else { + destructible |= 32; + argument = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + const { token, tokenPos, linePos, colPos } = parser; + if (token === 1077936157 && token !== closingToken && token !== 18) { + if (parser.assignable & 2) + report(parser, 24); + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + destructible |= 16; + } + else { + if (token === 18) { + destructible |= 16; + } + else if (token !== closingToken) { + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + destructible |= + parser.assignable & 1 ? 32 : 16; + } + parser.destructible = destructible; + if (parser.token !== closingToken && parser.token !== 18) + report(parser, 155); + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + if (parser.token !== closingToken) { + if (kind & 1) + destructible |= isAsync ? 16 : 32; + if (consumeOpt(parser, context | 32768, 1077936157)) { + if (destructible & 16) + report(parser, 24); + reinterpretToPattern(parser, argument); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + argument = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left: argument, + right + } + : { + type: 'AssignmentExpression', + left: argument, + operator: '=', + right + }); + destructible = 16; + } + else { + destructible |= 16; + } + } + parser.destructible = destructible; + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + function parseMethodDefinition(parser, context, kind, inGroup, start, line, column) { + const modifierFlags = (kind & 64) < 1 ? 31981568 : 14680064; + context = + ((context | modifierFlags) ^ modifierFlags) | + ((kind & 88) << 18) | + 100925440; + let scope = context & 64 ? addChildScope(createScope(), 512) : void 0; + const params = parseMethodFormals(parser, context | 8388608, scope, kind, 1, inGroup); + if (scope) + scope = addChildScope(scope, 128); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192), scope, 0, void 0, void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + params, + body, + async: (kind & 16) > 0, + generator: (kind & 8) > 0, + id: null + }); + } + function parseObjectLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseObjectLiteralOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; + } + function parseObjectLiteralOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context); + const properties = []; + let destructible = 0; + let prototypeCount = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 1074790415) { + const { token, tokenValue, linePos, colPos, tokenPos } = parser; + if (token === 14) { + properties.push(parseSpreadOrRestElement(parser, context, scope, 1074790415, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos)); + } + else { + let state = 0; + let key = null; + let value; + const t = parser.token; + if (parser.token & (143360 | 4096) || parser.token === 121) { + key = parseIdentifier(parser, context, 0); + if (parser.token === 18 || parser.token === 1074790415 || parser.token === 1077936157) { + state |= 4; + if (context & 1024 && (token & 537079808) === 537079808) { + destructible |= 16; + } + else { + validateBindingIdentifier(parser, context, kind, token, 0); + } + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + if (consumeOpt(parser, context | 32768, 1077936157)) { + destructible |= 8; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + value = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: context & -2147483648 ? Object.assign({}, key) : key, + right + }); + } + else { + destructible |= + (token === 209008 ? 128 : 0) | + (token === 121 ? 16 : 0); + value = context & -2147483648 ? Object.assign({}, key) : key; + } + } + else if (consumeOpt(parser, context | 32768, 21)) { + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + const tokenAfterColon = parser.token; + const valueAfterColon = parser.tokenValue; + destructible |= t === 121 ? 16 : 0; + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + destructible |= parser.destructible & 128 ? 128 : 0; + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if ((parser.token & 4194304) === 4194304) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token !== 1077936157) { + destructible |= 32; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 69271571) { + destructible |= 16; + if (token === 209007) + state |= 16; + state |= + (token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1) | 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token & (143360 | 4096)) { + destructible |= 16; + if (token === 121) + report(parser, 92); + if (token === 209007) { + if (parser.flags & 1) + report(parser, 128); + state |= 16; + } + key = parseIdentifier(parser, context, 0); + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 67174411) { + destructible |= 16; + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 8457014) { + destructible |= 16; + if (token === 12402 || token === 12403) { + report(parser, 40); + } + else if (token === 143483) { + report(parser, 92); + } + nextToken(parser, context); + state |= + 8 | 1 | (token === 209007 ? 16 : 0); + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + state |= 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if ((parser.token & 134217728) === 134217728) { + if (token === 209007) + state |= 16; + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + destructible |= 16; + key = parseLiteral(parser, context); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 129); + } + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + if (parser.token === 21) { + consume(parser, context | 32768, 21); + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token, tokenValue: valueAfterColon } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if (parser.token === 1077936157) { + if (parser.assignable & 2) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if ((parser.destructible & 8) !== 8) { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible = parser.assignable | 16; + } + else { + report(parser, 130); + } + } + else if (parser.token === 69271571) { + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.destructible & 256 ? 256 : 0; + state |= 2; + if (parser.token === 21) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos, tokenValue, token: tokenAfterColon } = parser; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if ((parser.token & 4194304) === 4194304) { + destructible |= + parser.assignable & 2 + ? 16 + : token === 1077936157 + ? 0 + : 32; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (destructible & 8) { + report(parser, 59); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = + parser.assignable & 2 ? destructible | 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, linePos, colPos); + destructible = 16; + } + else { + report(parser, 41); + } + } + else if (token === 8457014) { + consume(parser, context | 32768, 8457014); + state |= 8; + if (parser.token & 143360) { + const { token, line, index } = parser; + key = parseIdentifier(parser, context, 0); + state |= 1; + if (parser.token === 67174411) { + destructible |= 16; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + reportMessageAt(index, line, index, token === 209007 + ? 43 + : token === 12402 || parser.token === 12403 + ? 42 + : 44, KeywordDescTable[token & 255]); + } + } + else if ((parser.token & 134217728) === 134217728) { + destructible |= 16; + key = parseLiteral(parser, context); + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + destructible |= 16; + state |= 2 | 1; + key = parseComputedPropertyName(parser, context, inGroup); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 122); + } + } + else { + report(parser, 28, KeywordDescTable[token & 255]); + } + destructible |= parser.destructible & 128 ? 128 : 0; + parser.destructible = destructible; + properties.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'Property', + key: key, + value, + kind: !(state & 768) ? 'init' : state & 512 ? 'set' : 'get', + computed: (state & 2) > 0, + method: (state & 1) > 0, + shorthand: (state & 4) > 0 + })); + } + destructible |= parser.destructible; + if (parser.token !== 18) + break; + nextToken(parser, context); + } + consume(parser, context, 1074790415); + if (prototypeCount > 1) + destructible |= 64; + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ObjectPattern' : 'ObjectExpression', + properties + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; + } + function parseMethodFormals(parser, context, scope, kind, type, inGroup) { + consume(parser, context, 67174411); + const params = []; + parser.flags = (parser.flags | 128) ^ 128; + if (parser.token === 16) { + if (kind & 512) { + report(parser, 35, 'Setter', 'one', ''); + } + nextToken(parser, context); + return params; + } + if (kind & 256) { + report(parser, 35, 'Getter', 'no', 's'); + } + if (kind & 512 && parser.token === 14) { + report(parser, 36); + } + context = (context | 134217728) ^ 134217728; + let setterArgs = 0; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left = null; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, type, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) + report(parser, 47); + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: left, + right + }); + } + setterArgs++; + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (kind & 512 && setterArgs !== 1) { + report(parser, 35, 'Setter', 'one', ''); + } + if (scope && scope.scopeError !== void 0) + reportScopeError(scope.scopeError); + if (isSimpleParameterList) + parser.flags |= 128; + consume(parser, context, 16); + return params; + } + function parseComputedPropertyName(parser, context, inGroup) { + nextToken(parser, context | 32768); + const key = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 20); + return key; + } + function parseParenthesizedExpression(parser, context, canAssign, kind, origin, start, line, column) { + parser.flags = (parser.flags | 128) ^ 128; + const { tokenPos: piStart, linePos: plStart, colPos: pcStart } = parser; + nextToken(parser, context | 32768 | 1073741824); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 0, start, line, column); + } + let destructible = 0; + parser.destructible &= ~(256 | 128); + let expr; + let expressions = []; + let isSequence = 0; + let isSimpleParameterList = 0; + const { tokenPos: iStart, linePos: lStart, colPos: cStart } = parser; + parser.assignable = 1; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 1, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808 || + (token & 36864) === 36864) { + isSimpleParameterList = 1; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if ((token & 2097152) === 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + parser.assignable = 2; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 0, 1, 0, tokenPos, linePos, colPos); + if (parser.destructible & 16) + report(parser, 71); + isSimpleParameterList = 1; + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + destructible |= 8; + break; + } + else { + destructible |= 16; + expr = parseExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (parser.token === 18) { + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + } + if (isSequence) { + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + } + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + parser.destructible = destructible; + return expr; + } + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (!consumeOpt(parser, context | 32768, 18)) + break; + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + if (parser.token === 16) { + destructible |= 8; + break; + } + } + if (isSequence) { + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + if (destructible & 16 && destructible & 8) + report(parser, 145); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 46); + if (context & (4194304 | 2048) && destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) { + report(parser, 30); + } + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, isSequence ? expressions : [expr], canAssign, 0, start, line, column); + } + else if (destructible & 8) { + report(parser, 139); + } + parser.destructible = ((parser.destructible | 256) ^ 256) | destructible; + return context & 128 + ? finishNode(parser, context, piStart, plStart, pcStart, { + type: 'ParenthesizedExpression', + expression: expr + }) + : expr; + } + function parseIdentifierOrArrow(parser, context, start, line, column) { + const { tokenValue } = parser; + const expr = parseIdentifier(parser, context, 0); + parser.assignable = 1; + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + return parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + return expr; + } + function parseArrowFromIdentifier(parser, context, value, expr, inNew, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + if (inNew) + report(parser, 48); + parser.flags &= ~128; + const scope = context & 64 ? createArrowHeadParsingScope(parser, context, value) : void 0; + return parseArrowFunctionExpression(parser, context, scope, [expr], isAsync, start, line, column); + } + function parseParenthesizedArrow(parser, context, scope, params, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + for (let i = 0; i < params.length; ++i) + reinterpretToPattern(parser, params[i]); + return parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column); + } + function parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column) { + if (parser.flags & 1) + report(parser, 45); + consume(parser, context | 32768, 10); + context = ((context | 15728640) ^ 15728640) | (isAsync << 22); + const expression = parser.token !== 2162700; + let body; + if (scope && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + if (expression) { + body = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + if (scope) + scope = addChildScope(scope, 128); + body = parseFunctionBody(parser, (context | 134221824 | 8192 | 16384) ^ + (134221824 | 8192 | 16384), scope, 16, void 0, void 0); + switch (parser.token) { + case 69271571: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + break; + case 67108877: + case 67174409: + case 22: + report(parser, 113); + case 67174411: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + parser.flags |= 1024; + break; + } + if ((parser.token & 8454144) === 8454144 && (parser.flags & 1) < 1) + report(parser, 28, KeywordDescTable[parser.token & 255]); + if ((parser.token & 33619968) === 33619968) + report(parser, 121); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ArrowFunctionExpression', + params, + body, + async: isAsync === 1, + expression + }); + } + function parseFormalParametersOrFormalList(parser, context, scope, inGroup, kind) { + consume(parser, context, 67174411); + parser.flags = (parser.flags | 128) ^ 128; + const params = []; + if (consumeOpt(parser, context, 16)) + return params; + context = (context | 134217728) ^ 134217728; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, kind, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) { + report(parser, 47); + } + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left, + right + }); + } + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (isSimpleParameterList) + parser.flags |= 128; + if (scope && (isSimpleParameterList || context & 1024) && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + consume(parser, context, 16); + return params; + } + function parseMembeExpressionNoCall(parser, context, expr, inGroup, start, line, column) { + const { token } = parser; + if (token & 67108864) { + if (token === 67108877) { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }), 0, start, line, column); + } + else if (token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }), 0, start, line, column); + } + else if (token === 67174408 || token === 67174409) { + parser.assignable = 2; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }), 0, start, line, column); + } + } + return expr; + } + function parseNewExpression(parser, context, inGroup, start, line, column) { + const id = parseIdentifier(parser, context | 32768, 0); + const { tokenPos, linePos, colPos } = parser; + if (consumeOpt(parser, context, 67108877)) { + if (context & 67108864 && parser.token === 143494) { + parser.assignable = 2; + return parseMetaProperty(parser, context, id, start, line, column); + } + report(parser, 91); + } + parser.assignable = 2; + if ((parser.token & 16842752) === 16842752) { + report(parser, 62, KeywordDescTable[parser.token & 255]); + } + const expr = parsePrimaryExpression(parser, context, 2, 1, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + context = (context | 134217728) ^ 134217728; + if (parser.token === 67108991) + report(parser, 162); + const callee = parseMembeExpressionNoCall(parser, context, expr, inGroup, tokenPos, linePos, colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'NewExpression', + callee, + arguments: parser.token === 67174411 ? parseArguments(parser, context, inGroup) : [] + }); + } + function parseMetaProperty(parser, context, meta, start, line, column) { + const property = parseIdentifier(parser, context, 0); + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property + }); + } + function parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column) { + if (parser.token === 209008) + report(parser, 29); + if (context & (1024 | 2097152) && parser.token === 241773) { + report(parser, 30); + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context, 0), 0, canAssign, 1, start, line, column); + } + function parseAsyncArrowOrCallExpression(parser, context, callee, canAssign, kind, origin, flags, start, line, column) { + nextToken(parser, context | 32768); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + if (parser.token === 10) { + if (flags & 1) + report(parser, 45); + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 1, start, line, column); + } + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: [] + }); + } + let destructible = 0; + let expr = null; + let isSimpleParameterList = 0; + parser.destructible = + (parser.destructible | 256 | 128) ^ + (256 | 128); + const params = []; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, kind, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808) { + parser.flags |= 512; + } + else if ((token & 36864) === 36864) { + parser.flags |= 256; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token & 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + expr = parseBinaryExpression(parser, context, 1, start, line, column, 4, token, expr); + } + if (consumeOpt(parser, context | 32768, 22)) { + expr = parseConditionalExpression(parser, context, expr, start, line, column); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 1, 1, 0, tokenPos, linePos, colPos); + destructible |= (parser.token === 16 ? 0 : 16) | parser.destructible; + isSimpleParameterList = 1; + } + else { + expr = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + destructible = parser.assignable; + params.push(expr); + while (consumeOpt(parser, context | 32768, 18)) { + params.push(parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos)); + } + destructible |= parser.assignable; + consume(parser, context, 16); + parser.destructible = destructible | 16; + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + params.push(expr); + if (!consumeOpt(parser, context | 32768, 18)) + break; + } + consume(parser, context, 16); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 25); + if (parser.flags & 1 || flags & 1) + report(parser, 45); + if (destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) + report(parser, 30); + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, params, canAssign, 1, start, line, column); + } + else if (destructible & 8) { + report(parser, 59); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + function parseRegExpLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenRegExp, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return context & 512 + ? finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp, + raw: tokenRaw + }) + : finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp + }); + } + function parseClassDeclaration(parser, context, scope, flags, start, line, column) { + context = (context | 16777216 | 1024) ^ 16777216; + let decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + if (parser.leadingDecorators.length) { + parser.leadingDecorators.push(...decorators); + decorators = parser.leadingDecorators; + parser.leadingDecorators = []; + } + nextToken(parser, context); + let id = null; + let superClass = null; + const { tokenValue } = parser; + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) { + report(parser, 114); + } + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + if (scope) { + addBlockName(parser, context, scope, tokenValue, 32, 0); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, tokenValue); + } + } + } + id = parseIdentifier(parser, context, 0); + } + else { + if ((flags & 1) < 1) + report(parser, 37, 'Class'); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, scope, 2, 8, 0); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassDeclaration', + id, + superClass, + decorators, + body + } + : { + type: 'ClassDeclaration', + id, + superClass, + body + }); + } + function parseClassExpression(parser, context, inGroup, start, line, column) { + let id = null; + let superClass = null; + context = (context | 1024 | 16777216) ^ 16777216; + const decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + nextToken(parser, context); + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + id = parseIdentifier(parser, context, 0); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, inGroup, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, void 0, 2, 0, inGroup); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassExpression', + id, + superClass, + decorators, + body + } + : { + type: 'ClassExpression', + id, + superClass, + body + }); + } + function parseDecorators(parser, context) { + const list = []; + if (context & 1) { + while (parser.token === 133) { + list.push(parseDecoratorList(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + } + return list; + } + function parseDecoratorList(parser, context, start, line, column) { + nextToken(parser, context | 32768); + let expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, start, line, column); + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + return finishNode(parser, context, start, line, column, { + type: 'Decorator', + expression + }); + } + function parseClassBody(parser, context, inheritedContext, scope, kind, origin, inGroup) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + context = (context | 134217728) ^ 134217728; + parser.flags = (parser.flags | 32) ^ 32; + const body = []; + let decorators; + while (parser.token !== 1074790415) { + let length = 0; + decorators = parseDecorators(parser, context); + length = decorators.length; + if (length > 0 && parser.tokenValue === 'constructor') { + report(parser, 106); + } + if (parser.token === 1074790415) + report(parser, 105); + if (consumeOpt(parser, context, 1074790417)) { + if (length > 0) + report(parser, 116); + continue; + } + body.push(parseClassElementList(parser, context, scope, inheritedContext, kind, decorators, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + consume(parser, origin & 8 ? context | 32768 : context, 1074790415); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ClassBody', + body + }); + } + function parseClassElementList(parser, context, scope, inheritedContext, type, decorators, isStatic, inGroup, start, line, column) { + let kind = isStatic ? 32 : 0; + let key = null; + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 36864)) { + key = parseIdentifier(parser, context, 0); + switch (token) { + case 36972: + if (!isStatic && parser.token !== 67174411) { + return parseClassElementList(parser, context, scope, inheritedContext, type, decorators, 1, inGroup, start, line, column); + } + break; + case 209007: + if (parser.token !== 67174411 && (parser.flags & 1) < 1) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 16 | (optionalBit(parser, context, 8457014) ? 8 : 0); + } + break; + case 12402: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 256; + } + break; + case 12403: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 512; + } + break; + } + } + else if (token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, inheritedContext, inGroup); + } + else if ((token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (token === 8457014) { + kind |= 8; + nextToken(parser, context); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + context = context | 16384; + } + else if (context & 1 && (parser.token & 1073741824) === 1073741824) { + kind |= 128; + context = context | 16384; + } + else if (token === 122) { + key = parseIdentifier(parser, context, 0); + if (parser.token !== 67174411) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + if (kind & (8 | 16 | 768)) { + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, context, 0); + } + else if (parser.token === 122) { + key = parseIdentifier(parser, context, 0); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + } + else + report(parser, 131); + } + if ((kind & 2) < 1) { + if (parser.tokenValue === 'constructor') { + if ((parser.token & 1073741824) === 1073741824) { + report(parser, 125); + } + else if ((kind & 32) < 1 && parser.token === 67174411) { + if (kind & (768 | 16 | 128 | 8)) { + report(parser, 50, 'accessor'); + } + else if ((context & 524288) < 1) { + if (parser.flags & 32) + report(parser, 51); + else + parser.flags |= 32; + } + } + kind |= 64; + } + else if ((kind & 4096) < 1 && + kind & (32 | 768 | 8 | 16) && + parser.tokenValue === 'prototype') { + report(parser, 49); + } + } + if (context & 1 && parser.token !== 67174411) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + const value = parseMethodDefinition(parser, context, kind, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + decorators, + value + } + : { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + value + }); + } + function parsePrivateIdentifier(parser, context, start, line, column) { + nextToken(parser, context); + const { tokenValue } = parser; + if (tokenValue === 'constructor') + report(parser, 124); + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'PrivateIdentifier', + name: tokenValue + }); + } + function parsePropertyDefinition(parser, context, key, state, decorators, start, line, column) { + let value = null; + if (state & 8) + report(parser, 0); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 537079928) + report(parser, 115); + value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 0, 1, tokenPos, linePos, colPos); + if ((parser.token & 1073741824) !== 1073741824) { + value = parseMemberOrUpdateExpression(parser, context | 16384, value, 0, 0, tokenPos, linePos, colPos); + value = parseAssignmentExpression(parser, context | 16384, 0, 0, tokenPos, linePos, colPos, value); + if (parser.token === 18) { + value = parseSequenceExpression(parser, context, 0, start, line, column, value); + } + } + } + return finishNode(parser, context, start, line, column, { + type: 'PropertyDefinition', + key, + value, + static: (state & 32) > 0, + computed: (state & 2) > 0, + decorators + }); + } + function parseBindingPattern(parser, context, scope, type, origin, start, line, column) { + if (parser.token & 143360) + return parseAndClassifyIdentifier(parser, context, scope, type, origin, start, line, column); + if ((parser.token & 2097152) !== 2097152) + report(parser, 28, KeywordDescTable[parser.token & 255]); + const left = parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column) + : parseObjectLiteralOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column); + if (parser.destructible & 16) + report(parser, 47); + if (parser.destructible & 32) + report(parser, 47); + return left; + } + function parseAndClassifyIdentifier(parser, context, scope, kind, origin, start, line, column) { + const { tokenValue, token } = parser; + if (context & 1024) { + if ((token & 537079808) === 537079808) { + report(parser, 115); + } + else if ((token & 36864) === 36864) { + report(parser, 114); + } + } + if ((token & 20480) === 20480) { + report(parser, 99); + } + if (context & (2048 | 2097152) && token === 241773) { + report(parser, 30); + } + if (token === 241739) { + if (kind & (8 | 16)) + report(parser, 97); + } + if (context & (4194304 | 2048) && token === 209008) { + report(parser, 95); + } + nextToken(parser, context); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + return finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: tokenValue + }); + } + function parseJSXRootElementOrFragment(parser, context, inJSXChild, start, line, column) { + nextToken(parser, context); + if (parser.token === 8456259) { + return finishNode(parser, context, start, line, column, { + type: 'JSXFragment', + openingFragment: parseOpeningFragment(parser, context, start, line, column), + children: parseJSXChildren(parser, context), + closingFragment: parseJSXClosingFragment(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + let closingElement = null; + let children = []; + const openingElement = parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column); + if (!openingElement.selfClosing) { + children = parseJSXChildren(parser, context); + closingElement = parseJSXClosingElement(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos); + const close = isEqualTagName(closingElement.name); + if (isEqualTagName(openingElement.name) !== close) + report(parser, 149, close); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXElement', + children, + openingElement, + closingElement + }); + } + function parseOpeningFragment(parser, context, start, line, column) { + scanJSXToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningFragment' + }); + } + function parseJSXClosingElement(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + const name = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + parser.token = scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingElement', + name + }); + } + function parseJSXClosingFragment(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + consume(parser, context, 8456259); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingFragment' + }); + } + function parseJSXChildren(parser, context) { + const children = []; + while (parser.token !== 25) { + parser.index = parser.tokenPos = parser.startPos; + parser.column = parser.colPos = parser.startColumn; + parser.line = parser.linePos = parser.startLine; + scanJSXToken(parser, context); + children.push(parseJSXChild(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return children; + } + function parseJSXChild(parser, context, start, line, column) { + if (parser.token === 138) + return parseJSXText(parser, context, start, line, column); + if (parser.token === 2162700) + return parseJSXExpressionContainer(parser, context, 0, 0, start, line, column); + if (parser.token === 8456258) + return parseJSXRootElementOrFragment(parser, context, 0, start, line, column); + report(parser, 0); + } + function parseJSXText(parser, context, start, line, column) { + scanJSXToken(parser, context); + const node = { + type: 'JSXText', + value: parser.tokenValue + }; + if (context & 512) { + node.raw = parser.tokenRaw; + } + return finishNode(parser, context, start, line, column, node); + } + function parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column) { + if ((parser.token & 143360) !== 143360 && (parser.token & 4096) !== 4096) + report(parser, 0); + const tagName = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + const attributes = parseJSXAttributes(parser, context); + const selfClosing = parser.token === 8457016; + if (parser.token === 8456259) { + scanJSXToken(parser, context); + } + else { + consume(parser, context, 8457016); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + scanJSXToken(parser, context); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningElement', + name: tagName, + attributes, + selfClosing + }); + } + function parseJSXElementName(parser, context, start, line, column) { + scanJSXIdentifier(parser); + let key = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) + return parseJSXNamespacedName(parser, context, key, start, line, column); + while (consumeOpt(parser, context, 67108877)) { + scanJSXIdentifier(parser); + key = parseJSXMemberExpression(parser, context, key, start, line, column); + } + return key; + } + function parseJSXMemberExpression(parser, context, object, start, line, column) { + const property = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXMemberExpression', + object, + property + }); + } + function parseJSXAttributes(parser, context) { + const attributes = []; + while (parser.token !== 8457016 && parser.token !== 8456259 && parser.token !== 1048576) { + attributes.push(parseJsxAttribute(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return attributes; + } + function parseJSXSpreadAttribute(parser, context, start, line, column) { + nextToken(parser, context); + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadAttribute', + argument: expression + }); + } + function parseJsxAttribute(parser, context, start, line, column) { + if (parser.token === 2162700) + return parseJSXSpreadAttribute(parser, context, start, line, column); + scanJSXIdentifier(parser); + let value = null; + let name = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) { + name = parseJSXNamespacedName(parser, context, name, start, line, column); + } + if (parser.token === 1077936157) { + const token = scanJSXAttributeValue(parser, context); + const { tokenPos, linePos, colPos } = parser; + switch (token) { + case 134283267: + value = parseLiteral(parser, context); + break; + case 8456258: + value = parseJSXRootElementOrFragment(parser, context, 1, tokenPos, linePos, colPos); + break; + case 2162700: + value = parseJSXExpressionContainer(parser, context, 1, 1, tokenPos, linePos, colPos); + break; + default: + report(parser, 148); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXAttribute', + value, + name + }); + } + function parseJSXNamespacedName(parser, context, namespace, start, line, column) { + consume(parser, context, 21); + const name = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXNamespacedName', + namespace, + name + }); + } + function parseJSXExpressionContainer(parser, context, inJSXChild, isAttr, start, line, column) { + nextToken(parser, context); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 14) + return parseJSXSpreadChild(parser, context, tokenPos, linePos, colPos); + let expression = null; + if (parser.token === 1074790415) { + if (isAttr) + report(parser, 151); + expression = parseJSXEmptyExpression(parser, context, parser.startPos, parser.startLine, parser.startColumn); + } + else { + expression = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + } + if (inJSXChild) { + consume(parser, context, 1074790415); + } + else { + scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXExpressionContainer', + expression + }); + } + function parseJSXSpreadChild(parser, context, start, line, column) { + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadChild', + expression + }); + } + function parseJSXEmptyExpression(parser, context, start, line, column) { + parser.startPos = parser.tokenPos; + parser.startLine = parser.linePos; + parser.startColumn = parser.colPos; + return finishNode(parser, context, start, line, column, { + type: 'JSXEmptyExpression' + }); + } + function parseJSXIdentifier(parser, context, start, line, column) { + const { tokenValue } = parser; + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXIdentifier', + name: tokenValue + }); + } + + var estree = /*#__PURE__*/Object.freeze({ + __proto__: null + }); + + var version$1 = "4.2.0"; + + const version = version$1; + function parseScript(source, options) { + return parseSource(source, options, 0); + } + function parseModule(source, options) { + return parseSource(source, options, 1024 | 2048); + } + function parse(source, options) { + return parseSource(source, options, 0); + } + + exports.ESTree = estree; + exports.parse = parse; + exports.parseModule = parseModule; + exports.parseScript = parseScript; + exports.version = version; + + Object.defineProperty(exports, '__esModule', { value: true }); + + return exports; + +}({})); diff --git a/node_modules/meriyah/dist/meriyah.iife.min.js b/node_modules/meriyah/dist/meriyah.iife.min.js new file mode 100644 index 0000000..a029293 --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.iife.min.js @@ -0,0 +1 @@ +var meriyah=function(e){"use strict";const t={0:"Unexpected token",28:"Unexpected token: '%0'",1:"Octal escape sequences are not allowed in strict mode",2:"Octal escape sequences are not allowed in template strings",3:"Unexpected token `#`",4:"Illegal Unicode escape sequence",5:"Invalid code point %0",6:"Invalid hexadecimal escape sequence",8:"Octal literals are not allowed in strict mode",7:"Decimal integer literals with a leading zero are forbidden in strict mode",9:"Expected number in radix %0",145:"Invalid left-hand side assignment to a destructible right-hand side",10:"Non-number found after exponent indicator",11:"Invalid BigIntLiteral",12:"No identifiers allowed directly after numeric literal",13:"Escapes \\8 or \\9 are not syntactically valid escapes",14:"Unterminated string literal",15:"Unterminated template literal",16:"Multiline comment was not closed properly",17:"The identifier contained dynamic unicode escape that was not closed",18:"Illegal character '%0'",19:"Missing hexadecimal digits",20:"Invalid implicit octal",21:"Invalid line break in string literal",22:"Only unicode escapes are legal in identifier names",23:"Expected '%0'",24:"Invalid left-hand side in assignment",25:"Invalid left-hand side in async arrow",26:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',27:"Member access on super must be in a method",29:"Await expression not allowed in formal parameter",30:"Yield expression not allowed in formal parameter",92:"Unexpected token: 'escaped keyword'",31:"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses",119:"Async functions can only be declared at the top level or inside a block",32:"Unterminated regular expression",33:"Unexpected regular expression flag",34:"Duplicate regular expression flag '%0'",35:"%0 functions must have exactly %1 argument%2",36:"Setter function argument must not be a rest parameter",37:"%0 declaration must have a name in this context",38:"Function name may not contain any reserved words or be eval or arguments in strict mode",39:"The rest operator is missing an argument",40:"A getter cannot be a generator",41:"A computed property name must be followed by a colon or paren",130:"Object literal keys that are strings or numbers must be a method or have a colon",43:"Found `* async x(){}` but this should be `async * x(){}`",42:"Getters and setters can not be generators",44:"'%0' can not be generator method",45:"No line break is allowed after '=>'",46:"The left-hand side of the arrow can only be destructed through assignment",47:"The binding declaration is not destructible",48:"Async arrow can not be followed by new expression",49:"Classes may not have a static property named 'prototype'",50:"Class constructor may not be a %0",51:"Duplicate constructor method in class",52:"Invalid increment/decrement operand",53:"Invalid use of `new` keyword on an increment/decrement expression",54:"`=>` is an invalid assignment target",55:"Rest element may not have a trailing comma",56:"Missing initializer in %0 declaration",57:"'for-%0' loop head declarations can not have an initializer",58:"Invalid left-hand side in for-%0 loop: Must have a single binding",59:"Invalid shorthand property initializer",60:"Property name __proto__ appears more than once in object literal",61:"Let is disallowed as a lexically bound name",62:"Invalid use of '%0' inside new expression",63:"Illegal 'use strict' directive in function with non-simple parameter list",64:'Identifier "let" disallowed as left-hand side expression in strict mode',65:"Illegal continue statement",66:"Illegal break statement",67:"Cannot have `let[...]` as a var name in strict mode",68:"Invalid destructuring assignment target",69:"Rest parameter may not have a default initializer",70:"The rest argument must the be last parameter",71:"Invalid rest argument",73:"In strict mode code, functions can only be declared at top level or inside a block",74:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement",75:"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement",76:"Class declaration can't appear in single-statement context",77:"Invalid left-hand side in for-%0",78:"Invalid assignment in for-%0",79:"for await (... of ...) is only valid in async functions and async generators",80:"The first token after the template expression should be a continuation of the template",82:"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode",81:"`let \n [` is a restricted production at the start of a statement",83:"Catch clause requires exactly one parameter, not more (and no trailing comma)",84:"Catch clause parameter does not support default values",85:"Missing catch or finally after try",86:"More than one default clause in switch statement",87:"Illegal newline after throw",88:"Strict mode code may not include a with statement",89:"Illegal return statement",90:"The left hand side of the for-header binding declaration is not destructible",91:"new.target only allowed within functions",93:"'#' not followed by identifier",99:"Invalid keyword",98:"Can not use 'let' as a class name",97:"'A lexical declaration can't define a 'let' binding",96:"Can not use `let` as variable name in strict mode",94:"'%0' may not be used as an identifier in this context",95:"Await is only valid in async functions",100:"The %0 keyword can only be used with the module goal",101:"Unicode codepoint must not be greater than 0x10FFFF",102:"%0 source must be string",103:"Only a identifier can be used to indicate alias",104:"Only '*' or '{...}' can be imported after default",105:"Trailing decorator may be followed by method",106:"Decorators can't be used with a constructor",108:"HTML comments are only allowed with web compatibility (Annex B)",109:"The identifier 'let' must not be in expression position in strict mode",110:"Cannot assign to `eval` and `arguments` in strict mode",111:"The left-hand side of a for-of loop may not start with 'let'",112:"Block body arrows can not be immediately invoked without a group",113:"Block body arrows can not be immediately accessed without a group",114:"Unexpected strict mode reserved word",115:"Unexpected eval or arguments in strict mode",116:"Decorators must not be followed by a semicolon",117:"Calling delete on expression not allowed in strict mode",118:"Pattern can not have a tail",120:"Can not have a `yield` expression on the left side of a ternary",121:"An arrow function can not have a postfix update operator",122:"Invalid object literal key character after generator star",123:"Private fields can not be deleted",125:"Classes may not have a field called constructor",124:"Classes may not have a private element named constructor",126:"A class field initializer may not contain arguments",127:"Generators can only be declared at the top level or inside a block",128:"Async methods are a restricted production and cannot have a newline following it",129:"Unexpected character after object literal property name",131:"Invalid key token",132:"Label '%0' has already been declared",133:"continue statement must be nested within an iteration statement",134:"Undefined label '%0'",135:"Trailing comma is disallowed inside import(...) arguments",136:"import() requires exactly one argument",137:"Cannot use new with import(...)",138:"... is not allowed in import()",139:"Expected '=>'",140:"Duplicate binding '%0'",141:"Cannot export a duplicate name '%0'",144:"Duplicate %0 for-binding",142:"Exported binding '%0' needs to refer to a top-level declared variable",143:"Unexpected private field",147:"Numeric separators are not allowed at the end of numeric literals",146:"Only one underscore is allowed as numeric separator",148:"JSX value should be either an expression or a quoted JSX text",149:"Expected corresponding JSX closing tag for %0",150:"Adjacent JSX elements must be wrapped in an enclosing tag",151:"JSX attributes must only be assigned a non-empty 'expression'",152:"'%0' has already been declared",153:"'%0' shadowed a catch clause binding",154:"Dot property must be an identifier",155:"Encountered invalid input after spread/rest argument",156:"Catch without try",157:"Finally without try",158:"Expected corresponding closing tag for JSX fragment",159:"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses",160:"Invalid tagged template on optional chain",161:"Invalid optional chain from super property",162:"Invalid optional chain from new expression",163:'Cannot use "import.meta" outside a module',164:"Leading decorators must be attached to a class declaration"};class n extends SyntaxError{constructor(e,n,o,r,...s){const a="["+n+":"+o+"]: "+t[r].replace(/%(\d+)/g,((e,t)=>s[t]));super(`${a}`),this.index=e,this.line=n,this.column=o,this.description=a,this.loc={line:n,column:o}}}function o(e,t,...o){throw new n(e.index,e.line,e.column,t,...o)}function r(e){throw new n(e.index,e.line,e.column,e.type,e.params)}function s(e,t,o,r,...s){throw new n(e,t,o,r,...s)}function a(e,t,o,r){throw new n(e,t,o,r)}const i=((e,t)=>{const n=new Uint32Array(104448);let o=0,r=0;for(;o<3540;){const s=e[o++];if(s<0)r-=s;else{let a=e[o++];2&s&&(a=t[a]),1&s?n.fill(a,r,r+=e[o++]):n[r++]=a}}return n})([-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828e3,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902e3,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532]);function l(e){return e.column++,e.currentChar=e.source.charCodeAt(++e.index)}function c(e,t){if(55296!=(64512&t))return 0;const n=e.source.charCodeAt(e.index+1);return 56320!=(64512&n)?0:(t=e.currentChar=65536+((1023&t)<<10)+(1023&n),0==(1&i[0+(t>>>5)]>>>t)&&o(e,18,p(t)),e.index++,e.column++,1)}function u(e,t){e.currentChar=e.source.charCodeAt(++e.index),e.flags|=1,0==(4&t)&&(e.column=0,e.line++)}function d(e){e.flags|=1,e.currentChar=e.source.charCodeAt(++e.index),e.column=0,e.line++}function p(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(e>>>10)+String.fromCharCode(1023&e)}function f(e){return e<65?e-48:e-65+10&15}const k=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],g=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],m=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function b(e){return e<=127?g[e]:1&i[34816+(e>>>5)]>>>e}function h(e){return e<=127?m[e]:1&i[0+(e>>>5)]>>>e||8204===e||8205===e}const P=["SingleLine","MultiLine","HTMLOpen","HTMLClose","HashbangComment"];function y(e,t,n,r,s,a,i,l){return 2048&r&&o(e,0),x(e,t,n,s,a,i,l)}function x(e,t,n,o,r,s,a){const{index:i}=e;for(e.tokenPos=e.index,e.linePos=e.line,e.colPos=e.column;e.index=e.source.length)return o(e,32)}const s=e.index-1;let a=0,i=e.currentChar;const{index:c}=e;for(;h(i);){switch(i){case 103:2&a&&o(e,34,"g"),a|=2;break;case 105:1&a&&o(e,34,"i"),a|=1;break;case 109:4&a&&o(e,34,"m"),a|=4;break;case 117:16&a&&o(e,34,"g"),a|=16;break;case 121:8&a&&o(e,34,"y"),a|=8;break;case 115:12&a&&o(e,34,"s"),a|=12;break;default:o(e,33)}i=l(e)}const u=e.source.slice(c,e.index),d=e.source.slice(n,s);return e.tokenRegExp={pattern:d,flags:u},512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),e.tokenValue=function(e,t,n){try{return new RegExp(t,n)}catch(t){o(e,32)}}(e,d,u),65540}function q(e,t,n){const{index:r}=e;let s="",a=l(e),i=e.index;for(;0==(8&k[a]);){if(a===n)return s+=e.source.slice(i,e.index),l(e),512&t&&(e.tokenRaw=e.source.slice(r,e.index)),e.tokenValue=s,134283267;if(8==(8&a)&&92===a){if(s+=e.source.slice(i,e.index),a=l(e),a<127||8232===a||8233===a){const n=C(e,t,a);n>=0?s+=p(n):E(e,n,0)}else s+=p(a);i=e.index+1}e.index>=e.end&&o(e,14),a=l(e)}o(e,14)}function C(e,t,n){switch(n){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(e.index1114111)return-5;return e.currentChar<1||125!==e.currentChar?-4:t}{if(0==(64&k[t]))return-4;const n=e.source.charCodeAt(e.index+1);if(0==(64&k[n]))return-4;const o=e.source.charCodeAt(e.index+2);if(0==(64&k[o]))return-4;const r=e.source.charCodeAt(e.index+3);return 0==(64&k[r])?-4:(e.index+=3,e.column+=3,e.currentChar=e.source.charCodeAt(e.index),f(t)<<12|f(n)<<8|f(o)<<4|f(r))}}case 56:case 57:if(0==(256&t))return-3;default:return n}}function E(e,t,n){switch(t){case-1:return;case-2:o(e,n?2:1);case-3:o(e,13);case-4:o(e,6);case-5:o(e,101)}}function A(e,t){const{index:n}=e;let r=67174409,s="",a=l(e);for(;96!==a;){if(36===a&&123===e.source.charCodeAt(e.index+1)){l(e),r=67174408;break}if(8==(8&a)&&92===a)if(a=l(e),a>126)s+=p(a);else{const n=C(e,1024|t,a);if(n>=0)s+=p(n);else{if(-1!==n&&65536&t){s=void 0,a=S(e,a),a<0&&(r=67174408);break}E(e,n,1)}}else e.index=e.end&&o(e,15),a=l(e)}return l(e),e.tokenValue=s,e.tokenRaw=e.source.slice(n+1,e.index-(67174409===r?1:2)),r}function S(e,t){for(;96!==t;){switch(t){case 36:{const n=e.index+1;if(n=e.end&&o(e,15),t=l(e)}return t}function D(e,t){return e.index>=e.end&&o(e,0),e.index--,e.column--,A(e,t)}function L(e,t,n){let r=e.currentChar,s=0,i=9,c=64&n?0:1,u=0,d=0;if(64&n)s="."+V(e,r),r=e.currentChar,110===r&&o(e,11);else{if(48===r)if(r=l(e),120==(32|r)){for(n=136,r=l(e);4160&k[r];)95!==r?(d=1,s=16*s+f(r),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?19:147)}else if(111==(32|r)){for(n=132,r=l(e);4128&k[r];)95!==r?(d=1,s=8*s+(r-48),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?0:147)}else if(98==(32|r)){for(n=130,r=l(e);4224&k[r];)95!==r?(d=1,s=2*s+(r-48),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?0:147)}else if(32&k[r])for(1024&t&&o(e,1),n=1;16&k[r];){if(512&k[r]){n=32,c=0;break}s=8*s+(r-48),r=l(e)}else 512&k[r]?(1024&t&&o(e,1),e.flags|=64,n=32):95===r&&o(e,0);if(48&n){if(c){for(;i>=0&&4112&k[r];)95!==r?(d=0,s=10*s+(r-48),r=l(e),--i):(r=l(e),(95===r||32&n)&&a(e.index,e.line,e.index+1,146),d=1);if(d&&a(e.index,e.line,e.index+1,147),i>=0&&!b(r)&&46!==r)return e.tokenValue=s,512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),134283266}s+=V(e,r),r=e.currentChar,46===r&&(95===l(e)&&o(e,0),n=64,s+="."+V(e,e.currentChar),r=e.currentChar)}}const p=e.index;let g=0;if(110===r&&128&n)g=1,r=l(e);else if(101==(32|r)){r=l(e),256&k[r]&&(r=l(e));const{index:t}=e;(16&k[r])<1&&o(e,10),s+=e.source.substring(p,t)+V(e,r),r=e.currentChar}return(e.index","(","{",".","...","}",")",";",",","[","]",":","?","'",'"',"","++","--","=","<<=",">>=",">>>=","**=","+=","-=","*=","/=","%=","^=","|=","&=","||=","&&=","??=","typeof","delete","void","!","~","+","-","in","instanceof","*","%","/","**","&&","||","===","!==","==","!=","<=",">=","<",">","<<",">>",">>>","&","|","^","var","let","const","break","case","catch","class","continue","debugger","default","do","else","export","extends","finally","for","function","if","import","new","return","super","switch","this","throw","try","while","with","implements","interface","package","private","protected","public","static","yield","as","async","await","constructor","get","set","from","of","enum","eval","arguments","escaped keyword","escaped future reserved keyword","reserved if strict","#","BigIntLiteral","??","?.","WhiteSpace","Illegal","LineTerminator","PrivateField","Template","@","target","meta","LineFeed","Escaped","JSXText"],R=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function N(e,t,n){for(;m[l(e)];);return e.tokenValue=e.source.slice(e.tokenPos,e.index),92!==e.currentChar&&e.currentChar<126?R[e.tokenValue]||208897:U(e,t,0,n)}function I(e,t){const n=O(e);return h(n)||o(e,4),e.tokenValue=p(n),U(e,t,1,4&k[n])}function U(e,t,n,r){let s=e.index;for(;e.index=2&&a<=11){const o=R[e.tokenValue];return void 0===o?208897:n?1024&t?209008===o&&0==(4196352&t)?o:36972===o||36864==(36864&o)?122:121:1073741824&t&&0==(8192&t)&&20480==(20480&o)?o:241773===o?1073741824&t?143483:2097152&t?121:o:209007===o&&1073741824&t?143483:36864==(36864&o)||209008===o&&0==(4194304&t)?o:121:o}return 208897}function B(e){return b(l(e))||o(e,93),131}function O(e){return 117!==e.source.charCodeAt(e.index+1)&&o(e,4),e.currentChar=e.source.charCodeAt(e.index+=2),function(e){let t=0;const n=e.currentChar;if(123===n){const n=e.index-2;for(;64&k[l(e)];)t=t<<4|f(e.currentChar),t>1114111&&a(n,e.line,e.index+1,101);return 125!==e.currentChar&&a(n,e.line,e.index-1,6),l(e),t}0==(64&k[n])&&o(e,6);const r=e.source.charCodeAt(e.index+1);0==(64&k[r])&&o(e,6);const s=e.source.charCodeAt(e.index+2);0==(64&k[s])&&o(e,6);const i=e.source.charCodeAt(e.index+3);0==(64&k[i])&&o(e,6);return t=f(n)<<12|f(r)<<8|f(s)<<4|f(i),e.currentChar=e.source.charCodeAt(e.index+=4),t}(e)}const G=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function F(e,t){if(e.flags=1^(1|e.flags),e.startPos=e.index,e.startColumn=e.column,e.startLine=e.line,e.token=j(e,t,0),e.onToken&&1048576!==e.token){const t={start:{line:e.linePos,column:e.colPos},end:{line:e.line,column:e.column}};e.onToken(function(e){switch(e){case 134283266:return"NumericLiteral";case 134283267:return"StringLiteral";case 86021:case 86022:return"BooleanLiteral";case 86023:return"NullLiteral";case 65540:return"RegularExpression";case 67174408:case 67174409:case 132:return"TemplateLiteral";default:return 143360==(143360&e)?"Identifier":4096==(4096&e)?"Keyword":"Punctuator"}}(e.token),e.tokenPos,e.index,t)}}function j(e,t,n){const r=0===e.index,s=e.source;let a=e.index,c=e.line,f=e.column;for(;e.index=e.end)return 8457014;const t=e.currentChar;return 61===t?(l(e),4194340):42!==t?8457014:61!==l(e)?8457273:(l(e),4194337)}case 8455497:return 61!==l(e)?8455497:(l(e),4194343);case 25233970:{l(e);const t=e.currentChar;return 43===t?(l(e),33619995):61===t?(l(e),4194338):25233970}case 25233971:{l(e);const i=e.currentChar;if(45===i){if(l(e),(1&n||r)&&62===e.currentChar){0==(256&t)&&o(e,108),l(e),n=y(e,s,n,t,3,a,c,f),a=e.tokenPos,c=e.linePos,f=e.colPos;continue}return 33619996}return 61===i?(l(e),4194339):25233971}case 8457016:if(l(e),e.index=48&&k<=57)return L(e,t,80);if(46===k){const t=e.index+1;if(t=48&&t<=57)))return l(e),67108991}return 22}}}else{if((8232^g)<=1){n=-5&n|1,d(e);continue}if(55296==(64512&g)||0!=(1&i[34816+(g>>>5)]>>>g))return 56320==(64512&g)&&(g=(1023&g)<<10|1023&g|65536,0==(1&i[0+(g>>>5)]>>>g)&&o(e,18,p(g)),e.index++,e.currentChar=g),e.column++,e.tokenValue="",U(e,t,0,0);if(160===(k=g)||65279===k||133===k||5760===k||k>=8192&&k<=8203||8239===k||8287===k||12288===k||8201===k||65519===k){l(e);continue}o(e,18,p(g))}}var k;return 1048576}const H={AElig:"Æ",AMP:"&",Aacute:"Á",Abreve:"Ă",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atilde:"Ã",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ETH:"Ð",Eacute:"É",Ecaron:"Ě",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"Í",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"â",acute:"´",acy:"а",aelig:"æ",af:"⁡",afr:"𝔞",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"ð",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"í",ic:"⁣",icirc:"î",icy:"и",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"ó",oast:"⊛",ocir:"⊚",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"ø",osol:"⊘",otilde:"õ",otimes:"⊗",otimesas:"⨶",ouml:"ö",ovbar:"⌽",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"þ",tilde:"˜",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"},J={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function M(e){return e.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g,(e=>{if("#"===e.charAt(1)){const t=e.charAt(2);return function(e){if(e>=55296&&e<=57343||e>1114111)return"�";e in J&&(e=J[e]);return String.fromCodePoint(e)}("X"===t||"x"===t?parseInt(e.slice(3),16):parseInt(e.slice(2),10))}return H[e.slice(1,-1)]||e}))}function z(e,t){return e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.token=8192&k[e.currentChar]?function(e,t){const n=e.currentChar;let r=l(e);const s=e.index;for(;r!==n;)e.index>=e.end&&o(e,14),r=l(e);r!==n&&o(e,14);e.tokenValue=e.source.slice(s,e.index),l(e),512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index));return 134283267}(e,t):j(e,t,0),e.token}function X(e,t){if(e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.index>=e.end)return e.token=1048576;switch(G[e.source.charCodeAt(e.index)]){case 8456258:l(e),47===e.currentChar?(l(e),e.token=25):e.token=8456258;break;case 2162700:l(e),e.token=2162700;break;default:{let n=0;for(;e.index0&&W(e,t,209008);K(e,32768|t,67174411),n&&(n=le(n,1));let c,u=null,d=null,p=0,f=null,k=86090===e.token||241739===e.token||86092===e.token;const{token:g,tokenPos:m,linePos:b,colPos:h}=e;k?241739===g?(f=nt(e,t,0),2240512&e.token?(8738868===e.token?1024&t&&o(e,64):f=re(e,t,m,b,h,{type:"VariableDeclaration",kind:"let",declarations:De(e,134217728|t,n,8,32)}),e.assignable=1):1024&t?o(e,64):(k=!1,e.assignable=1,f=ze(e,t,f,0,0,m,b,h),274549===e.token&&o(e,111))):(F(e,t),f=re(e,t,m,b,h,86090===g?{type:"VariableDeclaration",kind:"var",declarations:De(e,134217728|t,n,4,32)}:{type:"VariableDeclaration",kind:"const",declarations:De(e,134217728|t,n,16,32)}),e.assignable=1):1074790417===g?l&&o(e,79):2097152==(2097152&g)?(f=2162700===g?ut(e,t,void 0,1,0,0,2,32,m,b,h):at(e,t,void 0,1,0,0,2,32,m,b,h),p=e.destructible,256&t&&64&p&&o(e,60),e.assignable=16&p?2:1,f=ze(e,134217728|t,f,0,0,e.tokenPos,e.linePos,e.colPos)):f=Me(e,134217728|t,1,0,1,m,b,h);if(262144==(262144&e.token)){if(274549===e.token){2&e.assignable&&o(e,77,l?"await":"of"),Q(e,f),F(e,32768|t),c=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),K(e,32768|t,16);return re(e,t,s,a,i,{type:"ForOfStatement",left:f,right:c,body:Ee(e,t,n,r),await:l})}2&e.assignable&&o(e,77,"in"),Q(e,f),F(e,32768|t),l&&o(e,79),c=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos),K(e,32768|t,16);return re(e,t,s,a,i,{type:"ForInStatement",body:Ee(e,t,n,r),left:f,right:c})}l&&o(e,79);k||(8&p&&1077936157!==e.token&&o(e,77,"loop"),f=Ge(e,134217728|t,0,0,m,b,h,f));18===e.token&&(f=Be(e,t,0,e.tokenPos,e.linePos,e.colPos,f));K(e,32768|t,1074790417),1074790417!==e.token&&(u=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos));K(e,32768|t,1074790417),16!==e.token&&(d=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos));K(e,32768|t,16);const P=Ee(e,t,n,r);return re(e,t,s,a,i,{type:"ForStatement",init:f,test:u,update:d,body:P})}(e,t,n,s,i,l,c);case 20564:return function(e,t,n,o,r,s,a){F(e,32768|t);const i=Ee(e,t,n,o);K(e,t,20580),K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return K(e,32768|t,16),W(e,t,1074790417),re(e,t,r,s,a,{type:"DoWhileStatement",body:i,test:l})}(e,t,n,s,i,l,c);case 20580:return function(e,t,n,o,r,s,a){F(e,t),K(e,32768|t,67174411);const i=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,16);const l=Ee(e,t,n,o);return re(e,t,r,s,a,{type:"WhileStatement",test:i,body:l})}(e,t,n,s,i,l,c);case 86112:return function(e,t,n,r,s,a,i){F(e,t),K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,t,16),K(e,t,2162700);const c=[];let u=0;n&&(n=le(n,8));for(;1074790415!==e.token;){const{tokenPos:s,linePos:a,colPos:i}=e;let l=null;const d=[];for(W(e,32768|t,20558)?l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos):(K(e,32768|t,20563),u&&o(e,86),u=1),K(e,32768|t,21);20558!==e.token&&1074790415!==e.token&&20563!==e.token;)d.push(he(e,4096|t,n,2,{$:r}));c.push(re(e,t,s,a,i,{type:"SwitchCase",test:l,consequent:d}))}return K(e,32768|t,1074790415),re(e,t,s,a,i,{type:"SwitchStatement",discriminant:l,cases:c})}(e,t,n,s,i,l,c);case 1074790417:return function(e,t,n,o,r){return F(e,32768|t),re(e,t,n,o,r,{type:"EmptyStatement"})}(e,t,i,l,c);case 2162700:return ye(e,t,n?le(n,2):n,s,i,l,c);case 86114:return function(e,t,n,r,s){F(e,32768|t),1&e.flags&&o(e,87);const a=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return $(e,32768|t),re(e,t,n,r,s,{type:"ThrowStatement",argument:a})}(e,t,i,l,c);case 20557:return function(e,t,n,r,s,a){F(e,32768|t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=nt(e,32768|t,0),oe(e,n,r,0)||o(e,134,r)}else(135168&t)<1&&o(e,66);return $(e,32768|t),re(e,t,r,s,a,{type:"BreakStatement",label:i})}(e,t,s,i,l,c);case 20561:return function(e,t,n,r,s,a){(131072&t)<1&&o(e,65);F(e,t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=nt(e,32768|t,0),oe(e,n,r,1)||o(e,134,r)}return $(e,32768|t),re(e,t,r,s,a,{type:"ContinueStatement",label:i})}(e,t,s,i,l,c);case 20579:return function(e,t,n,r,s,a,i){F(e,32768|t);const l=n?le(n,32):void 0,c=ye(e,t,l,{$:r},e.tokenPos,e.linePos,e.colPos),{tokenPos:u,linePos:d,colPos:p}=e,f=W(e,32768|t,20559)?function(e,t,n,r,s,a,i){let l=null,c=n;W(e,t,67174411)&&(n&&(n=le(n,4)),l=At(e,t,n,2097152==(2097152&e.token)?256:512,0,e.tokenPos,e.linePos,e.colPos),18===e.token?o(e,83):1077936157===e.token&&o(e,84),K(e,32768|t,16),n&&(c=le(n,64)));const u=ye(e,t,c,{$:r},e.tokenPos,e.linePos,e.colPos);return re(e,t,s,a,i,{type:"CatchClause",param:l,body:u})}(e,t,n,r,u,d,p):null;let k=null;if(20568===e.token){F(e,32768|t);k=ye(e,t,l?le(n,4):void 0,{$:r},e.tokenPos,e.linePos,e.colPos)}f||k||o(e,85);return re(e,t,s,a,i,{type:"TryStatement",block:c,handler:f,finalizer:k})}(e,t,n,s,i,l,c);case 20581:return function(e,t,n,r,s,a,i){F(e,t),1024&t&&o(e,88);K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,16);const c=Pe(e,t,n,2,r,0,e.tokenPos,e.linePos,e.colPos);return re(e,t,s,a,i,{type:"WithStatement",object:l,body:c})}(e,t,n,s,i,l,c);case 20562:return function(e,t,n,o,r){return F(e,32768|t),$(e,32768|t),re(e,t,n,o,r,{type:"DebuggerStatement"})}(e,t,i,l,c);case 209007:return we(e,t,n,r,s,0,i,l,c);case 20559:o(e,156);case 20568:o(e,157);case 86106:o(e,1024&t?73:(256&t)<1?75:74);case 86096:o(e,76);default:return function(e,t,n,r,s,a,i,l,c){const{tokenValue:u,token:d}=e;let p;switch(d){case 241739:p=nt(e,t,0),1024&t&&o(e,82),69271571===e.token&&o(e,81);break;default:p=_e(e,t,2,0,1,0,0,1,e.tokenPos,e.linePos,e.colPos)}if(143360&d&&21===e.token)return ve(e,t,n,r,s,u,p,d,a,i,l,c);p=ze(e,t,p,0,0,i,l,c),p=Ge(e,t,0,0,i,l,c,p),18===e.token&&(p=Be(e,t,0,i,l,c,p));return xe(e,t,p,i,l,c)}(e,t,n,r,s,a,i,l,c)}}function ye(e,t,n,o,r,s,a){const i=[];for(K(e,32768|t,2162700);1074790415!==e.token;)i.push(he(e,t,n,2,{$:o}));return K(e,32768|t,1074790415),re(e,t,r,s,a,{type:"BlockStatement",body:i})}function xe(e,t,n,o,r,s){return $(e,32768|t),re(e,t,o,r,s,{type:"ExpressionStatement",expression:n})}function ve(e,t,n,r,s,a,i,l,c,u,d,p){ee(e,t,0,l,1),function(e,t,n){let r=t;for(;r;)r["$"+n]&&o(e,132,n),r=r.$;t["$"+n]=1}(e,s,a),F(e,32768|t);return re(e,t,u,d,p,{type:"LabeledStatement",label:i,body:c&&(1024&t)<1&&256&t&&86106===e.token?rt(e,t,le(n,2),r,0,0,0,e.tokenPos,e.linePos,e.colPos):Pe(e,t,n,r,s,c,e.tokenPos,e.linePos,e.colPos)})}function we(e,t,n,r,s,a,i,l,c){const{token:u,tokenValue:d}=e;let p=nt(e,t,0);if(21===e.token)return ve(e,t,n,r,s,d,p,u,1,i,l,c);const f=1&e.flags;if(!f){if(86106===e.token)return a||o(e,119),rt(e,t,n,r,1,0,1,i,l,c);if(143360==(143360&e.token))return p=ht(e,t,1,i,l,c),18===e.token&&(p=Be(e,t,0,i,l,c,p)),xe(e,t,p,i,l,c)}return 67174411===e.token?p=Pt(e,t,p,1,1,0,f,i,l,c):(10===e.token&&(ge(e,t,u,1),p=ft(e,t,e.tokenValue,p,0,1,0,i,l,c)),e.assignable=1),p=ze(e,t,p,0,0,i,l,c),18===e.token&&(p=Be(e,t,0,i,l,c,p)),p=Ge(e,t,0,0,i,l,c,p),e.assignable=1,xe(e,t,p,i,l,c)}function qe(e,t,n,o,r,s,a){return 1074790417!==o&&(e.assignable=2,n=ze(e,t,n,0,0,r,s,a),1074790417!==e.token&&(n=Ge(e,t,0,0,r,s,a,n),18===e.token&&(n=Be(e,t,0,r,s,a,n))),$(e,32768|t)),8&t&&"Literal"===n.type&&"string"==typeof n.value?re(e,t,r,s,a,{type:"ExpressionStatement",expression:n,directive:n.raw.slice(1,-1)}):re(e,t,r,s,a,{type:"ExpressionStatement",expression:n})}function Ce(e,t,n,o,r,s,a){return 1024&t||(256&t)<1||86106!==e.token?Pe(e,t,n,0,{$:o},0,e.tokenPos,e.linePos,e.colPos):rt(e,t,le(n,2),0,0,0,0,r,s,a)}function Ee(e,t,n,o){return Pe(e,134217728^(134217728|t)|131072,n,0,{loop:1,$:o},0,e.tokenPos,e.linePos,e.colPos)}function Ae(e,t,n,o,r,s,a,i){F(e,t);const l=De(e,t,n,o,r);return $(e,32768|t),re(e,t,s,a,i,{type:"VariableDeclaration",kind:8&o?"let":"const",declarations:l})}function Se(e,t,n,o,r,s,a){F(e,t);const i=De(e,t,n,4,o);return $(e,32768|t),re(e,t,r,s,a,{type:"VariableDeclaration",kind:"var",declarations:i})}function De(e,t,n,r,s){let a=1;const i=[Le(e,t,n,r,s)];for(;W(e,t,18);)a++,i.push(Le(e,t,n,r,s));return a>1&&32&s&&262144&e.token&&o(e,58,T[255&e.token]),i}function Le(e,t,n,r,a){const{token:i,tokenPos:l,linePos:c,colPos:u}=e;let d=null;const p=At(e,t,n,r,a,l,c,u);return 1077936157===e.token?(F(e,32768|t),d=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),(32&a||(2097152&i)<1)&&(274549===e.token||8738868===e.token&&(2097152&i||(4&r)<1||1024&t))&&s(l,e.line,e.index-3,57,274549===e.token?"of":"in")):(16&r||(2097152&i)>0)&&262144!=(262144&e.token)&&o(e,56,16&r?"const":"destructuring"),re(e,t,l,c,u,{type:"VariableDeclarator",id:p,init:d})}function Ve(e,t,n){return ke(t,e.token)||o(e,114),537079808==(537079808&e.token)&&o(e,115),n&&ue(e,t,n,e.tokenValue,8,0),nt(e,t,0)}function Te(e,t,n){const{tokenPos:o,linePos:r,colPos:a}=e;return F(e,t),K(e,t,77934),134217728==(134217728&e.token)&&s(o,e.line,e.index,28,T[255&e.token]),re(e,t,o,r,a,{type:"ImportNamespaceSpecifier",local:Ve(e,t,n)})}function Re(e,t,n,r){for(F(e,t);143360&e.token;){let{token:s,tokenValue:a,tokenPos:i,linePos:l,colPos:c}=e;const u=nt(e,t,0);let d;W(e,t,77934)?(134217728==(134217728&e.token)||18===e.token?o(e,103):ee(e,t,16,e.token,0),a=e.tokenValue,d=nt(e,t,0)):(ee(e,t,16,s,0),d=u),n&&ue(e,t,n,a,8,0),r.push(re(e,t,i,l,c,{type:"ImportSpecifier",local:d,imported:u})),1074790415!==e.token&&K(e,t,18)}return K(e,t,1074790415),r}function Ne(e,t,n,o,r){let s=$e(e,t,re(e,t,n,o,r,{type:"Identifier",name:"import"}),n,o,r);return s=ze(e,t,s,0,0,n,o,r),s=Ge(e,t,0,0,n,o,r,s),xe(e,t,s,n,o,r)}function Ie(e,t,n,o,r){let s=Ye(e,t,0,n,o,r);return s=ze(e,t,s,0,0,n,o,r),xe(e,t,s,n,o,r)}function Ue(e,t,n,o,r,s,a,i){let l=_e(e,t,2,0,n,o,r,1,s,a,i);return l=ze(e,t,l,r,0,s,a,i),Ge(e,t,r,0,s,a,i,l)}function Be(e,t,n,o,r,s,a){const i=[a];for(;W(e,32768|t,18);)i.push(Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos));return re(e,t,o,r,s,{type:"SequenceExpression",expressions:i})}function Oe(e,t,n,o,r,s,a){const i=Ue(e,t,o,0,n,r,s,a);return 18===e.token?Be(e,t,n,r,s,a,i):i}function Ge(e,t,n,r,s,a,i,l){const{token:c}=e;if(4194304==(4194304&c)){2&e.assignable&&o(e,24),(!r&&1077936157===c&&"ArrayExpression"===l.type||"ObjectExpression"===l.type)&&Q(e,l),F(e,32768|t);const u=Ue(e,t,1,1,n,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,re(e,t,s,a,i,r?{type:"AssignmentPattern",left:l,right:u}:{type:"AssignmentExpression",left:l,operator:T[255&c],right:u})}return 8454144==(8454144&c)&&(l=He(e,t,n,s,a,i,4,c,l)),W(e,32768|t,22)&&(l=je(e,t,l,s,a,i)),l}function Fe(e,t,n,o,r,s,a,i){const{token:l}=e;F(e,32768|t);const c=Ue(e,t,1,1,n,e.tokenPos,e.linePos,e.colPos);return i=re(e,t,r,s,a,o?{type:"AssignmentPattern",left:i,right:c}:{type:"AssignmentExpression",left:i,operator:T[255&l],right:c}),e.assignable=2,i}function je(e,t,n,o,r,s){const a=Ue(e,134217728^(134217728|t),1,0,0,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,21),e.assignable=1;const i=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,re(e,t,o,r,s,{type:"ConditionalExpression",test:n,consequent:a,alternate:i})}function He(e,t,n,r,s,a,i,l,c){const u=8738868&-((134217728&t)>0);let d,p;for(e.assignable=2;8454144&e.token&&(d=e.token,p=3840&d,(524288&d&&268435456&l||524288&l&&268435456&d)&&o(e,159),!(p+((8457273===d)<<8)-((u===d)<<12)<=i));)F(e,32768|t),c=re(e,t,r,s,a,{type:524288&d||268435456&d?"LogicalExpression":"BinaryExpression",left:c,right:He(e,t,n,e.tokenPos,e.linePos,e.colPos,p,d,Me(e,t,0,n,1,e.tokenPos,e.linePos,e.colPos)),operator:T[255&d]});return 1077936157===e.token&&o(e,24),c}function Je(e,t,n,a,i,l){const{tokenPos:c,linePos:u,colPos:d}=e;K(e,32768|t,2162700);const p=[],f=t;if(1074790415!==e.token){for(;134283267===e.token;){const{index:n,tokenPos:o,tokenValue:r,token:a}=e,i=ot(e,t);Y(e,n,o,r)&&(t|=1024,128&e.flags&&s(e.index,e.line,e.tokenPos,63),64&e.flags&&s(e.index,e.line,e.tokenPos,8)),p.push(qe(e,t,i,a,o,e.linePos,e.colPos))}1024&t&&(i&&(537079808==(537079808&i)&&o(e,115),36864==(36864&i)&&o(e,38)),512&e.flags&&o(e,115),256&e.flags&&o(e,114)),64&t&&n&&void 0!==l&&(1024&f)<1&&(8192&t)<1&&r(l)}for(e.flags=832^(832|e.flags),e.destructible=256^(256|e.destructible);1074790415!==e.token;)p.push(he(e,t,n,4,{}));return K(e,24&a?32768|t:t,1074790415),e.flags&=-193,1077936157===e.token&&o(e,24),re(e,t,c,u,d,{type:"BlockStatement",body:p})}function Me(e,t,n,o,r,s,a,i){return ze(e,t,_e(e,t,2,0,n,0,o,r,s,a,i),o,0,s,a,i)}function ze(e,t,n,r,s,a,i,l){if(33619968==(33619968&e.token)&&(1&e.flags)<1)n=function(e,t,n,r,s,a){2&e.assignable&&o(e,52);const{token:i}=e;return F(e,t),e.assignable=2,re(e,t,r,s,a,{type:"UpdateExpression",argument:n,operator:T[255&i],prefix:!1})}(e,t,n,a,i,l);else if(67108864==(67108864&e.token)){switch(t=134225920^(134225920|t),e.token){case 67108877:F(e,1073741824|t),e.assignable=1;n=re(e,t,a,i,l,{type:"MemberExpression",object:n,computed:!1,property:Xe(e,t)});break;case 69271571:{let o=!1;2048==(2048&e.flags)&&(o=!0,e.flags=2048^(2048|e.flags)),F(e,32768|t);const{tokenPos:s,linePos:c,colPos:u}=e,d=Oe(e,t,r,1,s,c,u);K(e,t,20),e.assignable=1,n=re(e,t,a,i,l,{type:"MemberExpression",object:n,computed:!0,property:d}),o&&(e.flags|=2048);break}case 67174411:{if(1024==(1024&e.flags))return e.flags=1024^(1024|e.flags),n;let o=!1;2048==(2048&e.flags)&&(o=!0,e.flags=2048^(2048|e.flags));const s=tt(e,t,r);e.assignable=2,n=re(e,t,a,i,l,{type:"CallExpression",callee:n,arguments:s}),o&&(e.flags|=2048);break}case 67108991:F(e,t),e.flags|=2048,e.assignable=2,n=function(e,t,n,r,s,a){let i,l=!1;69271571!==e.token&&67174411!==e.token||2048==(2048&e.flags)&&(l=!0,e.flags=2048^(2048|e.flags));if(69271571===e.token){F(e,32768|t);const{tokenPos:o,linePos:l,colPos:c}=e,u=Oe(e,t,0,1,o,l,c);K(e,t,20),e.assignable=2,i=re(e,t,r,s,a,{type:"MemberExpression",object:n,computed:!0,optional:!0,property:u})}else if(67174411===e.token){const o=tt(e,t,0);e.assignable=2,i=re(e,t,r,s,a,{type:"CallExpression",callee:n,arguments:o,optional:!0})}else{(143360&e.token)<1&&o(e,154);const l=nt(e,t,0);e.assignable=2,i=re(e,t,r,s,a,{type:"MemberExpression",object:n,computed:!1,optional:!0,property:l})}l&&(e.flags|=2048);return i}(e,t,n,a,i,l);break;default:2048==(2048&e.flags)&&o(e,160),e.assignable=2,n=re(e,t,a,i,l,{type:"TaggedTemplateExpression",tag:n,quasi:67174408===e.token?Ke(e,65536|t):We(e,t,e.tokenPos,e.linePos,e.colPos)})}n=ze(e,t,n,0,1,a,i,l)}return 0===s&&2048==(2048&e.flags)&&(e.flags=2048^(2048|e.flags),n=re(e,t,a,i,l,{type:"ChainExpression",expression:n})),n}function Xe(e,t){return(143360&e.token)<1&&131!==e.token&&o(e,154),1&t&&131===e.token?Ct(e,t,e.tokenPos,e.linePos,e.colPos):nt(e,t,0)}function _e(e,t,n,r,a,i,l,c,u,d,p){if(143360==(143360&e.token)){switch(e.token){case 209008:return function(e,t,n,r,a,i,l){if(r&&(e.destructible|=128),4194304&t||2048&t&&8192&t){n&&o(e,0),8388608&t&&s(e.index,e.line,e.index,29),F(e,32768|t);const r=Me(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 8457273===e.token&&o(e,31),e.assignable=2,re(e,t,a,i,l,{type:"AwaitExpression",argument:r})}return 2048&t&&o(e,95),pt(e,t,a,i,l)}(e,t,r,l,u,d,p);case 241773:return function(e,t,n,r,s,a,i){if(n&&(e.destructible|=256),2097152&t){F(e,32768|t),8388608&t&&o(e,30),r||o(e,24),22===e.token&&o(e,120);let n=null,l=!1;return(1&e.flags)<1&&(l=W(e,32768|t,8457014),(77824&e.token||l)&&(n=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos))),e.assignable=2,re(e,t,s,a,i,{type:"YieldExpression",argument:n,delegate:l})}return 1024&t&&o(e,94,"yield"),pt(e,t,s,a,i)}(e,t,l,a,u,d,p);case 209007:return function(e,t,n,r,s,a,i,l,c,u){const{token:d}=e,p=nt(e,t,a),{flags:f}=e;if((1&f)<1){if(86106===e.token)return st(e,t,1,n,l,c,u);if(143360==(143360&e.token))return r||o(e,0),ht(e,t,s,l,c,u)}return i||67174411!==e.token?10===e.token?(ge(e,t,d,1),i&&o(e,48),ft(e,t,e.tokenValue,p,i,s,0,l,c,u)):p:Pt(e,t,p,s,1,0,f,l,c,u)}(e,t,l,c,a,i,r,u,d,p)}const{token:f,tokenValue:k}=e,g=nt(e,65536|t,i);return 10===e.token?(c||o(e,0),ge(e,t,f,1),ft(e,t,k,g,r,a,0,u,d,p)):(16384&t&&537079928===f&&o(e,126),241739===f&&(1024&t&&o(e,109),24&n&&o(e,97)),e.assignable=1024&t&&537079808==(537079808&f)?2:1,g)}if(134217728==(134217728&e.token))return ot(e,t);switch(e.token){case 33619995:case 33619996:return function(e,t,n,r,s,a,i){n&&o(e,53),r||o(e,0);const{token:l}=e;F(e,32768|t);const c=Me(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 2&e.assignable&&o(e,52),e.assignable=2,re(e,t,s,a,i,{type:"UpdateExpression",argument:c,operator:T[255&l],prefix:!0})}(e,t,r,c,u,d,p);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return function(e,t,n,r,s,a,i){n||o(e,0);const l=e.token;F(e,32768|t);const c=Me(e,t,0,i,1,e.tokenPos,e.linePos,e.colPos);var u;return 8457273===e.token&&o(e,31),1024&t&&16863278===l&&("Identifier"===c.type?o(e,117):(u=c).property&&"PrivateIdentifier"===u.property.type&&o(e,123)),e.assignable=2,re(e,t,r,s,a,{type:"UnaryExpression",operator:T[255&l],argument:c,prefix:!0})}(e,t,c,u,d,p,l);case 86106:return st(e,t,0,l,u,d,p);case 2162700:return function(e,t,n,r,s,a,i){const l=ut(e,t,void 0,n,r,0,2,0,s,a,i);256&t&&64&e.destructible&&o(e,60);8&e.destructible&&o(e,59);return l}(e,t,a?0:1,l,u,d,p);case 69271571:return function(e,t,n,r,s,a,i){const l=at(e,t,void 0,n,r,0,2,0,s,a,i);256&t&&64&e.destructible&&o(e,60);8&e.destructible&&o(e,59);return l}(e,t,a?0:1,l,u,d,p);case 67174411:return function(e,t,n,r,s,a,i,l){e.flags=128^(128|e.flags);const{tokenPos:c,linePos:u,colPos:d}=e;F(e,1073774592|t);const p=64&t?le({parent:void 0,type:2},1024):void 0;if(W(e,t=134217728^(134217728|t),16))return kt(e,t,p,[],n,0,a,i,l);let f,k=0;e.destructible&=-385;let g=[],m=0,b=0;const{tokenPos:h,linePos:P,colPos:y}=e;e.assignable=1;for(;16!==e.token;){const{token:n,tokenPos:a,linePos:i,colPos:l}=e;if(143360&n)p&&ue(e,t,p,e.tokenValue,1,0),f=_e(e,t,r,0,1,0,1,1,a,i,l),16===e.token||18===e.token?2&e.assignable?(k|=16,b=1):537079808!=(537079808&n)&&36864!=(36864&n)||(b=1):(1077936157===e.token?b=1:k|=16,f=ze(e,t,f,1,0,a,i,l),16!==e.token&&18!==e.token&&(f=Ge(e,t,1,0,a,i,l,f)));else{if(2097152!=(2097152&n)){if(14===n){f=lt(e,t,p,16,r,s,0,1,0,a,i,l),16&e.destructible&&o(e,71),b=1,!m||16!==e.token&&18!==e.token||g.push(f),k|=8;break}if(k|=16,f=Ue(e,t,1,0,1,a,i,l),!m||16!==e.token&&18!==e.token||g.push(f),18===e.token&&(m||(m=1,g=[f])),m){for(;W(e,32768|t,18);)g.push(Ue(e,t,1,0,1,e.tokenPos,e.linePos,e.colPos));e.assignable=2,f=re(e,t,h,P,y,{type:"SequenceExpression",expressions:g})}return K(e,t,16),e.destructible=k,f}f=2162700===n?ut(e,1073741824|t,p,0,1,0,r,s,a,i,l):at(e,1073741824|t,p,0,1,0,r,s,a,i,l),k|=e.destructible,b=1,e.assignable=2,16!==e.token&&18!==e.token&&(8&k&&o(e,118),f=ze(e,t,f,0,0,a,i,l),k|=16,16!==e.token&&18!==e.token&&(f=Ge(e,t,0,0,a,i,l,f)))}if(!m||16!==e.token&&18!==e.token||g.push(f),!W(e,32768|t,18))break;if(m||(m=1,g=[f]),16===e.token){k|=8;break}}m&&(e.assignable=2,f=re(e,t,h,P,y,{type:"SequenceExpression",expressions:g}));K(e,t,16),16&k&&8&k&&o(e,145);if(k|=256&e.destructible?256:0|128&e.destructible?128:0,10===e.token)return 48&k&&o(e,46),4196352&t&&128&k&&o(e,29),2098176&t&&256&k&&o(e,30),b&&(e.flags|=128),kt(e,t,p,m?g:[f],n,0,a,i,l);8&k&&o(e,139);return e.destructible=256^(256|e.destructible)|k,128&t?re(e,t,c,u,d,{type:"ParenthesizedExpression",expression:f}):f}(e,t,a,1,0,u,d,p);case 86021:case 86022:case 86023:return function(e,t,n,o,r){const s=T[255&e.token],a=86023===e.token?null:"true"===s;return F(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:a,raw:s}:{type:"Literal",value:a})}(e,t,u,d,p);case 86113:return function(e,t){const{tokenPos:n,linePos:o,colPos:r}=e;return F(e,t),e.assignable=2,re(e,t,n,o,r,{type:"ThisExpression"})}(e,t);case 65540:return function(e,t,n,o,r){const{tokenRaw:s,tokenRegExp:a,tokenValue:i}=e;return F(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:i,regex:a,raw:s}:{type:"Literal",value:i,regex:a})}(e,t,u,d,p);case 133:case 86096:return function(e,t,n,r,s,a){let i=null,l=null;const c=xt(e,t=16777216^(16778240|t));c.length&&(r=e.tokenPos,s=e.linePos,a=e.colPos);F(e,t),4096&e.token&&20567!==e.token&&(ne(e,t,e.token)&&o(e,114),537079808==(537079808&e.token)&&o(e,115),i=nt(e,t,0));let u=t;W(e,32768|t,20567)?(l=Me(e,t,0,n,0,e.tokenPos,e.linePos,e.colPos),u|=524288):u=524288^(524288|u);const d=wt(e,u,t,void 0,2,0,n);return e.assignable=2,re(e,t,r,s,a,1&t?{type:"ClassExpression",id:i,superClass:l,decorators:c,body:d}:{type:"ClassExpression",id:i,superClass:l,body:d})}(e,t,l,u,d,p);case 86111:return function(e,t,n,r,s){switch(F(e,t),e.token){case 67108991:o(e,161);case 67174411:(524288&t)<1&&o(e,26),16384&t&&o(e,143),e.assignable=2;break;case 69271571:case 67108877:(262144&t)<1&&o(e,27),16384&t&&o(e,143),e.assignable=1;break;default:o(e,28,"super")}return re(e,t,n,r,s,{type:"Super"})}(e,t,u,d,p);case 67174409:return We(e,t,u,d,p);case 67174408:return Ke(e,t);case 86109:return function(e,t,n,r,s,a){const i=nt(e,32768|t,0),{tokenPos:l,linePos:c,colPos:u}=e;if(W(e,t,67108877)){if(67108864&t&&143494===e.token)return e.assignable=2,function(e,t,n,o,r,s){const a=nt(e,t,0);return re(e,t,o,r,s,{type:"MetaProperty",meta:n,property:a})}(e,t,i,r,s,a);o(e,91)}e.assignable=2,16842752==(16842752&e.token)&&o(e,62,T[255&e.token]);const d=_e(e,t,2,1,0,0,n,1,l,c,u);t=134217728^(134217728|t),67108991===e.token&&o(e,162);const p=bt(e,t,d,n,l,c,u);return e.assignable=2,re(e,t,r,s,a,{type:"NewExpression",callee:p,arguments:67174411===e.token?tt(e,t,n):[]})}(e,t,l,u,d,p);case 134283389:return Ze(e,t,u,d,p);case 131:return Ct(e,t,u,d,p);case 86108:return function(e,t,n,r,s,a,i){let l=nt(e,t,0);if(67108877===e.token)return $e(e,t,l,s,a,i);n&&o(e,137);return l=Ye(e,t,r,s,a,i),e.assignable=2,ze(e,t,l,r,0,s,a,i)}(e,t,r,l,u,d,p);case 8456258:if(16&t)return Dt(e,t,1,u,d,p);default:if(ke(t,e.token))return pt(e,t,u,d,p);o(e,28,T[255&e.token])}}function $e(e,t,n,r,s,a){return 0==(2048&t)&&o(e,163),F(e,t),143495!==e.token&&"meta"!==e.tokenValue&&o(e,28,T[255&e.token]),e.assignable=2,re(e,t,r,s,a,{type:"MetaProperty",meta:n,property:nt(e,t,0)})}function Ye(e,t,n,r,s,a){K(e,32768|t,67174411),14===e.token&&o(e,138);const i=Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos);return K(e,t,16),re(e,t,r,s,a,{type:"ImportExpression",source:i})}function Ze(e,t,n,o,r){const{tokenRaw:s,tokenValue:a}=e;return F(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:a,bigint:s.slice(0,-1),raw:s}:{type:"Literal",value:a,bigint:s.slice(0,-1)})}function We(e,t,n,o,r){e.assignable=2;const{tokenValue:s,tokenRaw:a,tokenPos:i,linePos:l,colPos:c}=e;K(e,t,67174409);return re(e,t,n,o,r,{type:"TemplateLiteral",expressions:[],quasis:[Qe(e,t,s,a,i,l,c,!0)]})}function Ke(e,t){t=134217728^(134217728|t);const{tokenValue:n,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;K(e,32768|t,67174408);const l=[Qe(e,t,n,r,s,a,i,!1)],c=[Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos)];for(1074790415!==e.token&&o(e,80);67174409!==(e.token=D(e,t));){const{tokenValue:n,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;K(e,32768|t,67174408),l.push(Qe(e,t,n,r,s,a,i,!1)),c.push(Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos)),1074790415!==e.token&&o(e,80)}{const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;K(e,t,67174409),l.push(Qe(e,t,n,o,r,s,a,!0))}return re(e,t,s,a,i,{type:"TemplateLiteral",expressions:c,quasis:l})}function Qe(e,t,n,o,r,s,a,i){const l=re(e,t,r,s,a,{type:"TemplateElement",value:{cooked:n,raw:o},tail:i}),c=i?1:2;return 2&t&&(l.start+=1,l.range[0]+=1,l.end-=c,l.range[1]-=c),4&t&&(l.loc.start.column+=1,l.loc.end.column-=c),l}function et(e,t,n,o,r){K(e,32768|(t=134217728^(134217728|t)),14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=1,re(e,t,n,o,r,{type:"SpreadElement",argument:s})}function tt(e,t,n){F(e,32768|t);const o=[];if(16===e.token)return F(e,t),o;for(;16!==e.token&&(14===e.token?o.push(et(e,t,e.tokenPos,e.linePos,e.colPos)):o.push(Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos)),18===e.token)&&(F(e,32768|t),16!==e.token););return K(e,t,16),o}function nt(e,t,n){const{tokenValue:o,tokenPos:r,linePos:s,colPos:a}=e;return F(e,t),re(e,t,r,s,a,268435456&t?{type:"Identifier",name:o,pattern:1===n}:{type:"Identifier",name:o})}function ot(e,t){const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;return 134283389===e.token?Ze(e,t,r,s,a):(F(e,t),e.assignable=2,re(e,t,r,s,a,512&t?{type:"Literal",value:n,raw:o}:{type:"Literal",value:n}))}function rt(e,t,n,r,s,a,i,l,c,u){F(e,32768|t);const d=s?Z(e,t,8457014):0;let p,f=null,k=n?{parent:void 0,type:2}:void 0;if(67174411===e.token)(1&a)<1&&o(e,37,"Function");else{const s=4&r&&((8192&t)<1||(2048&t)<1)?4:64;te(e,t|(3072&t)<<11,e.token),n&&(4&s?de(e,t,n,e.tokenValue,s):ue(e,t,n,e.tokenValue,s,r),k=le(k,256),a&&2&a&&pe(e,e.tokenValue)),p=e.token,143360&e.token?f=nt(e,t,0):o(e,28,T[255&e.token])}t=32243712^(32243712|t)|67108864|2*i+d<<21|(d?0:1073741824),n&&(k=le(k,512));return re(e,t,l,c,u,{type:"FunctionDeclaration",id:f,params:mt(e,8388608|t,k,0,1),body:Je(e,143360^(143360|t),n?le(k,128):k,8,p,n?k.scopeError:void 0),async:1===i,generator:1===d})}function st(e,t,n,o,r,s,a){F(e,32768|t);const i=Z(e,t,8457014),l=2*n+i<<21;let c,u=null,d=64&t?{parent:void 0,type:2}:void 0;(176128&e.token)>0&&(te(e,32243712^(32243712|t)|l,e.token),d&&(d=le(d,256)),c=e.token,u=nt(e,t,0)),t=32243712^(32243712|t)|67108864|l|(i?0:1073741824),d&&(d=le(d,512));const p=mt(e,8388608|t,d,o,1),f=Je(e,-134377473&t,d?le(d,128):d,0,c,void 0);return e.assignable=2,re(e,t,r,s,a,{type:"FunctionExpression",id:u,params:p,body:f,async:1===n,generator:1===i})}function at(e,t,n,r,s,a,i,l,c,u,d){F(e,32768|t);const p=[];let f=0;for(t=134217728^(134217728|t);20!==e.token;)if(W(e,32768|t,18))p.push(null);else{let r;const{token:c,tokenPos:u,linePos:d,colPos:k,tokenValue:g}=e;if(143360&c)if(r=_e(e,t,i,0,1,0,s,1,u,d,k),1077936157===e.token){2&e.assignable&&o(e,24),F(e,32768|t),n&&ce(e,t,n,g,i,l);const c=Ue(e,t,1,1,s,e.tokenPos,e.linePos,e.colPos);r=re(e,t,u,d,k,a?{type:"AssignmentPattern",left:r,right:c}:{type:"AssignmentExpression",operator:"=",left:r,right:c}),f|=256&e.destructible?256:0|128&e.destructible?128:0}else 18===e.token||20===e.token?(2&e.assignable?f|=16:n&&ce(e,t,n,g,i,l),f|=256&e.destructible?256:0|128&e.destructible?128:0):(f|=1&i?32:(2&i)<1?16:0,r=ze(e,t,r,s,0,u,d,k),18!==e.token&&20!==e.token?(1077936157!==e.token&&(f|=16),r=Ge(e,t,s,a,u,d,k,r)):1077936157!==e.token&&(f|=2&e.assignable?16:32));else 2097152&c?(r=2162700===e.token?ut(e,t,n,0,s,a,i,l,u,d,k):at(e,t,n,0,s,a,i,l,u,d,k),f|=e.destructible,e.assignable=16&e.destructible?2:1,18===e.token||20===e.token?2&e.assignable&&(f|=16):8&e.destructible?o(e,68):(r=ze(e,t,r,s,0,u,d,k),f=2&e.assignable?16:0,18!==e.token&&20!==e.token?r=Ge(e,t,s,a,u,d,k,r):1077936157!==e.token&&(f|=2&e.assignable?16:32))):14===c?(r=lt(e,t,n,20,i,l,0,s,a,u,d,k),f|=e.destructible,18!==e.token&&20!==e.token&&o(e,28,T[255&e.token])):(r=Me(e,t,1,0,1,u,d,k),18!==e.token&&20!==e.token?(r=Ge(e,t,s,a,u,d,k,r),(3&i)<1&&67174411===c&&(f|=16)):2&e.assignable?f|=16:67174411===c&&(f|=1&e.assignable&&3&i?32:16));if(p.push(r),!W(e,32768|t,18))break;if(20===e.token)break}K(e,t,20);const k=re(e,t,c,u,d,{type:a?"ArrayPattern":"ArrayExpression",elements:p});return!r&&4194304&e.token?it(e,t,f,s,a,c,u,d,k):(e.destructible=f,k)}function it(e,t,n,r,s,a,i,l,c){1077936157!==e.token&&o(e,24),F(e,32768|t),16&n&&o(e,24),s||Q(e,c);const{tokenPos:u,linePos:d,colPos:p}=e,f=Ue(e,t,1,1,r,u,d,p);return e.destructible=72^(72|n)|(128&e.destructible?128:0)|(256&e.destructible?256:0),re(e,t,a,i,l,s?{type:"AssignmentPattern",left:c,right:f}:{type:"AssignmentExpression",left:c,operator:"=",right:f})}function lt(e,t,n,r,s,a,i,l,c,u,d,p){F(e,32768|t);let f=null,k=0,{token:g,tokenValue:m,tokenPos:b,linePos:h,colPos:P}=e;if(143360&g)e.assignable=1,f=_e(e,t,s,0,1,0,l,1,b,h,P),g=e.token,f=ze(e,t,f,l,0,b,h,P),18!==e.token&&e.token!==r&&(2&e.assignable&&1077936157===e.token&&o(e,68),k|=16,f=Ge(e,t,l,c,b,h,P,f)),2&e.assignable?k|=16:g===r||18===g?n&&ce(e,t,n,m,s,a):k|=32,k|=128&e.destructible?128:0;else if(g===r)o(e,39);else{if(!(2097152&g)){k|=32,f=Me(e,t,1,l,1,e.tokenPos,e.linePos,e.colPos);const{token:n,tokenPos:s,linePos:a,colPos:i}=e;return 1077936157===n&&n!==r&&18!==n?(2&e.assignable&&o(e,24),f=Ge(e,t,l,c,s,a,i,f),k|=16):(18===n?k|=16:n!==r&&(f=Ge(e,t,l,c,s,a,i,f)),k|=1&e.assignable?32:16),e.destructible=k,e.token!==r&&18!==e.token&&o(e,155),re(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}f=2162700===e.token?ut(e,t,n,1,l,c,s,a,b,h,P):at(e,t,n,1,l,c,s,a,b,h,P),g=e.token,1077936157!==g&&g!==r&&18!==g?(8&e.destructible&&o(e,68),f=ze(e,t,f,l,0,b,h,P),k|=2&e.assignable?16:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),f=Ge(e,t,l,c,b,h,P,f)):(8454144==(8454144&e.token)&&(f=He(e,t,1,b,h,P,4,g,f)),W(e,32768|t,22)&&(f=je(e,t,f,b,h,P)),k|=2&e.assignable?16:32)):k|=1074790415===r&&1077936157!==g?16:e.destructible}if(e.token!==r)if(1&s&&(k|=i?16:32),W(e,32768|t,1077936157)){16&k&&o(e,24),Q(e,f);const n=Ue(e,t,1,1,l,e.tokenPos,e.linePos,e.colPos);f=re(e,t,b,h,P,c?{type:"AssignmentPattern",left:f,right:n}:{type:"AssignmentExpression",left:f,operator:"=",right:n}),k=16}else k|=16;return e.destructible=k,re(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}function ct(e,t,n,s,a,i,l){const c=(64&n)<1?31981568:14680064;let u=64&(t=(t|c)^c|(88&n)<<18|100925440)?le({parent:void 0,type:2},512):void 0;const d=function(e,t,n,s,a,i){K(e,t,67174411);const l=[];if(e.flags=128^(128|e.flags),16===e.token)return 512&s&&o(e,35,"Setter","one",""),F(e,t),l;256&s&&o(e,35,"Getter","no","s");512&s&&14===e.token&&o(e,36);t=134217728^(134217728|t);let c=0,u=0;for(;18!==e.token;){let r=null;const{tokenPos:d,linePos:p,colPos:f}=e;if(143360&e.token?((1024&t)<1&&(36864==(36864&e.token)&&(e.flags|=256),537079808==(537079808&e.token)&&(e.flags|=512)),r=St(e,t,n,1|s,0,d,p,f)):(2162700===e.token?r=ut(e,t,n,1,i,1,a,0,d,p,f):69271571===e.token?r=at(e,t,n,1,i,1,a,0,d,p,f):14===e.token&&(r=lt(e,t,n,16,a,0,0,i,1,d,p,f)),u=1,48&e.destructible&&o(e,47)),1077936157===e.token){F(e,32768|t),u=1;r=re(e,t,d,p,f,{type:"AssignmentPattern",left:r,right:Ue(e,t,1,1,0,e.tokenPos,e.linePos,e.colPos)})}if(c++,l.push(r),!W(e,t,18))break;if(16===e.token)break}512&s&&1!==c&&o(e,35,"Setter","one","");n&&void 0!==n.scopeError&&r(n.scopeError);u&&(e.flags|=128);return K(e,t,16),l}(e,8388608|t,u,n,1,s);u&&(u=le(u,128));return re(e,t,a,i,l,{type:"FunctionExpression",params:d,body:Je(e,-134230017&t,u,0,void 0,void 0),async:(16&n)>0,generator:(8&n)>0,id:null})}function ut(e,t,n,r,a,i,l,c,u,d,p){F(e,t);const f=[];let k=0,g=0;for(t=134217728^(134217728|t);1074790415!==e.token;){const{token:r,tokenValue:u,linePos:d,colPos:p,tokenPos:m}=e;if(14===r)f.push(lt(e,t,n,1074790415,l,c,0,a,i,m,d,p));else{let b,h=0,P=null;const y=e.token;if(143360&e.token||121===e.token)if(P=nt(e,t,0),18===e.token||1074790415===e.token||1077936157===e.token)if(h|=4,1024&t&&537079808==(537079808&r)?k|=16:ee(e,t,l,r,0),n&&ce(e,t,n,u,l,c),W(e,32768|t,1077936157)){k|=8;const n=Ue(e,t,1,1,a,e.tokenPos,e.linePos,e.colPos);k|=256&e.destructible?256:0|128&e.destructible?128:0,b=re(e,t,m,d,p,{type:"AssignmentPattern",left:-2147483648&t?Object.assign({},P):P,right:n})}else k|=(209008===r?128:0)|(121===r?16:0),b=-2147483648&t?Object.assign({},P):P;else if(W(e,32768|t,21)){const{tokenPos:s,linePos:d,colPos:p}=e;if("__proto__"===u&&g++,143360&e.token){const o=e.token,r=e.tokenValue;k|=121===y?16:0,b=_e(e,t,l,0,1,0,a,1,s,d,p);const{token:u}=e;b=ze(e,t,b,a,0,s,d,p),18===e.token||1074790415===e.token?1077936157===u||1074790415===u||18===u?(k|=128&e.destructible?128:0,2&e.assignable?k|=16:n&&143360==(143360&o)&&ce(e,t,n,r,l,c)):k|=1&e.assignable?32:16:4194304==(4194304&e.token)?(2&e.assignable?k|=16:1077936157!==u?k|=32:n&&ce(e,t,n,r,l,c),b=Ge(e,t,a,i,s,d,p,b)):(k|=16,8454144==(8454144&e.token)&&(b=He(e,t,1,s,d,p,4,u,b)),W(e,32768|t,22)&&(b=je(e,t,b,s,d,p)))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,s,d,p):ut(e,t,n,0,a,i,l,c,s,d,p),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&e.destructible?o(e,68):(b=ze(e,t,b,a,0,s,d,p),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=Fe(e,t,a,i,s,d,p,b):(8454144==(8454144&e.token)&&(b=He(e,t,1,s,d,p,4,r,b)),W(e,32768|t,22)&&(b=je(e,t,b,s,d,p)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,a,1,s,d,p),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,s,d,p),k=2&e.assignable?16:0,18!==e.token&&1074790415!==r&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,s,d,p,b))))}else 69271571===e.token?(k|=16,209007===r&&(h|=16),h|=2|(12402===r?256:12403===r?512:1),P=dt(e,t,a),k|=e.assignable,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):143360&e.token?(k|=16,121===r&&o(e,92),209007===r&&(1&e.flags&&o(e,128),h|=16),P=nt(e,t,0),h|=12402===r?256:12403===r?512:1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):67174411===e.token?(k|=16,h|=1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):8457014===e.token?(k|=16,12402===r||12403===r?o(e,40):143483===r&&o(e,92),F(e,t),h|=9|(209007===r?16:0),143360&e.token?P=nt(e,t,0):134217728==(134217728&e.token)?P=ot(e,t):69271571===e.token?(h|=2,P=dt(e,t,a),k|=e.assignable):o(e,28,T[255&e.token]),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):134217728==(134217728&e.token)?(209007===r&&(h|=16),h|=12402===r?256:12403===r?512:1,k|=16,P=ot(e,t),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):o(e,129);else if(134217728==(134217728&e.token))if(P=ot(e,t),21===e.token){K(e,32768|t,21);const{tokenPos:o,linePos:s,colPos:d}=e;if("__proto__"===u&&g++,143360&e.token){b=_e(e,t,l,0,1,0,a,1,o,s,d);const{token:r,tokenValue:u}=e;b=ze(e,t,b,a,0,o,s,d),18===e.token||1074790415===e.token?1077936157===r||1074790415===r||18===r?2&e.assignable?k|=16:n&&ce(e,t,n,u,l,c):k|=1&e.assignable?32:16:1077936157===e.token?(2&e.assignable&&(k|=16),b=Ge(e,t,a,i,o,s,d,b)):(k|=16,b=Ge(e,t,a,i,o,s,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,o,s,d):ut(e,t,n,0,a,i,l,c,o,s,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8!=(8&e.destructible)&&(b=ze(e,t,b,a,0,o,s,d),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=Fe(e,t,a,i,o,s,d,b):(8454144==(8454144&e.token)&&(b=He(e,t,1,o,s,d,4,r,b)),W(e,32768|t,22)&&(b=je(e,t,b,o,s,d)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,0,1,o,s,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,o,s,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,o,s,d,b))))}else 67174411===e.token?(h|=1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos),k=16|e.assignable):o(e,130);else if(69271571===e.token)if(P=dt(e,t,a),k|=256&e.destructible?256:0,h|=2,21===e.token){F(e,32768|t);const{tokenPos:s,linePos:u,colPos:d,tokenValue:p,token:f}=e;if(143360&e.token){b=_e(e,t,l,0,1,0,a,1,s,u,d);const{token:o}=e;b=ze(e,t,b,a,0,s,u,d),4194304==(4194304&e.token)?(k|=2&e.assignable?16:1077936157===o?0:32,b=Fe(e,t,a,i,s,u,d,b)):18===e.token||1074790415===e.token?1077936157===o||1074790415===o||18===o?2&e.assignable?k|=16:n&&143360==(143360&f)&&ce(e,t,n,p,l,c):k|=1&e.assignable?32:16:(k|=16,b=Ge(e,t,a,i,s,u,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,s,u,d):ut(e,t,n,0,a,i,l,c,s,u,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&k?o(e,59):(b=ze(e,t,b,a,0,s,u,d),k=2&e.assignable?16|k:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),b=Fe(e,t,a,i,s,u,d,b)):(8454144==(8454144&e.token)&&(b=He(e,t,1,s,u,d,4,r,b)),W(e,32768|t,22)&&(b=je(e,t,b,s,u,d)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,0,1,s,u,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,s,u,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,s,u,d,b))))}else 67174411===e.token?(h|=1,b=ct(e,t,h,a,e.tokenPos,d,p),k=16):o(e,41);else if(8457014===r)if(K(e,32768|t,8457014),h|=8,143360&e.token){const{token:n,line:o,index:r}=e;P=nt(e,t,0),h|=1,67174411===e.token?(k|=16,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):s(r,o,r,209007===n?43:12402===n||12403===e.token?42:44,T[255&n])}else 134217728==(134217728&e.token)?(k|=16,P=ot(e,t),h|=1,b=ct(e,t,h,a,m,d,p)):69271571===e.token?(k|=16,h|=3,P=dt(e,t,a),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):o(e,122);else o(e,28,T[255&r]);k|=128&e.destructible?128:0,e.destructible=k,f.push(re(e,t,m,d,p,{type:"Property",key:P,value:b,kind:768&h?512&h?"set":"get":"init",computed:(2&h)>0,method:(1&h)>0,shorthand:(4&h)>0}))}if(k|=e.destructible,18!==e.token)break;F(e,t)}K(e,t,1074790415),g>1&&(k|=64);const m=re(e,t,u,d,p,{type:i?"ObjectPattern":"ObjectExpression",properties:f});return!r&&4194304&e.token?it(e,t,k,a,i,u,d,p,m):(e.destructible=k,m)}function dt(e,t,n){F(e,32768|t);const o=Ue(e,134217728^(134217728|t),1,0,n,e.tokenPos,e.linePos,e.colPos);return K(e,t,20),o}function pt(e,t,n,o,r){const{tokenValue:s}=e,a=nt(e,t,0);if(e.assignable=1,10===e.token){let i;return 64&t&&(i=ae(e,t,s)),e.flags=128^(128|e.flags),gt(e,t,i,[a],0,n,o,r)}return a}function ft(e,t,n,r,s,a,i,l,c,u){a||o(e,54),s&&o(e,48),e.flags&=-129;return gt(e,t,64&t?ae(e,t,n):void 0,[r],i,l,c,u)}function kt(e,t,n,r,s,a,i,l,c){s||o(e,54);for(let t=0;t0&&"constructor"===e.tokenValue&&o(e,106),1074790415===e.token&&o(e,105),W(e,t,1074790417)?a>0&&o(e,116):d.push(qt(e,t,r,n,s,p,0,i,e.tokenPos,e.linePos,e.colPos))}return K(e,8&a?32768|t:t,1074790415),re(e,t,l,c,u,{type:"ClassBody",body:d})}function qt(e,t,n,r,s,a,i,l,c,u,d){let p=i?32:0,f=null;const{token:k,tokenPos:g,linePos:m,colPos:b}=e;if(176128&k)switch(f=nt(e,t,0),k){case 36972:if(!i&&67174411!==e.token)return qt(e,t,n,r,s,a,1,l,c,u,d);break;case 209007:if(67174411!==e.token&&(1&e.flags)<1){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=16|(Z(e,t,8457014)?8:0)}break;case 12402:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=256}break;case 12403:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=512}}else 69271571===k?(p|=2,f=dt(e,r,l)):134217728==(134217728&k)?f=ot(e,t):8457014===k?(p|=8,F(e,t)):1&t&&131===e.token?(p|=4096,f=Ct(e,t,g,m,b),t|=16384):1&t&&1073741824==(1073741824&e.token)?(p|=128,t|=16384):122===k?(f=nt(e,t,0),67174411!==e.token&&o(e,28,T[255&e.token])):o(e,28,T[255&e.token]);if(792&p&&(143360&e.token?f=nt(e,t,0):134217728==(134217728&e.token)?f=ot(e,t):69271571===e.token?(p|=2,f=dt(e,t,0)):122===e.token?f=nt(e,t,0):1&t&&131===e.token?(p|=4096,f=Ct(e,t,g,m,b)):o(e,131)),(2&p)<1&&("constructor"===e.tokenValue?(1073741824==(1073741824&e.token)?o(e,125):(32&p)<1&&67174411===e.token&&(920&p?o(e,50,"accessor"):(524288&t)<1&&(32&e.flags?o(e,51):e.flags|=32)),p|=64):(4096&p)<1&&824&p&&"prototype"===e.tokenValue&&o(e,49)),1&t&&67174411!==e.token)return Et(e,t,f,p,a,g,m,b);const h=ct(e,t,p,l,e.tokenPos,e.linePos,e.colPos);return re(e,t,c,u,d,1&t?{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,decorators:a,value:h}:{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,value:h})}function Ct(e,t,n,r,s){F(e,t);const{tokenValue:a}=e;return"constructor"===a&&o(e,124),F(e,t),re(e,t,n,r,s,{type:"PrivateIdentifier",name:a})}function Et(e,t,n,r,s,a,i,l){let c=null;if(8&r&&o(e,0),1077936157===e.token){F(e,32768|t);const{tokenPos:n,linePos:r,colPos:s}=e;537079928===e.token&&o(e,115),c=_e(e,16384|t,2,0,1,0,0,1,n,r,s),1073741824!=(1073741824&e.token)&&(c=ze(e,16384|t,c,0,0,n,r,s),c=Ge(e,16384|t,0,0,n,r,s,c),18===e.token&&(c=Be(e,t,0,a,i,l,c)))}return re(e,t,a,i,l,{type:"PropertyDefinition",key:n,value:c,static:(32&r)>0,computed:(2&r)>0,decorators:s})}function At(e,t,n,r,s,a,i,l){if(143360&e.token)return St(e,t,n,r,s,a,i,l);2097152!=(2097152&e.token)&&o(e,28,T[255&e.token]);const c=69271571===e.token?at(e,t,n,1,0,1,r,s,a,i,l):ut(e,t,n,1,0,1,r,s,a,i,l);return 16&e.destructible&&o(e,47),32&e.destructible&&o(e,47),c}function St(e,t,n,r,s,a,i,l){const{tokenValue:c,token:u}=e;return 1024&t&&(537079808==(537079808&u)?o(e,115):36864==(36864&u)&&o(e,114)),20480==(20480&u)&&o(e,99),2099200&t&&241773===u&&o(e,30),241739===u&&24&r&&o(e,97),4196352&t&&209008===u&&o(e,95),F(e,t),n&&ce(e,t,n,c,r,s),re(e,t,a,i,l,{type:"Identifier",name:c})}function Dt(e,t,n,r,s,a){if(F(e,t),8456259===e.token)return re(e,t,r,s,a,{type:"JSXFragment",openingFragment:Lt(e,t,r,s,a),children:Tt(e,t),closingFragment:Vt(e,t,n,e.tokenPos,e.linePos,e.colPos)});let i=null,l=[];const c=function(e,t,n,r,s,a){143360!=(143360&e.token)&&4096!=(4096&e.token)&&o(e,0);const i=Nt(e,t,e.tokenPos,e.linePos,e.colPos),l=function(e,t){const n=[];for(;8457016!==e.token&&8456259!==e.token&&1048576!==e.token;)n.push(Ut(e,t,e.tokenPos,e.linePos,e.colPos));return n}(e,t),c=8457016===e.token;8456259===e.token?X(e,t):(K(e,t,8457016),n?K(e,t,8456259):X(e,t));return re(e,t,r,s,a,{type:"JSXOpeningElement",name:i,attributes:l,selfClosing:c})}(e,t,n,r,s,a);if(!c.selfClosing){l=Tt(e,t),i=function(e,t,n,o,r,s){K(e,t,25);const a=Nt(e,t,e.tokenPos,e.linePos,e.colPos);n?K(e,t,8456259):e.token=X(e,t);return re(e,t,o,r,s,{type:"JSXClosingElement",name:a})}(e,t,n,e.tokenPos,e.linePos,e.colPos);const r=se(i.name);se(c.name)!==r&&o(e,149,r)}return re(e,t,r,s,a,{type:"JSXElement",children:l,openingElement:c,closingElement:i})}function Lt(e,t,n,o,r){return X(e,t),re(e,t,n,o,r,{type:"JSXOpeningFragment"})}function Vt(e,t,n,o,r,s){return K(e,t,25),K(e,t,8456259),re(e,t,o,r,s,{type:"JSXClosingFragment"})}function Tt(e,t){const n=[];for(;25!==e.token;)e.index=e.tokenPos=e.startPos,e.column=e.colPos=e.startColumn,e.line=e.linePos=e.startLine,X(e,t),n.push(Rt(e,t,e.tokenPos,e.linePos,e.colPos));return n}function Rt(e,t,n,r,s){return 138===e.token?function(e,t,n,o,r){X(e,t);const s={type:"JSXText",value:e.tokenValue};512&t&&(s.raw=e.tokenRaw);return re(e,t,n,o,r,s)}(e,t,n,r,s):2162700===e.token?Ot(e,t,0,0,n,r,s):8456258===e.token?Dt(e,t,0,n,r,s):void o(e,0)}function Nt(e,t,n,o,r){_(e);let s=Gt(e,t,n,o,r);if(21===e.token)return Bt(e,t,s,n,o,r);for(;W(e,t,67108877);)_(e),s=It(e,t,s,n,o,r);return s}function It(e,t,n,o,r,s){return re(e,t,o,r,s,{type:"JSXMemberExpression",object:n,property:Gt(e,t,e.tokenPos,e.linePos,e.colPos)})}function Ut(e,t,n,r,s){if(2162700===e.token)return function(e,t,n,o,r){F(e,t),K(e,t,14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return K(e,t,1074790415),re(e,t,n,o,r,{type:"JSXSpreadAttribute",argument:s})}(e,t,n,r,s);_(e);let a=null,i=Gt(e,t,n,r,s);if(21===e.token&&(i=Bt(e,t,i,n,r,s)),1077936157===e.token){const n=z(e,t),{tokenPos:r,linePos:s,colPos:i}=e;switch(n){case 134283267:a=ot(e,t);break;case 8456258:a=Dt(e,t,1,r,s,i);break;case 2162700:a=Ot(e,t,1,1,r,s,i);break;default:o(e,148)}}return re(e,t,n,r,s,{type:"JSXAttribute",value:a,name:i})}function Bt(e,t,n,o,r,s){K(e,t,21);return re(e,t,o,r,s,{type:"JSXNamespacedName",namespace:n,name:Gt(e,t,e.tokenPos,e.linePos,e.colPos)})}function Ot(e,t,n,r,s,a,i){F(e,t);const{tokenPos:l,linePos:c,colPos:u}=e;if(14===e.token)return function(e,t,n,o,r){K(e,t,14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return K(e,t,1074790415),re(e,t,n,o,r,{type:"JSXSpreadChild",expression:s})}(e,t,l,c,u);let d=null;return 1074790415===e.token?(r&&o(e,151),d=function(e,t,n,o,r){return e.startPos=e.tokenPos,e.startLine=e.linePos,e.startColumn=e.colPos,re(e,t,n,o,r,{type:"JSXEmptyExpression"})}(e,t,e.startPos,e.startLine,e.startColumn)):d=Ue(e,t,1,0,0,l,c,u),n?K(e,t,1074790415):X(e,t),re(e,t,s,a,i,{type:"JSXExpressionContainer",expression:d})}function Gt(e,t,n,o,r){const{tokenValue:s}=e;return F(e,t),re(e,t,n,o,r,{type:"JSXIdentifier",name:s})}var Ft=Object.freeze({__proto__:null});return e.ESTree=Ft,e.parse=function(e,t){return me(e,t,0)},e.parseModule=function(e,t){return me(e,t,3072)},e.parseScript=function(e,t){return me(e,t,0)},e.version="4.2.0",Object.defineProperty(e,"__esModule",{value:!0}),e}({}); diff --git a/node_modules/meriyah/dist/meriyah.min.cjs b/node_modules/meriyah/dist/meriyah.min.cjs new file mode 100644 index 0000000..de9bf7a --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.min.cjs @@ -0,0 +1 @@ +"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e={0:"Unexpected token",28:"Unexpected token: '%0'",1:"Octal escape sequences are not allowed in strict mode",2:"Octal escape sequences are not allowed in template strings",3:"Unexpected token `#`",4:"Illegal Unicode escape sequence",5:"Invalid code point %0",6:"Invalid hexadecimal escape sequence",8:"Octal literals are not allowed in strict mode",7:"Decimal integer literals with a leading zero are forbidden in strict mode",9:"Expected number in radix %0",145:"Invalid left-hand side assignment to a destructible right-hand side",10:"Non-number found after exponent indicator",11:"Invalid BigIntLiteral",12:"No identifiers allowed directly after numeric literal",13:"Escapes \\8 or \\9 are not syntactically valid escapes",14:"Unterminated string literal",15:"Unterminated template literal",16:"Multiline comment was not closed properly",17:"The identifier contained dynamic unicode escape that was not closed",18:"Illegal character '%0'",19:"Missing hexadecimal digits",20:"Invalid implicit octal",21:"Invalid line break in string literal",22:"Only unicode escapes are legal in identifier names",23:"Expected '%0'",24:"Invalid left-hand side in assignment",25:"Invalid left-hand side in async arrow",26:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',27:"Member access on super must be in a method",29:"Await expression not allowed in formal parameter",30:"Yield expression not allowed in formal parameter",92:"Unexpected token: 'escaped keyword'",31:"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses",119:"Async functions can only be declared at the top level or inside a block",32:"Unterminated regular expression",33:"Unexpected regular expression flag",34:"Duplicate regular expression flag '%0'",35:"%0 functions must have exactly %1 argument%2",36:"Setter function argument must not be a rest parameter",37:"%0 declaration must have a name in this context",38:"Function name may not contain any reserved words or be eval or arguments in strict mode",39:"The rest operator is missing an argument",40:"A getter cannot be a generator",41:"A computed property name must be followed by a colon or paren",130:"Object literal keys that are strings or numbers must be a method or have a colon",43:"Found `* async x(){}` but this should be `async * x(){}`",42:"Getters and setters can not be generators",44:"'%0' can not be generator method",45:"No line break is allowed after '=>'",46:"The left-hand side of the arrow can only be destructed through assignment",47:"The binding declaration is not destructible",48:"Async arrow can not be followed by new expression",49:"Classes may not have a static property named 'prototype'",50:"Class constructor may not be a %0",51:"Duplicate constructor method in class",52:"Invalid increment/decrement operand",53:"Invalid use of `new` keyword on an increment/decrement expression",54:"`=>` is an invalid assignment target",55:"Rest element may not have a trailing comma",56:"Missing initializer in %0 declaration",57:"'for-%0' loop head declarations can not have an initializer",58:"Invalid left-hand side in for-%0 loop: Must have a single binding",59:"Invalid shorthand property initializer",60:"Property name __proto__ appears more than once in object literal",61:"Let is disallowed as a lexically bound name",62:"Invalid use of '%0' inside new expression",63:"Illegal 'use strict' directive in function with non-simple parameter list",64:'Identifier "let" disallowed as left-hand side expression in strict mode',65:"Illegal continue statement",66:"Illegal break statement",67:"Cannot have `let[...]` as a var name in strict mode",68:"Invalid destructuring assignment target",69:"Rest parameter may not have a default initializer",70:"The rest argument must the be last parameter",71:"Invalid rest argument",73:"In strict mode code, functions can only be declared at top level or inside a block",74:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement",75:"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement",76:"Class declaration can't appear in single-statement context",77:"Invalid left-hand side in for-%0",78:"Invalid assignment in for-%0",79:"for await (... of ...) is only valid in async functions and async generators",80:"The first token after the template expression should be a continuation of the template",82:"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode",81:"`let \n [` is a restricted production at the start of a statement",83:"Catch clause requires exactly one parameter, not more (and no trailing comma)",84:"Catch clause parameter does not support default values",85:"Missing catch or finally after try",86:"More than one default clause in switch statement",87:"Illegal newline after throw",88:"Strict mode code may not include a with statement",89:"Illegal return statement",90:"The left hand side of the for-header binding declaration is not destructible",91:"new.target only allowed within functions",93:"'#' not followed by identifier",99:"Invalid keyword",98:"Can not use 'let' as a class name",97:"'A lexical declaration can't define a 'let' binding",96:"Can not use `let` as variable name in strict mode",94:"'%0' may not be used as an identifier in this context",95:"Await is only valid in async functions",100:"The %0 keyword can only be used with the module goal",101:"Unicode codepoint must not be greater than 0x10FFFF",102:"%0 source must be string",103:"Only a identifier can be used to indicate alias",104:"Only '*' or '{...}' can be imported after default",105:"Trailing decorator may be followed by method",106:"Decorators can't be used with a constructor",108:"HTML comments are only allowed with web compatibility (Annex B)",109:"The identifier 'let' must not be in expression position in strict mode",110:"Cannot assign to `eval` and `arguments` in strict mode",111:"The left-hand side of a for-of loop may not start with 'let'",112:"Block body arrows can not be immediately invoked without a group",113:"Block body arrows can not be immediately accessed without a group",114:"Unexpected strict mode reserved word",115:"Unexpected eval or arguments in strict mode",116:"Decorators must not be followed by a semicolon",117:"Calling delete on expression not allowed in strict mode",118:"Pattern can not have a tail",120:"Can not have a `yield` expression on the left side of a ternary",121:"An arrow function can not have a postfix update operator",122:"Invalid object literal key character after generator star",123:"Private fields can not be deleted",125:"Classes may not have a field called constructor",124:"Classes may not have a private element named constructor",126:"A class field initializer may not contain arguments",127:"Generators can only be declared at the top level or inside a block",128:"Async methods are a restricted production and cannot have a newline following it",129:"Unexpected character after object literal property name",131:"Invalid key token",132:"Label '%0' has already been declared",133:"continue statement must be nested within an iteration statement",134:"Undefined label '%0'",135:"Trailing comma is disallowed inside import(...) arguments",136:"import() requires exactly one argument",137:"Cannot use new with import(...)",138:"... is not allowed in import()",139:"Expected '=>'",140:"Duplicate binding '%0'",141:"Cannot export a duplicate name '%0'",144:"Duplicate %0 for-binding",142:"Exported binding '%0' needs to refer to a top-level declared variable",143:"Unexpected private field",147:"Numeric separators are not allowed at the end of numeric literals",146:"Only one underscore is allowed as numeric separator",148:"JSX value should be either an expression or a quoted JSX text",149:"Expected corresponding JSX closing tag for %0",150:"Adjacent JSX elements must be wrapped in an enclosing tag",151:"JSX attributes must only be assigned a non-empty 'expression'",152:"'%0' has already been declared",153:"'%0' shadowed a catch clause binding",154:"Dot property must be an identifier",155:"Encountered invalid input after spread/rest argument",156:"Catch without try",157:"Finally without try",158:"Expected corresponding closing tag for JSX fragment",159:"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses",160:"Invalid tagged template on optional chain",161:"Invalid optional chain from super property",162:"Invalid optional chain from new expression",163:'Cannot use "import.meta" outside a module',164:"Leading decorators must be attached to a class declaration"};class t extends SyntaxError{constructor(t,n,o,r,...s){const a="["+n+":"+o+"]: "+e[r].replace(/%(\d+)/g,((e,t)=>s[t]));super(`${a}`),this.index=t,this.line=n,this.column=o,this.description=a,this.loc={line:n,column:o}}}function n(e,n,...o){throw new t(e.index,e.line,e.column,n,...o)}function o(e){throw new t(e.index,e.line,e.column,e.type,e.params)}function r(e,n,o,r,...s){throw new t(e,n,o,r,...s)}function s(e,n,o,r){throw new t(e,n,o,r)}const a=((e,t)=>{const n=new Uint32Array(104448);let o=0,r=0;for(;o<3540;){const s=e[o++];if(s<0)r-=s;else{let a=e[o++];2&s&&(a=t[a]),1&s?n.fill(a,r,r+=e[o++]):n[r++]=a}}return n})([-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828e3,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902e3,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532]);function i(e){return e.column++,e.currentChar=e.source.charCodeAt(++e.index)}function l(e,t){if(55296!=(64512&t))return 0;const o=e.source.charCodeAt(e.index+1);return 56320!=(64512&o)?0:(t=e.currentChar=65536+((1023&t)<<10)+(1023&o),0==(1&a[0+(t>>>5)]>>>t)&&n(e,18,d(t)),e.index++,e.column++,1)}function c(e,t){e.currentChar=e.source.charCodeAt(++e.index),e.flags|=1,0==(4&t)&&(e.column=0,e.line++)}function u(e){e.flags|=1,e.currentChar=e.source.charCodeAt(++e.index),e.column=0,e.line++}function d(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(e>>>10)+String.fromCharCode(1023&e)}function p(e){return e<65?e-48:e-65+10&15}const f=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],k=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],g=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function m(e){return e<=127?k[e]:1&a[34816+(e>>>5)]>>>e}function b(e){return e<=127?g[e]:1&a[0+(e>>>5)]>>>e||8204===e||8205===e}const h=["SingleLine","MultiLine","HTMLOpen","HTMLClose","HashbangComment"];function P(e,t,o,r,s,a,i,l){return 2048&r&&n(e,0),y(e,t,o,s,a,i,l)}function y(e,t,n,o,r,s,a){const{index:l}=e;for(e.tokenPos=e.index,e.linePos=e.line,e.colPos=e.column;e.index=e.source.length)return n(e,32)}const s=e.index-1;let a=0,l=e.currentChar;const{index:c}=e;for(;b(l);){switch(l){case 103:2&a&&n(e,34,"g"),a|=2;break;case 105:1&a&&n(e,34,"i"),a|=1;break;case 109:4&a&&n(e,34,"m"),a|=4;break;case 117:16&a&&n(e,34,"g"),a|=16;break;case 121:8&a&&n(e,34,"y"),a|=8;break;case 115:12&a&&n(e,34,"s"),a|=12;break;default:n(e,33)}l=i(e)}const u=e.source.slice(c,e.index),d=e.source.slice(o,s);return e.tokenRegExp={pattern:d,flags:u},512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),e.tokenValue=function(e,t,o){try{return new RegExp(t,o)}catch(t){n(e,32)}}(e,d,u),65540}function w(e,t,o){const{index:r}=e;let s="",a=i(e),l=e.index;for(;0==(8&f[a]);){if(a===o)return s+=e.source.slice(l,e.index),i(e),512&t&&(e.tokenRaw=e.source.slice(r,e.index)),e.tokenValue=s,134283267;if(8==(8&a)&&92===a){if(s+=e.source.slice(l,e.index),a=i(e),a<127||8232===a||8233===a){const n=q(e,t,a);n>=0?s+=d(n):C(e,n,0)}else s+=d(a);l=e.index+1}e.index>=e.end&&n(e,14),a=i(e)}n(e,14)}function q(e,t,n){switch(n){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(e.index1114111)return-5;return e.currentChar<1||125!==e.currentChar?-4:t}{if(0==(64&f[t]))return-4;const n=e.source.charCodeAt(e.index+1);if(0==(64&f[n]))return-4;const o=e.source.charCodeAt(e.index+2);if(0==(64&f[o]))return-4;const r=e.source.charCodeAt(e.index+3);return 0==(64&f[r])?-4:(e.index+=3,e.column+=3,e.currentChar=e.source.charCodeAt(e.index),p(t)<<12|p(n)<<8|p(o)<<4|p(r))}}case 56:case 57:if(0==(256&t))return-3;default:return n}}function C(e,t,o){switch(t){case-1:return;case-2:n(e,o?2:1);case-3:n(e,13);case-4:n(e,6);case-5:n(e,101)}}function E(e,t){const{index:o}=e;let r=67174409,s="",a=i(e);for(;96!==a;){if(36===a&&123===e.source.charCodeAt(e.index+1)){i(e),r=67174408;break}if(8==(8&a)&&92===a)if(a=i(e),a>126)s+=d(a);else{const n=q(e,1024|t,a);if(n>=0)s+=d(n);else{if(-1!==n&&65536&t){s=void 0,a=A(e,a),a<0&&(r=67174408);break}C(e,n,1)}}else e.index=e.end&&n(e,15),a=i(e)}return i(e),e.tokenValue=s,e.tokenRaw=e.source.slice(o+1,e.index-(67174409===r?1:2)),r}function A(e,t){for(;96!==t;){switch(t){case 36:{const n=e.index+1;if(n=e.end&&n(e,15),t=i(e)}return t}function S(e,t){return e.index>=e.end&&n(e,0),e.index--,e.column--,E(e,t)}function D(e,t,o){let r=e.currentChar,a=0,l=9,c=64&o?0:1,u=0,d=0;if(64&o)a="."+L(e,r),r=e.currentChar,110===r&&n(e,11);else{if(48===r)if(r=i(e),120==(32|r)){for(o=136,r=i(e);4160&f[r];)95!==r?(d=1,a=16*a+p(r),u++,r=i(e)):(d||n(e,146),d=0,r=i(e));(u<1||!d)&&n(e,u<1?19:147)}else if(111==(32|r)){for(o=132,r=i(e);4128&f[r];)95!==r?(d=1,a=8*a+(r-48),u++,r=i(e)):(d||n(e,146),d=0,r=i(e));(u<1||!d)&&n(e,u<1?0:147)}else if(98==(32|r)){for(o=130,r=i(e);4224&f[r];)95!==r?(d=1,a=2*a+(r-48),u++,r=i(e)):(d||n(e,146),d=0,r=i(e));(u<1||!d)&&n(e,u<1?0:147)}else if(32&f[r])for(1024&t&&n(e,1),o=1;16&f[r];){if(512&f[r]){o=32,c=0;break}a=8*a+(r-48),r=i(e)}else 512&f[r]?(1024&t&&n(e,1),e.flags|=64,o=32):95===r&&n(e,0);if(48&o){if(c){for(;l>=0&&4112&f[r];)95!==r?(d=0,a=10*a+(r-48),r=i(e),--l):(r=i(e),(95===r||32&o)&&s(e.index,e.line,e.index+1,146),d=1);if(d&&s(e.index,e.line,e.index+1,147),l>=0&&!m(r)&&46!==r)return e.tokenValue=a,512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),134283266}a+=L(e,r),r=e.currentChar,46===r&&(95===i(e)&&n(e,0),o=64,a+="."+L(e,e.currentChar),r=e.currentChar)}}const k=e.index;let g=0;if(110===r&&128&o)g=1,r=i(e);else if(101==(32|r)){r=i(e),256&f[r]&&(r=i(e));const{index:t}=e;(16&f[r])<1&&n(e,10),a+=e.source.substring(k,t)+L(e,r),r=e.currentChar}return(e.index","(","{",".","...","}",")",";",",","[","]",":","?","'",'"',"","++","--","=","<<=",">>=",">>>=","**=","+=","-=","*=","/=","%=","^=","|=","&=","||=","&&=","??=","typeof","delete","void","!","~","+","-","in","instanceof","*","%","/","**","&&","||","===","!==","==","!=","<=",">=","<",">","<<",">>",">>>","&","|","^","var","let","const","break","case","catch","class","continue","debugger","default","do","else","export","extends","finally","for","function","if","import","new","return","super","switch","this","throw","try","while","with","implements","interface","package","private","protected","public","static","yield","as","async","await","constructor","get","set","from","of","enum","eval","arguments","escaped keyword","escaped future reserved keyword","reserved if strict","#","BigIntLiteral","??","?.","WhiteSpace","Illegal","LineTerminator","PrivateField","Template","@","target","meta","LineFeed","Escaped","JSXText"],T=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function R(e,t,n){for(;g[i(e)];);return e.tokenValue=e.source.slice(e.tokenPos,e.index),92!==e.currentChar&&e.currentChar<126?T[e.tokenValue]||208897:I(e,t,0,n)}function N(e,t){const o=B(e);return b(o)||n(e,4),e.tokenValue=d(o),I(e,t,1,4&f[o])}function I(e,t,o,r){let s=e.index;for(;e.index=2&&a<=11){const n=T[e.tokenValue];return void 0===n?208897:o?1024&t?209008===n&&0==(4196352&t)?n:36972===n||36864==(36864&n)?122:121:1073741824&t&&0==(8192&t)&&20480==(20480&n)?n:241773===n?1073741824&t?143483:2097152&t?121:n:209007===n&&1073741824&t?143483:36864==(36864&n)||209008===n&&0==(4194304&t)?n:121:n}return 208897}function U(e){return m(i(e))||n(e,93),131}function B(e){return 117!==e.source.charCodeAt(e.index+1)&&n(e,4),e.currentChar=e.source.charCodeAt(e.index+=2),function(e){let t=0;const o=e.currentChar;if(123===o){const n=e.index-2;for(;64&f[i(e)];)t=t<<4|p(e.currentChar),t>1114111&&s(n,e.line,e.index+1,101);return 125!==e.currentChar&&s(n,e.line,e.index-1,6),i(e),t}0==(64&f[o])&&n(e,6);const r=e.source.charCodeAt(e.index+1);0==(64&f[r])&&n(e,6);const a=e.source.charCodeAt(e.index+2);0==(64&f[a])&&n(e,6);const l=e.source.charCodeAt(e.index+3);0==(64&f[l])&&n(e,6);return t=p(o)<<12|p(r)<<8|p(a)<<4|p(l),e.currentChar=e.source.charCodeAt(e.index+=4),t}(e)}const O=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function G(e,t){if(e.flags=1^(1|e.flags),e.startPos=e.index,e.startColumn=e.column,e.startLine=e.line,e.token=F(e,t,0),e.onToken&&1048576!==e.token){const t={start:{line:e.linePos,column:e.colPos},end:{line:e.line,column:e.column}};e.onToken(function(e){switch(e){case 134283266:return"NumericLiteral";case 134283267:return"StringLiteral";case 86021:case 86022:return"BooleanLiteral";case 86023:return"NullLiteral";case 65540:return"RegularExpression";case 67174408:case 67174409:case 132:return"TemplateLiteral";default:return 143360==(143360&e)?"Identifier":4096==(4096&e)?"Keyword":"Punctuator"}}(e.token),e.tokenPos,e.index,t)}}function F(e,t,o){const r=0===e.index,s=e.source;let l=e.index,p=e.line,f=e.column;for(;e.index=e.end)return 8457014;const t=e.currentChar;return 61===t?(i(e),4194340):42!==t?8457014:61!==i(e)?8457273:(i(e),4194337)}case 8455497:return 61!==i(e)?8455497:(i(e),4194343);case 25233970:{i(e);const t=e.currentChar;return 43===t?(i(e),33619995):61===t?(i(e),4194338):25233970}case 25233971:{i(e);const a=e.currentChar;if(45===a){if(i(e),(1&o||r)&&62===e.currentChar){0==(256&t)&&n(e,108),i(e),o=P(e,s,o,t,3,l,p,f),l=e.tokenPos,p=e.linePos,f=e.colPos;continue}return 33619996}return 61===a?(i(e),4194339):25233971}case 8457016:if(i(e),e.index=48&&k<=57)return D(e,t,80);if(46===k){const t=e.index+1;if(t=48&&t<=57)))return i(e),67108991}return 22}}}else{if((8232^g)<=1){o=-5&o|1,u(e);continue}if(55296==(64512&g)||0!=(1&a[34816+(g>>>5)]>>>g))return 56320==(64512&g)&&(g=(1023&g)<<10|1023&g|65536,0==(1&a[0+(g>>>5)]>>>g)&&n(e,18,d(g)),e.index++,e.currentChar=g),e.column++,e.tokenValue="",I(e,t,0,0);if(160===(k=g)||65279===k||133===k||5760===k||k>=8192&&k<=8203||8239===k||8287===k||12288===k||8201===k||65519===k){i(e);continue}n(e,18,d(g))}}var k;return 1048576}const j={AElig:"Æ",AMP:"&",Aacute:"Á",Abreve:"Ă",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atilde:"Ã",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ETH:"Ð",Eacute:"É",Ecaron:"Ě",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"Í",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"â",acute:"´",acy:"а",aelig:"æ",af:"⁡",afr:"𝔞",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"ð",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"í",ic:"⁣",icirc:"î",icy:"и",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"ó",oast:"⊛",ocir:"⊚",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"ø",osol:"⊘",otilde:"õ",otimes:"⊗",otimesas:"⨶",ouml:"ö",ovbar:"⌽",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"þ",tilde:"˜",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"},H={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function J(e){return e.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g,(e=>{if("#"===e.charAt(1)){const t=e.charAt(2);return function(e){if(e>=55296&&e<=57343||e>1114111)return"�";e in H&&(e=H[e]);return String.fromCodePoint(e)}("X"===t||"x"===t?parseInt(e.slice(3),16):parseInt(e.slice(2),10))}return j[e.slice(1,-1)]||e}))}function M(e,t){return e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.token=8192&f[e.currentChar]?function(e,t){const o=e.currentChar;let r=i(e);const s=e.index;for(;r!==o;)e.index>=e.end&&n(e,14),r=i(e);r!==o&&n(e,14);e.tokenValue=e.source.slice(s,e.index),i(e),512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index));return 134283267}(e,t):F(e,t,0),e.token}function z(e,t){if(e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.index>=e.end)return e.token=1048576;switch(O[e.source.charCodeAt(e.index)]){case 8456258:i(e),47===e.currentChar?(i(e),e.token=25):e.token=8456258;break;case 2162700:i(e),e.token=2162700;break;default:{let n=0;for(;e.index0&&Z(e,t,209008);W(e,32768|t,67174411),o&&(o=ie(o,1));let c,u=null,d=null,p=0,f=null,k=86090===e.token||241739===e.token||86092===e.token;const{token:g,tokenPos:m,linePos:b,colPos:h}=e;k?241739===g?(f=tt(e,t,0),2240512&e.token?(8738868===e.token?1024&t&&n(e,64):f=oe(e,t,m,b,h,{type:"VariableDeclaration",kind:"let",declarations:Se(e,134217728|t,o,8,32)}),e.assignable=1):1024&t?n(e,64):(k=!1,e.assignable=1,f=Me(e,t,f,0,0,m,b,h),274549===e.token&&n(e,111))):(G(e,t),f=oe(e,t,m,b,h,86090===g?{type:"VariableDeclaration",kind:"var",declarations:Se(e,134217728|t,o,4,32)}:{type:"VariableDeclaration",kind:"const",declarations:Se(e,134217728|t,o,16,32)}),e.assignable=1):1074790417===g?l&&n(e,79):2097152==(2097152&g)?(f=2162700===g?ct(e,t,void 0,1,0,0,2,32,m,b,h):st(e,t,void 0,1,0,0,2,32,m,b,h),p=e.destructible,256&t&&64&p&&n(e,60),e.assignable=16&p?2:1,f=Me(e,134217728|t,f,0,0,e.tokenPos,e.linePos,e.colPos)):f=Je(e,134217728|t,1,0,1,m,b,h);if(262144==(262144&e.token)){if(274549===e.token){2&e.assignable&&n(e,77,l?"await":"of"),K(e,f),G(e,32768|t),c=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),W(e,32768|t,16);return oe(e,t,s,a,i,{type:"ForOfStatement",left:f,right:c,body:Ce(e,t,o,r),await:l})}2&e.assignable&&n(e,77,"in"),K(e,f),G(e,32768|t),l&&n(e,79),c=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos),W(e,32768|t,16);return oe(e,t,s,a,i,{type:"ForInStatement",body:Ce(e,t,o,r),left:f,right:c})}l&&n(e,79);k||(8&p&&1077936157!==e.token&&n(e,77,"loop"),f=Oe(e,134217728|t,0,0,m,b,h,f));18===e.token&&(f=Ue(e,t,0,e.tokenPos,e.linePos,e.colPos,f));W(e,32768|t,1074790417),1074790417!==e.token&&(u=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos));W(e,32768|t,1074790417),16!==e.token&&(d=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos));W(e,32768|t,16);const P=Ce(e,t,o,r);return oe(e,t,s,a,i,{type:"ForStatement",init:f,test:u,update:d,body:P})}(e,t,o,s,i,l,c);case 20564:return function(e,t,n,o,r,s,a){G(e,32768|t);const i=Ce(e,t,n,o);W(e,t,20580),W(e,32768|t,67174411);const l=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return W(e,32768|t,16),Z(e,t,1074790417),oe(e,t,r,s,a,{type:"DoWhileStatement",body:i,test:l})}(e,t,o,s,i,l,c);case 20580:return function(e,t,n,o,r,s,a){G(e,t),W(e,32768|t,67174411);const i=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);W(e,32768|t,16);const l=Ce(e,t,n,o);return oe(e,t,r,s,a,{type:"WhileStatement",test:i,body:l})}(e,t,o,s,i,l,c);case 86112:return function(e,t,o,r,s,a,i){G(e,t),W(e,32768|t,67174411);const l=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);W(e,t,16),W(e,t,2162700);const c=[];let u=0;o&&(o=ie(o,8));for(;1074790415!==e.token;){const{tokenPos:s,linePos:a,colPos:i}=e;let l=null;const d=[];for(Z(e,32768|t,20558)?l=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos):(W(e,32768|t,20563),u&&n(e,86),u=1),W(e,32768|t,21);20558!==e.token&&1074790415!==e.token&&20563!==e.token;)d.push(be(e,4096|t,o,2,{$:r}));c.push(oe(e,t,s,a,i,{type:"SwitchCase",test:l,consequent:d}))}return W(e,32768|t,1074790415),oe(e,t,s,a,i,{type:"SwitchStatement",discriminant:l,cases:c})}(e,t,o,s,i,l,c);case 1074790417:return function(e,t,n,o,r){return G(e,32768|t),oe(e,t,n,o,r,{type:"EmptyStatement"})}(e,t,i,l,c);case 2162700:return Pe(e,t,o?ie(o,2):o,s,i,l,c);case 86114:return function(e,t,o,r,s){G(e,32768|t),1&e.flags&&n(e,87);const a=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return _(e,32768|t),oe(e,t,o,r,s,{type:"ThrowStatement",argument:a})}(e,t,i,l,c);case 20557:return function(e,t,o,r,s,a){G(e,32768|t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=tt(e,32768|t,0),ne(e,o,r,0)||n(e,134,r)}else(135168&t)<1&&n(e,66);return _(e,32768|t),oe(e,t,r,s,a,{type:"BreakStatement",label:i})}(e,t,s,i,l,c);case 20561:return function(e,t,o,r,s,a){(131072&t)<1&&n(e,65);G(e,t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=tt(e,32768|t,0),ne(e,o,r,1)||n(e,134,r)}return _(e,32768|t),oe(e,t,r,s,a,{type:"ContinueStatement",label:i})}(e,t,s,i,l,c);case 20579:return function(e,t,o,r,s,a,i){G(e,32768|t);const l=o?ie(o,32):void 0,c=Pe(e,t,l,{$:r},e.tokenPos,e.linePos,e.colPos),{tokenPos:u,linePos:d,colPos:p}=e,f=Z(e,32768|t,20559)?function(e,t,o,r,s,a,i){let l=null,c=o;Z(e,t,67174411)&&(o&&(o=ie(o,4)),l=Et(e,t,o,2097152==(2097152&e.token)?256:512,0,e.tokenPos,e.linePos,e.colPos),18===e.token?n(e,83):1077936157===e.token&&n(e,84),W(e,32768|t,16),o&&(c=ie(o,64)));const u=Pe(e,t,c,{$:r},e.tokenPos,e.linePos,e.colPos);return oe(e,t,s,a,i,{type:"CatchClause",param:l,body:u})}(e,t,o,r,u,d,p):null;let k=null;if(20568===e.token){G(e,32768|t);k=Pe(e,t,l?ie(o,4):void 0,{$:r},e.tokenPos,e.linePos,e.colPos)}f||k||n(e,85);return oe(e,t,s,a,i,{type:"TryStatement",block:c,handler:f,finalizer:k})}(e,t,o,s,i,l,c);case 20581:return function(e,t,o,r,s,a,i){G(e,t),1024&t&&n(e,88);W(e,32768|t,67174411);const l=Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos);W(e,32768|t,16);const c=he(e,t,o,2,r,0,e.tokenPos,e.linePos,e.colPos);return oe(e,t,s,a,i,{type:"WithStatement",object:l,body:c})}(e,t,o,s,i,l,c);case 20562:return function(e,t,n,o,r){return G(e,32768|t),_(e,32768|t),oe(e,t,n,o,r,{type:"DebuggerStatement"})}(e,t,i,l,c);case 209007:return ve(e,t,o,r,s,0,i,l,c);case 20559:n(e,156);case 20568:n(e,157);case 86106:n(e,1024&t?73:(256&t)<1?75:74);case 86096:n(e,76);default:return function(e,t,o,r,s,a,i,l,c){const{tokenValue:u,token:d}=e;let p;switch(d){case 241739:p=tt(e,t,0),1024&t&&n(e,82),69271571===e.token&&n(e,81);break;default:p=Xe(e,t,2,0,1,0,0,1,e.tokenPos,e.linePos,e.colPos)}if(143360&d&&21===e.token)return xe(e,t,o,r,s,u,p,d,a,i,l,c);p=Me(e,t,p,0,0,i,l,c),p=Oe(e,t,0,0,i,l,c,p),18===e.token&&(p=Ue(e,t,0,i,l,c,p));return ye(e,t,p,i,l,c)}(e,t,o,r,s,a,i,l,c)}}function Pe(e,t,n,o,r,s,a){const i=[];for(W(e,32768|t,2162700);1074790415!==e.token;)i.push(be(e,t,n,2,{$:o}));return W(e,32768|t,1074790415),oe(e,t,r,s,a,{type:"BlockStatement",body:i})}function ye(e,t,n,o,r,s){return _(e,32768|t),oe(e,t,o,r,s,{type:"ExpressionStatement",expression:n})}function xe(e,t,o,r,s,a,i,l,c,u,d,p){Q(e,t,0,l,1),function(e,t,o){let r=t;for(;r;)r["$"+o]&&n(e,132,o),r=r.$;t["$"+o]=1}(e,s,a),G(e,32768|t);return oe(e,t,u,d,p,{type:"LabeledStatement",label:i,body:c&&(1024&t)<1&&256&t&&86106===e.token?ot(e,t,ie(o,2),r,0,0,0,e.tokenPos,e.linePos,e.colPos):he(e,t,o,r,s,c,e.tokenPos,e.linePos,e.colPos)})}function ve(e,t,o,r,s,a,i,l,c){const{token:u,tokenValue:d}=e;let p=tt(e,t,0);if(21===e.token)return xe(e,t,o,r,s,d,p,u,1,i,l,c);const f=1&e.flags;if(!f){if(86106===e.token)return a||n(e,119),ot(e,t,o,r,1,0,1,i,l,c);if(143360==(143360&e.token))return p=bt(e,t,1,i,l,c),18===e.token&&(p=Ue(e,t,0,i,l,c,p)),ye(e,t,p,i,l,c)}return 67174411===e.token?p=ht(e,t,p,1,1,0,f,i,l,c):(10===e.token&&(ke(e,t,u,1),p=pt(e,t,e.tokenValue,p,0,1,0,i,l,c)),e.assignable=1),p=Me(e,t,p,0,0,i,l,c),18===e.token&&(p=Ue(e,t,0,i,l,c,p)),p=Oe(e,t,0,0,i,l,c,p),e.assignable=1,ye(e,t,p,i,l,c)}function we(e,t,n,o,r,s,a){return 1074790417!==o&&(e.assignable=2,n=Me(e,t,n,0,0,r,s,a),1074790417!==e.token&&(n=Oe(e,t,0,0,r,s,a,n),18===e.token&&(n=Ue(e,t,0,r,s,a,n))),_(e,32768|t)),8&t&&"Literal"===n.type&&"string"==typeof n.value?oe(e,t,r,s,a,{type:"ExpressionStatement",expression:n,directive:n.raw.slice(1,-1)}):oe(e,t,r,s,a,{type:"ExpressionStatement",expression:n})}function qe(e,t,n,o,r,s,a){return 1024&t||(256&t)<1||86106!==e.token?he(e,t,n,0,{$:o},0,e.tokenPos,e.linePos,e.colPos):ot(e,t,ie(n,2),0,0,0,0,r,s,a)}function Ce(e,t,n,o){return he(e,134217728^(134217728|t)|131072,n,0,{loop:1,$:o},0,e.tokenPos,e.linePos,e.colPos)}function Ee(e,t,n,o,r,s,a,i){G(e,t);const l=Se(e,t,n,o,r);return _(e,32768|t),oe(e,t,s,a,i,{type:"VariableDeclaration",kind:8&o?"let":"const",declarations:l})}function Ae(e,t,n,o,r,s,a){G(e,t);const i=Se(e,t,n,4,o);return _(e,32768|t),oe(e,t,r,s,a,{type:"VariableDeclaration",kind:"var",declarations:i})}function Se(e,t,o,r,s){let a=1;const i=[De(e,t,o,r,s)];for(;Z(e,t,18);)a++,i.push(De(e,t,o,r,s));return a>1&&32&s&&262144&e.token&&n(e,58,V[255&e.token]),i}function De(e,t,o,s,a){const{token:i,tokenPos:l,linePos:c,colPos:u}=e;let d=null;const p=Et(e,t,o,s,a,l,c,u);return 1077936157===e.token?(G(e,32768|t),d=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),(32&a||(2097152&i)<1)&&(274549===e.token||8738868===e.token&&(2097152&i||(4&s)<1||1024&t))&&r(l,e.line,e.index-3,57,274549===e.token?"of":"in")):(16&s||(2097152&i)>0)&&262144!=(262144&e.token)&&n(e,56,16&s?"const":"destructuring"),oe(e,t,l,c,u,{type:"VariableDeclarator",id:p,init:d})}function Le(e,t,o){return fe(t,e.token)||n(e,114),537079808==(537079808&e.token)&&n(e,115),o&&ce(e,t,o,e.tokenValue,8,0),tt(e,t,0)}function Ve(e,t,n){const{tokenPos:o,linePos:s,colPos:a}=e;return G(e,t),W(e,t,77934),134217728==(134217728&e.token)&&r(o,e.line,e.index,28,V[255&e.token]),oe(e,t,o,s,a,{type:"ImportNamespaceSpecifier",local:Le(e,t,n)})}function Te(e,t,o,r){for(G(e,t);143360&e.token;){let{token:s,tokenValue:a,tokenPos:i,linePos:l,colPos:c}=e;const u=tt(e,t,0);let d;Z(e,t,77934)?(134217728==(134217728&e.token)||18===e.token?n(e,103):Q(e,t,16,e.token,0),a=e.tokenValue,d=tt(e,t,0)):(Q(e,t,16,s,0),d=u),o&&ce(e,t,o,a,8,0),r.push(oe(e,t,i,l,c,{type:"ImportSpecifier",local:d,imported:u})),1074790415!==e.token&&W(e,t,18)}return W(e,t,1074790415),r}function Re(e,t,n,o,r){let s=_e(e,t,oe(e,t,n,o,r,{type:"Identifier",name:"import"}),n,o,r);return s=Me(e,t,s,0,0,n,o,r),s=Oe(e,t,0,0,n,o,r,s),ye(e,t,s,n,o,r)}function Ne(e,t,n,o,r){let s=$e(e,t,0,n,o,r);return s=Me(e,t,s,0,0,n,o,r),ye(e,t,s,n,o,r)}function Ie(e,t,n,o,r,s,a,i){let l=Xe(e,t,2,0,n,o,r,1,s,a,i);return l=Me(e,t,l,r,0,s,a,i),Oe(e,t,r,0,s,a,i,l)}function Ue(e,t,n,o,r,s,a){const i=[a];for(;Z(e,32768|t,18);)i.push(Ie(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos));return oe(e,t,o,r,s,{type:"SequenceExpression",expressions:i})}function Be(e,t,n,o,r,s,a){const i=Ie(e,t,o,0,n,r,s,a);return 18===e.token?Ue(e,t,n,r,s,a,i):i}function Oe(e,t,o,r,s,a,i,l){const{token:c}=e;if(4194304==(4194304&c)){2&e.assignable&&n(e,24),(!r&&1077936157===c&&"ArrayExpression"===l.type||"ObjectExpression"===l.type)&&K(e,l),G(e,32768|t);const u=Ie(e,t,1,1,o,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,oe(e,t,s,a,i,r?{type:"AssignmentPattern",left:l,right:u}:{type:"AssignmentExpression",left:l,operator:V[255&c],right:u})}return 8454144==(8454144&c)&&(l=je(e,t,o,s,a,i,4,c,l)),Z(e,32768|t,22)&&(l=Fe(e,t,l,s,a,i)),l}function Ge(e,t,n,o,r,s,a,i){const{token:l}=e;G(e,32768|t);const c=Ie(e,t,1,1,n,e.tokenPos,e.linePos,e.colPos);return i=oe(e,t,r,s,a,o?{type:"AssignmentPattern",left:i,right:c}:{type:"AssignmentExpression",left:i,operator:V[255&l],right:c}),e.assignable=2,i}function Fe(e,t,n,o,r,s){const a=Ie(e,134217728^(134217728|t),1,0,0,e.tokenPos,e.linePos,e.colPos);W(e,32768|t,21),e.assignable=1;const i=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,oe(e,t,o,r,s,{type:"ConditionalExpression",test:n,consequent:a,alternate:i})}function je(e,t,o,r,s,a,i,l,c){const u=8738868&-((134217728&t)>0);let d,p;for(e.assignable=2;8454144&e.token&&(d=e.token,p=3840&d,(524288&d&&268435456&l||524288&l&&268435456&d)&&n(e,159),!(p+((8457273===d)<<8)-((u===d)<<12)<=i));)G(e,32768|t),c=oe(e,t,r,s,a,{type:524288&d||268435456&d?"LogicalExpression":"BinaryExpression",left:c,right:je(e,t,o,e.tokenPos,e.linePos,e.colPos,p,d,Je(e,t,0,o,1,e.tokenPos,e.linePos,e.colPos)),operator:V[255&d]});return 1077936157===e.token&&n(e,24),c}function He(e,t,s,a,i,l){const{tokenPos:c,linePos:u,colPos:d}=e;W(e,32768|t,2162700);const p=[],f=t;if(1074790415!==e.token){for(;134283267===e.token;){const{index:n,tokenPos:o,tokenValue:s,token:a}=e,i=nt(e,t);$(e,n,o,s)&&(t|=1024,128&e.flags&&r(e.index,e.line,e.tokenPos,63),64&e.flags&&r(e.index,e.line,e.tokenPos,8)),p.push(we(e,t,i,a,o,e.linePos,e.colPos))}1024&t&&(i&&(537079808==(537079808&i)&&n(e,115),36864==(36864&i)&&n(e,38)),512&e.flags&&n(e,115),256&e.flags&&n(e,114)),64&t&&s&&void 0!==l&&(1024&f)<1&&(8192&t)<1&&o(l)}for(e.flags=832^(832|e.flags),e.destructible=256^(256|e.destructible);1074790415!==e.token;)p.push(be(e,t,s,4,{}));return W(e,24&a?32768|t:t,1074790415),e.flags&=-193,1077936157===e.token&&n(e,24),oe(e,t,c,u,d,{type:"BlockStatement",body:p})}function Je(e,t,n,o,r,s,a,i){return Me(e,t,Xe(e,t,2,0,n,0,o,r,s,a,i),o,0,s,a,i)}function Me(e,t,o,r,s,a,i,l){if(33619968==(33619968&e.token)&&(1&e.flags)<1)o=function(e,t,o,r,s,a){2&e.assignable&&n(e,52);const{token:i}=e;return G(e,t),e.assignable=2,oe(e,t,r,s,a,{type:"UpdateExpression",argument:o,operator:V[255&i],prefix:!1})}(e,t,o,a,i,l);else if(67108864==(67108864&e.token)){switch(t=134225920^(134225920|t),e.token){case 67108877:G(e,1073741824|t),e.assignable=1;o=oe(e,t,a,i,l,{type:"MemberExpression",object:o,computed:!1,property:ze(e,t)});break;case 69271571:{let n=!1;2048==(2048&e.flags)&&(n=!0,e.flags=2048^(2048|e.flags)),G(e,32768|t);const{tokenPos:s,linePos:c,colPos:u}=e,d=Be(e,t,r,1,s,c,u);W(e,t,20),e.assignable=1,o=oe(e,t,a,i,l,{type:"MemberExpression",object:o,computed:!0,property:d}),n&&(e.flags|=2048);break}case 67174411:{if(1024==(1024&e.flags))return e.flags=1024^(1024|e.flags),o;let n=!1;2048==(2048&e.flags)&&(n=!0,e.flags=2048^(2048|e.flags));const s=et(e,t,r);e.assignable=2,o=oe(e,t,a,i,l,{type:"CallExpression",callee:o,arguments:s}),n&&(e.flags|=2048);break}case 67108991:G(e,t),e.flags|=2048,e.assignable=2,o=function(e,t,o,r,s,a){let i,l=!1;69271571!==e.token&&67174411!==e.token||2048==(2048&e.flags)&&(l=!0,e.flags=2048^(2048|e.flags));if(69271571===e.token){G(e,32768|t);const{tokenPos:n,linePos:l,colPos:c}=e,u=Be(e,t,0,1,n,l,c);W(e,t,20),e.assignable=2,i=oe(e,t,r,s,a,{type:"MemberExpression",object:o,computed:!0,optional:!0,property:u})}else if(67174411===e.token){const n=et(e,t,0);e.assignable=2,i=oe(e,t,r,s,a,{type:"CallExpression",callee:o,arguments:n,optional:!0})}else{(143360&e.token)<1&&n(e,154);const l=tt(e,t,0);e.assignable=2,i=oe(e,t,r,s,a,{type:"MemberExpression",object:o,computed:!1,optional:!0,property:l})}l&&(e.flags|=2048);return i}(e,t,o,a,i,l);break;default:2048==(2048&e.flags)&&n(e,160),e.assignable=2,o=oe(e,t,a,i,l,{type:"TaggedTemplateExpression",tag:o,quasi:67174408===e.token?We(e,65536|t):Ze(e,t,e.tokenPos,e.linePos,e.colPos)})}o=Me(e,t,o,0,1,a,i,l)}return 0===s&&2048==(2048&e.flags)&&(e.flags=2048^(2048|e.flags),o=oe(e,t,a,i,l,{type:"ChainExpression",expression:o})),o}function ze(e,t){return(143360&e.token)<1&&131!==e.token&&n(e,154),1&t&&131===e.token?qt(e,t,e.tokenPos,e.linePos,e.colPos):tt(e,t,0)}function Xe(e,t,o,s,a,i,l,c,u,d,p){if(143360==(143360&e.token)){switch(e.token){case 209008:return function(e,t,o,s,a,i,l){if(s&&(e.destructible|=128),4194304&t||2048&t&&8192&t){o&&n(e,0),8388608&t&&r(e.index,e.line,e.index,29),G(e,32768|t);const s=Je(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 8457273===e.token&&n(e,31),e.assignable=2,oe(e,t,a,i,l,{type:"AwaitExpression",argument:s})}return 2048&t&&n(e,95),dt(e,t,a,i,l)}(e,t,s,l,u,d,p);case 241773:return function(e,t,o,r,s,a,i){if(o&&(e.destructible|=256),2097152&t){G(e,32768|t),8388608&t&&n(e,30),r||n(e,24),22===e.token&&n(e,120);let o=null,l=!1;return(1&e.flags)<1&&(l=Z(e,32768|t,8457014),(77824&e.token||l)&&(o=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos))),e.assignable=2,oe(e,t,s,a,i,{type:"YieldExpression",argument:o,delegate:l})}return 1024&t&&n(e,94,"yield"),dt(e,t,s,a,i)}(e,t,l,a,u,d,p);case 209007:return function(e,t,o,r,s,a,i,l,c,u){const{token:d}=e,p=tt(e,t,a),{flags:f}=e;if((1&f)<1){if(86106===e.token)return rt(e,t,1,o,l,c,u);if(143360==(143360&e.token))return r||n(e,0),bt(e,t,s,l,c,u)}return i||67174411!==e.token?10===e.token?(ke(e,t,d,1),i&&n(e,48),pt(e,t,e.tokenValue,p,i,s,0,l,c,u)):p:ht(e,t,p,s,1,0,f,l,c,u)}(e,t,l,c,a,i,s,u,d,p)}const{token:f,tokenValue:k}=e,g=tt(e,65536|t,i);return 10===e.token?(c||n(e,0),ke(e,t,f,1),pt(e,t,k,g,s,a,0,u,d,p)):(16384&t&&537079928===f&&n(e,126),241739===f&&(1024&t&&n(e,109),24&o&&n(e,97)),e.assignable=1024&t&&537079808==(537079808&f)?2:1,g)}if(134217728==(134217728&e.token))return nt(e,t);switch(e.token){case 33619995:case 33619996:return function(e,t,o,r,s,a,i){o&&n(e,53),r||n(e,0);const{token:l}=e;G(e,32768|t);const c=Je(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 2&e.assignable&&n(e,52),e.assignable=2,oe(e,t,s,a,i,{type:"UpdateExpression",argument:c,operator:V[255&l],prefix:!0})}(e,t,s,c,u,d,p);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return function(e,t,o,r,s,a,i){o||n(e,0);const l=e.token;G(e,32768|t);const c=Je(e,t,0,i,1,e.tokenPos,e.linePos,e.colPos);var u;return 8457273===e.token&&n(e,31),1024&t&&16863278===l&&("Identifier"===c.type?n(e,117):(u=c).property&&"PrivateIdentifier"===u.property.type&&n(e,123)),e.assignable=2,oe(e,t,r,s,a,{type:"UnaryExpression",operator:V[255&l],argument:c,prefix:!0})}(e,t,c,u,d,p,l);case 86106:return rt(e,t,0,l,u,d,p);case 2162700:return function(e,t,o,r,s,a,i){const l=ct(e,t,void 0,o,r,0,2,0,s,a,i);256&t&&64&e.destructible&&n(e,60);8&e.destructible&&n(e,59);return l}(e,t,a?0:1,l,u,d,p);case 69271571:return function(e,t,o,r,s,a,i){const l=st(e,t,void 0,o,r,0,2,0,s,a,i);256&t&&64&e.destructible&&n(e,60);8&e.destructible&&n(e,59);return l}(e,t,a?0:1,l,u,d,p);case 67174411:return function(e,t,o,r,s,a,i,l){e.flags=128^(128|e.flags);const{tokenPos:c,linePos:u,colPos:d}=e;G(e,1073774592|t);const p=64&t?ie({parent:void 0,type:2},1024):void 0;if(Z(e,t=134217728^(134217728|t),16))return ft(e,t,p,[],o,0,a,i,l);let f,k=0;e.destructible&=-385;let g=[],m=0,b=0;const{tokenPos:h,linePos:P,colPos:y}=e;e.assignable=1;for(;16!==e.token;){const{token:o,tokenPos:a,linePos:i,colPos:l}=e;if(143360&o)p&&ce(e,t,p,e.tokenValue,1,0),f=Xe(e,t,r,0,1,0,1,1,a,i,l),16===e.token||18===e.token?2&e.assignable?(k|=16,b=1):537079808!=(537079808&o)&&36864!=(36864&o)||(b=1):(1077936157===e.token?b=1:k|=16,f=Me(e,t,f,1,0,a,i,l),16!==e.token&&18!==e.token&&(f=Oe(e,t,1,0,a,i,l,f)));else{if(2097152!=(2097152&o)){if(14===o){f=it(e,t,p,16,r,s,0,1,0,a,i,l),16&e.destructible&&n(e,71),b=1,!m||16!==e.token&&18!==e.token||g.push(f),k|=8;break}if(k|=16,f=Ie(e,t,1,0,1,a,i,l),!m||16!==e.token&&18!==e.token||g.push(f),18===e.token&&(m||(m=1,g=[f])),m){for(;Z(e,32768|t,18);)g.push(Ie(e,t,1,0,1,e.tokenPos,e.linePos,e.colPos));e.assignable=2,f=oe(e,t,h,P,y,{type:"SequenceExpression",expressions:g})}return W(e,t,16),e.destructible=k,f}f=2162700===o?ct(e,1073741824|t,p,0,1,0,r,s,a,i,l):st(e,1073741824|t,p,0,1,0,r,s,a,i,l),k|=e.destructible,b=1,e.assignable=2,16!==e.token&&18!==e.token&&(8&k&&n(e,118),f=Me(e,t,f,0,0,a,i,l),k|=16,16!==e.token&&18!==e.token&&(f=Oe(e,t,0,0,a,i,l,f)))}if(!m||16!==e.token&&18!==e.token||g.push(f),!Z(e,32768|t,18))break;if(m||(m=1,g=[f]),16===e.token){k|=8;break}}m&&(e.assignable=2,f=oe(e,t,h,P,y,{type:"SequenceExpression",expressions:g}));W(e,t,16),16&k&&8&k&&n(e,145);if(k|=256&e.destructible?256:0|128&e.destructible?128:0,10===e.token)return 48&k&&n(e,46),4196352&t&&128&k&&n(e,29),2098176&t&&256&k&&n(e,30),b&&(e.flags|=128),ft(e,t,p,m?g:[f],o,0,a,i,l);8&k&&n(e,139);return e.destructible=256^(256|e.destructible)|k,128&t?oe(e,t,c,u,d,{type:"ParenthesizedExpression",expression:f}):f}(e,t,a,1,0,u,d,p);case 86021:case 86022:case 86023:return function(e,t,n,o,r){const s=V[255&e.token],a=86023===e.token?null:"true"===s;return G(e,t),e.assignable=2,oe(e,t,n,o,r,512&t?{type:"Literal",value:a,raw:s}:{type:"Literal",value:a})}(e,t,u,d,p);case 86113:return function(e,t){const{tokenPos:n,linePos:o,colPos:r}=e;return G(e,t),e.assignable=2,oe(e,t,n,o,r,{type:"ThisExpression"})}(e,t);case 65540:return function(e,t,n,o,r){const{tokenRaw:s,tokenRegExp:a,tokenValue:i}=e;return G(e,t),e.assignable=2,oe(e,t,n,o,r,512&t?{type:"Literal",value:i,regex:a,raw:s}:{type:"Literal",value:i,regex:a})}(e,t,u,d,p);case 133:case 86096:return function(e,t,o,r,s,a){let i=null,l=null;const c=yt(e,t=16777216^(16778240|t));c.length&&(r=e.tokenPos,s=e.linePos,a=e.colPos);G(e,t),4096&e.token&&20567!==e.token&&(te(e,t,e.token)&&n(e,114),537079808==(537079808&e.token)&&n(e,115),i=tt(e,t,0));let u=t;Z(e,32768|t,20567)?(l=Je(e,t,0,o,0,e.tokenPos,e.linePos,e.colPos),u|=524288):u=524288^(524288|u);const d=vt(e,u,t,void 0,2,0,o);return e.assignable=2,oe(e,t,r,s,a,1&t?{type:"ClassExpression",id:i,superClass:l,decorators:c,body:d}:{type:"ClassExpression",id:i,superClass:l,body:d})}(e,t,l,u,d,p);case 86111:return function(e,t,o,r,s){switch(G(e,t),e.token){case 67108991:n(e,161);case 67174411:(524288&t)<1&&n(e,26),16384&t&&n(e,143),e.assignable=2;break;case 69271571:case 67108877:(262144&t)<1&&n(e,27),16384&t&&n(e,143),e.assignable=1;break;default:n(e,28,"super")}return oe(e,t,o,r,s,{type:"Super"})}(e,t,u,d,p);case 67174409:return Ze(e,t,u,d,p);case 67174408:return We(e,t);case 86109:return function(e,t,o,r,s,a){const i=tt(e,32768|t,0),{tokenPos:l,linePos:c,colPos:u}=e;if(Z(e,t,67108877)){if(67108864&t&&143494===e.token)return e.assignable=2,function(e,t,n,o,r,s){const a=tt(e,t,0);return oe(e,t,o,r,s,{type:"MetaProperty",meta:n,property:a})}(e,t,i,r,s,a);n(e,91)}e.assignable=2,16842752==(16842752&e.token)&&n(e,62,V[255&e.token]);const d=Xe(e,t,2,1,0,0,o,1,l,c,u);t=134217728^(134217728|t),67108991===e.token&&n(e,162);const p=mt(e,t,d,o,l,c,u);return e.assignable=2,oe(e,t,r,s,a,{type:"NewExpression",callee:p,arguments:67174411===e.token?et(e,t,o):[]})}(e,t,l,u,d,p);case 134283389:return Ye(e,t,u,d,p);case 131:return qt(e,t,u,d,p);case 86108:return function(e,t,o,r,s,a,i){let l=tt(e,t,0);if(67108877===e.token)return _e(e,t,l,s,a,i);o&&n(e,137);return l=$e(e,t,r,s,a,i),e.assignable=2,Me(e,t,l,r,0,s,a,i)}(e,t,s,l,u,d,p);case 8456258:if(16&t)return St(e,t,1,u,d,p);default:if(fe(t,e.token))return dt(e,t,u,d,p);n(e,28,V[255&e.token])}}function _e(e,t,o,r,s,a){return 0==(2048&t)&&n(e,163),G(e,t),143495!==e.token&&"meta"!==e.tokenValue&&n(e,28,V[255&e.token]),e.assignable=2,oe(e,t,r,s,a,{type:"MetaProperty",meta:o,property:tt(e,t,0)})}function $e(e,t,o,r,s,a){W(e,32768|t,67174411),14===e.token&&n(e,138);const i=Ie(e,t,1,0,o,e.tokenPos,e.linePos,e.colPos);return W(e,t,16),oe(e,t,r,s,a,{type:"ImportExpression",source:i})}function Ye(e,t,n,o,r){const{tokenRaw:s,tokenValue:a}=e;return G(e,t),e.assignable=2,oe(e,t,n,o,r,512&t?{type:"Literal",value:a,bigint:s.slice(0,-1),raw:s}:{type:"Literal",value:a,bigint:s.slice(0,-1)})}function Ze(e,t,n,o,r){e.assignable=2;const{tokenValue:s,tokenRaw:a,tokenPos:i,linePos:l,colPos:c}=e;W(e,t,67174409);return oe(e,t,n,o,r,{type:"TemplateLiteral",expressions:[],quasis:[Ke(e,t,s,a,i,l,c,!0)]})}function We(e,t){t=134217728^(134217728|t);const{tokenValue:o,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;W(e,32768|t,67174408);const l=[Ke(e,t,o,r,s,a,i,!1)],c=[Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos)];for(1074790415!==e.token&&n(e,80);67174409!==(e.token=S(e,t));){const{tokenValue:o,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;W(e,32768|t,67174408),l.push(Ke(e,t,o,r,s,a,i,!1)),c.push(Be(e,t,0,1,e.tokenPos,e.linePos,e.colPos)),1074790415!==e.token&&n(e,80)}{const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;W(e,t,67174409),l.push(Ke(e,t,n,o,r,s,a,!0))}return oe(e,t,s,a,i,{type:"TemplateLiteral",expressions:c,quasis:l})}function Ke(e,t,n,o,r,s,a,i){const l=oe(e,t,r,s,a,{type:"TemplateElement",value:{cooked:n,raw:o},tail:i}),c=i?1:2;return 2&t&&(l.start+=1,l.range[0]+=1,l.end-=c,l.range[1]-=c),4&t&&(l.loc.start.column+=1,l.loc.end.column-=c),l}function Qe(e,t,n,o,r){W(e,32768|(t=134217728^(134217728|t)),14);const s=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=1,oe(e,t,n,o,r,{type:"SpreadElement",argument:s})}function et(e,t,n){G(e,32768|t);const o=[];if(16===e.token)return G(e,t),o;for(;16!==e.token&&(14===e.token?o.push(Qe(e,t,e.tokenPos,e.linePos,e.colPos)):o.push(Ie(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos)),18===e.token)&&(G(e,32768|t),16!==e.token););return W(e,t,16),o}function tt(e,t,n){const{tokenValue:o,tokenPos:r,linePos:s,colPos:a}=e;return G(e,t),oe(e,t,r,s,a,268435456&t?{type:"Identifier",name:o,pattern:1===n}:{type:"Identifier",name:o})}function nt(e,t){const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;return 134283389===e.token?Ye(e,t,r,s,a):(G(e,t),e.assignable=2,oe(e,t,r,s,a,512&t?{type:"Literal",value:n,raw:o}:{type:"Literal",value:n}))}function ot(e,t,o,r,s,a,i,l,c,u){G(e,32768|t);const d=s?Y(e,t,8457014):0;let p,f=null,k=o?{parent:void 0,type:2}:void 0;if(67174411===e.token)(1&a)<1&&n(e,37,"Function");else{const s=4&r&&((8192&t)<1||(2048&t)<1)?4:64;ee(e,t|(3072&t)<<11,e.token),o&&(4&s?ue(e,t,o,e.tokenValue,s):ce(e,t,o,e.tokenValue,s,r),k=ie(k,256),a&&2&a&&de(e,e.tokenValue)),p=e.token,143360&e.token?f=tt(e,t,0):n(e,28,V[255&e.token])}t=32243712^(32243712|t)|67108864|2*i+d<<21|(d?0:1073741824),o&&(k=ie(k,512));return oe(e,t,l,c,u,{type:"FunctionDeclaration",id:f,params:gt(e,8388608|t,k,0,1),body:He(e,143360^(143360|t),o?ie(k,128):k,8,p,o?k.scopeError:void 0),async:1===i,generator:1===d})}function rt(e,t,n,o,r,s,a){G(e,32768|t);const i=Y(e,t,8457014),l=2*n+i<<21;let c,u=null,d=64&t?{parent:void 0,type:2}:void 0;(176128&e.token)>0&&(ee(e,32243712^(32243712|t)|l,e.token),d&&(d=ie(d,256)),c=e.token,u=tt(e,t,0)),t=32243712^(32243712|t)|67108864|l|(i?0:1073741824),d&&(d=ie(d,512));const p=gt(e,8388608|t,d,o,1),f=He(e,-134377473&t,d?ie(d,128):d,0,c,void 0);return e.assignable=2,oe(e,t,r,s,a,{type:"FunctionExpression",id:u,params:p,body:f,async:1===n,generator:1===i})}function st(e,t,o,r,s,a,i,l,c,u,d){G(e,32768|t);const p=[];let f=0;for(t=134217728^(134217728|t);20!==e.token;)if(Z(e,32768|t,18))p.push(null);else{let r;const{token:c,tokenPos:u,linePos:d,colPos:k,tokenValue:g}=e;if(143360&c)if(r=Xe(e,t,i,0,1,0,s,1,u,d,k),1077936157===e.token){2&e.assignable&&n(e,24),G(e,32768|t),o&&le(e,t,o,g,i,l);const c=Ie(e,t,1,1,s,e.tokenPos,e.linePos,e.colPos);r=oe(e,t,u,d,k,a?{type:"AssignmentPattern",left:r,right:c}:{type:"AssignmentExpression",operator:"=",left:r,right:c}),f|=256&e.destructible?256:0|128&e.destructible?128:0}else 18===e.token||20===e.token?(2&e.assignable?f|=16:o&&le(e,t,o,g,i,l),f|=256&e.destructible?256:0|128&e.destructible?128:0):(f|=1&i?32:(2&i)<1?16:0,r=Me(e,t,r,s,0,u,d,k),18!==e.token&&20!==e.token?(1077936157!==e.token&&(f|=16),r=Oe(e,t,s,a,u,d,k,r)):1077936157!==e.token&&(f|=2&e.assignable?16:32));else 2097152&c?(r=2162700===e.token?ct(e,t,o,0,s,a,i,l,u,d,k):st(e,t,o,0,s,a,i,l,u,d,k),f|=e.destructible,e.assignable=16&e.destructible?2:1,18===e.token||20===e.token?2&e.assignable&&(f|=16):8&e.destructible?n(e,68):(r=Me(e,t,r,s,0,u,d,k),f=2&e.assignable?16:0,18!==e.token&&20!==e.token?r=Oe(e,t,s,a,u,d,k,r):1077936157!==e.token&&(f|=2&e.assignable?16:32))):14===c?(r=it(e,t,o,20,i,l,0,s,a,u,d,k),f|=e.destructible,18!==e.token&&20!==e.token&&n(e,28,V[255&e.token])):(r=Je(e,t,1,0,1,u,d,k),18!==e.token&&20!==e.token?(r=Oe(e,t,s,a,u,d,k,r),(3&i)<1&&67174411===c&&(f|=16)):2&e.assignable?f|=16:67174411===c&&(f|=1&e.assignable&&3&i?32:16));if(p.push(r),!Z(e,32768|t,18))break;if(20===e.token)break}W(e,t,20);const k=oe(e,t,c,u,d,{type:a?"ArrayPattern":"ArrayExpression",elements:p});return!r&&4194304&e.token?at(e,t,f,s,a,c,u,d,k):(e.destructible=f,k)}function at(e,t,o,r,s,a,i,l,c){1077936157!==e.token&&n(e,24),G(e,32768|t),16&o&&n(e,24),s||K(e,c);const{tokenPos:u,linePos:d,colPos:p}=e,f=Ie(e,t,1,1,r,u,d,p);return e.destructible=72^(72|o)|(128&e.destructible?128:0)|(256&e.destructible?256:0),oe(e,t,a,i,l,s?{type:"AssignmentPattern",left:c,right:f}:{type:"AssignmentExpression",left:c,operator:"=",right:f})}function it(e,t,o,r,s,a,i,l,c,u,d,p){G(e,32768|t);let f=null,k=0,{token:g,tokenValue:m,tokenPos:b,linePos:h,colPos:P}=e;if(143360&g)e.assignable=1,f=Xe(e,t,s,0,1,0,l,1,b,h,P),g=e.token,f=Me(e,t,f,l,0,b,h,P),18!==e.token&&e.token!==r&&(2&e.assignable&&1077936157===e.token&&n(e,68),k|=16,f=Oe(e,t,l,c,b,h,P,f)),2&e.assignable?k|=16:g===r||18===g?o&&le(e,t,o,m,s,a):k|=32,k|=128&e.destructible?128:0;else if(g===r)n(e,39);else{if(!(2097152&g)){k|=32,f=Je(e,t,1,l,1,e.tokenPos,e.linePos,e.colPos);const{token:o,tokenPos:s,linePos:a,colPos:i}=e;return 1077936157===o&&o!==r&&18!==o?(2&e.assignable&&n(e,24),f=Oe(e,t,l,c,s,a,i,f),k|=16):(18===o?k|=16:o!==r&&(f=Oe(e,t,l,c,s,a,i,f)),k|=1&e.assignable?32:16),e.destructible=k,e.token!==r&&18!==e.token&&n(e,155),oe(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}f=2162700===e.token?ct(e,t,o,1,l,c,s,a,b,h,P):st(e,t,o,1,l,c,s,a,b,h,P),g=e.token,1077936157!==g&&g!==r&&18!==g?(8&e.destructible&&n(e,68),f=Me(e,t,f,l,0,b,h,P),k|=2&e.assignable?16:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),f=Oe(e,t,l,c,b,h,P,f)):(8454144==(8454144&e.token)&&(f=je(e,t,1,b,h,P,4,g,f)),Z(e,32768|t,22)&&(f=Fe(e,t,f,b,h,P)),k|=2&e.assignable?16:32)):k|=1074790415===r&&1077936157!==g?16:e.destructible}if(e.token!==r)if(1&s&&(k|=i?16:32),Z(e,32768|t,1077936157)){16&k&&n(e,24),K(e,f);const o=Ie(e,t,1,1,l,e.tokenPos,e.linePos,e.colPos);f=oe(e,t,b,h,P,c?{type:"AssignmentPattern",left:f,right:o}:{type:"AssignmentExpression",left:f,operator:"=",right:o}),k=16}else k|=16;return e.destructible=k,oe(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}function lt(e,t,r,s,a,i,l){const c=(64&r)<1?31981568:14680064;let u=64&(t=(t|c)^c|(88&r)<<18|100925440)?ie({parent:void 0,type:2},512):void 0;const d=function(e,t,r,s,a,i){W(e,t,67174411);const l=[];if(e.flags=128^(128|e.flags),16===e.token)return 512&s&&n(e,35,"Setter","one",""),G(e,t),l;256&s&&n(e,35,"Getter","no","s");512&s&&14===e.token&&n(e,36);t=134217728^(134217728|t);let c=0,u=0;for(;18!==e.token;){let o=null;const{tokenPos:d,linePos:p,colPos:f}=e;if(143360&e.token?((1024&t)<1&&(36864==(36864&e.token)&&(e.flags|=256),537079808==(537079808&e.token)&&(e.flags|=512)),o=At(e,t,r,1|s,0,d,p,f)):(2162700===e.token?o=ct(e,t,r,1,i,1,a,0,d,p,f):69271571===e.token?o=st(e,t,r,1,i,1,a,0,d,p,f):14===e.token&&(o=it(e,t,r,16,a,0,0,i,1,d,p,f)),u=1,48&e.destructible&&n(e,47)),1077936157===e.token){G(e,32768|t),u=1;o=oe(e,t,d,p,f,{type:"AssignmentPattern",left:o,right:Ie(e,t,1,1,0,e.tokenPos,e.linePos,e.colPos)})}if(c++,l.push(o),!Z(e,t,18))break;if(16===e.token)break}512&s&&1!==c&&n(e,35,"Setter","one","");r&&void 0!==r.scopeError&&o(r.scopeError);u&&(e.flags|=128);return W(e,t,16),l}(e,8388608|t,u,r,1,s);u&&(u=ie(u,128));return oe(e,t,a,i,l,{type:"FunctionExpression",params:d,body:He(e,-134230017&t,u,0,void 0,void 0),async:(16&r)>0,generator:(8&r)>0,id:null})}function ct(e,t,o,s,a,i,l,c,u,d,p){G(e,t);const f=[];let k=0,g=0;for(t=134217728^(134217728|t);1074790415!==e.token;){const{token:s,tokenValue:u,linePos:d,colPos:p,tokenPos:m}=e;if(14===s)f.push(it(e,t,o,1074790415,l,c,0,a,i,m,d,p));else{let b,h=0,P=null;const y=e.token;if(143360&e.token||121===e.token)if(P=tt(e,t,0),18===e.token||1074790415===e.token||1077936157===e.token)if(h|=4,1024&t&&537079808==(537079808&s)?k|=16:Q(e,t,l,s,0),o&&le(e,t,o,u,l,c),Z(e,32768|t,1077936157)){k|=8;const n=Ie(e,t,1,1,a,e.tokenPos,e.linePos,e.colPos);k|=256&e.destructible?256:0|128&e.destructible?128:0,b=oe(e,t,m,d,p,{type:"AssignmentPattern",left:-2147483648&t?Object.assign({},P):P,right:n})}else k|=(209008===s?128:0)|(121===s?16:0),b=-2147483648&t?Object.assign({},P):P;else if(Z(e,32768|t,21)){const{tokenPos:r,linePos:d,colPos:p}=e;if("__proto__"===u&&g++,143360&e.token){const n=e.token,s=e.tokenValue;k|=121===y?16:0,b=Xe(e,t,l,0,1,0,a,1,r,d,p);const{token:u}=e;b=Me(e,t,b,a,0,r,d,p),18===e.token||1074790415===e.token?1077936157===u||1074790415===u||18===u?(k|=128&e.destructible?128:0,2&e.assignable?k|=16:o&&143360==(143360&n)&&le(e,t,o,s,l,c)):k|=1&e.assignable?32:16:4194304==(4194304&e.token)?(2&e.assignable?k|=16:1077936157!==u?k|=32:o&&le(e,t,o,s,l,c),b=Oe(e,t,a,i,r,d,p,b)):(k|=16,8454144==(8454144&e.token)&&(b=je(e,t,1,r,d,p,4,u,b)),Z(e,32768|t,22)&&(b=Fe(e,t,b,r,d,p)))}else 2097152==(2097152&e.token)?(b=69271571===e.token?st(e,t,o,0,a,i,l,c,r,d,p):ct(e,t,o,0,a,i,l,c,r,d,p),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&e.destructible?n(e,68):(b=Me(e,t,b,a,0,r,d,p),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=Ge(e,t,a,i,r,d,p,b):(8454144==(8454144&e.token)&&(b=je(e,t,1,r,d,p,4,s,b)),Z(e,32768|t,22)&&(b=Fe(e,t,b,r,d,p)),k|=2&e.assignable?16:32))):(b=Je(e,t,1,a,1,r,d,p),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=Me(e,t,b,a,0,r,d,p),k=2&e.assignable?16:0,18!==e.token&&1074790415!==s&&(1077936157!==e.token&&(k|=16),b=Oe(e,t,a,i,r,d,p,b))))}else 69271571===e.token?(k|=16,209007===s&&(h|=16),h|=2|(12402===s?256:12403===s?512:1),P=ut(e,t,a),k|=e.assignable,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):143360&e.token?(k|=16,121===s&&n(e,92),209007===s&&(1&e.flags&&n(e,128),h|=16),P=tt(e,t,0),h|=12402===s?256:12403===s?512:1,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):67174411===e.token?(k|=16,h|=1,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):8457014===e.token?(k|=16,12402===s||12403===s?n(e,40):143483===s&&n(e,92),G(e,t),h|=9|(209007===s?16:0),143360&e.token?P=tt(e,t,0):134217728==(134217728&e.token)?P=nt(e,t):69271571===e.token?(h|=2,P=ut(e,t,a),k|=e.assignable):n(e,28,V[255&e.token]),b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):134217728==(134217728&e.token)?(209007===s&&(h|=16),h|=12402===s?256:12403===s?512:1,k|=16,P=nt(e,t),b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):n(e,129);else if(134217728==(134217728&e.token))if(P=nt(e,t),21===e.token){W(e,32768|t,21);const{tokenPos:n,linePos:r,colPos:d}=e;if("__proto__"===u&&g++,143360&e.token){b=Xe(e,t,l,0,1,0,a,1,n,r,d);const{token:s,tokenValue:u}=e;b=Me(e,t,b,a,0,n,r,d),18===e.token||1074790415===e.token?1077936157===s||1074790415===s||18===s?2&e.assignable?k|=16:o&&le(e,t,o,u,l,c):k|=1&e.assignable?32:16:1077936157===e.token?(2&e.assignable&&(k|=16),b=Oe(e,t,a,i,n,r,d,b)):(k|=16,b=Oe(e,t,a,i,n,r,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?st(e,t,o,0,a,i,l,c,n,r,d):ct(e,t,o,0,a,i,l,c,n,r,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8!=(8&e.destructible)&&(b=Me(e,t,b,a,0,n,r,d),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=Ge(e,t,a,i,n,r,d,b):(8454144==(8454144&e.token)&&(b=je(e,t,1,n,r,d,4,s,b)),Z(e,32768|t,22)&&(b=Fe(e,t,b,n,r,d)),k|=2&e.assignable?16:32))):(b=Je(e,t,1,0,1,n,r,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=Me(e,t,b,a,0,n,r,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Oe(e,t,a,i,n,r,d,b))))}else 67174411===e.token?(h|=1,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos),k=16|e.assignable):n(e,130);else if(69271571===e.token)if(P=ut(e,t,a),k|=256&e.destructible?256:0,h|=2,21===e.token){G(e,32768|t);const{tokenPos:r,linePos:u,colPos:d,tokenValue:p,token:f}=e;if(143360&e.token){b=Xe(e,t,l,0,1,0,a,1,r,u,d);const{token:n}=e;b=Me(e,t,b,a,0,r,u,d),4194304==(4194304&e.token)?(k|=2&e.assignable?16:1077936157===n?0:32,b=Ge(e,t,a,i,r,u,d,b)):18===e.token||1074790415===e.token?1077936157===n||1074790415===n||18===n?2&e.assignable?k|=16:o&&143360==(143360&f)&&le(e,t,o,p,l,c):k|=1&e.assignable?32:16:(k|=16,b=Oe(e,t,a,i,r,u,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?st(e,t,o,0,a,i,l,c,r,u,d):ct(e,t,o,0,a,i,l,c,r,u,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&k?n(e,59):(b=Me(e,t,b,a,0,r,u,d),k=2&e.assignable?16|k:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,r,u,d,b)):(8454144==(8454144&e.token)&&(b=je(e,t,1,r,u,d,4,s,b)),Z(e,32768|t,22)&&(b=Fe(e,t,b,r,u,d)),k|=2&e.assignable?16:32))):(b=Je(e,t,1,0,1,r,u,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=Me(e,t,b,a,0,r,u,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Oe(e,t,a,i,r,u,d,b))))}else 67174411===e.token?(h|=1,b=lt(e,t,h,a,e.tokenPos,d,p),k=16):n(e,41);else if(8457014===s)if(W(e,32768|t,8457014),h|=8,143360&e.token){const{token:n,line:o,index:s}=e;P=tt(e,t,0),h|=1,67174411===e.token?(k|=16,b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):r(s,o,s,209007===n?43:12402===n||12403===e.token?42:44,V[255&n])}else 134217728==(134217728&e.token)?(k|=16,P=nt(e,t),h|=1,b=lt(e,t,h,a,m,d,p)):69271571===e.token?(k|=16,h|=3,P=ut(e,t,a),b=lt(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):n(e,122);else n(e,28,V[255&s]);k|=128&e.destructible?128:0,e.destructible=k,f.push(oe(e,t,m,d,p,{type:"Property",key:P,value:b,kind:768&h?512&h?"set":"get":"init",computed:(2&h)>0,method:(1&h)>0,shorthand:(4&h)>0}))}if(k|=e.destructible,18!==e.token)break;G(e,t)}W(e,t,1074790415),g>1&&(k|=64);const m=oe(e,t,u,d,p,{type:i?"ObjectPattern":"ObjectExpression",properties:f});return!s&&4194304&e.token?at(e,t,k,a,i,u,d,p,m):(e.destructible=k,m)}function ut(e,t,n){G(e,32768|t);const o=Ie(e,134217728^(134217728|t),1,0,n,e.tokenPos,e.linePos,e.colPos);return W(e,t,20),o}function dt(e,t,n,o,r){const{tokenValue:s}=e,a=tt(e,t,0);if(e.assignable=1,10===e.token){let i;return 64&t&&(i=se(e,t,s)),e.flags=128^(128|e.flags),kt(e,t,i,[a],0,n,o,r)}return a}function pt(e,t,o,r,s,a,i,l,c,u){a||n(e,54),s&&n(e,48),e.flags&=-129;return kt(e,t,64&t?se(e,t,o):void 0,[r],i,l,c,u)}function ft(e,t,o,r,s,a,i,l,c){s||n(e,54);for(let t=0;t0&&"constructor"===e.tokenValue&&n(e,106),1074790415===e.token&&n(e,105),Z(e,t,1074790417)?a>0&&n(e,116):d.push(wt(e,t,r,o,s,p,0,i,e.tokenPos,e.linePos,e.colPos))}return W(e,8&a?32768|t:t,1074790415),oe(e,t,l,c,u,{type:"ClassBody",body:d})}function wt(e,t,o,r,s,a,i,l,c,u,d){let p=i?32:0,f=null;const{token:k,tokenPos:g,linePos:m,colPos:b}=e;if(176128&k)switch(f=tt(e,t,0),k){case 36972:if(!i&&67174411!==e.token)return wt(e,t,o,r,s,a,1,l,c,u,d);break;case 209007:if(67174411!==e.token&&(1&e.flags)<1){if(1&t&&1073741824==(1073741824&e.token))return Ct(e,t,f,p,a,g,m,b);p|=16|(Y(e,t,8457014)?8:0)}break;case 12402:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Ct(e,t,f,p,a,g,m,b);p|=256}break;case 12403:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Ct(e,t,f,p,a,g,m,b);p|=512}}else 69271571===k?(p|=2,f=ut(e,r,l)):134217728==(134217728&k)?f=nt(e,t):8457014===k?(p|=8,G(e,t)):1&t&&131===e.token?(p|=4096,f=qt(e,t,g,m,b),t|=16384):1&t&&1073741824==(1073741824&e.token)?(p|=128,t|=16384):122===k?(f=tt(e,t,0),67174411!==e.token&&n(e,28,V[255&e.token])):n(e,28,V[255&e.token]);if(792&p&&(143360&e.token?f=tt(e,t,0):134217728==(134217728&e.token)?f=nt(e,t):69271571===e.token?(p|=2,f=ut(e,t,0)):122===e.token?f=tt(e,t,0):1&t&&131===e.token?(p|=4096,f=qt(e,t,g,m,b)):n(e,131)),(2&p)<1&&("constructor"===e.tokenValue?(1073741824==(1073741824&e.token)?n(e,125):(32&p)<1&&67174411===e.token&&(920&p?n(e,50,"accessor"):(524288&t)<1&&(32&e.flags?n(e,51):e.flags|=32)),p|=64):(4096&p)<1&&824&p&&"prototype"===e.tokenValue&&n(e,49)),1&t&&67174411!==e.token)return Ct(e,t,f,p,a,g,m,b);const h=lt(e,t,p,l,e.tokenPos,e.linePos,e.colPos);return oe(e,t,c,u,d,1&t?{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,decorators:a,value:h}:{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,value:h})}function qt(e,t,o,r,s){G(e,t);const{tokenValue:a}=e;return"constructor"===a&&n(e,124),G(e,t),oe(e,t,o,r,s,{type:"PrivateIdentifier",name:a})}function Ct(e,t,o,r,s,a,i,l){let c=null;if(8&r&&n(e,0),1077936157===e.token){G(e,32768|t);const{tokenPos:o,linePos:r,colPos:s}=e;537079928===e.token&&n(e,115),c=Xe(e,16384|t,2,0,1,0,0,1,o,r,s),1073741824!=(1073741824&e.token)&&(c=Me(e,16384|t,c,0,0,o,r,s),c=Oe(e,16384|t,0,0,o,r,s,c),18===e.token&&(c=Ue(e,t,0,a,i,l,c)))}return oe(e,t,a,i,l,{type:"PropertyDefinition",key:o,value:c,static:(32&r)>0,computed:(2&r)>0,decorators:s})}function Et(e,t,o,r,s,a,i,l){if(143360&e.token)return At(e,t,o,r,s,a,i,l);2097152!=(2097152&e.token)&&n(e,28,V[255&e.token]);const c=69271571===e.token?st(e,t,o,1,0,1,r,s,a,i,l):ct(e,t,o,1,0,1,r,s,a,i,l);return 16&e.destructible&&n(e,47),32&e.destructible&&n(e,47),c}function At(e,t,o,r,s,a,i,l){const{tokenValue:c,token:u}=e;return 1024&t&&(537079808==(537079808&u)?n(e,115):36864==(36864&u)&&n(e,114)),20480==(20480&u)&&n(e,99),2099200&t&&241773===u&&n(e,30),241739===u&&24&r&&n(e,97),4196352&t&&209008===u&&n(e,95),G(e,t),o&&le(e,t,o,c,r,s),oe(e,t,a,i,l,{type:"Identifier",name:c})}function St(e,t,o,r,s,a){if(G(e,t),8456259===e.token)return oe(e,t,r,s,a,{type:"JSXFragment",openingFragment:Dt(e,t,r,s,a),children:Vt(e,t),closingFragment:Lt(e,t,o,e.tokenPos,e.linePos,e.colPos)});let i=null,l=[];const c=function(e,t,o,r,s,a){143360!=(143360&e.token)&&4096!=(4096&e.token)&&n(e,0);const i=Rt(e,t,e.tokenPos,e.linePos,e.colPos),l=function(e,t){const n=[];for(;8457016!==e.token&&8456259!==e.token&&1048576!==e.token;)n.push(It(e,t,e.tokenPos,e.linePos,e.colPos));return n}(e,t),c=8457016===e.token;8456259===e.token?z(e,t):(W(e,t,8457016),o?W(e,t,8456259):z(e,t));return oe(e,t,r,s,a,{type:"JSXOpeningElement",name:i,attributes:l,selfClosing:c})}(e,t,o,r,s,a);if(!c.selfClosing){l=Vt(e,t),i=function(e,t,n,o,r,s){W(e,t,25);const a=Rt(e,t,e.tokenPos,e.linePos,e.colPos);n?W(e,t,8456259):e.token=z(e,t);return oe(e,t,o,r,s,{type:"JSXClosingElement",name:a})}(e,t,o,e.tokenPos,e.linePos,e.colPos);const r=re(i.name);re(c.name)!==r&&n(e,149,r)}return oe(e,t,r,s,a,{type:"JSXElement",children:l,openingElement:c,closingElement:i})}function Dt(e,t,n,o,r){return z(e,t),oe(e,t,n,o,r,{type:"JSXOpeningFragment"})}function Lt(e,t,n,o,r,s){return W(e,t,25),W(e,t,8456259),oe(e,t,o,r,s,{type:"JSXClosingFragment"})}function Vt(e,t){const n=[];for(;25!==e.token;)e.index=e.tokenPos=e.startPos,e.column=e.colPos=e.startColumn,e.line=e.linePos=e.startLine,z(e,t),n.push(Tt(e,t,e.tokenPos,e.linePos,e.colPos));return n}function Tt(e,t,o,r,s){return 138===e.token?function(e,t,n,o,r){z(e,t);const s={type:"JSXText",value:e.tokenValue};512&t&&(s.raw=e.tokenRaw);return oe(e,t,n,o,r,s)}(e,t,o,r,s):2162700===e.token?Bt(e,t,0,0,o,r,s):8456258===e.token?St(e,t,0,o,r,s):void n(e,0)}function Rt(e,t,n,o,r){X(e);let s=Ot(e,t,n,o,r);if(21===e.token)return Ut(e,t,s,n,o,r);for(;Z(e,t,67108877);)X(e),s=Nt(e,t,s,n,o,r);return s}function Nt(e,t,n,o,r,s){return oe(e,t,o,r,s,{type:"JSXMemberExpression",object:n,property:Ot(e,t,e.tokenPos,e.linePos,e.colPos)})}function It(e,t,o,r,s){if(2162700===e.token)return function(e,t,n,o,r){G(e,t),W(e,t,14);const s=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return W(e,t,1074790415),oe(e,t,n,o,r,{type:"JSXSpreadAttribute",argument:s})}(e,t,o,r,s);X(e);let a=null,i=Ot(e,t,o,r,s);if(21===e.token&&(i=Ut(e,t,i,o,r,s)),1077936157===e.token){const o=M(e,t),{tokenPos:r,linePos:s,colPos:i}=e;switch(o){case 134283267:a=nt(e,t);break;case 8456258:a=St(e,t,1,r,s,i);break;case 2162700:a=Bt(e,t,1,1,r,s,i);break;default:n(e,148)}}return oe(e,t,o,r,s,{type:"JSXAttribute",value:a,name:i})}function Ut(e,t,n,o,r,s){W(e,t,21);return oe(e,t,o,r,s,{type:"JSXNamespacedName",namespace:n,name:Ot(e,t,e.tokenPos,e.linePos,e.colPos)})}function Bt(e,t,o,r,s,a,i){G(e,t);const{tokenPos:l,linePos:c,colPos:u}=e;if(14===e.token)return function(e,t,n,o,r){W(e,t,14);const s=Ie(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return W(e,t,1074790415),oe(e,t,n,o,r,{type:"JSXSpreadChild",expression:s})}(e,t,l,c,u);let d=null;return 1074790415===e.token?(r&&n(e,151),d=function(e,t,n,o,r){return e.startPos=e.tokenPos,e.startLine=e.linePos,e.startColumn=e.colPos,oe(e,t,n,o,r,{type:"JSXEmptyExpression"})}(e,t,e.startPos,e.startLine,e.startColumn)):d=Ie(e,t,1,0,0,l,c,u),o?W(e,t,1074790415):z(e,t),oe(e,t,s,a,i,{type:"JSXExpressionContainer",expression:d})}function Ot(e,t,n,o,r){const{tokenValue:s}=e;return G(e,t),oe(e,t,n,o,r,{type:"JSXIdentifier",name:s})}var Gt=Object.freeze({__proto__:null});exports.ESTree=Gt,exports.parse=function(e,t){return ge(e,t,0)},exports.parseModule=function(e,t){return ge(e,t,3072)},exports.parseScript=function(e,t){return ge(e,t,0)},exports.version="4.2.0"; diff --git a/node_modules/meriyah/dist/meriyah.system.js b/node_modules/meriyah/dist/meriyah.system.js new file mode 100644 index 0000000..2f536ec --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.system.js @@ -0,0 +1,8796 @@ +System.register('meriyah', [], function (exports) { + 'use strict'; + return { + execute: function () { + + exports({ + parse: parse, + parseModule: parseModule, + parseScript: parseScript + }); + + const errorMessages = { + [0]: 'Unexpected token', + [28]: "Unexpected token: '%0'", + [1]: 'Octal escape sequences are not allowed in strict mode', + [2]: 'Octal escape sequences are not allowed in template strings', + [3]: 'Unexpected token `#`', + [4]: 'Illegal Unicode escape sequence', + [5]: 'Invalid code point %0', + [6]: 'Invalid hexadecimal escape sequence', + [8]: 'Octal literals are not allowed in strict mode', + [7]: 'Decimal integer literals with a leading zero are forbidden in strict mode', + [9]: 'Expected number in radix %0', + [145]: 'Invalid left-hand side assignment to a destructible right-hand side', + [10]: 'Non-number found after exponent indicator', + [11]: 'Invalid BigIntLiteral', + [12]: 'No identifiers allowed directly after numeric literal', + [13]: 'Escapes \\8 or \\9 are not syntactically valid escapes', + [14]: 'Unterminated string literal', + [15]: 'Unterminated template literal', + [16]: 'Multiline comment was not closed properly', + [17]: 'The identifier contained dynamic unicode escape that was not closed', + [18]: "Illegal character '%0'", + [19]: 'Missing hexadecimal digits', + [20]: 'Invalid implicit octal', + [21]: 'Invalid line break in string literal', + [22]: 'Only unicode escapes are legal in identifier names', + [23]: "Expected '%0'", + [24]: 'Invalid left-hand side in assignment', + [25]: 'Invalid left-hand side in async arrow', + [26]: 'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass', + [27]: 'Member access on super must be in a method', + [29]: 'Await expression not allowed in formal parameter', + [30]: 'Yield expression not allowed in formal parameter', + [92]: "Unexpected token: 'escaped keyword'", + [31]: 'Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses', + [119]: 'Async functions can only be declared at the top level or inside a block', + [32]: 'Unterminated regular expression', + [33]: 'Unexpected regular expression flag', + [34]: "Duplicate regular expression flag '%0'", + [35]: '%0 functions must have exactly %1 argument%2', + [36]: 'Setter function argument must not be a rest parameter', + [37]: '%0 declaration must have a name in this context', + [38]: 'Function name may not contain any reserved words or be eval or arguments in strict mode', + [39]: 'The rest operator is missing an argument', + [40]: 'A getter cannot be a generator', + [41]: 'A computed property name must be followed by a colon or paren', + [130]: 'Object literal keys that are strings or numbers must be a method or have a colon', + [43]: 'Found `* async x(){}` but this should be `async * x(){}`', + [42]: 'Getters and setters can not be generators', + [44]: "'%0' can not be generator method", + [45]: "No line break is allowed after '=>'", + [46]: 'The left-hand side of the arrow can only be destructed through assignment', + [47]: 'The binding declaration is not destructible', + [48]: 'Async arrow can not be followed by new expression', + [49]: "Classes may not have a static property named 'prototype'", + [50]: 'Class constructor may not be a %0', + [51]: 'Duplicate constructor method in class', + [52]: 'Invalid increment/decrement operand', + [53]: 'Invalid use of `new` keyword on an increment/decrement expression', + [54]: '`=>` is an invalid assignment target', + [55]: 'Rest element may not have a trailing comma', + [56]: 'Missing initializer in %0 declaration', + [57]: "'for-%0' loop head declarations can not have an initializer", + [58]: 'Invalid left-hand side in for-%0 loop: Must have a single binding', + [59]: 'Invalid shorthand property initializer', + [60]: 'Property name __proto__ appears more than once in object literal', + [61]: 'Let is disallowed as a lexically bound name', + [62]: "Invalid use of '%0' inside new expression", + [63]: "Illegal 'use strict' directive in function with non-simple parameter list", + [64]: 'Identifier "let" disallowed as left-hand side expression in strict mode', + [65]: 'Illegal continue statement', + [66]: 'Illegal break statement', + [67]: 'Cannot have `let[...]` as a var name in strict mode', + [68]: 'Invalid destructuring assignment target', + [69]: 'Rest parameter may not have a default initializer', + [70]: 'The rest argument must the be last parameter', + [71]: 'Invalid rest argument', + [73]: 'In strict mode code, functions can only be declared at top level or inside a block', + [74]: 'In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement', + [75]: 'Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement', + [76]: "Class declaration can't appear in single-statement context", + [77]: 'Invalid left-hand side in for-%0', + [78]: 'Invalid assignment in for-%0', + [79]: 'for await (... of ...) is only valid in async functions and async generators', + [80]: 'The first token after the template expression should be a continuation of the template', + [82]: '`let` declaration not allowed here and `let` cannot be a regular var name in strict mode', + [81]: '`let \n [` is a restricted production at the start of a statement', + [83]: 'Catch clause requires exactly one parameter, not more (and no trailing comma)', + [84]: 'Catch clause parameter does not support default values', + [85]: 'Missing catch or finally after try', + [86]: 'More than one default clause in switch statement', + [87]: 'Illegal newline after throw', + [88]: 'Strict mode code may not include a with statement', + [89]: 'Illegal return statement', + [90]: 'The left hand side of the for-header binding declaration is not destructible', + [91]: 'new.target only allowed within functions', + [93]: "'#' not followed by identifier", + [99]: 'Invalid keyword', + [98]: "Can not use 'let' as a class name", + [97]: "'A lexical declaration can't define a 'let' binding", + [96]: 'Can not use `let` as variable name in strict mode', + [94]: "'%0' may not be used as an identifier in this context", + [95]: 'Await is only valid in async functions', + [100]: 'The %0 keyword can only be used with the module goal', + [101]: 'Unicode codepoint must not be greater than 0x10FFFF', + [102]: '%0 source must be string', + [103]: 'Only a identifier can be used to indicate alias', + [104]: "Only '*' or '{...}' can be imported after default", + [105]: 'Trailing decorator may be followed by method', + [106]: "Decorators can't be used with a constructor", + [108]: 'HTML comments are only allowed with web compatibility (Annex B)', + [109]: "The identifier 'let' must not be in expression position in strict mode", + [110]: 'Cannot assign to `eval` and `arguments` in strict mode', + [111]: "The left-hand side of a for-of loop may not start with 'let'", + [112]: 'Block body arrows can not be immediately invoked without a group', + [113]: 'Block body arrows can not be immediately accessed without a group', + [114]: 'Unexpected strict mode reserved word', + [115]: 'Unexpected eval or arguments in strict mode', + [116]: 'Decorators must not be followed by a semicolon', + [117]: 'Calling delete on expression not allowed in strict mode', + [118]: 'Pattern can not have a tail', + [120]: 'Can not have a `yield` expression on the left side of a ternary', + [121]: 'An arrow function can not have a postfix update operator', + [122]: 'Invalid object literal key character after generator star', + [123]: 'Private fields can not be deleted', + [125]: 'Classes may not have a field called constructor', + [124]: 'Classes may not have a private element named constructor', + [126]: 'A class field initializer may not contain arguments', + [127]: 'Generators can only be declared at the top level or inside a block', + [128]: 'Async methods are a restricted production and cannot have a newline following it', + [129]: 'Unexpected character after object literal property name', + [131]: 'Invalid key token', + [132]: "Label '%0' has already been declared", + [133]: 'continue statement must be nested within an iteration statement', + [134]: "Undefined label '%0'", + [135]: 'Trailing comma is disallowed inside import(...) arguments', + [136]: 'import() requires exactly one argument', + [137]: 'Cannot use new with import(...)', + [138]: '... is not allowed in import()', + [139]: "Expected '=>'", + [140]: "Duplicate binding '%0'", + [141]: "Cannot export a duplicate name '%0'", + [144]: 'Duplicate %0 for-binding', + [142]: "Exported binding '%0' needs to refer to a top-level declared variable", + [143]: 'Unexpected private field', + [147]: 'Numeric separators are not allowed at the end of numeric literals', + [146]: 'Only one underscore is allowed as numeric separator', + [148]: 'JSX value should be either an expression or a quoted JSX text', + [149]: 'Expected corresponding JSX closing tag for %0', + [150]: 'Adjacent JSX elements must be wrapped in an enclosing tag', + [151]: "JSX attributes must only be assigned a non-empty 'expression'", + [152]: "'%0' has already been declared", + [153]: "'%0' shadowed a catch clause binding", + [154]: 'Dot property must be an identifier', + [155]: 'Encountered invalid input after spread/rest argument', + [156]: 'Catch without try', + [157]: 'Finally without try', + [158]: 'Expected corresponding closing tag for JSX fragment', + [159]: 'Coalescing and logical operators used together in the same expression must be disambiguated with parentheses', + [160]: 'Invalid tagged template on optional chain', + [161]: 'Invalid optional chain from super property', + [162]: 'Invalid optional chain from new expression', + [163]: 'Cannot use "import.meta" outside a module', + [164]: 'Leading decorators must be attached to a class declaration' + }; + class ParseError extends SyntaxError { + constructor(startindex, line, column, type, ...params) { + const message = '[' + line + ':' + column + ']: ' + errorMessages[type].replace(/%(\d+)/g, (_, i) => params[i]); + super(`${message}`); + this.index = startindex; + this.line = line; + this.column = column; + this.description = message; + this.loc = { + line, + column + }; + } + } + function report(parser, type, ...params) { + throw new ParseError(parser.index, parser.line, parser.column, type, ...params); + } + function reportScopeError(scope) { + throw new ParseError(scope.index, scope.line, scope.column, scope.type, scope.params); + } + function reportMessageAt(index, line, column, type, ...params) { + throw new ParseError(index, line, column, type, ...params); + } + function reportScannerError(index, line, column, type) { + throw new ParseError(index, line, column, type); + } + + const unicodeLookup = ((compressed, lookup) => { + const result = new Uint32Array(104448); + let index = 0; + let subIndex = 0; + while (index < 3540) { + const inst = compressed[index++]; + if (inst < 0) { + subIndex -= inst; + } + else { + let code = compressed[index++]; + if (inst & 2) + code = lookup[code]; + if (inst & 1) { + result.fill(code, subIndex, subIndex += compressed[index++]); + } + else { + result[subIndex++] = code; + } + } + } + return result; + })([-1, 2, 24, 2, 25, 2, 5, -1, 0, 77595648, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 16, 2, 60, 2, 0, 0, 4294836735, 0, 3221225471, 0, 4294901942, 2, 61, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 17, 2, 0, 0, 4294961151, 3, 0, 2, 2, 19, 2, 0, 0, 608174079, 2, 0, 2, 131, 2, 6, 2, 56, -1, 2, 37, 0, 4294443263, 2, 1, 3, 0, 3, 0, 4294901711, 2, 39, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2967484831, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 2, 194, 2, 3, 0, 3825204735, 0, 123747807, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1080049119, 0, 458703, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 66, 0, 4284449919, 0, 851904, 2, 4, 2, 11, 0, 67076095, -1, 2, 67, 0, 1073741743, 0, 4093591391, -1, 0, 50331649, 0, 3265266687, 2, 32, 0, 4294844415, 0, 4278190047, 2, 18, 2, 129, -1, 3, 0, 2, 2, 21, 2, 0, 2, 9, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 10, 0, 261632, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 2088959, 2, 27, 2, 8, 0, 909311, 3, 0, 2, 0, 814743551, 2, 41, 0, 67057664, 3, 0, 2, 2, 40, 2, 0, 2, 28, 2, 0, 2, 29, 2, 7, 0, 268374015, 2, 26, 2, 49, 2, 0, 2, 76, 0, 134153215, -1, 2, 6, 2, 0, 2, 7, 0, 2684354559, 0, 67044351, 0, 3221160064, 0, 1, -1, 3, 0, 2, 2, 42, 0, 1046528, 3, 0, 3, 2, 8, 2, 0, 2, 51, 0, 4294960127, 2, 9, 2, 38, 2, 10, 0, 4294377472, 2, 11, 3, 0, 7, 0, 4227858431, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -1, 2, 124, 0, 1048577, 2, 82, 2, 13, -1, 2, 13, 0, 131042, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 1046559, 2, 0, 2, 14, 2, 0, 0, 2147516671, 2, 20, 3, 86, 2, 2, 0, -16, 2, 87, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 2, 121, 2, 0, 0, 3220242431, 3, 0, 3, 2, 19, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 2, 0, 0, 4351, 2, 0, 2, 8, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 22, 2, 8, 2, 18, 3, 0, 2, 0, 67076097, 2, 7, 2, 0, 2, 20, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 3774349439, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, 2, 23, 0, 1638399, 2, 172, 2, 105, 3, 0, 3, 2, 18, 2, 24, 2, 25, 2, 5, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -3, 2, 150, -4, 2, 18, 2, 0, 2, 35, 0, 1, 2, 0, 2, 62, 2, 28, 2, 11, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 21, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277137519, 0, 2269118463, -1, 3, 18, 2, -1, 2, 32, 2, 36, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 46, -10, 2, 0, 0, 203775, -2, 2, 18, 2, 43, 2, 35, -2, 2, 17, 2, 117, 2, 20, 3, 0, 2, 2, 36, 0, 2147549120, 2, 0, 2, 11, 2, 17, 2, 135, 2, 0, 2, 37, 2, 52, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 120, 0, 1090519039, -2, 2, 122, 2, 38, 2, 0, 0, 67045375, 2, 39, 0, 4226678271, 0, 3766565279, 0, 2039759, -4, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 40, 2, 41, -1, 2, 10, 2, 42, -6, 2, 0, 2, 11, -3, 3, 0, 2, 0, 2147484671, 2, 125, 0, 4190109695, 2, 50, -2, 2, 126, 0, 4244635647, 0, 27, 2, 0, 2, 7, 2, 43, 2, 0, 2, 63, -1, 2, 0, 2, 40, -8, 2, 54, 2, 44, 0, 67043329, 2, 127, 2, 45, 0, 8388351, -2, 2, 128, 0, 3028287487, 2, 46, 2, 130, 0, 33259519, 2, 41, -9, 2, 20, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, 2, 41, -2, 2, 17, 2, 49, 2, 0, 2, 20, 2, 50, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 196635, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 0, 1677656575, -166, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 28, -13, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 88, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -42, 0, 4194303871, 0, 2011, -6, 2, 0, 0, 1073684479, 0, 17407, -11, 2, 0, 2, 31, -40, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 42, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -105, 2, 24, -32, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -22381, 3, 0, 7, 2, 23, -6130, 3, 5, 2, -1, 0, 69207040, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 16, 2, 60, 2, 0, 2, 33, -1, 2, 17, 2, 61, -1, 2, 0, 2, 56, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 23, 2, 62, 3, 0, 2, 0, 131135, 2, 95, 0, 70256639, 0, 71303167, 0, 272, 2, 40, 2, 56, -1, 2, 37, 2, 30, -1, 2, 96, 2, 63, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 65, 2, 64, 0, 33554435, 2, 123, 2, 65, 2, 151, 0, 131075, 0, 3594373096, 0, 67094296, 2, 64, -1, 0, 4294828000, 0, 603979263, 2, 160, 0, 3, 0, 4294828001, 0, 602930687, 2, 183, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 66, 2, 36, -1, 2, 4, 0, 917503, 2, 36, -1, 2, 67, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 32, 2, 68, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 11, -1, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 253951, 3, 19, 2, 0, 122879, 2, 0, 2, 8, 0, 276824064, -2, 3, 0, 2, 2, 40, 2, 0, 0, 4294903295, 2, 0, 2, 29, 2, 7, -1, 2, 17, 2, 49, 2, 0, 2, 76, 2, 41, -1, 2, 20, 2, 0, 2, 27, -2, 0, 128, -2, 2, 77, 2, 8, 0, 4064, -1, 2, 119, 0, 4227907585, 2, 0, 2, 118, 2, 0, 2, 48, 2, 173, 2, 9, 2, 38, 2, 10, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -3, 2, 82, 2, 13, -3, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 817183, 2, 0, 2, 14, 2, 0, 0, 33023, 2, 20, 3, 86, 2, -17, 2, 87, 0, 524157950, 2, 4, 2, 0, 2, 88, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 0, 3072, 2, 0, 0, 2147516415, 2, 9, 3, 0, 2, 2, 23, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 0, 4294965179, 0, 7, 2, 0, 2, 8, 2, 91, 2, 8, -1, 0, 1761345536, 2, 95, 0, 4294901823, 2, 36, 2, 18, 2, 96, 2, 34, 2, 166, 0, 2080440287, 2, 0, 2, 33, 2, 143, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 7, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 2700607615, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, -3, 2, 105, 3, 0, 3, 2, 18, -1, 3, 5, 2, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -8, 2, 18, 2, 0, 2, 35, -1, 2, 0, 2, 62, 2, 28, 2, 29, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 17, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277075969, 2, 29, -1, 3, 18, 2, -1, 2, 32, 2, 117, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 48, -10, 2, 0, 0, 197631, -2, 2, 18, 2, 43, 2, 118, -2, 2, 17, 2, 117, 2, 20, 2, 119, 2, 51, -2, 2, 119, 2, 23, 2, 17, 2, 33, 2, 119, 2, 36, 0, 4294901904, 0, 4718591, 2, 119, 2, 34, 0, 335544350, -1, 2, 120, 2, 121, -2, 2, 122, 2, 38, 2, 7, -1, 2, 123, 2, 65, 0, 3758161920, 0, 3, -4, 2, 0, 2, 27, 0, 2147485568, 0, 3, 2, 0, 2, 23, 0, 176, -5, 2, 0, 2, 47, 2, 186, -1, 2, 0, 2, 23, 2, 197, -1, 2, 0, 0, 16779263, -2, 2, 11, -7, 2, 0, 2, 121, -3, 3, 0, 2, 2, 124, 2, 125, 0, 2147549183, 0, 2, -2, 2, 126, 2, 35, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, -1, 2, 0, 2, 40, -8, 2, 54, 2, 47, 0, 1, 2, 127, 2, 23, -3, 2, 128, 2, 35, 2, 129, 2, 130, 0, 16778239, -10, 2, 34, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, -3, 2, 17, 2, 131, 2, 0, 2, 23, 2, 48, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 67583, -1, 2, 103, -2, 0, 11, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 2, 135, -187, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 2, 143, -73, 2, 0, 0, 1065361407, 0, 16384, -11, 2, 0, 2, 121, -40, 3, 0, 6, 2, 117, -1, 3, 0, 2, 0, 2063, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -138, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -28517, 2, 0, 0, 1, -1, 2, 124, 2, 0, 0, 8193, -21, 2, 193, 0, 10255, 0, 4, -11, 2, 64, 2, 171, -1, 0, 71680, -1, 2, 161, 0, 4292900864, 0, 805306431, -5, 2, 150, -1, 2, 157, -1, 0, 6144, -2, 2, 127, -1, 2, 154, -1, 0, 2147532800, 2, 151, 2, 165, 2, 0, 2, 164, 0, 524032, 0, 4, -4, 2, 190, 0, 205128192, 0, 1333757536, 0, 2147483696, 0, 423953, 0, 747766272, 0, 2717763192, 0, 4286578751, 0, 278545, 2, 152, 0, 4294886464, 0, 33292336, 0, 417809, 2, 152, 0, 1327482464, 0, 4278190128, 0, 700594195, 0, 1006647527, 0, 4286497336, 0, 4160749631, 2, 153, 0, 469762560, 0, 4171219488, 0, 8323120, 2, 153, 0, 202375680, 0, 3214918176, 0, 4294508592, 2, 153, -1, 0, 983584, 0, 48, 0, 58720273, 0, 3489923072, 0, 10517376, 0, 4293066815, 0, 1, 0, 2013265920, 2, 177, 2, 0, 0, 2089, 0, 3221225552, 0, 201375904, 2, 0, -2, 0, 256, 0, 122880, 0, 16777216, 2, 150, 0, 4160757760, 2, 0, -6, 2, 167, -11, 0, 3263218176, -1, 0, 49664, 0, 2160197632, 0, 8388802, -1, 0, 12713984, -1, 2, 154, 2, 159, 2, 178, -2, 2, 162, -20, 0, 3758096385, -2, 2, 155, 0, 4292878336, 2, 90, 2, 169, 0, 4294057984, -2, 2, 163, 2, 156, 2, 175, -2, 2, 155, -1, 2, 182, -1, 2, 170, 2, 124, 0, 4026593280, 0, 14, 0, 4292919296, -1, 2, 158, 0, 939588608, -1, 0, 805306368, -1, 2, 124, 0, 1610612736, 2, 156, 2, 157, 2, 4, 2, 0, -2, 2, 158, 2, 159, -3, 0, 267386880, -1, 2, 160, 0, 7168, -1, 0, 65024, 2, 154, 2, 161, 2, 179, -7, 2, 168, -8, 2, 162, -1, 0, 1426112704, 2, 163, -1, 2, 164, 0, 271581216, 0, 2149777408, 2, 23, 2, 161, 2, 124, 0, 851967, 2, 180, -1, 2, 23, 2, 181, -4, 2, 158, -20, 2, 195, 2, 165, -56, 0, 3145728, 2, 185, -4, 2, 166, 2, 124, -4, 0, 32505856, -1, 2, 167, -1, 0, 2147385088, 2, 90, 1, 2155905152, 2, -3, 2, 103, 2, 0, 2, 168, -2, 2, 169, -6, 2, 170, 0, 4026597375, 0, 1, -1, 0, 1, -1, 2, 171, -3, 2, 117, 2, 64, -2, 2, 166, -2, 2, 176, 2, 124, -878, 2, 159, -36, 2, 172, -1, 2, 201, -10, 2, 188, -5, 2, 174, -6, 0, 4294965251, 2, 27, -1, 2, 173, -1, 2, 174, -2, 0, 4227874752, -3, 0, 2146435072, 2, 159, -2, 0, 1006649344, 2, 124, -1, 2, 90, 0, 201375744, -3, 0, 134217720, 2, 90, 0, 4286677377, 0, 32896, -1, 2, 158, -3, 2, 175, -349, 2, 176, 0, 1920, 2, 177, 3, 0, 264, -11, 2, 157, -2, 2, 178, 2, 0, 0, 520617856, 0, 2692743168, 0, 36, -3, 0, 524284, -11, 2, 23, -1, 2, 187, -1, 2, 184, 0, 3221291007, 2, 178, -1, 2, 202, 0, 2158720, -3, 2, 159, 0, 1, -4, 2, 124, 0, 3808625411, 0, 3489628288, 2, 200, 0, 1207959680, 0, 3221274624, 2, 0, -3, 2, 179, 0, 120, 0, 7340032, -2, 2, 180, 2, 4, 2, 23, 2, 163, 3, 0, 4, 2, 159, -1, 2, 181, 2, 177, -1, 0, 8176, 2, 182, 2, 179, 2, 183, -1, 0, 4290773232, 2, 0, -4, 2, 163, 2, 189, 0, 15728640, 2, 177, -1, 2, 161, -1, 0, 4294934512, 3, 0, 4, -9, 2, 90, 2, 170, 2, 184, 3, 0, 4, 0, 704, 0, 1849688064, 2, 185, -1, 2, 124, 0, 4294901887, 2, 0, 0, 130547712, 0, 1879048192, 2, 199, 3, 0, 2, -1, 2, 186, 2, 187, -1, 0, 17829776, 0, 2025848832, 0, 4261477888, -2, 2, 0, -1, 0, 4286580608, -1, 0, 29360128, 2, 192, 0, 16252928, 0, 3791388672, 2, 38, 3, 0, 2, -2, 2, 196, 2, 0, -1, 2, 103, -1, 0, 66584576, -1, 2, 191, 3, 0, 9, 2, 124, -1, 0, 4294755328, 3, 0, 2, -1, 2, 161, 2, 178, 3, 0, 2, 2, 23, 2, 188, 2, 90, -2, 0, 245760, 0, 2147418112, -1, 2, 150, 2, 203, 0, 4227923456, -1, 2, 164, 2, 161, 2, 90, -3, 0, 4292870145, 0, 262144, 2, 124, 3, 0, 2, 0, 1073758848, 2, 189, -1, 0, 4227921920, 2, 190, 0, 68289024, 0, 528402016, 0, 4292927536, 3, 0, 4, -2, 0, 268435456, 2, 91, -2, 2, 191, 3, 0, 5, -1, 2, 192, 2, 163, 2, 0, -2, 0, 4227923936, 2, 62, -1, 2, 155, 2, 95, 2, 0, 2, 154, 2, 158, 3, 0, 6, -1, 2, 177, 3, 0, 3, -2, 0, 2146959360, 0, 9440640, 0, 104857600, 0, 4227923840, 3, 0, 2, 0, 768, 2, 193, 2, 77, -2, 2, 161, -2, 2, 119, -1, 2, 155, 3, 0, 8, 0, 512, 0, 8388608, 2, 194, 2, 172, 2, 187, 0, 4286578944, 3, 0, 2, 0, 1152, 0, 1266679808, 2, 191, 0, 576, 0, 4261707776, 2, 95, 3, 0, 9, 2, 155, 3, 0, 5, 2, 16, -1, 0, 2147221504, -28, 2, 178, 3, 0, 3, -3, 0, 4292902912, -6, 2, 96, 3, 0, 85, -33, 0, 4294934528, 3, 0, 126, -18, 2, 195, 3, 0, 269, -17, 2, 155, 2, 124, 2, 198, 3, 0, 2, 2, 23, 0, 4290822144, -2, 0, 67174336, 0, 520093700, 2, 17, 3, 0, 21, -2, 2, 179, 3, 0, 3, -2, 0, 30720, -1, 0, 32512, 3, 0, 2, 0, 4294770656, -191, 2, 174, -38, 2, 170, 2, 0, 2, 196, 3, 0, 279, -8, 2, 124, 2, 0, 0, 4294508543, 0, 65295, -11, 2, 177, 3, 0, 72, -3, 0, 3758159872, 0, 201391616, 3, 0, 155, -7, 2, 170, -1, 0, 384, -1, 0, 133693440, -3, 2, 196, -2, 2, 26, 3, 0, 4, 2, 169, -2, 2, 90, 2, 155, 3, 0, 4, -2, 2, 164, -1, 2, 150, 0, 335552923, 2, 197, -1, 0, 538974272, 0, 2214592512, 0, 132000, -10, 0, 192, -8, 0, 12288, -21, 0, 134213632, 0, 4294901761, 3, 0, 42, 0, 100663424, 0, 4294965284, 3, 0, 6, -1, 0, 3221282816, 2, 198, 3, 0, 11, -1, 2, 199, 3, 0, 40, -6, 0, 4286578784, 2, 0, -2, 0, 1006694400, 3, 0, 24, 2, 35, -1, 2, 94, 3, 0, 2, 0, 1, 2, 163, 3, 0, 6, 2, 197, 0, 4110942569, 0, 1432950139, 0, 2701658217, 0, 4026532864, 0, 4026532881, 2, 0, 2, 45, 3, 0, 8, -1, 2, 158, -2, 2, 169, 0, 98304, 0, 65537, 2, 170, -5, 0, 4294950912, 2, 0, 2, 118, 0, 65528, 2, 177, 0, 4294770176, 2, 26, 3, 0, 4, -30, 2, 174, 0, 3758153728, -3, 2, 169, -2, 2, 155, 2, 188, 2, 158, -1, 2, 191, -1, 2, 161, 0, 4294754304, 3, 0, 2, -3, 0, 33554432, -2, 2, 200, -3, 2, 169, 0, 4175478784, 2, 201, 0, 4286643712, 0, 4286644216, 2, 0, -4, 2, 202, -1, 2, 165, 0, 4227923967, 3, 0, 32, -1334, 2, 163, 2, 0, -129, 2, 94, -6, 2, 163, -180, 2, 203, -233, 2, 4, 3, 0, 96, -16, 2, 163, 3, 0, 47, -154, 2, 165, 3, 0, 22381, -7, 2, 17, 3, 0, 6128], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 268435455, 2147483647, 1048575, 1073741823, 3892314111, 134217727, 1061158911, 536805376, 4294910143, 4160749567, 4294901759, 4294901760, 536870911, 262143, 8388607, 4294902783, 4294918143, 65535, 67043328, 2281701374, 4294967232, 2097151, 4294903807, 4194303, 255, 67108863, 4294967039, 511, 524287, 131071, 127, 4292870143, 4294902271, 4294549487, 33554431, 1023, 67047423, 4294901888, 4286578687, 4294770687, 67043583, 32767, 15, 2047999, 67043343, 16777215, 4294902000, 4294934527, 4294966783, 4294967279, 2047, 262083, 20511, 4290772991, 41943039, 493567, 4294959104, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 4294967264, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 2044, 4292870144, 4294966272, 4294967280, 8289918, 4294934399, 4294901775, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4294966591, 2445279231, 3670015, 3238002687, 31, 63, 4294967288, 4294705151, 4095, 3221208447, 4294549472, 2147483648, 4285526655, 4294966527, 4294705152, 4294966143, 64, 4294966719, 16383, 3774873592, 458752, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967103, 4160749565, 4087, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901763, 536870912, 2952790016, 202506752, 139264, 402653184, 4261412864, 4227922944, 49152, 61440, 3758096384, 117440512, 65280, 3233808384, 3221225472, 2097152, 4294965248, 32768, 57152, 67108864, 4293918720, 4290772992, 25165824, 57344, 4227915776, 4278190080, 4227907584, 65520, 4026531840, 4227858432, 4160749568, 3758129152, 4294836224, 63488, 1073741824, 4294967040, 4194304, 251658240, 196608, 4294963200, 64512, 417808, 4227923712, 12582912, 50331648, 65472, 4294967168, 4294966784, 16, 4294917120, 2080374784, 4096, 65408, 524288, 65532]); + + function advanceChar(parser) { + parser.column++; + return (parser.currentChar = parser.source.charCodeAt(++parser.index)); + } + function consumeMultiUnitCodePoint(parser, hi) { + if ((hi & 0xfc00) !== 55296) + return 0; + const lo = parser.source.charCodeAt(parser.index + 1); + if ((lo & 0xfc00) !== 0xdc00) + return 0; + hi = parser.currentChar = 65536 + ((hi & 0x3ff) << 10) + (lo & 0x3ff); + if (((unicodeLookup[(hi >>> 5) + 0] >>> hi) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(hi)); + } + parser.index++; + parser.column++; + return 1; + } + function consumeLineFeed(parser, state) { + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.flags |= 1; + if ((state & 4) === 0) { + parser.column = 0; + parser.line++; + } + } + function scanNewLine(parser) { + parser.flags |= 1; + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.column = 0; + parser.line++; + } + function isExoticECMAScriptWhitespace(ch) { + return (ch === 160 || + ch === 65279 || + ch === 133 || + ch === 5760 || + (ch >= 8192 && ch <= 8203) || + ch === 8239 || + ch === 8287 || + ch === 12288 || + ch === 8201 || + ch === 65519); + } + function fromCodePoint(codePoint) { + return codePoint <= 65535 + ? String.fromCharCode(codePoint) + : String.fromCharCode(codePoint >>> 10) + String.fromCharCode(codePoint & 0x3ff); + } + function toHex(code) { + return code < 65 ? code - 48 : (code - 65 + 10) & 0xf; + } + function convertTokenType(t) { + switch (t) { + case 134283266: + return 'NumericLiteral'; + case 134283267: + return 'StringLiteral'; + case 86021: + case 86022: + return 'BooleanLiteral'; + case 86023: + return 'NullLiteral'; + case 65540: + return 'RegularExpression'; + case 67174408: + case 67174409: + case 132: + return 'TemplateLiteral'; + default: + if ((t & 143360) === 143360) + return 'Identifier'; + if ((t & 4096) === 4096) + return 'Keyword'; + return 'Punctuator'; + } + } + + const CharTypes = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8 | 1024, + 0, + 0, + 8 | 2048, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8192, + 0, + 1 | 2, + 0, + 0, + 8192, + 0, + 0, + 0, + 256, + 0, + 256 | 32768, + 0, + 0, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 512 | 64, + 2 | 16 | 512 | 64, + 0, + 0, + 16384, + 0, + 0, + 0, + 0, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 0, + 1, + 0, + 0, + 1 | 2 | 4096, + 0, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 16384, + 0, + 0, + 0, + 0 + ]; + const isIdStart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ]; + const isIdPart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ]; + function isIdentifierStart(code) { + return code <= 0x7F + ? isIdStart[code] + : (unicodeLookup[(code >>> 5) + 34816] >>> code) & 31 & 1; + } + function isIdentifierPart(code) { + return code <= 0x7F + ? isIdPart[code] + : (unicodeLookup[(code >>> 5) + 0] >>> code) & 31 & 1 || (code === 8204 || code === 8205); + } + + const CommentTypes = ['SingleLine', 'MultiLine', 'HTMLOpen', 'HTMLClose', 'HashbangComment']; + function skipHashBang(parser) { + const source = parser.source; + if (parser.currentChar === 35 && source.charCodeAt(parser.index + 1) === 33) { + advanceChar(parser); + advanceChar(parser); + skipSingleLineComment(parser, source, 0, 4, parser.tokenPos, parser.linePos, parser.colPos); + } + } + function skipSingleHTMLComment(parser, source, state, context, type, start, line, column) { + if (context & 2048) + report(parser, 0); + return skipSingleLineComment(parser, source, state, type, start, line, column); + } + function skipSingleLineComment(parser, source, state, type, start, line, column) { + const { index } = parser; + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + while (parser.index < parser.end) { + if (CharTypes[parser.currentChar] & 8) { + const isCR = parser.currentChar === 13; + scanNewLine(parser); + if (isCR && parser.index < parser.end && parser.currentChar === 10) + parser.currentChar = source.charCodeAt(++parser.index); + break; + } + else if ((parser.currentChar ^ 8232) <= 1) { + scanNewLine(parser); + break; + } + advanceChar(parser); + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + } + if (parser.onComment) { + const loc = { + start: { + line, + column + }, + end: { + line: parser.linePos, + column: parser.colPos + } + }; + parser.onComment(CommentTypes[type & 0xff], source.slice(index, parser.tokenPos), start, parser.tokenPos, loc); + } + return state | 1; + } + function skipMultiLineComment(parser, source, state) { + const { index } = parser; + while (parser.index < parser.end) { + if (parser.currentChar < 0x2b) { + let skippedOneAsterisk = false; + while (parser.currentChar === 42) { + if (!skippedOneAsterisk) { + state &= ~4; + skippedOneAsterisk = true; + } + if (advanceChar(parser) === 47) { + advanceChar(parser); + if (parser.onComment) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onComment(CommentTypes[1 & 0xff], source.slice(index, parser.index - 2), index - 2, parser.index, loc); + } + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + return state; + } + } + if (skippedOneAsterisk) { + continue; + } + if (CharTypes[parser.currentChar] & 8) { + if (parser.currentChar === 13) { + state |= 1 | 4; + scanNewLine(parser); + } + else { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + } + else { + advanceChar(parser); + } + } + else if ((parser.currentChar ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + } + else { + state &= ~4; + advanceChar(parser); + } + } + report(parser, 16); + } + + function scanRegularExpression(parser, context) { + const bodyStart = parser.index; + let preparseState = 0; + loop: while (true) { + const ch = parser.currentChar; + advanceChar(parser); + if (preparseState & 1) { + preparseState &= ~1; + } + else { + switch (ch) { + case 47: + if (!preparseState) + break loop; + else + break; + case 92: + preparseState |= 1; + break; + case 91: + preparseState |= 2; + break; + case 93: + preparseState &= 1; + break; + case 13: + case 10: + case 8232: + case 8233: + report(parser, 32); + } + } + if (parser.index >= parser.source.length) { + return report(parser, 32); + } + } + const bodyEnd = parser.index - 1; + let mask = 0; + let char = parser.currentChar; + const { index: flagStart } = parser; + while (isIdentifierPart(char)) { + switch (char) { + case 103: + if (mask & 2) + report(parser, 34, 'g'); + mask |= 2; + break; + case 105: + if (mask & 1) + report(parser, 34, 'i'); + mask |= 1; + break; + case 109: + if (mask & 4) + report(parser, 34, 'm'); + mask |= 4; + break; + case 117: + if (mask & 16) + report(parser, 34, 'g'); + mask |= 16; + break; + case 121: + if (mask & 8) + report(parser, 34, 'y'); + mask |= 8; + break; + case 115: + if (mask & 12) + report(parser, 34, 's'); + mask |= 12; + break; + default: + report(parser, 33); + } + char = advanceChar(parser); + } + const flags = parser.source.slice(flagStart, parser.index); + const pattern = parser.source.slice(bodyStart, bodyEnd); + parser.tokenRegExp = { pattern, flags }; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = validate(parser, pattern, flags); + return 65540; + } + function validate(parser, pattern, flags) { + try { + return new RegExp(pattern, flags); + } + catch (e) { + report(parser, 32); + } + } + + function scanString(parser, context, quote) { + const { index: start } = parser; + let ret = ''; + let char = advanceChar(parser); + let marker = parser.index; + while ((CharTypes[char] & 8) === 0) { + if (char === quote) { + ret += parser.source.slice(marker, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(start, parser.index); + parser.tokenValue = ret; + return 134283267; + } + if ((char & 8) === 8 && char === 92) { + ret += parser.source.slice(marker, parser.index); + char = advanceChar(parser); + if (char < 0x7f || char === 8232 || char === 8233) { + const code = parseEscape(parser, context, char); + if (code >= 0) + ret += fromCodePoint(code); + else + handleStringError(parser, code, 0); + } + else { + ret += fromCodePoint(char); + } + marker = parser.index + 1; + } + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + report(parser, 14); + } + function parseEscape(parser, context, first) { + switch (first) { + case 98: + return 8; + case 102: + return 12; + case 114: + return 13; + case 110: + return 10; + case 116: + return 9; + case 118: + return 11; + case 13: { + if (parser.index < parser.end) { + const nextChar = parser.source.charCodeAt(parser.index + 1); + if (nextChar === 10) { + parser.index = parser.index + 1; + parser.currentChar = nextChar; + } + } + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + return -1; + case 48: + case 49: + case 50: + case 51: { + let code = first - 48; + let index = parser.index + 1; + let column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if ((CharTypes[next] & 32) === 0) { + if ((code !== 0 || CharTypes[next] & 512) && context & 1024) + return -2; + } + else if (context & 1024) { + return -2; + } + else { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + } + } + parser.flags |= 64; + parser.index = index - 1; + parser.column = column - 1; + } + } + return code; + } + case 52: + case 53: + case 54: + case 55: { + if (context & 1024) + return -2; + let code = first - 48; + const index = parser.index + 1; + const column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + code = (code << 3) | (next - 48); + parser.currentChar = next; + parser.index = index; + parser.column = column; + } + } + parser.flags |= 64; + return code; + } + case 120: { + const ch1 = advanceChar(parser); + if ((CharTypes[ch1] & 64) === 0) + return -4; + const hi = toHex(ch1); + const ch2 = advanceChar(parser); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const lo = toHex(ch2); + return (hi << 4) | lo; + } + case 117: { + const ch = advanceChar(parser); + if (parser.currentChar === 123) { + let code = 0; + while ((CharTypes[advanceChar(parser)] & 64) !== 0) { + code = (code << 4) | toHex(parser.currentChar); + if (code > 1114111) + return -5; + } + if (parser.currentChar < 1 || parser.currentChar !== 125) { + return -4; + } + return code; + } + else { + if ((CharTypes[ch] & 64) === 0) + return -4; + const ch2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const ch3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[ch3] & 64) === 0) + return -4; + const ch4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[ch4] & 64) === 0) + return -4; + parser.index += 3; + parser.column += 3; + parser.currentChar = parser.source.charCodeAt(parser.index); + return (toHex(ch) << 12) | (toHex(ch2) << 8) | (toHex(ch3) << 4) | toHex(ch4); + } + } + case 56: + case 57: + if ((context & 256) === 0) + return -3; + default: + return first; + } + } + function handleStringError(state, code, isTemplate) { + switch (code) { + case -1: + return; + case -2: + report(state, isTemplate ? 2 : 1); + case -3: + report(state, 13); + case -4: + report(state, 6); + case -5: + report(state, 101); + } + } + + function scanTemplate(parser, context) { + const { index: start } = parser; + let token = 67174409; + let ret = ''; + let char = advanceChar(parser); + while (char !== 96) { + if (char === 36 && parser.source.charCodeAt(parser.index + 1) === 123) { + advanceChar(parser); + token = 67174408; + break; + } + else if ((char & 8) === 8 && char === 92) { + char = advanceChar(parser); + if (char > 0x7e) { + ret += fromCodePoint(char); + } + else { + const code = parseEscape(parser, context | 1024, char); + if (code >= 0) { + ret += fromCodePoint(code); + } + else if (code !== -1 && context & 65536) { + ret = undefined; + char = scanBadTemplate(parser, char); + if (char < 0) + token = 67174408; + break; + } + else { + handleStringError(parser, code, 1); + } + } + } + else { + if (parser.index < parser.end && + char === 13 && + parser.source.charCodeAt(parser.index) === 10) { + ret += fromCodePoint(char); + parser.currentChar = parser.source.charCodeAt(++parser.index); + } + if (((char & 83) < 3 && char === 10) || (char ^ 8232) <= 1) { + parser.column = -1; + parser.line++; + } + ret += fromCodePoint(char); + } + if (parser.index >= parser.end) + report(parser, 15); + char = advanceChar(parser); + } + advanceChar(parser); + parser.tokenValue = ret; + parser.tokenRaw = parser.source.slice(start + 1, parser.index - (token === 67174409 ? 1 : 2)); + return token; + } + function scanBadTemplate(parser, ch) { + while (ch !== 96) { + switch (ch) { + case 36: { + const index = parser.index + 1; + if (index < parser.end && parser.source.charCodeAt(index) === 123) { + parser.index = index; + parser.column++; + return -ch; + } + break; + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + } + if (parser.index >= parser.end) + report(parser, 15); + ch = advanceChar(parser); + } + return ch; + } + function scanTemplateTail(parser, context) { + if (parser.index >= parser.end) + report(parser, 0); + parser.index--; + parser.column--; + return scanTemplate(parser, context); + } + + function scanNumber(parser, context, kind) { + let char = parser.currentChar; + let value = 0; + let digit = 9; + let atStart = kind & 64 ? 0 : 1; + let digits = 0; + let allowSeparator = 0; + if (kind & 64) { + value = '.' + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 110) + report(parser, 11); + } + else { + if (char === 48) { + char = advanceChar(parser); + if ((char | 32) === 120) { + kind = 8 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (64 | 4096)) { + if (char === 95) { + if (!allowSeparator) + report(parser, 146); + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 0x10 + toHex(char); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 19 : 147); + } + } + else if ((char | 32) === 111) { + kind = 4 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (32 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 8 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if ((char | 32) === 98) { + kind = 2 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (128 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 2 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if (CharTypes[char] & 32) { + if (context & 1024) + report(parser, 1); + kind = 1; + while (CharTypes[char] & 16) { + if (CharTypes[char] & 512) { + kind = 32; + atStart = 0; + break; + } + value = value * 8 + (char - 48); + char = advanceChar(parser); + } + } + else if (CharTypes[char] & 512) { + if (context & 1024) + report(parser, 1); + parser.flags |= 64; + kind = 32; + } + else if (char === 95) { + report(parser, 0); + } + } + if (kind & 48) { + if (atStart) { + while (digit >= 0 && CharTypes[char] & (16 | 4096)) { + if (char === 95) { + char = advanceChar(parser); + if (char === 95 || kind & 32) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + continue; + } + allowSeparator = 0; + value = 10 * value + (char - 48); + char = advanceChar(parser); + --digit; + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + if (digit >= 0 && !isIdentifierStart(char) && char !== 46) { + parser.tokenValue = value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + } + value += scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 46) { + if (advanceChar(parser) === 95) + report(parser, 0); + kind = 64; + value += '.' + scanDecimalDigitsOrSeparator(parser, parser.currentChar); + char = parser.currentChar; + } + } + } + const end = parser.index; + let isBigInt = 0; + if (char === 110 && kind & 128) { + isBigInt = 1; + char = advanceChar(parser); + } + else { + if ((char | 32) === 101) { + char = advanceChar(parser); + if (CharTypes[char] & 256) + char = advanceChar(parser); + const { index } = parser; + if ((CharTypes[char] & 16) < 1) + report(parser, 10); + value += parser.source.substring(end, index) + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + } + } + if ((parser.index < parser.end && CharTypes[char] & 16) || isIdentifierStart(char)) { + report(parser, 12); + } + if (isBigInt) { + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = BigInt(value); + return 134283389; + } + parser.tokenValue = + kind & (1 | 2 | 8 | 4) + ? value + : kind & 32 + ? parseFloat(parser.source.substring(parser.tokenPos, parser.index)) + : +value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + function scanDecimalDigitsOrSeparator(parser, char) { + let allowSeparator = 0; + let start = parser.index; + let ret = ''; + while (CharTypes[char] & (16 | 4096)) { + if (char === 95) { + const { index } = parser; + char = advanceChar(parser); + if (char === 95) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + ret += parser.source.substring(start, index); + start = parser.index; + continue; + } + allowSeparator = 0; + char = advanceChar(parser); + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + return ret + parser.source.substring(start, parser.index); + } + + const KeywordDescTable = [ + 'end of source', + 'identifier', 'number', 'string', 'regular expression', + 'false', 'true', 'null', + 'template continuation', 'template tail', + '=>', '(', '{', '.', '...', '}', ')', ';', ',', '[', ']', ':', '?', '\'', '"', '', + '++', '--', + '=', '<<=', '>>=', '>>>=', '**=', '+=', '-=', '*=', '/=', '%=', '^=', '|=', + '&=', '||=', '&&=', '??=', + 'typeof', 'delete', 'void', '!', '~', '+', '-', 'in', 'instanceof', '*', '%', '/', '**', '&&', + '||', '===', '!==', '==', '!=', '<=', '>=', '<', '>', '<<', '>>', '>>>', '&', '|', '^', + 'var', 'let', 'const', + 'break', 'case', 'catch', 'class', 'continue', 'debugger', 'default', 'do', 'else', 'export', + 'extends', 'finally', 'for', 'function', 'if', 'import', 'new', 'return', 'super', 'switch', + 'this', 'throw', 'try', 'while', 'with', + 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield', + 'as', 'async', 'await', 'constructor', 'get', 'set', 'from', 'of', + 'enum', 'eval', 'arguments', 'escaped keyword', 'escaped future reserved keyword', 'reserved if strict', '#', + 'BigIntLiteral', '??', '?.', 'WhiteSpace', 'Illegal', 'LineTerminator', 'PrivateField', + 'Template', '@', 'target', 'meta', 'LineFeed', 'Escaped', 'JSXText' + ]; + const descKeywordTable = Object.create(null, { + this: { value: 86113 }, + function: { value: 86106 }, + if: { value: 20571 }, + return: { value: 20574 }, + var: { value: 86090 }, + else: { value: 20565 }, + for: { value: 20569 }, + new: { value: 86109 }, + in: { value: 8738868 }, + typeof: { value: 16863277 }, + while: { value: 20580 }, + case: { value: 20558 }, + break: { value: 20557 }, + try: { value: 20579 }, + catch: { value: 20559 }, + delete: { value: 16863278 }, + throw: { value: 86114 }, + switch: { value: 86112 }, + continue: { value: 20561 }, + default: { value: 20563 }, + instanceof: { value: 8476725 }, + do: { value: 20564 }, + void: { value: 16863279 }, + finally: { value: 20568 }, + async: { value: 209007 }, + await: { value: 209008 }, + class: { value: 86096 }, + const: { value: 86092 }, + constructor: { value: 12401 }, + debugger: { value: 20562 }, + export: { value: 20566 }, + extends: { value: 20567 }, + false: { value: 86021 }, + from: { value: 12404 }, + get: { value: 12402 }, + implements: { value: 36966 }, + import: { value: 86108 }, + interface: { value: 36967 }, + let: { value: 241739 }, + null: { value: 86023 }, + of: { value: 274549 }, + package: { value: 36968 }, + private: { value: 36969 }, + protected: { value: 36970 }, + public: { value: 36971 }, + set: { value: 12403 }, + static: { value: 36972 }, + super: { value: 86111 }, + true: { value: 86022 }, + with: { value: 20581 }, + yield: { value: 241773 }, + enum: { value: 86134 }, + eval: { value: 537079927 }, + as: { value: 77934 }, + arguments: { value: 537079928 }, + target: { value: 143494 }, + meta: { value: 143495 }, + }); + + function scanIdentifier(parser, context, isValidAsKeyword) { + while (isIdPart[advanceChar(parser)]) { } + parser.tokenValue = parser.source.slice(parser.tokenPos, parser.index); + return parser.currentChar !== 92 && parser.currentChar < 0x7e + ? descKeywordTable[parser.tokenValue] || 208897 + : scanIdentifierSlowCase(parser, context, 0, isValidAsKeyword); + } + function scanUnicodeIdentifier(parser, context) { + const cookedChar = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(cookedChar)) + report(parser, 4); + parser.tokenValue = fromCodePoint(cookedChar); + return scanIdentifierSlowCase(parser, context, 1, CharTypes[cookedChar] & 4); + } + function scanIdentifierSlowCase(parser, context, hasEscape, isValidAsKeyword) { + let start = parser.index; + while (parser.index < parser.end) { + if (parser.currentChar === 92) { + parser.tokenValue += parser.source.slice(start, parser.index); + hasEscape = 1; + const code = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(code)) + report(parser, 4); + isValidAsKeyword = isValidAsKeyword && CharTypes[code] & 4; + parser.tokenValue += fromCodePoint(code); + start = parser.index; + } + else if (isIdentifierPart(parser.currentChar) || consumeMultiUnitCodePoint(parser, parser.currentChar)) { + advanceChar(parser); + } + else { + break; + } + } + if (parser.index <= parser.end) { + parser.tokenValue += parser.source.slice(start, parser.index); + } + const length = parser.tokenValue.length; + if (isValidAsKeyword && length >= 2 && length <= 11) { + const token = descKeywordTable[parser.tokenValue]; + if (token === void 0) + return 208897; + if (!hasEscape) + return token; + if (context & 1024) { + return token === 209008 && (context & (2048 | 4194304)) === 0 + ? token + : token === 36972 + ? 122 + : (token & 36864) === 36864 + ? 122 + : 121; + } + if (context & 1073741824 && + (context & 8192) === 0 && + (token & 20480) === 20480) + return token; + if (token === 241773) { + return context & 1073741824 + ? 143483 + : context & 2097152 + ? 121 + : token; + } + return token === 209007 && context & 1073741824 + ? 143483 + : (token & 36864) === 36864 + ? token + : token === 209008 && (context & 4194304) === 0 + ? token + : 121; + } + return 208897; + } + function scanPrivateIdentifier(parser) { + if (!isIdentifierStart(advanceChar(parser))) + report(parser, 93); + return 131; + } + function scanIdentifierUnicodeEscape(parser) { + if (parser.source.charCodeAt(parser.index + 1) !== 117) { + report(parser, 4); + } + parser.currentChar = parser.source.charCodeAt((parser.index += 2)); + return scanUnicodeEscape(parser); + } + function scanUnicodeEscape(parser) { + let codePoint = 0; + const char = parser.currentChar; + if (char === 123) { + const begin = parser.index - 2; + while (CharTypes[advanceChar(parser)] & 64) { + codePoint = (codePoint << 4) | toHex(parser.currentChar); + if (codePoint > 1114111) + reportScannerError(begin, parser.line, parser.index + 1, 101); + } + if (parser.currentChar !== 125) { + reportScannerError(begin, parser.line, parser.index - 1, 6); + } + advanceChar(parser); + return codePoint; + } + if ((CharTypes[char] & 64) === 0) + report(parser, 6); + const char2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[char2] & 64) === 0) + report(parser, 6); + const char3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[char3] & 64) === 0) + report(parser, 6); + const char4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[char4] & 64) === 0) + report(parser, 6); + codePoint = (toHex(char) << 12) | (toHex(char2) << 8) | (toHex(char3) << 4) | toHex(char4); + parser.currentChar = parser.source.charCodeAt((parser.index += 4)); + return codePoint; + } + + const TokenLookup = [ + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 136, + 128, + 128, + 130, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 16842800, + 134283267, + 131, + 208897, + 8457015, + 8455751, + 134283267, + 67174411, + 16, + 8457014, + 25233970, + 18, + 25233971, + 67108877, + 8457016, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 21, + 1074790417, + 8456258, + 1077936157, + 8456259, + 22, + 133, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 69271571, + 137, + 20, + 8455497, + 208897, + 132, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 208897, + 4096, + 208897, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 4096, + 4096, + 208897, + 4096, + 4096, + 208897, + 4096, + 4096, + 2162700, + 8455240, + 1074790415, + 16842801, + 129 + ]; + function nextToken(parser, context) { + parser.flags = (parser.flags | 1) ^ 1; + parser.startPos = parser.index; + parser.startColumn = parser.column; + parser.startLine = parser.line; + parser.token = scanSingleToken(parser, context, 0); + if (parser.onToken && parser.token !== 1048576) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onToken(convertTokenType(parser.token), parser.tokenPos, parser.index, loc); + } + } + function scanSingleToken(parser, context, state) { + const isStartOfLine = parser.index === 0; + const source = parser.source; + let startPos = parser.index; + let startLine = parser.line; + let startColumn = parser.column; + while (parser.index < parser.end) { + parser.tokenPos = parser.index; + parser.colPos = parser.column; + parser.linePos = parser.line; + let char = parser.currentChar; + if (char <= 0x7e) { + const token = TokenLookup[char]; + switch (token) { + case 67174411: + case 16: + case 2162700: + case 1074790415: + case 69271571: + case 20: + case 21: + case 1074790417: + case 18: + case 16842801: + case 133: + case 129: + advanceChar(parser); + return token; + case 208897: + return scanIdentifier(parser, context, 0); + case 4096: + return scanIdentifier(parser, context, 1); + case 134283266: + return scanNumber(parser, context, 16 | 128); + case 134283267: + return scanString(parser, context, char); + case 132: + return scanTemplate(parser, context); + case 137: + return scanUnicodeIdentifier(parser, context); + case 131: + return scanPrivateIdentifier(parser); + case 128: + advanceChar(parser); + break; + case 130: + state |= 1 | 4; + scanNewLine(parser); + break; + case 136: + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + break; + case 8456258: + let ch = advanceChar(parser); + if (parser.index < parser.end) { + if (ch === 60) { + if (parser.index < parser.end && advanceChar(parser) === 61) { + advanceChar(parser); + return 4194334; + } + return 8456516; + } + else if (ch === 61) { + advanceChar(parser); + return 8456000; + } + if (ch === 33) { + const index = parser.index + 1; + if (index + 1 < parser.end && + source.charCodeAt(index) === 45 && + source.charCodeAt(index + 1) == 45) { + parser.column += 3; + parser.currentChar = source.charCodeAt((parser.index += 3)); + state = skipSingleHTMLComment(parser, source, state, context, 2, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 8456258; + } + if (ch === 47) { + if ((context & 16) < 1) + return 8456258; + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (ch === 42 || ch === 47) + break; + } + advanceChar(parser); + return 25; + } + } + return 8456258; + case 1077936157: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 8455996; + } + return 8455998; + } + if (ch === 62) { + advanceChar(parser); + return 10; + } + return 1077936157; + } + case 16842800: + if (advanceChar(parser) !== 61) { + return 16842800; + } + if (advanceChar(parser) !== 61) { + return 8455999; + } + advanceChar(parser); + return 8455997; + case 8457015: + if (advanceChar(parser) !== 61) + return 8457015; + advanceChar(parser); + return 4194342; + case 8457014: { + advanceChar(parser); + if (parser.index >= parser.end) + return 8457014; + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 4194340; + } + if (ch !== 42) + return 8457014; + if (advanceChar(parser) !== 61) + return 8457273; + advanceChar(parser); + return 4194337; + } + case 8455497: + if (advanceChar(parser) !== 61) + return 8455497; + advanceChar(parser); + return 4194343; + case 25233970: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 43) { + advanceChar(parser); + return 33619995; + } + if (ch === 61) { + advanceChar(parser); + return 4194338; + } + return 25233970; + } + case 25233971: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 45) { + advanceChar(parser); + if ((state & 1 || isStartOfLine) && parser.currentChar === 62) { + if ((context & 256) === 0) + report(parser, 108); + advanceChar(parser); + state = skipSingleHTMLComment(parser, source, state, context, 3, startPos, startLine, startColumn); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 33619996; + } + if (ch === 61) { + advanceChar(parser); + return 4194339; + } + return 25233971; + } + case 8457016: { + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 47) { + advanceChar(parser); + state = skipSingleLineComment(parser, source, state, 0, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (ch === 42) { + advanceChar(parser); + state = skipMultiLineComment(parser, source, state); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (context & 32768) { + return scanRegularExpression(parser, context); + } + if (ch === 61) { + advanceChar(parser); + return 4259877; + } + } + return 8457016; + } + case 67108877: + const next = advanceChar(parser); + if (next >= 48 && next <= 57) + return scanNumber(parser, context, 64 | 16); + if (next === 46) { + const index = parser.index + 1; + if (index < parser.end && source.charCodeAt(index) === 46) { + parser.column += 2; + parser.currentChar = source.charCodeAt((parser.index += 2)); + return 14; + } + } + return 67108877; + case 8455240: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 124) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194346; + } + return 8979003; + } + if (ch === 61) { + advanceChar(parser); + return 4194344; + } + return 8455240; + } + case 8456259: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 8456001; + } + if (ch !== 62) + return 8456259; + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 62) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 4194336; + } + return 8456518; + } + if (ch === 61) { + advanceChar(parser); + return 4194335; + } + } + return 8456517; + } + case 8455751: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 38) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194347; + } + return 8979258; + } + if (ch === 61) { + advanceChar(parser); + return 4194345; + } + return 8455751; + } + case 22: { + let ch = advanceChar(parser); + if (ch === 63) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194348; + } + return 276889982; + } + if (ch === 46) { + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (!(ch >= 48 && ch <= 57)) { + advanceChar(parser); + return 67108991; + } + } + } + return 22; + } + } + } + else { + if ((char ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + continue; + } + if ((char & 0xfc00) === 0xd800 || ((unicodeLookup[(char >>> 5) + 34816] >>> char) & 31 & 1) !== 0) { + if ((char & 0xfc00) === 0xdc00) { + char = ((char & 0x3ff) << 10) | (char & 0x3ff) | 0x10000; + if (((unicodeLookup[(char >>> 5) + 0] >>> char) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(char)); + } + parser.index++; + parser.currentChar = char; + } + parser.column++; + parser.tokenValue = ''; + return scanIdentifierSlowCase(parser, context, 0, 0); + } + if (isExoticECMAScriptWhitespace(char)) { + advanceChar(parser); + continue; + } + report(parser, 18, fromCodePoint(char)); + } + } + return 1048576; + } + + const entities = { + AElig: '\u00C6', + AMP: '\u0026', + Aacute: '\u00C1', + Abreve: '\u0102', + Acirc: '\u00C2', + Acy: '\u0410', + Afr: '\uD835\uDD04', + Agrave: '\u00C0', + Alpha: '\u0391', + Amacr: '\u0100', + And: '\u2A53', + Aogon: '\u0104', + Aopf: '\uD835\uDD38', + ApplyFunction: '\u2061', + Aring: '\u00C5', + Ascr: '\uD835\uDC9C', + Assign: '\u2254', + Atilde: '\u00C3', + Auml: '\u00C4', + Backslash: '\u2216', + Barv: '\u2AE7', + Barwed: '\u2306', + Bcy: '\u0411', + Because: '\u2235', + Bernoullis: '\u212C', + Beta: '\u0392', + Bfr: '\uD835\uDD05', + Bopf: '\uD835\uDD39', + Breve: '\u02D8', + Bscr: '\u212C', + Bumpeq: '\u224E', + CHcy: '\u0427', + COPY: '\u00A9', + Cacute: '\u0106', + Cap: '\u22D2', + CapitalDifferentialD: '\u2145', + Cayleys: '\u212D', + Ccaron: '\u010C', + Ccedil: '\u00C7', + Ccirc: '\u0108', + Cconint: '\u2230', + Cdot: '\u010A', + Cedilla: '\u00B8', + CenterDot: '\u00B7', + Cfr: '\u212D', + Chi: '\u03A7', + CircleDot: '\u2299', + CircleMinus: '\u2296', + CirclePlus: '\u2295', + CircleTimes: '\u2297', + ClockwiseContourIntegral: '\u2232', + CloseCurlyDoubleQuote: '\u201D', + CloseCurlyQuote: '\u2019', + Colon: '\u2237', + Colone: '\u2A74', + Congruent: '\u2261', + Conint: '\u222F', + ContourIntegral: '\u222E', + Copf: '\u2102', + Coproduct: '\u2210', + CounterClockwiseContourIntegral: '\u2233', + Cross: '\u2A2F', + Cscr: '\uD835\uDC9E', + Cup: '\u22D3', + CupCap: '\u224D', + DD: '\u2145', + DDotrahd: '\u2911', + DJcy: '\u0402', + DScy: '\u0405', + DZcy: '\u040F', + Dagger: '\u2021', + Darr: '\u21A1', + Dashv: '\u2AE4', + Dcaron: '\u010E', + Dcy: '\u0414', + Del: '\u2207', + Delta: '\u0394', + Dfr: '\uD835\uDD07', + DiacriticalAcute: '\u00B4', + DiacriticalDot: '\u02D9', + DiacriticalDoubleAcute: '\u02DD', + DiacriticalGrave: '\u0060', + DiacriticalTilde: '\u02DC', + Diamond: '\u22C4', + DifferentialD: '\u2146', + Dopf: '\uD835\uDD3B', + Dot: '\u00A8', + DotDot: '\u20DC', + DotEqual: '\u2250', + DoubleContourIntegral: '\u222F', + DoubleDot: '\u00A8', + DoubleDownArrow: '\u21D3', + DoubleLeftArrow: '\u21D0', + DoubleLeftRightArrow: '\u21D4', + DoubleLeftTee: '\u2AE4', + DoubleLongLeftArrow: '\u27F8', + DoubleLongLeftRightArrow: '\u27FA', + DoubleLongRightArrow: '\u27F9', + DoubleRightArrow: '\u21D2', + DoubleRightTee: '\u22A8', + DoubleUpArrow: '\u21D1', + DoubleUpDownArrow: '\u21D5', + DoubleVerticalBar: '\u2225', + DownArrow: '\u2193', + DownArrowBar: '\u2913', + DownArrowUpArrow: '\u21F5', + DownBreve: '\u0311', + DownLeftRightVector: '\u2950', + DownLeftTeeVector: '\u295E', + DownLeftVector: '\u21BD', + DownLeftVectorBar: '\u2956', + DownRightTeeVector: '\u295F', + DownRightVector: '\u21C1', + DownRightVectorBar: '\u2957', + DownTee: '\u22A4', + DownTeeArrow: '\u21A7', + Downarrow: '\u21D3', + Dscr: '\uD835\uDC9F', + Dstrok: '\u0110', + ENG: '\u014A', + ETH: '\u00D0', + Eacute: '\u00C9', + Ecaron: '\u011A', + Ecirc: '\u00CA', + Ecy: '\u042D', + Edot: '\u0116', + Efr: '\uD835\uDD08', + Egrave: '\u00C8', + Element: '\u2208', + Emacr: '\u0112', + EmptySmallSquare: '\u25FB', + EmptyVerySmallSquare: '\u25AB', + Eogon: '\u0118', + Eopf: '\uD835\uDD3C', + Epsilon: '\u0395', + Equal: '\u2A75', + EqualTilde: '\u2242', + Equilibrium: '\u21CC', + Escr: '\u2130', + Esim: '\u2A73', + Eta: '\u0397', + Euml: '\u00CB', + Exists: '\u2203', + ExponentialE: '\u2147', + Fcy: '\u0424', + Ffr: '\uD835\uDD09', + FilledSmallSquare: '\u25FC', + FilledVerySmallSquare: '\u25AA', + Fopf: '\uD835\uDD3D', + ForAll: '\u2200', + Fouriertrf: '\u2131', + Fscr: '\u2131', + GJcy: '\u0403', + GT: '\u003E', + Gamma: '\u0393', + Gammad: '\u03DC', + Gbreve: '\u011E', + Gcedil: '\u0122', + Gcirc: '\u011C', + Gcy: '\u0413', + Gdot: '\u0120', + Gfr: '\uD835\uDD0A', + Gg: '\u22D9', + Gopf: '\uD835\uDD3E', + GreaterEqual: '\u2265', + GreaterEqualLess: '\u22DB', + GreaterFullEqual: '\u2267', + GreaterGreater: '\u2AA2', + GreaterLess: '\u2277', + GreaterSlantEqual: '\u2A7E', + GreaterTilde: '\u2273', + Gscr: '\uD835\uDCA2', + Gt: '\u226B', + HARDcy: '\u042A', + Hacek: '\u02C7', + Hat: '\u005E', + Hcirc: '\u0124', + Hfr: '\u210C', + HilbertSpace: '\u210B', + Hopf: '\u210D', + HorizontalLine: '\u2500', + Hscr: '\u210B', + Hstrok: '\u0126', + HumpDownHump: '\u224E', + HumpEqual: '\u224F', + IEcy: '\u0415', + IJlig: '\u0132', + IOcy: '\u0401', + Iacute: '\u00CD', + Icirc: '\u00CE', + Icy: '\u0418', + Idot: '\u0130', + Ifr: '\u2111', + Igrave: '\u00CC', + Im: '\u2111', + Imacr: '\u012A', + ImaginaryI: '\u2148', + Implies: '\u21D2', + Int: '\u222C', + Integral: '\u222B', + Intersection: '\u22C2', + InvisibleComma: '\u2063', + InvisibleTimes: '\u2062', + Iogon: '\u012E', + Iopf: '\uD835\uDD40', + Iota: '\u0399', + Iscr: '\u2110', + Itilde: '\u0128', + Iukcy: '\u0406', + Iuml: '\u00CF', + Jcirc: '\u0134', + Jcy: '\u0419', + Jfr: '\uD835\uDD0D', + Jopf: '\uD835\uDD41', + Jscr: '\uD835\uDCA5', + Jsercy: '\u0408', + Jukcy: '\u0404', + KHcy: '\u0425', + KJcy: '\u040C', + Kappa: '\u039A', + Kcedil: '\u0136', + Kcy: '\u041A', + Kfr: '\uD835\uDD0E', + Kopf: '\uD835\uDD42', + Kscr: '\uD835\uDCA6', + LJcy: '\u0409', + LT: '\u003C', + Lacute: '\u0139', + Lambda: '\u039B', + Lang: '\u27EA', + Laplacetrf: '\u2112', + Larr: '\u219E', + Lcaron: '\u013D', + Lcedil: '\u013B', + Lcy: '\u041B', + LeftAngleBracket: '\u27E8', + LeftArrow: '\u2190', + LeftArrowBar: '\u21E4', + LeftArrowRightArrow: '\u21C6', + LeftCeiling: '\u2308', + LeftDoubleBracket: '\u27E6', + LeftDownTeeVector: '\u2961', + LeftDownVector: '\u21C3', + LeftDownVectorBar: '\u2959', + LeftFloor: '\u230A', + LeftRightArrow: '\u2194', + LeftRightVector: '\u294E', + LeftTee: '\u22A3', + LeftTeeArrow: '\u21A4', + LeftTeeVector: '\u295A', + LeftTriangle: '\u22B2', + LeftTriangleBar: '\u29CF', + LeftTriangleEqual: '\u22B4', + LeftUpDownVector: '\u2951', + LeftUpTeeVector: '\u2960', + LeftUpVector: '\u21BF', + LeftUpVectorBar: '\u2958', + LeftVector: '\u21BC', + LeftVectorBar: '\u2952', + Leftarrow: '\u21D0', + Leftrightarrow: '\u21D4', + LessEqualGreater: '\u22DA', + LessFullEqual: '\u2266', + LessGreater: '\u2276', + LessLess: '\u2AA1', + LessSlantEqual: '\u2A7D', + LessTilde: '\u2272', + Lfr: '\uD835\uDD0F', + Ll: '\u22D8', + Lleftarrow: '\u21DA', + Lmidot: '\u013F', + LongLeftArrow: '\u27F5', + LongLeftRightArrow: '\u27F7', + LongRightArrow: '\u27F6', + Longleftarrow: '\u27F8', + Longleftrightarrow: '\u27FA', + Longrightarrow: '\u27F9', + Lopf: '\uD835\uDD43', + LowerLeftArrow: '\u2199', + LowerRightArrow: '\u2198', + Lscr: '\u2112', + Lsh: '\u21B0', + Lstrok: '\u0141', + Lt: '\u226A', + Map: '\u2905', + Mcy: '\u041C', + MediumSpace: '\u205F', + Mellintrf: '\u2133', + Mfr: '\uD835\uDD10', + MinusPlus: '\u2213', + Mopf: '\uD835\uDD44', + Mscr: '\u2133', + Mu: '\u039C', + NJcy: '\u040A', + Nacute: '\u0143', + Ncaron: '\u0147', + Ncedil: '\u0145', + Ncy: '\u041D', + NegativeMediumSpace: '\u200B', + NegativeThickSpace: '\u200B', + NegativeThinSpace: '\u200B', + NegativeVeryThinSpace: '\u200B', + NestedGreaterGreater: '\u226B', + NestedLessLess: '\u226A', + NewLine: '\u000A', + Nfr: '\uD835\uDD11', + NoBreak: '\u2060', + NonBreakingSpace: '\u00A0', + Nopf: '\u2115', + Not: '\u2AEC', + NotCongruent: '\u2262', + NotCupCap: '\u226D', + NotDoubleVerticalBar: '\u2226', + NotElement: '\u2209', + NotEqual: '\u2260', + NotEqualTilde: '\u2242\u0338', + NotExists: '\u2204', + NotGreater: '\u226F', + NotGreaterEqual: '\u2271', + NotGreaterFullEqual: '\u2267\u0338', + NotGreaterGreater: '\u226B\u0338', + NotGreaterLess: '\u2279', + NotGreaterSlantEqual: '\u2A7E\u0338', + NotGreaterTilde: '\u2275', + NotHumpDownHump: '\u224E\u0338', + NotHumpEqual: '\u224F\u0338', + NotLeftTriangle: '\u22EA', + NotLeftTriangleBar: '\u29CF\u0338', + NotLeftTriangleEqual: '\u22EC', + NotLess: '\u226E', + NotLessEqual: '\u2270', + NotLessGreater: '\u2278', + NotLessLess: '\u226A\u0338', + NotLessSlantEqual: '\u2A7D\u0338', + NotLessTilde: '\u2274', + NotNestedGreaterGreater: '\u2AA2\u0338', + NotNestedLessLess: '\u2AA1\u0338', + NotPrecedes: '\u2280', + NotPrecedesEqual: '\u2AAF\u0338', + NotPrecedesSlantEqual: '\u22E0', + NotReverseElement: '\u220C', + NotRightTriangle: '\u22EB', + NotRightTriangleBar: '\u29D0\u0338', + NotRightTriangleEqual: '\u22ED', + NotSquareSubset: '\u228F\u0338', + NotSquareSubsetEqual: '\u22E2', + NotSquareSuperset: '\u2290\u0338', + NotSquareSupersetEqual: '\u22E3', + NotSubset: '\u2282\u20D2', + NotSubsetEqual: '\u2288', + NotSucceeds: '\u2281', + NotSucceedsEqual: '\u2AB0\u0338', + NotSucceedsSlantEqual: '\u22E1', + NotSucceedsTilde: '\u227F\u0338', + NotSuperset: '\u2283\u20D2', + NotSupersetEqual: '\u2289', + NotTilde: '\u2241', + NotTildeEqual: '\u2244', + NotTildeFullEqual: '\u2247', + NotTildeTilde: '\u2249', + NotVerticalBar: '\u2224', + Nscr: '\uD835\uDCA9', + Ntilde: '\u00D1', + Nu: '\u039D', + OElig: '\u0152', + Oacute: '\u00D3', + Ocirc: '\u00D4', + Ocy: '\u041E', + Odblac: '\u0150', + Ofr: '\uD835\uDD12', + Ograve: '\u00D2', + Omacr: '\u014C', + Omega: '\u03A9', + Omicron: '\u039F', + Oopf: '\uD835\uDD46', + OpenCurlyDoubleQuote: '\u201C', + OpenCurlyQuote: '\u2018', + Or: '\u2A54', + Oscr: '\uD835\uDCAA', + Oslash: '\u00D8', + Otilde: '\u00D5', + Otimes: '\u2A37', + Ouml: '\u00D6', + OverBar: '\u203E', + OverBrace: '\u23DE', + OverBracket: '\u23B4', + OverParenthesis: '\u23DC', + PartialD: '\u2202', + Pcy: '\u041F', + Pfr: '\uD835\uDD13', + Phi: '\u03A6', + Pi: '\u03A0', + PlusMinus: '\u00B1', + Poincareplane: '\u210C', + Popf: '\u2119', + Pr: '\u2ABB', + Precedes: '\u227A', + PrecedesEqual: '\u2AAF', + PrecedesSlantEqual: '\u227C', + PrecedesTilde: '\u227E', + Prime: '\u2033', + Product: '\u220F', + Proportion: '\u2237', + Proportional: '\u221D', + Pscr: '\uD835\uDCAB', + Psi: '\u03A8', + QUOT: '\u0022', + Qfr: '\uD835\uDD14', + Qopf: '\u211A', + Qscr: '\uD835\uDCAC', + RBarr: '\u2910', + REG: '\u00AE', + Racute: '\u0154', + Rang: '\u27EB', + Rarr: '\u21A0', + Rarrtl: '\u2916', + Rcaron: '\u0158', + Rcedil: '\u0156', + Rcy: '\u0420', + Re: '\u211C', + ReverseElement: '\u220B', + ReverseEquilibrium: '\u21CB', + ReverseUpEquilibrium: '\u296F', + Rfr: '\u211C', + Rho: '\u03A1', + RightAngleBracket: '\u27E9', + RightArrow: '\u2192', + RightArrowBar: '\u21E5', + RightArrowLeftArrow: '\u21C4', + RightCeiling: '\u2309', + RightDoubleBracket: '\u27E7', + RightDownTeeVector: '\u295D', + RightDownVector: '\u21C2', + RightDownVectorBar: '\u2955', + RightFloor: '\u230B', + RightTee: '\u22A2', + RightTeeArrow: '\u21A6', + RightTeeVector: '\u295B', + RightTriangle: '\u22B3', + RightTriangleBar: '\u29D0', + RightTriangleEqual: '\u22B5', + RightUpDownVector: '\u294F', + RightUpTeeVector: '\u295C', + RightUpVector: '\u21BE', + RightUpVectorBar: '\u2954', + RightVector: '\u21C0', + RightVectorBar: '\u2953', + Rightarrow: '\u21D2', + Ropf: '\u211D', + RoundImplies: '\u2970', + Rrightarrow: '\u21DB', + Rscr: '\u211B', + Rsh: '\u21B1', + RuleDelayed: '\u29F4', + SHCHcy: '\u0429', + SHcy: '\u0428', + SOFTcy: '\u042C', + Sacute: '\u015A', + Sc: '\u2ABC', + Scaron: '\u0160', + Scedil: '\u015E', + Scirc: '\u015C', + Scy: '\u0421', + Sfr: '\uD835\uDD16', + ShortDownArrow: '\u2193', + ShortLeftArrow: '\u2190', + ShortRightArrow: '\u2192', + ShortUpArrow: '\u2191', + Sigma: '\u03A3', + SmallCircle: '\u2218', + Sopf: '\uD835\uDD4A', + Sqrt: '\u221A', + Square: '\u25A1', + SquareIntersection: '\u2293', + SquareSubset: '\u228F', + SquareSubsetEqual: '\u2291', + SquareSuperset: '\u2290', + SquareSupersetEqual: '\u2292', + SquareUnion: '\u2294', + Sscr: '\uD835\uDCAE', + Star: '\u22C6', + Sub: '\u22D0', + Subset: '\u22D0', + SubsetEqual: '\u2286', + Succeeds: '\u227B', + SucceedsEqual: '\u2AB0', + SucceedsSlantEqual: '\u227D', + SucceedsTilde: '\u227F', + SuchThat: '\u220B', + Sum: '\u2211', + Sup: '\u22D1', + Superset: '\u2283', + SupersetEqual: '\u2287', + Supset: '\u22D1', + THORN: '\u00DE', + TRADE: '\u2122', + TSHcy: '\u040B', + TScy: '\u0426', + Tab: '\u0009', + Tau: '\u03A4', + Tcaron: '\u0164', + Tcedil: '\u0162', + Tcy: '\u0422', + Tfr: '\uD835\uDD17', + Therefore: '\u2234', + Theta: '\u0398', + ThickSpace: '\u205F\u200A', + ThinSpace: '\u2009', + Tilde: '\u223C', + TildeEqual: '\u2243', + TildeFullEqual: '\u2245', + TildeTilde: '\u2248', + Topf: '\uD835\uDD4B', + TripleDot: '\u20DB', + Tscr: '\uD835\uDCAF', + Tstrok: '\u0166', + Uacute: '\u00DA', + Uarr: '\u219F', + Uarrocir: '\u2949', + Ubrcy: '\u040E', + Ubreve: '\u016C', + Ucirc: '\u00DB', + Ucy: '\u0423', + Udblac: '\u0170', + Ufr: '\uD835\uDD18', + Ugrave: '\u00D9', + Umacr: '\u016A', + UnderBar: '\u005F', + UnderBrace: '\u23DF', + UnderBracket: '\u23B5', + UnderParenthesis: '\u23DD', + Union: '\u22C3', + UnionPlus: '\u228E', + Uogon: '\u0172', + Uopf: '\uD835\uDD4C', + UpArrow: '\u2191', + UpArrowBar: '\u2912', + UpArrowDownArrow: '\u21C5', + UpDownArrow: '\u2195', + UpEquilibrium: '\u296E', + UpTee: '\u22A5', + UpTeeArrow: '\u21A5', + Uparrow: '\u21D1', + Updownarrow: '\u21D5', + UpperLeftArrow: '\u2196', + UpperRightArrow: '\u2197', + Upsi: '\u03D2', + Upsilon: '\u03A5', + Uring: '\u016E', + Uscr: '\uD835\uDCB0', + Utilde: '\u0168', + Uuml: '\u00DC', + VDash: '\u22AB', + Vbar: '\u2AEB', + Vcy: '\u0412', + Vdash: '\u22A9', + Vdashl: '\u2AE6', + Vee: '\u22C1', + Verbar: '\u2016', + Vert: '\u2016', + VerticalBar: '\u2223', + VerticalLine: '\u007C', + VerticalSeparator: '\u2758', + VerticalTilde: '\u2240', + VeryThinSpace: '\u200A', + Vfr: '\uD835\uDD19', + Vopf: '\uD835\uDD4D', + Vscr: '\uD835\uDCB1', + Vvdash: '\u22AA', + Wcirc: '\u0174', + Wedge: '\u22C0', + Wfr: '\uD835\uDD1A', + Wopf: '\uD835\uDD4E', + Wscr: '\uD835\uDCB2', + Xfr: '\uD835\uDD1B', + Xi: '\u039E', + Xopf: '\uD835\uDD4F', + Xscr: '\uD835\uDCB3', + YAcy: '\u042F', + YIcy: '\u0407', + YUcy: '\u042E', + Yacute: '\u00DD', + Ycirc: '\u0176', + Ycy: '\u042B', + Yfr: '\uD835\uDD1C', + Yopf: '\uD835\uDD50', + Yscr: '\uD835\uDCB4', + Yuml: '\u0178', + ZHcy: '\u0416', + Zacute: '\u0179', + Zcaron: '\u017D', + Zcy: '\u0417', + Zdot: '\u017B', + ZeroWidthSpace: '\u200B', + Zeta: '\u0396', + Zfr: '\u2128', + Zopf: '\u2124', + Zscr: '\uD835\uDCB5', + aacute: '\u00E1', + abreve: '\u0103', + ac: '\u223E', + acE: '\u223E\u0333', + acd: '\u223F', + acirc: '\u00E2', + acute: '\u00B4', + acy: '\u0430', + aelig: '\u00E6', + af: '\u2061', + afr: '\uD835\uDD1E', + agrave: '\u00E0', + alefsym: '\u2135', + aleph: '\u2135', + alpha: '\u03B1', + amacr: '\u0101', + amalg: '\u2A3F', + amp: '\u0026', + and: '\u2227', + andand: '\u2A55', + andd: '\u2A5C', + andslope: '\u2A58', + andv: '\u2A5A', + ang: '\u2220', + ange: '\u29A4', + angle: '\u2220', + angmsd: '\u2221', + angmsdaa: '\u29A8', + angmsdab: '\u29A9', + angmsdac: '\u29AA', + angmsdad: '\u29AB', + angmsdae: '\u29AC', + angmsdaf: '\u29AD', + angmsdag: '\u29AE', + angmsdah: '\u29AF', + angrt: '\u221F', + angrtvb: '\u22BE', + angrtvbd: '\u299D', + angsph: '\u2222', + angst: '\u00C5', + angzarr: '\u237C', + aogon: '\u0105', + aopf: '\uD835\uDD52', + ap: '\u2248', + apE: '\u2A70', + apacir: '\u2A6F', + ape: '\u224A', + apid: '\u224B', + apos: '\u0027', + approx: '\u2248', + approxeq: '\u224A', + aring: '\u00E5', + ascr: '\uD835\uDCB6', + ast: '\u002A', + asymp: '\u2248', + asympeq: '\u224D', + atilde: '\u00E3', + auml: '\u00E4', + awconint: '\u2233', + awint: '\u2A11', + bNot: '\u2AED', + backcong: '\u224C', + backepsilon: '\u03F6', + backprime: '\u2035', + backsim: '\u223D', + backsimeq: '\u22CD', + barvee: '\u22BD', + barwed: '\u2305', + barwedge: '\u2305', + bbrk: '\u23B5', + bbrktbrk: '\u23B6', + bcong: '\u224C', + bcy: '\u0431', + bdquo: '\u201E', + becaus: '\u2235', + because: '\u2235', + bemptyv: '\u29B0', + bepsi: '\u03F6', + bernou: '\u212C', + beta: '\u03B2', + beth: '\u2136', + between: '\u226C', + bfr: '\uD835\uDD1F', + bigcap: '\u22C2', + bigcirc: '\u25EF', + bigcup: '\u22C3', + bigodot: '\u2A00', + bigoplus: '\u2A01', + bigotimes: '\u2A02', + bigsqcup: '\u2A06', + bigstar: '\u2605', + bigtriangledown: '\u25BD', + bigtriangleup: '\u25B3', + biguplus: '\u2A04', + bigvee: '\u22C1', + bigwedge: '\u22C0', + bkarow: '\u290D', + blacklozenge: '\u29EB', + blacksquare: '\u25AA', + blacktriangle: '\u25B4', + blacktriangledown: '\u25BE', + blacktriangleleft: '\u25C2', + blacktriangleright: '\u25B8', + blank: '\u2423', + blk12: '\u2592', + blk14: '\u2591', + blk34: '\u2593', + block: '\u2588', + bne: '\u003D\u20E5', + bnequiv: '\u2261\u20E5', + bnot: '\u2310', + bopf: '\uD835\uDD53', + bot: '\u22A5', + bottom: '\u22A5', + bowtie: '\u22C8', + boxDL: '\u2557', + boxDR: '\u2554', + boxDl: '\u2556', + boxDr: '\u2553', + boxH: '\u2550', + boxHD: '\u2566', + boxHU: '\u2569', + boxHd: '\u2564', + boxHu: '\u2567', + boxUL: '\u255D', + boxUR: '\u255A', + boxUl: '\u255C', + boxUr: '\u2559', + boxV: '\u2551', + boxVH: '\u256C', + boxVL: '\u2563', + boxVR: '\u2560', + boxVh: '\u256B', + boxVl: '\u2562', + boxVr: '\u255F', + boxbox: '\u29C9', + boxdL: '\u2555', + boxdR: '\u2552', + boxdl: '\u2510', + boxdr: '\u250C', + boxh: '\u2500', + boxhD: '\u2565', + boxhU: '\u2568', + boxhd: '\u252C', + boxhu: '\u2534', + boxminus: '\u229F', + boxplus: '\u229E', + boxtimes: '\u22A0', + boxuL: '\u255B', + boxuR: '\u2558', + boxul: '\u2518', + boxur: '\u2514', + boxv: '\u2502', + boxvH: '\u256A', + boxvL: '\u2561', + boxvR: '\u255E', + boxvh: '\u253C', + boxvl: '\u2524', + boxvr: '\u251C', + bprime: '\u2035', + breve: '\u02D8', + brvbar: '\u00A6', + bscr: '\uD835\uDCB7', + bsemi: '\u204F', + bsim: '\u223D', + bsime: '\u22CD', + bsol: '\u005C', + bsolb: '\u29C5', + bsolhsub: '\u27C8', + bull: '\u2022', + bullet: '\u2022', + bump: '\u224E', + bumpE: '\u2AAE', + bumpe: '\u224F', + bumpeq: '\u224F', + cacute: '\u0107', + cap: '\u2229', + capand: '\u2A44', + capbrcup: '\u2A49', + capcap: '\u2A4B', + capcup: '\u2A47', + capdot: '\u2A40', + caps: '\u2229\uFE00', + caret: '\u2041', + caron: '\u02C7', + ccaps: '\u2A4D', + ccaron: '\u010D', + ccedil: '\u00E7', + ccirc: '\u0109', + ccups: '\u2A4C', + ccupssm: '\u2A50', + cdot: '\u010B', + cedil: '\u00B8', + cemptyv: '\u29B2', + cent: '\u00A2', + centerdot: '\u00B7', + cfr: '\uD835\uDD20', + chcy: '\u0447', + check: '\u2713', + checkmark: '\u2713', + chi: '\u03C7', + cir: '\u25CB', + cirE: '\u29C3', + circ: '\u02C6', + circeq: '\u2257', + circlearrowleft: '\u21BA', + circlearrowright: '\u21BB', + circledR: '\u00AE', + circledS: '\u24C8', + circledast: '\u229B', + circledcirc: '\u229A', + circleddash: '\u229D', + cire: '\u2257', + cirfnint: '\u2A10', + cirmid: '\u2AEF', + cirscir: '\u29C2', + clubs: '\u2663', + clubsuit: '\u2663', + colon: '\u003A', + colone: '\u2254', + coloneq: '\u2254', + comma: '\u002C', + commat: '\u0040', + comp: '\u2201', + compfn: '\u2218', + complement: '\u2201', + complexes: '\u2102', + cong: '\u2245', + congdot: '\u2A6D', + conint: '\u222E', + copf: '\uD835\uDD54', + coprod: '\u2210', + copy: '\u00A9', + copysr: '\u2117', + crarr: '\u21B5', + cross: '\u2717', + cscr: '\uD835\uDCB8', + csub: '\u2ACF', + csube: '\u2AD1', + csup: '\u2AD0', + csupe: '\u2AD2', + ctdot: '\u22EF', + cudarrl: '\u2938', + cudarrr: '\u2935', + cuepr: '\u22DE', + cuesc: '\u22DF', + cularr: '\u21B6', + cularrp: '\u293D', + cup: '\u222A', + cupbrcap: '\u2A48', + cupcap: '\u2A46', + cupcup: '\u2A4A', + cupdot: '\u228D', + cupor: '\u2A45', + cups: '\u222A\uFE00', + curarr: '\u21B7', + curarrm: '\u293C', + curlyeqprec: '\u22DE', + curlyeqsucc: '\u22DF', + curlyvee: '\u22CE', + curlywedge: '\u22CF', + curren: '\u00A4', + curvearrowleft: '\u21B6', + curvearrowright: '\u21B7', + cuvee: '\u22CE', + cuwed: '\u22CF', + cwconint: '\u2232', + cwint: '\u2231', + cylcty: '\u232D', + dArr: '\u21D3', + dHar: '\u2965', + dagger: '\u2020', + daleth: '\u2138', + darr: '\u2193', + dash: '\u2010', + dashv: '\u22A3', + dbkarow: '\u290F', + dblac: '\u02DD', + dcaron: '\u010F', + dcy: '\u0434', + dd: '\u2146', + ddagger: '\u2021', + ddarr: '\u21CA', + ddotseq: '\u2A77', + deg: '\u00B0', + delta: '\u03B4', + demptyv: '\u29B1', + dfisht: '\u297F', + dfr: '\uD835\uDD21', + dharl: '\u21C3', + dharr: '\u21C2', + diam: '\u22C4', + diamond: '\u22C4', + diamondsuit: '\u2666', + diams: '\u2666', + die: '\u00A8', + digamma: '\u03DD', + disin: '\u22F2', + div: '\u00F7', + divide: '\u00F7', + divideontimes: '\u22C7', + divonx: '\u22C7', + djcy: '\u0452', + dlcorn: '\u231E', + dlcrop: '\u230D', + dollar: '\u0024', + dopf: '\uD835\uDD55', + dot: '\u02D9', + doteq: '\u2250', + doteqdot: '\u2251', + dotminus: '\u2238', + dotplus: '\u2214', + dotsquare: '\u22A1', + doublebarwedge: '\u2306', + downarrow: '\u2193', + downdownarrows: '\u21CA', + downharpoonleft: '\u21C3', + downharpoonright: '\u21C2', + drbkarow: '\u2910', + drcorn: '\u231F', + drcrop: '\u230C', + dscr: '\uD835\uDCB9', + dscy: '\u0455', + dsol: '\u29F6', + dstrok: '\u0111', + dtdot: '\u22F1', + dtri: '\u25BF', + dtrif: '\u25BE', + duarr: '\u21F5', + duhar: '\u296F', + dwangle: '\u29A6', + dzcy: '\u045F', + dzigrarr: '\u27FF', + eDDot: '\u2A77', + eDot: '\u2251', + eacute: '\u00E9', + easter: '\u2A6E', + ecaron: '\u011B', + ecir: '\u2256', + ecirc: '\u00EA', + ecolon: '\u2255', + ecy: '\u044D', + edot: '\u0117', + ee: '\u2147', + efDot: '\u2252', + efr: '\uD835\uDD22', + eg: '\u2A9A', + egrave: '\u00E8', + egs: '\u2A96', + egsdot: '\u2A98', + el: '\u2A99', + elinters: '\u23E7', + ell: '\u2113', + els: '\u2A95', + elsdot: '\u2A97', + emacr: '\u0113', + empty: '\u2205', + emptyset: '\u2205', + emptyv: '\u2205', + emsp13: '\u2004', + emsp14: '\u2005', + emsp: '\u2003', + eng: '\u014B', + ensp: '\u2002', + eogon: '\u0119', + eopf: '\uD835\uDD56', + epar: '\u22D5', + eparsl: '\u29E3', + eplus: '\u2A71', + epsi: '\u03B5', + epsilon: '\u03B5', + epsiv: '\u03F5', + eqcirc: '\u2256', + eqcolon: '\u2255', + eqsim: '\u2242', + eqslantgtr: '\u2A96', + eqslantless: '\u2A95', + equals: '\u003D', + equest: '\u225F', + equiv: '\u2261', + equivDD: '\u2A78', + eqvparsl: '\u29E5', + erDot: '\u2253', + erarr: '\u2971', + escr: '\u212F', + esdot: '\u2250', + esim: '\u2242', + eta: '\u03B7', + eth: '\u00F0', + euml: '\u00EB', + euro: '\u20AC', + excl: '\u0021', + exist: '\u2203', + expectation: '\u2130', + exponentiale: '\u2147', + fallingdotseq: '\u2252', + fcy: '\u0444', + female: '\u2640', + ffilig: '\uFB03', + fflig: '\uFB00', + ffllig: '\uFB04', + ffr: '\uD835\uDD23', + filig: '\uFB01', + fjlig: '\u0066\u006A', + flat: '\u266D', + fllig: '\uFB02', + fltns: '\u25B1', + fnof: '\u0192', + fopf: '\uD835\uDD57', + forall: '\u2200', + fork: '\u22D4', + forkv: '\u2AD9', + fpartint: '\u2A0D', + frac12: '\u00BD', + frac13: '\u2153', + frac14: '\u00BC', + frac15: '\u2155', + frac16: '\u2159', + frac18: '\u215B', + frac23: '\u2154', + frac25: '\u2156', + frac34: '\u00BE', + frac35: '\u2157', + frac38: '\u215C', + frac45: '\u2158', + frac56: '\u215A', + frac58: '\u215D', + frac78: '\u215E', + frasl: '\u2044', + frown: '\u2322', + fscr: '\uD835\uDCBB', + gE: '\u2267', + gEl: '\u2A8C', + gacute: '\u01F5', + gamma: '\u03B3', + gammad: '\u03DD', + gap: '\u2A86', + gbreve: '\u011F', + gcirc: '\u011D', + gcy: '\u0433', + gdot: '\u0121', + ge: '\u2265', + gel: '\u22DB', + geq: '\u2265', + geqq: '\u2267', + geqslant: '\u2A7E', + ges: '\u2A7E', + gescc: '\u2AA9', + gesdot: '\u2A80', + gesdoto: '\u2A82', + gesdotol: '\u2A84', + gesl: '\u22DB\uFE00', + gesles: '\u2A94', + gfr: '\uD835\uDD24', + gg: '\u226B', + ggg: '\u22D9', + gimel: '\u2137', + gjcy: '\u0453', + gl: '\u2277', + glE: '\u2A92', + gla: '\u2AA5', + glj: '\u2AA4', + gnE: '\u2269', + gnap: '\u2A8A', + gnapprox: '\u2A8A', + gne: '\u2A88', + gneq: '\u2A88', + gneqq: '\u2269', + gnsim: '\u22E7', + gopf: '\uD835\uDD58', + grave: '\u0060', + gscr: '\u210A', + gsim: '\u2273', + gsime: '\u2A8E', + gsiml: '\u2A90', + gt: '\u003E', + gtcc: '\u2AA7', + gtcir: '\u2A7A', + gtdot: '\u22D7', + gtlPar: '\u2995', + gtquest: '\u2A7C', + gtrapprox: '\u2A86', + gtrarr: '\u2978', + gtrdot: '\u22D7', + gtreqless: '\u22DB', + gtreqqless: '\u2A8C', + gtrless: '\u2277', + gtrsim: '\u2273', + gvertneqq: '\u2269\uFE00', + gvnE: '\u2269\uFE00', + hArr: '\u21D4', + hairsp: '\u200A', + half: '\u00BD', + hamilt: '\u210B', + hardcy: '\u044A', + harr: '\u2194', + harrcir: '\u2948', + harrw: '\u21AD', + hbar: '\u210F', + hcirc: '\u0125', + hearts: '\u2665', + heartsuit: '\u2665', + hellip: '\u2026', + hercon: '\u22B9', + hfr: '\uD835\uDD25', + hksearow: '\u2925', + hkswarow: '\u2926', + hoarr: '\u21FF', + homtht: '\u223B', + hookleftarrow: '\u21A9', + hookrightarrow: '\u21AA', + hopf: '\uD835\uDD59', + horbar: '\u2015', + hscr: '\uD835\uDCBD', + hslash: '\u210F', + hstrok: '\u0127', + hybull: '\u2043', + hyphen: '\u2010', + iacute: '\u00ED', + ic: '\u2063', + icirc: '\u00EE', + icy: '\u0438', + iecy: '\u0435', + iexcl: '\u00A1', + iff: '\u21D4', + ifr: '\uD835\uDD26', + igrave: '\u00EC', + ii: '\u2148', + iiiint: '\u2A0C', + iiint: '\u222D', + iinfin: '\u29DC', + iiota: '\u2129', + ijlig: '\u0133', + imacr: '\u012B', + image: '\u2111', + imagline: '\u2110', + imagpart: '\u2111', + imath: '\u0131', + imof: '\u22B7', + imped: '\u01B5', + in: '\u2208', + incare: '\u2105', + infin: '\u221E', + infintie: '\u29DD', + inodot: '\u0131', + int: '\u222B', + intcal: '\u22BA', + integers: '\u2124', + intercal: '\u22BA', + intlarhk: '\u2A17', + intprod: '\u2A3C', + iocy: '\u0451', + iogon: '\u012F', + iopf: '\uD835\uDD5A', + iota: '\u03B9', + iprod: '\u2A3C', + iquest: '\u00BF', + iscr: '\uD835\uDCBE', + isin: '\u2208', + isinE: '\u22F9', + isindot: '\u22F5', + isins: '\u22F4', + isinsv: '\u22F3', + isinv: '\u2208', + it: '\u2062', + itilde: '\u0129', + iukcy: '\u0456', + iuml: '\u00EF', + jcirc: '\u0135', + jcy: '\u0439', + jfr: '\uD835\uDD27', + jmath: '\u0237', + jopf: '\uD835\uDD5B', + jscr: '\uD835\uDCBF', + jsercy: '\u0458', + jukcy: '\u0454', + kappa: '\u03BA', + kappav: '\u03F0', + kcedil: '\u0137', + kcy: '\u043A', + kfr: '\uD835\uDD28', + kgreen: '\u0138', + khcy: '\u0445', + kjcy: '\u045C', + kopf: '\uD835\uDD5C', + kscr: '\uD835\uDCC0', + lAarr: '\u21DA', + lArr: '\u21D0', + lAtail: '\u291B', + lBarr: '\u290E', + lE: '\u2266', + lEg: '\u2A8B', + lHar: '\u2962', + lacute: '\u013A', + laemptyv: '\u29B4', + lagran: '\u2112', + lambda: '\u03BB', + lang: '\u27E8', + langd: '\u2991', + langle: '\u27E8', + lap: '\u2A85', + laquo: '\u00AB', + larr: '\u2190', + larrb: '\u21E4', + larrbfs: '\u291F', + larrfs: '\u291D', + larrhk: '\u21A9', + larrlp: '\u21AB', + larrpl: '\u2939', + larrsim: '\u2973', + larrtl: '\u21A2', + lat: '\u2AAB', + latail: '\u2919', + late: '\u2AAD', + lates: '\u2AAD\uFE00', + lbarr: '\u290C', + lbbrk: '\u2772', + lbrace: '\u007B', + lbrack: '\u005B', + lbrke: '\u298B', + lbrksld: '\u298F', + lbrkslu: '\u298D', + lcaron: '\u013E', + lcedil: '\u013C', + lceil: '\u2308', + lcub: '\u007B', + lcy: '\u043B', + ldca: '\u2936', + ldquo: '\u201C', + ldquor: '\u201E', + ldrdhar: '\u2967', + ldrushar: '\u294B', + ldsh: '\u21B2', + le: '\u2264', + leftarrow: '\u2190', + leftarrowtail: '\u21A2', + leftharpoondown: '\u21BD', + leftharpoonup: '\u21BC', + leftleftarrows: '\u21C7', + leftrightarrow: '\u2194', + leftrightarrows: '\u21C6', + leftrightharpoons: '\u21CB', + leftrightsquigarrow: '\u21AD', + leftthreetimes: '\u22CB', + leg: '\u22DA', + leq: '\u2264', + leqq: '\u2266', + leqslant: '\u2A7D', + les: '\u2A7D', + lescc: '\u2AA8', + lesdot: '\u2A7F', + lesdoto: '\u2A81', + lesdotor: '\u2A83', + lesg: '\u22DA\uFE00', + lesges: '\u2A93', + lessapprox: '\u2A85', + lessdot: '\u22D6', + lesseqgtr: '\u22DA', + lesseqqgtr: '\u2A8B', + lessgtr: '\u2276', + lesssim: '\u2272', + lfisht: '\u297C', + lfloor: '\u230A', + lfr: '\uD835\uDD29', + lg: '\u2276', + lgE: '\u2A91', + lhard: '\u21BD', + lharu: '\u21BC', + lharul: '\u296A', + lhblk: '\u2584', + ljcy: '\u0459', + ll: '\u226A', + llarr: '\u21C7', + llcorner: '\u231E', + llhard: '\u296B', + lltri: '\u25FA', + lmidot: '\u0140', + lmoust: '\u23B0', + lmoustache: '\u23B0', + lnE: '\u2268', + lnap: '\u2A89', + lnapprox: '\u2A89', + lne: '\u2A87', + lneq: '\u2A87', + lneqq: '\u2268', + lnsim: '\u22E6', + loang: '\u27EC', + loarr: '\u21FD', + lobrk: '\u27E6', + longleftarrow: '\u27F5', + longleftrightarrow: '\u27F7', + longmapsto: '\u27FC', + longrightarrow: '\u27F6', + looparrowleft: '\u21AB', + looparrowright: '\u21AC', + lopar: '\u2985', + lopf: '\uD835\uDD5D', + loplus: '\u2A2D', + lotimes: '\u2A34', + lowast: '\u2217', + lowbar: '\u005F', + loz: '\u25CA', + lozenge: '\u25CA', + lozf: '\u29EB', + lpar: '\u0028', + lparlt: '\u2993', + lrarr: '\u21C6', + lrcorner: '\u231F', + lrhar: '\u21CB', + lrhard: '\u296D', + lrm: '\u200E', + lrtri: '\u22BF', + lsaquo: '\u2039', + lscr: '\uD835\uDCC1', + lsh: '\u21B0', + lsim: '\u2272', + lsime: '\u2A8D', + lsimg: '\u2A8F', + lsqb: '\u005B', + lsquo: '\u2018', + lsquor: '\u201A', + lstrok: '\u0142', + lt: '\u003C', + ltcc: '\u2AA6', + ltcir: '\u2A79', + ltdot: '\u22D6', + lthree: '\u22CB', + ltimes: '\u22C9', + ltlarr: '\u2976', + ltquest: '\u2A7B', + ltrPar: '\u2996', + ltri: '\u25C3', + ltrie: '\u22B4', + ltrif: '\u25C2', + lurdshar: '\u294A', + luruhar: '\u2966', + lvertneqq: '\u2268\uFE00', + lvnE: '\u2268\uFE00', + mDDot: '\u223A', + macr: '\u00AF', + male: '\u2642', + malt: '\u2720', + maltese: '\u2720', + map: '\u21A6', + mapsto: '\u21A6', + mapstodown: '\u21A7', + mapstoleft: '\u21A4', + mapstoup: '\u21A5', + marker: '\u25AE', + mcomma: '\u2A29', + mcy: '\u043C', + mdash: '\u2014', + measuredangle: '\u2221', + mfr: '\uD835\uDD2A', + mho: '\u2127', + micro: '\u00B5', + mid: '\u2223', + midast: '\u002A', + midcir: '\u2AF0', + middot: '\u00B7', + minus: '\u2212', + minusb: '\u229F', + minusd: '\u2238', + minusdu: '\u2A2A', + mlcp: '\u2ADB', + mldr: '\u2026', + mnplus: '\u2213', + models: '\u22A7', + mopf: '\uD835\uDD5E', + mp: '\u2213', + mscr: '\uD835\uDCC2', + mstpos: '\u223E', + mu: '\u03BC', + multimap: '\u22B8', + mumap: '\u22B8', + nGg: '\u22D9\u0338', + nGt: '\u226B\u20D2', + nGtv: '\u226B\u0338', + nLeftarrow: '\u21CD', + nLeftrightarrow: '\u21CE', + nLl: '\u22D8\u0338', + nLt: '\u226A\u20D2', + nLtv: '\u226A\u0338', + nRightarrow: '\u21CF', + nVDash: '\u22AF', + nVdash: '\u22AE', + nabla: '\u2207', + nacute: '\u0144', + nang: '\u2220\u20D2', + nap: '\u2249', + napE: '\u2A70\u0338', + napid: '\u224B\u0338', + napos: '\u0149', + napprox: '\u2249', + natur: '\u266E', + natural: '\u266E', + naturals: '\u2115', + nbsp: '\u00A0', + nbump: '\u224E\u0338', + nbumpe: '\u224F\u0338', + ncap: '\u2A43', + ncaron: '\u0148', + ncedil: '\u0146', + ncong: '\u2247', + ncongdot: '\u2A6D\u0338', + ncup: '\u2A42', + ncy: '\u043D', + ndash: '\u2013', + ne: '\u2260', + neArr: '\u21D7', + nearhk: '\u2924', + nearr: '\u2197', + nearrow: '\u2197', + nedot: '\u2250\u0338', + nequiv: '\u2262', + nesear: '\u2928', + nesim: '\u2242\u0338', + nexist: '\u2204', + nexists: '\u2204', + nfr: '\uD835\uDD2B', + ngE: '\u2267\u0338', + nge: '\u2271', + ngeq: '\u2271', + ngeqq: '\u2267\u0338', + ngeqslant: '\u2A7E\u0338', + nges: '\u2A7E\u0338', + ngsim: '\u2275', + ngt: '\u226F', + ngtr: '\u226F', + nhArr: '\u21CE', + nharr: '\u21AE', + nhpar: '\u2AF2', + ni: '\u220B', + nis: '\u22FC', + nisd: '\u22FA', + niv: '\u220B', + njcy: '\u045A', + nlArr: '\u21CD', + nlE: '\u2266\u0338', + nlarr: '\u219A', + nldr: '\u2025', + nle: '\u2270', + nleftarrow: '\u219A', + nleftrightarrow: '\u21AE', + nleq: '\u2270', + nleqq: '\u2266\u0338', + nleqslant: '\u2A7D\u0338', + nles: '\u2A7D\u0338', + nless: '\u226E', + nlsim: '\u2274', + nlt: '\u226E', + nltri: '\u22EA', + nltrie: '\u22EC', + nmid: '\u2224', + nopf: '\uD835\uDD5F', + not: '\u00AC', + notin: '\u2209', + notinE: '\u22F9\u0338', + notindot: '\u22F5\u0338', + notinva: '\u2209', + notinvb: '\u22F7', + notinvc: '\u22F6', + notni: '\u220C', + notniva: '\u220C', + notnivb: '\u22FE', + notnivc: '\u22FD', + npar: '\u2226', + nparallel: '\u2226', + nparsl: '\u2AFD\u20E5', + npart: '\u2202\u0338', + npolint: '\u2A14', + npr: '\u2280', + nprcue: '\u22E0', + npre: '\u2AAF\u0338', + nprec: '\u2280', + npreceq: '\u2AAF\u0338', + nrArr: '\u21CF', + nrarr: '\u219B', + nrarrc: '\u2933\u0338', + nrarrw: '\u219D\u0338', + nrightarrow: '\u219B', + nrtri: '\u22EB', + nrtrie: '\u22ED', + nsc: '\u2281', + nsccue: '\u22E1', + nsce: '\u2AB0\u0338', + nscr: '\uD835\uDCC3', + nshortmid: '\u2224', + nshortparallel: '\u2226', + nsim: '\u2241', + nsime: '\u2244', + nsimeq: '\u2244', + nsmid: '\u2224', + nspar: '\u2226', + nsqsube: '\u22E2', + nsqsupe: '\u22E3', + nsub: '\u2284', + nsubE: '\u2AC5\u0338', + nsube: '\u2288', + nsubset: '\u2282\u20D2', + nsubseteq: '\u2288', + nsubseteqq: '\u2AC5\u0338', + nsucc: '\u2281', + nsucceq: '\u2AB0\u0338', + nsup: '\u2285', + nsupE: '\u2AC6\u0338', + nsupe: '\u2289', + nsupset: '\u2283\u20D2', + nsupseteq: '\u2289', + nsupseteqq: '\u2AC6\u0338', + ntgl: '\u2279', + ntilde: '\u00F1', + ntlg: '\u2278', + ntriangleleft: '\u22EA', + ntrianglelefteq: '\u22EC', + ntriangleright: '\u22EB', + ntrianglerighteq: '\u22ED', + nu: '\u03BD', + num: '\u0023', + numero: '\u2116', + numsp: '\u2007', + nvDash: '\u22AD', + nvHarr: '\u2904', + nvap: '\u224D\u20D2', + nvdash: '\u22AC', + nvge: '\u2265\u20D2', + nvgt: '\u003E\u20D2', + nvinfin: '\u29DE', + nvlArr: '\u2902', + nvle: '\u2264\u20D2', + nvlt: '\u003C\u20D2', + nvltrie: '\u22B4\u20D2', + nvrArr: '\u2903', + nvrtrie: '\u22B5\u20D2', + nvsim: '\u223C\u20D2', + nwArr: '\u21D6', + nwarhk: '\u2923', + nwarr: '\u2196', + nwarrow: '\u2196', + nwnear: '\u2927', + oS: '\u24C8', + oacute: '\u00F3', + oast: '\u229B', + ocir: '\u229A', + ocirc: '\u00F4', + ocy: '\u043E', + odash: '\u229D', + odblac: '\u0151', + odiv: '\u2A38', + odot: '\u2299', + odsold: '\u29BC', + oelig: '\u0153', + ofcir: '\u29BF', + ofr: '\uD835\uDD2C', + ogon: '\u02DB', + ograve: '\u00F2', + ogt: '\u29C1', + ohbar: '\u29B5', + ohm: '\u03A9', + oint: '\u222E', + olarr: '\u21BA', + olcir: '\u29BE', + olcross: '\u29BB', + oline: '\u203E', + olt: '\u29C0', + omacr: '\u014D', + omega: '\u03C9', + omicron: '\u03BF', + omid: '\u29B6', + ominus: '\u2296', + oopf: '\uD835\uDD60', + opar: '\u29B7', + operp: '\u29B9', + oplus: '\u2295', + or: '\u2228', + orarr: '\u21BB', + ord: '\u2A5D', + order: '\u2134', + orderof: '\u2134', + ordf: '\u00AA', + ordm: '\u00BA', + origof: '\u22B6', + oror: '\u2A56', + orslope: '\u2A57', + orv: '\u2A5B', + oscr: '\u2134', + oslash: '\u00F8', + osol: '\u2298', + otilde: '\u00F5', + otimes: '\u2297', + otimesas: '\u2A36', + ouml: '\u00F6', + ovbar: '\u233D', + par: '\u2225', + para: '\u00B6', + parallel: '\u2225', + parsim: '\u2AF3', + parsl: '\u2AFD', + part: '\u2202', + pcy: '\u043F', + percnt: '\u0025', + period: '\u002E', + permil: '\u2030', + perp: '\u22A5', + pertenk: '\u2031', + pfr: '\uD835\uDD2D', + phi: '\u03C6', + phiv: '\u03D5', + phmmat: '\u2133', + phone: '\u260E', + pi: '\u03C0', + pitchfork: '\u22D4', + piv: '\u03D6', + planck: '\u210F', + planckh: '\u210E', + plankv: '\u210F', + plus: '\u002B', + plusacir: '\u2A23', + plusb: '\u229E', + pluscir: '\u2A22', + plusdo: '\u2214', + plusdu: '\u2A25', + pluse: '\u2A72', + plusmn: '\u00B1', + plussim: '\u2A26', + plustwo: '\u2A27', + pm: '\u00B1', + pointint: '\u2A15', + popf: '\uD835\uDD61', + pound: '\u00A3', + pr: '\u227A', + prE: '\u2AB3', + prap: '\u2AB7', + prcue: '\u227C', + pre: '\u2AAF', + prec: '\u227A', + precapprox: '\u2AB7', + preccurlyeq: '\u227C', + preceq: '\u2AAF', + precnapprox: '\u2AB9', + precneqq: '\u2AB5', + precnsim: '\u22E8', + precsim: '\u227E', + prime: '\u2032', + primes: '\u2119', + prnE: '\u2AB5', + prnap: '\u2AB9', + prnsim: '\u22E8', + prod: '\u220F', + profalar: '\u232E', + profline: '\u2312', + profsurf: '\u2313', + prop: '\u221D', + propto: '\u221D', + prsim: '\u227E', + prurel: '\u22B0', + pscr: '\uD835\uDCC5', + psi: '\u03C8', + puncsp: '\u2008', + qfr: '\uD835\uDD2E', + qint: '\u2A0C', + qopf: '\uD835\uDD62', + qprime: '\u2057', + qscr: '\uD835\uDCC6', + quaternions: '\u210D', + quatint: '\u2A16', + quest: '\u003F', + questeq: '\u225F', + quot: '\u0022', + rAarr: '\u21DB', + rArr: '\u21D2', + rAtail: '\u291C', + rBarr: '\u290F', + rHar: '\u2964', + race: '\u223D\u0331', + racute: '\u0155', + radic: '\u221A', + raemptyv: '\u29B3', + rang: '\u27E9', + rangd: '\u2992', + range: '\u29A5', + rangle: '\u27E9', + raquo: '\u00BB', + rarr: '\u2192', + rarrap: '\u2975', + rarrb: '\u21E5', + rarrbfs: '\u2920', + rarrc: '\u2933', + rarrfs: '\u291E', + rarrhk: '\u21AA', + rarrlp: '\u21AC', + rarrpl: '\u2945', + rarrsim: '\u2974', + rarrtl: '\u21A3', + rarrw: '\u219D', + ratail: '\u291A', + ratio: '\u2236', + rationals: '\u211A', + rbarr: '\u290D', + rbbrk: '\u2773', + rbrace: '\u007D', + rbrack: '\u005D', + rbrke: '\u298C', + rbrksld: '\u298E', + rbrkslu: '\u2990', + rcaron: '\u0159', + rcedil: '\u0157', + rceil: '\u2309', + rcub: '\u007D', + rcy: '\u0440', + rdca: '\u2937', + rdldhar: '\u2969', + rdquo: '\u201D', + rdquor: '\u201D', + rdsh: '\u21B3', + real: '\u211C', + realine: '\u211B', + realpart: '\u211C', + reals: '\u211D', + rect: '\u25AD', + reg: '\u00AE', + rfisht: '\u297D', + rfloor: '\u230B', + rfr: '\uD835\uDD2F', + rhard: '\u21C1', + rharu: '\u21C0', + rharul: '\u296C', + rho: '\u03C1', + rhov: '\u03F1', + rightarrow: '\u2192', + rightarrowtail: '\u21A3', + rightharpoondown: '\u21C1', + rightharpoonup: '\u21C0', + rightleftarrows: '\u21C4', + rightleftharpoons: '\u21CC', + rightrightarrows: '\u21C9', + rightsquigarrow: '\u219D', + rightthreetimes: '\u22CC', + ring: '\u02DA', + risingdotseq: '\u2253', + rlarr: '\u21C4', + rlhar: '\u21CC', + rlm: '\u200F', + rmoust: '\u23B1', + rmoustache: '\u23B1', + rnmid: '\u2AEE', + roang: '\u27ED', + roarr: '\u21FE', + robrk: '\u27E7', + ropar: '\u2986', + ropf: '\uD835\uDD63', + roplus: '\u2A2E', + rotimes: '\u2A35', + rpar: '\u0029', + rpargt: '\u2994', + rppolint: '\u2A12', + rrarr: '\u21C9', + rsaquo: '\u203A', + rscr: '\uD835\uDCC7', + rsh: '\u21B1', + rsqb: '\u005D', + rsquo: '\u2019', + rsquor: '\u2019', + rthree: '\u22CC', + rtimes: '\u22CA', + rtri: '\u25B9', + rtrie: '\u22B5', + rtrif: '\u25B8', + rtriltri: '\u29CE', + ruluhar: '\u2968', + rx: '\u211E', + sacute: '\u015B', + sbquo: '\u201A', + sc: '\u227B', + scE: '\u2AB4', + scap: '\u2AB8', + scaron: '\u0161', + sccue: '\u227D', + sce: '\u2AB0', + scedil: '\u015F', + scirc: '\u015D', + scnE: '\u2AB6', + scnap: '\u2ABA', + scnsim: '\u22E9', + scpolint: '\u2A13', + scsim: '\u227F', + scy: '\u0441', + sdot: '\u22C5', + sdotb: '\u22A1', + sdote: '\u2A66', + seArr: '\u21D8', + searhk: '\u2925', + searr: '\u2198', + searrow: '\u2198', + sect: '\u00A7', + semi: '\u003B', + seswar: '\u2929', + setminus: '\u2216', + setmn: '\u2216', + sext: '\u2736', + sfr: '\uD835\uDD30', + sfrown: '\u2322', + sharp: '\u266F', + shchcy: '\u0449', + shcy: '\u0448', + shortmid: '\u2223', + shortparallel: '\u2225', + shy: '\u00AD', + sigma: '\u03C3', + sigmaf: '\u03C2', + sigmav: '\u03C2', + sim: '\u223C', + simdot: '\u2A6A', + sime: '\u2243', + simeq: '\u2243', + simg: '\u2A9E', + simgE: '\u2AA0', + siml: '\u2A9D', + simlE: '\u2A9F', + simne: '\u2246', + simplus: '\u2A24', + simrarr: '\u2972', + slarr: '\u2190', + smallsetminus: '\u2216', + smashp: '\u2A33', + smeparsl: '\u29E4', + smid: '\u2223', + smile: '\u2323', + smt: '\u2AAA', + smte: '\u2AAC', + smtes: '\u2AAC\uFE00', + softcy: '\u044C', + sol: '\u002F', + solb: '\u29C4', + solbar: '\u233F', + sopf: '\uD835\uDD64', + spades: '\u2660', + spadesuit: '\u2660', + spar: '\u2225', + sqcap: '\u2293', + sqcaps: '\u2293\uFE00', + sqcup: '\u2294', + sqcups: '\u2294\uFE00', + sqsub: '\u228F', + sqsube: '\u2291', + sqsubset: '\u228F', + sqsubseteq: '\u2291', + sqsup: '\u2290', + sqsupe: '\u2292', + sqsupset: '\u2290', + sqsupseteq: '\u2292', + squ: '\u25A1', + square: '\u25A1', + squarf: '\u25AA', + squf: '\u25AA', + srarr: '\u2192', + sscr: '\uD835\uDCC8', + ssetmn: '\u2216', + ssmile: '\u2323', + sstarf: '\u22C6', + star: '\u2606', + starf: '\u2605', + straightepsilon: '\u03F5', + straightphi: '\u03D5', + strns: '\u00AF', + sub: '\u2282', + subE: '\u2AC5', + subdot: '\u2ABD', + sube: '\u2286', + subedot: '\u2AC3', + submult: '\u2AC1', + subnE: '\u2ACB', + subne: '\u228A', + subplus: '\u2ABF', + subrarr: '\u2979', + subset: '\u2282', + subseteq: '\u2286', + subseteqq: '\u2AC5', + subsetneq: '\u228A', + subsetneqq: '\u2ACB', + subsim: '\u2AC7', + subsub: '\u2AD5', + subsup: '\u2AD3', + succ: '\u227B', + succapprox: '\u2AB8', + succcurlyeq: '\u227D', + succeq: '\u2AB0', + succnapprox: '\u2ABA', + succneqq: '\u2AB6', + succnsim: '\u22E9', + succsim: '\u227F', + sum: '\u2211', + sung: '\u266A', + sup1: '\u00B9', + sup2: '\u00B2', + sup3: '\u00B3', + sup: '\u2283', + supE: '\u2AC6', + supdot: '\u2ABE', + supdsub: '\u2AD8', + supe: '\u2287', + supedot: '\u2AC4', + suphsol: '\u27C9', + suphsub: '\u2AD7', + suplarr: '\u297B', + supmult: '\u2AC2', + supnE: '\u2ACC', + supne: '\u228B', + supplus: '\u2AC0', + supset: '\u2283', + supseteq: '\u2287', + supseteqq: '\u2AC6', + supsetneq: '\u228B', + supsetneqq: '\u2ACC', + supsim: '\u2AC8', + supsub: '\u2AD4', + supsup: '\u2AD6', + swArr: '\u21D9', + swarhk: '\u2926', + swarr: '\u2199', + swarrow: '\u2199', + swnwar: '\u292A', + szlig: '\u00DF', + target: '\u2316', + tau: '\u03C4', + tbrk: '\u23B4', + tcaron: '\u0165', + tcedil: '\u0163', + tcy: '\u0442', + tdot: '\u20DB', + telrec: '\u2315', + tfr: '\uD835\uDD31', + there4: '\u2234', + therefore: '\u2234', + theta: '\u03B8', + thetasym: '\u03D1', + thetav: '\u03D1', + thickapprox: '\u2248', + thicksim: '\u223C', + thinsp: '\u2009', + thkap: '\u2248', + thksim: '\u223C', + thorn: '\u00FE', + tilde: '\u02DC', + times: '\u00D7', + timesb: '\u22A0', + timesbar: '\u2A31', + timesd: '\u2A30', + tint: '\u222D', + toea: '\u2928', + top: '\u22A4', + topbot: '\u2336', + topcir: '\u2AF1', + topf: '\uD835\uDD65', + topfork: '\u2ADA', + tosa: '\u2929', + tprime: '\u2034', + trade: '\u2122', + triangle: '\u25B5', + triangledown: '\u25BF', + triangleleft: '\u25C3', + trianglelefteq: '\u22B4', + triangleq: '\u225C', + triangleright: '\u25B9', + trianglerighteq: '\u22B5', + tridot: '\u25EC', + trie: '\u225C', + triminus: '\u2A3A', + triplus: '\u2A39', + trisb: '\u29CD', + tritime: '\u2A3B', + trpezium: '\u23E2', + tscr: '\uD835\uDCC9', + tscy: '\u0446', + tshcy: '\u045B', + tstrok: '\u0167', + twixt: '\u226C', + twoheadleftarrow: '\u219E', + twoheadrightarrow: '\u21A0', + uArr: '\u21D1', + uHar: '\u2963', + uacute: '\u00FA', + uarr: '\u2191', + ubrcy: '\u045E', + ubreve: '\u016D', + ucirc: '\u00FB', + ucy: '\u0443', + udarr: '\u21C5', + udblac: '\u0171', + udhar: '\u296E', + ufisht: '\u297E', + ufr: '\uD835\uDD32', + ugrave: '\u00F9', + uharl: '\u21BF', + uharr: '\u21BE', + uhblk: '\u2580', + ulcorn: '\u231C', + ulcorner: '\u231C', + ulcrop: '\u230F', + ultri: '\u25F8', + umacr: '\u016B', + uml: '\u00A8', + uogon: '\u0173', + uopf: '\uD835\uDD66', + uparrow: '\u2191', + updownarrow: '\u2195', + upharpoonleft: '\u21BF', + upharpoonright: '\u21BE', + uplus: '\u228E', + upsi: '\u03C5', + upsih: '\u03D2', + upsilon: '\u03C5', + upuparrows: '\u21C8', + urcorn: '\u231D', + urcorner: '\u231D', + urcrop: '\u230E', + uring: '\u016F', + urtri: '\u25F9', + uscr: '\uD835\uDCCA', + utdot: '\u22F0', + utilde: '\u0169', + utri: '\u25B5', + utrif: '\u25B4', + uuarr: '\u21C8', + uuml: '\u00FC', + uwangle: '\u29A7', + vArr: '\u21D5', + vBar: '\u2AE8', + vBarv: '\u2AE9', + vDash: '\u22A8', + vangrt: '\u299C', + varepsilon: '\u03F5', + varkappa: '\u03F0', + varnothing: '\u2205', + varphi: '\u03D5', + varpi: '\u03D6', + varpropto: '\u221D', + varr: '\u2195', + varrho: '\u03F1', + varsigma: '\u03C2', + varsubsetneq: '\u228A\uFE00', + varsubsetneqq: '\u2ACB\uFE00', + varsupsetneq: '\u228B\uFE00', + varsupsetneqq: '\u2ACC\uFE00', + vartheta: '\u03D1', + vartriangleleft: '\u22B2', + vartriangleright: '\u22B3', + vcy: '\u0432', + vdash: '\u22A2', + vee: '\u2228', + veebar: '\u22BB', + veeeq: '\u225A', + vellip: '\u22EE', + verbar: '\u007C', + vert: '\u007C', + vfr: '\uD835\uDD33', + vltri: '\u22B2', + vnsub: '\u2282\u20D2', + vnsup: '\u2283\u20D2', + vopf: '\uD835\uDD67', + vprop: '\u221D', + vrtri: '\u22B3', + vscr: '\uD835\uDCCB', + vsubnE: '\u2ACB\uFE00', + vsubne: '\u228A\uFE00', + vsupnE: '\u2ACC\uFE00', + vsupne: '\u228B\uFE00', + vzigzag: '\u299A', + wcirc: '\u0175', + wedbar: '\u2A5F', + wedge: '\u2227', + wedgeq: '\u2259', + weierp: '\u2118', + wfr: '\uD835\uDD34', + wopf: '\uD835\uDD68', + wp: '\u2118', + wr: '\u2240', + wreath: '\u2240', + wscr: '\uD835\uDCCC', + xcap: '\u22C2', + xcirc: '\u25EF', + xcup: '\u22C3', + xdtri: '\u25BD', + xfr: '\uD835\uDD35', + xhArr: '\u27FA', + xharr: '\u27F7', + xi: '\u03BE', + xlArr: '\u27F8', + xlarr: '\u27F5', + xmap: '\u27FC', + xnis: '\u22FB', + xodot: '\u2A00', + xopf: '\uD835\uDD69', + xoplus: '\u2A01', + xotime: '\u2A02', + xrArr: '\u27F9', + xrarr: '\u27F6', + xscr: '\uD835\uDCCD', + xsqcup: '\u2A06', + xuplus: '\u2A04', + xutri: '\u25B3', + xvee: '\u22C1', + xwedge: '\u22C0', + yacute: '\u00FD', + yacy: '\u044F', + ycirc: '\u0177', + ycy: '\u044B', + yen: '\u00A5', + yfr: '\uD835\uDD36', + yicy: '\u0457', + yopf: '\uD835\uDD6A', + yscr: '\uD835\uDCCE', + yucy: '\u044E', + yuml: '\u00FF', + zacute: '\u017A', + zcaron: '\u017E', + zcy: '\u0437', + zdot: '\u017C', + zeetrf: '\u2128', + zeta: '\u03B6', + zfr: '\uD835\uDD37', + zhcy: '\u0436', + zigrarr: '\u21DD', + zopf: '\uD835\uDD6B', + zscr: '\uD835\uDCCF', + zwj: '\u200D', + zwnj: '\u200C' + }; + const decodeMap = { + '0': 65533, + '128': 8364, + '130': 8218, + '131': 402, + '132': 8222, + '133': 8230, + '134': 8224, + '135': 8225, + '136': 710, + '137': 8240, + '138': 352, + '139': 8249, + '140': 338, + '142': 381, + '145': 8216, + '146': 8217, + '147': 8220, + '148': 8221, + '149': 8226, + '150': 8211, + '151': 8212, + '152': 732, + '153': 8482, + '154': 353, + '155': 8250, + '156': 339, + '158': 382, + '159': 376 + }; + function decodeHTMLStrict(text) { + return text.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, (key) => { + if (key.charAt(1) === '#') { + const secondChar = key.charAt(2); + const codePoint = secondChar === 'X' || secondChar === 'x' + ? parseInt(key.slice(3), 16) + : parseInt(key.slice(2), 10); + return decodeCodePoint(codePoint); + } + return entities[key.slice(1, -1)] || key; + }); + } + function decodeCodePoint(codePoint) { + if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { + return '\uFFFD'; + } + if (codePoint in decodeMap) { + codePoint = decodeMap[codePoint]; + } + return String.fromCodePoint(codePoint); + } + + function scanJSXAttributeValue(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + parser.token = + CharTypes[parser.currentChar] & 8192 + ? scanJSXString(parser, context) + : scanSingleToken(parser, context, 0); + return parser.token; + } + function scanJSXString(parser, context) { + const quote = parser.currentChar; + let char = advanceChar(parser); + const start = parser.index; + while (char !== quote) { + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + if (char !== quote) + report(parser, 14); + parser.tokenValue = parser.source.slice(start, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283267; + } + function scanJSXToken(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + if (parser.index >= parser.end) + return (parser.token = 1048576); + const token = TokenLookup[parser.source.charCodeAt(parser.index)]; + switch (token) { + case 8456258: { + advanceChar(parser); + if (parser.currentChar === 47) { + advanceChar(parser); + parser.token = 25; + } + else { + parser.token = 8456258; + } + break; + } + case 2162700: { + advanceChar(parser); + parser.token = 2162700; + break; + } + default: { + let state = 0; + while (parser.index < parser.end) { + const type = CharTypes[parser.source.charCodeAt(parser.index)]; + if (type & 1024) { + state |= 1 | 4; + scanNewLine(parser); + } + else if (type & 2048) { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + else { + advanceChar(parser); + } + if (CharTypes[parser.currentChar] & 16384) + break; + } + const raw = parser.source.slice(parser.tokenPos, parser.index); + if (context & 512) + parser.tokenRaw = raw; + parser.tokenValue = decodeHTMLStrict(raw); + parser.token = 138; + } + } + return parser.token; + } + function scanJSXIdentifier(parser) { + if ((parser.token & 143360) === 143360) { + const { index } = parser; + let char = parser.currentChar; + while (CharTypes[char] & (32768 | 2)) { + char = advanceChar(parser); + } + parser.tokenValue += parser.source.slice(index, parser.index); + } + parser.token = 208897; + return parser.token; + } + + function matchOrInsertSemicolon(parser, context, specDeviation) { + if ((parser.flags & 1) === 0 && + (parser.token & 1048576) !== 1048576 && + !specDeviation) { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + consumeOpt(parser, context, 1074790417); + } + function isValidStrictMode(parser, index, tokenPos, tokenValue) { + if (index - tokenPos < 13 && tokenValue === 'use strict') { + if ((parser.token & 1048576) === 1048576 || parser.flags & 1) { + return 1; + } + } + return 0; + } + function optionalBit(parser, context, t) { + if (parser.token !== t) + return 0; + nextToken(parser, context); + return 1; + } + function consumeOpt(parser, context, t) { + if (parser.token !== t) + return false; + nextToken(parser, context); + return true; + } + function consume(parser, context, t) { + if (parser.token !== t) + report(parser, 23, KeywordDescTable[t & 255]); + nextToken(parser, context); + } + function reinterpretToPattern(state, node) { + switch (node.type) { + case 'ArrayExpression': + node.type = 'ArrayPattern'; + const elements = node.elements; + for (let i = 0, n = elements.length; i < n; ++i) { + const element = elements[i]; + if (element) + reinterpretToPattern(state, element); + } + return; + case 'ObjectExpression': + node.type = 'ObjectPattern'; + const properties = node.properties; + for (let i = 0, n = properties.length; i < n; ++i) { + reinterpretToPattern(state, properties[i]); + } + return; + case 'AssignmentExpression': + node.type = 'AssignmentPattern'; + if (node.operator !== '=') + report(state, 68); + delete node.operator; + reinterpretToPattern(state, node.left); + return; + case 'Property': + reinterpretToPattern(state, node.value); + return; + case 'SpreadElement': + node.type = 'RestElement'; + reinterpretToPattern(state, node.argument); + } + } + function validateBindingIdentifier(parser, context, kind, t, skipEvalArgCheck) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if (!skipEvalArgCheck && (t & 537079808) === 537079808) { + report(parser, 115); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (kind & (8 | 16) && t === 241739) { + report(parser, 97); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } + } + function validateFunctionName(parser, context, t) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if ((t & 537079808) === 537079808) { + report(parser, 115); + } + if (t === 122) { + report(parser, 92); + } + if (t === 121) { + report(parser, 92); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } + } + function isStrictReservedWord(parser, context, t) { + if (t === 209008) { + if (context & (4194304 | 2048)) + report(parser, 95); + parser.destructible |= 128; + } + if (t === 241773 && context & 2097152) + report(parser, 94, 'yield'); + return ((t & 20480) === 20480 || + (t & 36864) === 36864 || + t == 122); + } + function isPropertyWithPrivateFieldKey(expr) { + return !expr.property ? false : expr.property.type === 'PrivateIdentifier'; + } + function isValidLabel(parser, labels, name, isIterationStatement) { + while (labels) { + if (labels['$' + name]) { + if (isIterationStatement) + report(parser, 133); + return 1; + } + if (isIterationStatement && labels.loop) + isIterationStatement = 0; + labels = labels['$']; + } + return 0; + } + function validateAndDeclareLabel(parser, labels, name) { + let set = labels; + while (set) { + if (set['$' + name]) + report(parser, 132, name); + set = set['$']; + } + labels['$' + name] = 1; + } + function finishNode(parser, context, start, line, column, node) { + if (context & 2) { + node.start = start; + node.end = parser.startPos; + node.range = [start, parser.startPos]; + } + if (context & 4) { + node.loc = { + start: { + line, + column + }, + end: { + line: parser.startLine, + column: parser.startColumn + } + }; + if (parser.sourceFile) { + node.loc.source = parser.sourceFile; + } + } + return node; + } + function isEqualTagName(elementName) { + switch (elementName.type) { + case 'JSXIdentifier': + return elementName.name; + case 'JSXNamespacedName': + return elementName.namespace + ':' + elementName.name; + case 'JSXMemberExpression': + return isEqualTagName(elementName.object) + '.' + isEqualTagName(elementName.property); + } + } + function createArrowHeadParsingScope(parser, context, value) { + const scope = addChildScope(createScope(), 1024); + addBlockName(parser, context, scope, value, 1, 0); + return scope; + } + function recordScopeError(parser, type, ...params) { + const { index, line, column } = parser; + return { + type, + params, + index, + line, + column + }; + } + function createScope() { + return { + parent: void 0, + type: 2 + }; + } + function addChildScope(parent, type) { + return { + parent, + type, + scopeError: void 0 + }; + } + function addVarOrBlock(parser, context, scope, name, kind, origin) { + if (kind & 4) { + addVarName(parser, context, scope, name, kind); + } + else { + addBlockName(parser, context, scope, name, kind, origin); + } + if (origin & 64) { + declareUnboundVariable(parser, name); + } + } + function addBlockName(parser, context, scope, name, kind, origin) { + const value = scope['#' + name]; + if (value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + else if (context & 256 && + value & 64 && + origin & 2) ; + else { + report(parser, 140, name); + } + } + if (scope.type & 128 && + (scope.parent['#' + name] && (scope.parent['#' + name] & 2) === 0)) { + report(parser, 140, name); + } + if (scope.type & 1024 && value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + } + if (scope.type & 64) { + if (scope.parent['#' + name] & 768) + report(parser, 153, name); + } + scope['#' + name] = kind; + } + function addVarName(parser, context, scope, name, kind) { + let currentScope = scope; + while (currentScope && (currentScope.type & 256) === 0) { + const value = currentScope['#' + name]; + if (value & 248) { + if (context & 256 && + (context & 1024) === 0 && + ((kind & 128 && value & 68) || + (value & 128 && kind & 68))) ; + else { + report(parser, 140, name); + } + } + if (currentScope === scope) { + if (value & 1 && kind & 1) { + currentScope.scopeError = recordScopeError(parser, 140, name); + } + } + if (value & (512 | 256)) { + if ((value & 512) === 0 || + (context & 256) === 0 || + context & 1024) { + report(parser, 140, name); + } + } + currentScope['#' + name] = kind; + currentScope = currentScope.parent; + } + } + function declareUnboundVariable(parser, name) { + if (parser.exportedNames !== void 0 && name !== '') { + if (parser.exportedNames['#' + name]) { + report(parser, 141, name); + } + parser.exportedNames['#' + name] = 1; + } + } + function addBindingToExports(parser, name) { + if (parser.exportedBindings !== void 0 && name !== '') { + parser.exportedBindings['#' + name] = 1; + } + } + function pushComment(context, array) { + return function (type, value, start, end, loc) { + const comment = { + type, + value + }; + if (context & 2) { + comment.start = start; + comment.end = end; + comment.range = [start, end]; + } + if (context & 4) { + comment.loc = loc; + } + array.push(comment); + }; + } + function pushToken(context, array) { + return function (token, start, end, loc) { + const tokens = { + token + }; + if (context & 2) { + tokens.start = start; + tokens.end = end; + tokens.range = [start, end]; + } + if (context & 4) { + tokens.loc = loc; + } + array.push(tokens); + }; + } + function isValidIdentifier(context, t) { + if (context & (1024 | 2097152)) { + if (context & 2048 && t === 209008) + return false; + if (context & 2097152 && t === 241773) + return false; + return (t & 143360) === 143360 || (t & 12288) === 12288; + } + return ((t & 143360) === 143360 || + (t & 12288) === 12288 || + (t & 36864) === 36864); + } + function classifyIdentifier(parser, context, t, isArrow) { + if ((t & 537079808) === 537079808) { + if (context & 1024) + report(parser, 115); + if (isArrow) + parser.flags |= 512; + } + if (!isValidIdentifier(context, t)) + report(parser, 0); + } + + function create(source, sourceFile, onComment, onToken) { + return { + source, + flags: 0, + index: 0, + line: 1, + column: 0, + startPos: 0, + end: source.length, + tokenPos: 0, + startColumn: 0, + colPos: 0, + linePos: 1, + startLine: 1, + sourceFile, + tokenValue: '', + token: 1048576, + tokenRaw: '', + tokenRegExp: void 0, + currentChar: source.charCodeAt(0), + exportedNames: [], + exportedBindings: [], + assignable: 1, + destructible: 0, + onComment, + onToken, + leadingDecorators: [] + }; + } + function parseSource(source, options, context) { + let sourceFile = ''; + let onComment; + let onToken; + if (options != null) { + if (options.module) + context |= 2048 | 1024; + if (options.next) + context |= 1; + if (options.loc) + context |= 4; + if (options.ranges) + context |= 2; + if (options.uniqueKeyInPattern) + context |= -2147483648; + if (options.lexical) + context |= 64; + if (options.webcompat) + context |= 256; + if (options.directives) + context |= 8 | 512; + if (options.globalReturn) + context |= 32; + if (options.raw) + context |= 512; + if (options.preserveParens) + context |= 128; + if (options.impliedStrict) + context |= 1024; + if (options.jsx) + context |= 16; + if (options.identifierPattern) + context |= 268435456; + if (options.specDeviation) + context |= 536870912; + if (options.source) + sourceFile = options.source; + if (options.onComment != null) { + onComment = Array.isArray(options.onComment) ? pushComment(context, options.onComment) : options.onComment; + } + if (options.onToken != null) { + onToken = Array.isArray(options.onToken) ? pushToken(context, options.onToken) : options.onToken; + } + } + const parser = create(source, sourceFile, onComment, onToken); + if (context & 1) + skipHashBang(parser); + const scope = context & 64 ? createScope() : void 0; + let body = []; + let sourceType = 'script'; + if (context & 2048) { + sourceType = 'module'; + body = parseModuleItemList(parser, context | 8192, scope); + if (scope) { + for (const key in parser.exportedBindings) { + if (key[0] === '#' && !scope[key]) + report(parser, 142, key.slice(1)); + } + } + } + else { + body = parseStatementList(parser, context | 8192, scope); + } + const node = { + type: 'Program', + sourceType, + body + }; + if (context & 2) { + node.start = 0; + node.end = source.length; + node.range = [0, source.length]; + } + if (context & 4) { + node.loc = { + start: { line: 1, column: 0 }, + end: { line: parser.line, column: parser.column } + }; + if (parser.sourceFile) + node.loc.source = sourceFile; + } + return node; + } + function parseStatementList(parser, context, scope) { + nextToken(parser, context | 32768 | 1073741824); + const statements = []; + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, linePos, colPos, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) + context |= 1024; + statements.push(parseDirective(parser, context, expr, token, tokenPos, linePos, colPos)); + } + while (parser.token !== 1048576) { + statements.push(parseStatementListItem(parser, context, scope, 4, {})); + } + return statements; + } + function parseModuleItemList(parser, context, scope) { + nextToken(parser, context | 32768); + const statements = []; + if (context & 8) { + while (parser.token === 134283267) { + const { tokenPos, linePos, colPos, token } = parser; + statements.push(parseDirective(parser, context, parseLiteral(parser, context), token, tokenPos, linePos, colPos)); + } + } + while (parser.token !== 1048576) { + statements.push(parseModuleItem(parser, context, scope)); + } + return statements; + } + function parseModuleItem(parser, context, scope) { + parser.leadingDecorators = parseDecorators(parser, context); + let moduleItem; + switch (parser.token) { + case 20566: + moduleItem = parseExportDeclaration(parser, context, scope); + break; + case 86108: + moduleItem = parseImportDeclaration(parser, context, scope); + break; + default: + moduleItem = parseStatementListItem(parser, context, scope, 4, {}); + } + if (parser.leadingDecorators.length) { + report(parser, 164); + } + return moduleItem; + } + function parseStatementListItem(parser, context, scope, origin, labels) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + switch (parser.token) { + case 86106: + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 0, start, line, column); + case 133: + case 86096: + return parseClassDeclaration(parser, context, scope, 0, start, line, column); + case 86092: + return parseLexicalDeclaration(parser, context, scope, 16, 0, start, line, column); + case 241739: + return parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column); + case 20566: + report(parser, 100, 'export'); + case 86108: + nextToken(parser, context); + switch (parser.token) { + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 100, 'import'); + } + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 1, start, line, column); + default: + return parseStatement(parser, context, scope, origin, labels, 1, start, line, column); + } + } + function parseStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + switch (parser.token) { + case 86090: + return parseVariableStatement(parser, context, scope, 0, start, line, column); + case 20574: + return parseReturnStatement(parser, context, start, line, column); + case 20571: + return parseIfStatement(parser, context, scope, labels, start, line, column); + case 20569: + return parseForStatement(parser, context, scope, labels, start, line, column); + case 20564: + return parseDoWhileStatement(parser, context, scope, labels, start, line, column); + case 20580: + return parseWhileStatement(parser, context, scope, labels, start, line, column); + case 86112: + return parseSwitchStatement(parser, context, scope, labels, start, line, column); + case 1074790417: + return parseEmptyStatement(parser, context, start, line, column); + case 2162700: + return parseBlock(parser, context, scope ? addChildScope(scope, 2) : scope, labels, start, line, column); + case 86114: + return parseThrowStatement(parser, context, start, line, column); + case 20557: + return parseBreakStatement(parser, context, labels, start, line, column); + case 20561: + return parseContinueStatement(parser, context, labels, start, line, column); + case 20579: + return parseTryStatement(parser, context, scope, labels, start, line, column); + case 20581: + return parseWithStatement(parser, context, scope, labels, start, line, column); + case 20562: + return parseDebuggerStatement(parser, context, start, line, column); + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 0, start, line, column); + case 20559: + report(parser, 156); + case 20568: + report(parser, 157); + case 86106: + report(parser, context & 1024 + ? 73 + : (context & 256) < 1 + ? 75 + : 74); + case 86096: + report(parser, 76); + default: + return parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column); + } + } + function parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { tokenValue, token } = parser; + let expr; + switch (token) { + case 241739: + expr = parseIdentifier(parser, context, 0); + if (context & 1024) + report(parser, 82); + if (parser.token === 69271571) + report(parser, 81); + break; + default: + expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + if (token & 143360 && parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, allowFuncDecl, start, line, column); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseBlock(parser, context, scope, labels, start, line, column) { + const body = []; + consume(parser, context | 32768, 2162700); + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 2, { $: labels })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'BlockStatement', + body + }); + } + function parseReturnStatement(parser, context, start, line, column) { + if ((context & 32) < 1 && context & 8192) + report(parser, 89); + nextToken(parser, context | 32768); + const argument = parser.flags & 1 || parser.token & 1048576 + ? null + : parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.column); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ReturnStatement', + argument + }); + } + function parseExpressionStatement(parser, context, expression, start, line, column) { + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); + } + function parseLabelledStatement(parser, context, scope, origin, labels, value, expr, token, allowFuncDecl, start, line, column) { + validateBindingIdentifier(parser, context, 0, token, 1); + validateAndDeclareLabel(parser, labels, value); + nextToken(parser, context | 32768); + const body = allowFuncDecl && + (context & 1024) < 1 && + context & 256 && + parser.token === 86106 + ? parseFunctionDeclaration(parser, context, addChildScope(scope, 2), origin, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseStatement(parser, context, scope, origin, labels, allowFuncDecl, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'LabeledStatement', + label: expr, + body + }); + } + function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, 1, start, line, column); + } + const asyncNewLine = parser.flags & 1; + if (!asyncNewLine) { + if (parser.token === 86106) { + if (!allowFuncDecl) + report(parser, 119); + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 1, start, line, column); + } + if ((parser.token & 143360) === 143360) { + expr = parseAsyncArrowAfterIdent(parser, context, 1, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + } + if (parser.token === 67174411) { + expr = parseAsyncArrowOrCallExpression(parser, context, expr, 1, 1, 0, asyncNewLine, start, line, column); + } + else { + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + expr = parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, 0, 1, 0, start, line, column); + } + parser.assignable = 1; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + parser.assignable = 1; + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseDirective(parser, context, expression, token, start, line, column) { + if (token !== 1074790417) { + parser.assignable = 2; + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + if (parser.token !== 1074790417) { + expression = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expression); + if (parser.token === 18) { + expression = parseSequenceExpression(parser, context, 0, start, line, column, expression); + } + } + matchOrInsertSemicolon(parser, context | 32768); + } + return context & 8 && expression.type === 'Literal' && typeof expression.value === 'string' + ? finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression, + directive: expression.raw.slice(1, -1) + }) + : finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); + } + function parseEmptyStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'EmptyStatement' + }); + } + function parseThrowStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + if (parser.flags & 1) + report(parser, 87); + const argument = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ThrowStatement', + argument + }); + } + function parseIfStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + parser.assignable = 1; + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.colPos); + consume(parser, context | 32768, 16); + const consequent = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + let alternate = null; + if (parser.token === 20565) { + nextToken(parser, context | 32768); + alternate = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + } + return finishNode(parser, context, start, line, column, { + type: 'IfStatement', + test, + consequent, + alternate + }); + } + function parseConsequentOrAlternative(parser, context, scope, labels, start, line, column) { + return context & 1024 || + (context & 256) < 1 || + parser.token !== 86106 + ? parseStatement(parser, context, scope, 0, { $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseFunctionDeclaration(parser, context, addChildScope(scope, 2), 0, 0, 0, 0, start, line, column); + } + function parseSwitchStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const discriminant = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + consume(parser, context, 2162700); + const cases = []; + let seenDefault = 0; + if (scope) + scope = addChildScope(scope, 8); + while (parser.token !== 1074790415) { + const { tokenPos, linePos, colPos } = parser; + let test = null; + const consequent = []; + if (consumeOpt(parser, context | 32768, 20558)) { + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + consume(parser, context | 32768, 20563); + if (seenDefault) + report(parser, 86); + seenDefault = 1; + } + consume(parser, context | 32768, 21); + while (parser.token !== 20558 && + parser.token !== 1074790415 && + parser.token !== 20563) { + consequent.push(parseStatementListItem(parser, context | 4096, scope, 2, { + $: labels + })); + } + cases.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'SwitchCase', + test, + consequent + })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'SwitchStatement', + discriminant, + cases + }); + } + function parseWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'WhileStatement', + test, + body + }); + } + function parseIterationStatementBody(parser, context, scope, labels) { + return parseStatement(parser, ((context | 134217728) ^ 134217728) | 131072, scope, 0, { loop: 1, $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + function parseContinueStatement(parser, context, labels, start, line, column) { + if ((context & 131072) < 1) + report(parser, 65); + nextToken(parser, context); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 1)) + report(parser, 134, tokenValue); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ContinueStatement', + label + }); + } + function parseBreakStatement(parser, context, labels, start, line, column) { + nextToken(parser, context | 32768); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 0)) + report(parser, 134, tokenValue); + } + else if ((context & (4096 | 131072)) < 1) { + report(parser, 66); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'BreakStatement', + label + }); + } + function parseWithStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + if (context & 1024) + report(parser, 88); + consume(parser, context | 32768, 67174411); + const object = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseStatement(parser, context, scope, 2, labels, 0, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'WithStatement', + object, + body + }); + } + function parseDebuggerStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'DebuggerStatement' + }); + } + function parseTryStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const firstScope = scope ? addChildScope(scope, 32) : void 0; + const block = parseBlock(parser, context, firstScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + const { tokenPos, linePos, colPos } = parser; + const handler = consumeOpt(parser, context | 32768, 20559) + ? parseCatchBlock(parser, context, scope, labels, tokenPos, linePos, colPos) + : null; + let finalizer = null; + if (parser.token === 20568) { + nextToken(parser, context | 32768); + const finalizerScope = firstScope ? addChildScope(scope, 4) : void 0; + finalizer = parseBlock(parser, context, finalizerScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + } + if (!handler && !finalizer) { + report(parser, 85); + } + return finishNode(parser, context, start, line, column, { + type: 'TryStatement', + block, + handler, + finalizer + }); + } + function parseCatchBlock(parser, context, scope, labels, start, line, column) { + let param = null; + let additionalScope = scope; + if (consumeOpt(parser, context, 67174411)) { + if (scope) + scope = addChildScope(scope, 4); + param = parseBindingPattern(parser, context, scope, (parser.token & 2097152) === 2097152 + ? 256 + : 512, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 18) { + report(parser, 83); + } + else if (parser.token === 1077936157) { + report(parser, 84); + } + consume(parser, context | 32768, 16); + if (scope) + additionalScope = addChildScope(scope, 64); + } + const body = parseBlock(parser, context, additionalScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'CatchClause', + param, + body + }); + } + function parseDoWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const body = parseIterationStatementBody(parser, context, scope, labels); + consume(parser, context, 20580); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + consumeOpt(parser, context, 1074790417); + return finishNode(parser, context, start, line, column, { + type: 'DoWhileStatement', + body, + test + }); + } + function parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + const declarations = parseVariableDeclarationList(parser, context, scope, 8, 0); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'let', + declarations + }); + } + parser.assignable = 1; + if (context & 1024) + report(parser, 82); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, {}, tokenValue, expr, token, 0, start, line, column); + } + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + expr = parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + else { + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + } + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseLexicalDeclaration(parser, context, scope, kind, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, kind, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: kind & 8 ? 'let' : 'const', + declarations + }); + } + function parseVariableStatement(parser, context, scope, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, 4, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'var', + declarations + }); + } + function parseVariableDeclarationList(parser, context, scope, kind, origin) { + let bindingCount = 1; + const list = [parseVariableDeclaration(parser, context, scope, kind, origin)]; + while (consumeOpt(parser, context, 18)) { + bindingCount++; + list.push(parseVariableDeclaration(parser, context, scope, kind, origin)); + } + if (bindingCount > 1 && origin & 32 && parser.token & 262144) { + report(parser, 58, KeywordDescTable[parser.token & 255]); + } + return list; + } + function parseVariableDeclaration(parser, context, scope, kind, origin) { + const { token, tokenPos, linePos, colPos } = parser; + let init = null; + const id = parseBindingPattern(parser, context, scope, kind, origin, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + init = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (origin & 32 || (token & 2097152) < 1) { + if (parser.token === 274549 || + (parser.token === 8738868 && + (token & 2097152 || (kind & 4) < 1 || context & 1024))) { + reportMessageAt(tokenPos, parser.line, parser.index - 3, 57, parser.token === 274549 ? 'of' : 'in'); + } + } + } + else if ((kind & 16 || (token & 2097152) > 0) && + (parser.token & 262144) !== 262144) { + report(parser, 56, kind & 16 ? 'const' : 'destructuring'); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclarator', + id, + init + }); + } + function parseForStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + const forAwait = (context & 4194304) > 0 && consumeOpt(parser, context, 209008); + consume(parser, context | 32768, 67174411); + if (scope) + scope = addChildScope(scope, 1); + let test = null; + let update = null; + let destructible = 0; + let init = null; + let isVarDecl = parser.token === 86090 || parser.token === 241739 || parser.token === 86092; + let right; + const { token, tokenPos, linePos, colPos } = parser; + if (isVarDecl) { + if (token === 241739) { + init = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + if (parser.token === 8738868) { + if (context & 1024) + report(parser, 64); + } + else { + init = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclaration', + kind: 'let', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 8, 32) + }); + } + parser.assignable = 1; + } + else if (context & 1024) { + report(parser, 64); + } + else { + isVarDecl = false; + parser.assignable = 1; + init = parseMemberOrUpdateExpression(parser, context, init, 0, 0, tokenPos, linePos, colPos); + if (parser.token === 274549) + report(parser, 111); + } + } + else { + nextToken(parser, context); + init = finishNode(parser, context, tokenPos, linePos, colPos, token === 86090 + ? { + type: 'VariableDeclaration', + kind: 'var', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 4, 32) + } + : { + type: 'VariableDeclaration', + kind: 'const', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 16, 32) + }); + parser.assignable = 1; + } + } + else if (token === 1074790417) { + if (forAwait) + report(parser, 79); + } + else if ((token & 2097152) === 2097152) { + init = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos); + destructible = parser.destructible; + if (context & 256 && destructible & 64) { + report(parser, 60); + } + parser.assignable = + destructible & 16 ? 2 : 1; + init = parseMemberOrUpdateExpression(parser, context | 134217728, init, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + init = parseLeftHandSideExpression(parser, context | 134217728, 1, 0, 1, tokenPos, linePos, colPos); + } + if ((parser.token & 262144) === 262144) { + if (parser.token === 274549) { + if (parser.assignable & 2) + report(parser, 77, forAwait ? 'await' : 'of'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + right = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForOfStatement', + left: init, + right, + body, + await: forAwait + }); + } + if (parser.assignable & 2) + report(parser, 77, 'in'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + if (forAwait) + report(parser, 79); + right = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForInStatement', + body, + left: init, + right + }); + } + if (forAwait) + report(parser, 79); + if (!isVarDecl) { + if (destructible & 8 && parser.token !== 1077936157) { + report(parser, 77, 'loop'); + } + init = parseAssignmentExpression(parser, context | 134217728, 0, 0, tokenPos, linePos, colPos, init); + } + if (parser.token === 18) + init = parseSequenceExpression(parser, context, 0, parser.tokenPos, parser.linePos, parser.colPos, init); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 1074790417) + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 16) + update = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForStatement', + init, + test, + update, + body + }); + } + function parseRestrictedIdentifier(parser, context, scope) { + if (!isValidIdentifier(context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) + report(parser, 115); + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 8, 0); + return parseIdentifier(parser, context, 0); + } + function parseImportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context); + let source = null; + const { tokenPos, linePos, colPos } = parser; + let specifiers = []; + if (parser.token === 134283267) { + source = parseLiteral(parser, context); + } + else { + if (parser.token & 143360) { + const local = parseRestrictedIdentifier(parser, context, scope); + specifiers = [ + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportDefaultSpecifier', + local + }) + ]; + if (consumeOpt(parser, context, 18)) { + switch (parser.token) { + case 8457014: + specifiers.push(parseImportNamespaceSpecifier(parser, context, scope)); + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + default: + report(parser, 104); + } + } + } + else { + switch (parser.token) { + case 8457014: + specifiers = [parseImportNamespaceSpecifier(parser, context, scope)]; + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + source = parseModuleSpecifier(parser, context); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ImportDeclaration', + specifiers, + source + }); + } + function parseImportNamespaceSpecifier(parser, context, scope) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + consume(parser, context, 77934); + if ((parser.token & 134217728) === 134217728) { + reportMessageAt(tokenPos, parser.line, parser.index, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportNamespaceSpecifier', + local: parseRestrictedIdentifier(parser, context, scope) + }); + } + function parseModuleSpecifier(parser, context) { + consumeOpt(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Import'); + return parseLiteral(parser, context); + } + function parseImportSpecifierOrNamedImports(parser, context, scope, specifiers) { + nextToken(parser, context); + while (parser.token & 143360) { + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + const imported = parseIdentifier(parser, context, 0); + let local; + if (consumeOpt(parser, context, 77934)) { + if ((parser.token & 134217728) === 134217728 || parser.token === 18) { + report(parser, 103); + } + else { + validateBindingIdentifier(parser, context, 16, parser.token, 0); + } + tokenValue = parser.tokenValue; + local = parseIdentifier(parser, context, 0); + } + else { + validateBindingIdentifier(parser, context, 16, token, 0); + local = imported; + } + if (scope) + addBlockName(parser, context, scope, tokenValue, 8, 0); + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportSpecifier', + local, + imported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + return specifiers; + } + function parseImportMetaDeclaration(parser, context, start, line, column) { + let expr = parseImportMetaExpression(parser, context, finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: 'import' + }), start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseImportCallDeclaration(parser, context, start, line, column) { + let expr = parseImportExpression(parser, context, 0, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseExportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context | 32768); + const specifiers = []; + let declaration = null; + let source = null; + let key; + if (consumeOpt(parser, context | 32768, 20563)) { + switch (parser.token) { + case 86106: { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + } + case 133: + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 1, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + declaration = parseIdentifier(parser, context, 0); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 1, tokenPos, linePos, colPos); + } + else { + if (parser.token === 67174411) { + declaration = parseAsyncArrowOrCallExpression(parser, context, declaration, 1, 1, 0, flags, tokenPos, linePos, colPos); + declaration = parseMemberOrUpdateExpression(parser, context, declaration, 0, 0, tokenPos, linePos, colPos); + declaration = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, declaration); + } + else if (parser.token & 143360) { + if (scope) + scope = createArrowHeadParsingScope(parser, context, parser.tokenValue); + declaration = parseIdentifier(parser, context, 0); + declaration = parseArrowFunctionExpression(parser, context, scope, [declaration], 1, tokenPos, linePos, colPos); + } + } + } + break; + default: + declaration = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + } + if (scope) + declareUnboundVariable(parser, 'default'); + return finishNode(parser, context, start, line, column, { + type: 'ExportDefaultDeclaration', + declaration + }); + } + switch (parser.token) { + case 8457014: { + nextToken(parser, context); + let exported = null; + const isNamedDeclaration = consumeOpt(parser, context, 77934); + if (isNamedDeclaration) { + if (scope) + declareUnboundVariable(parser, parser.tokenValue); + exported = parseIdentifier(parser, context, 0); + } + consume(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExportAllDeclaration', + source, + exported + }); + } + case 2162700: { + nextToken(parser, context); + const tmpExportedNames = []; + const tmpExportedBindings = []; + while (parser.token & 143360) { + const { tokenPos, tokenValue, linePos, colPos } = parser; + const local = parseIdentifier(parser, context, 0); + let exported; + if (parser.token === 77934) { + nextToken(parser, context); + if ((parser.token & 134217728) === 134217728) { + report(parser, 103); + } + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(tokenValue); + } + exported = parseIdentifier(parser, context, 0); + } + else { + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(parser.tokenValue); + } + exported = local; + } + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ExportSpecifier', + local, + exported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + if (consumeOpt(parser, context, 12404)) { + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + } + else if (scope) { + let i = 0; + let iMax = tmpExportedNames.length; + for (; i < iMax; i++) { + declareUnboundVariable(parser, tmpExportedNames[i]); + } + i = 0; + iMax = tmpExportedBindings.length; + for (; i < iMax; i++) { + addBindingToExports(parser, tmpExportedBindings[i]); + } + } + matchOrInsertSemicolon(parser, context | 32768); + break; + } + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 2, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86106: + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 241739: + declaration = parseLexicalDeclaration(parser, context, scope, 8, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86092: + declaration = parseLexicalDeclaration(parser, context, scope, 16, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86090: + declaration = parseVariableStatement(parser, context, scope, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + if ((parser.flags & 1) < 1 && parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 1, tokenPos, linePos, colPos); + if (scope) { + key = declaration.id ? declaration.id.name : ''; + declareUnboundVariable(parser, key); + } + break; + } + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, start, line, column, { + type: 'ExportNamedDeclaration', + declaration, + specifiers, + source + }); + } + function parseExpression(parser, context, canAssign, isPattern, inGroup, start, line, column) { + let expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, isPattern, inGroup, 1, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + return parseAssignmentExpression(parser, context, inGroup, 0, start, line, column, expr); + } + function parseSequenceExpression(parser, context, inGroup, start, line, column, expr) { + const expressions = [expr]; + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + return finishNode(parser, context, start, line, column, { + type: 'SequenceExpression', + expressions + }); + } + function parseExpressions(parser, context, inGroup, canAssign, start, line, column) { + const expr = parseExpression(parser, context, canAssign, 0, inGroup, start, line, column); + return parser.token === 18 + ? parseSequenceExpression(parser, context, inGroup, start, line, column, expr) + : expr; + } + function parseAssignmentExpression(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + if ((token & 4194304) === 4194304) { + if (parser.assignable & 2) + report(parser, 24); + if ((!isPattern && token === 1077936157 && left.type === 'ArrayExpression') || + left.type === 'ObjectExpression') { + reinterpretToPattern(parser, left); + } + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + } + if ((token & 8454144) === 8454144) { + left = parseBinaryExpression(parser, context, inGroup, start, line, column, 4, token, left); + } + if (consumeOpt(parser, context | 32768, 22)) { + left = parseConditionalExpression(parser, context, left, start, line, column); + } + return left; + } + function parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + parser.assignable = 2; + return left; + } + function parseConditionalExpression(parser, context, test, start, line, column) { + const consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 21); + parser.assignable = 1; + const alternate = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ConditionalExpression', + test, + consequent, + alternate + }); + } + function parseBinaryExpression(parser, context, inGroup, start, line, column, minPrec, operator, left) { + const bit = -((context & 134217728) > 0) & 8738868; + let t; + let prec; + parser.assignable = 2; + while (parser.token & 8454144) { + t = parser.token; + prec = t & 3840; + if ((t & 524288 && operator & 268435456) || (operator & 524288 && t & 268435456)) { + report(parser, 159); + } + if (prec + ((t === 8457273) << 8) - ((bit === t) << 12) <= minPrec) + break; + nextToken(parser, context | 32768); + left = finishNode(parser, context, start, line, column, { + type: t & 524288 || t & 268435456 ? 'LogicalExpression' : 'BinaryExpression', + left, + right: parseBinaryExpression(parser, context, inGroup, parser.tokenPos, parser.linePos, parser.colPos, prec, t, parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos)), + operator: KeywordDescTable[t & 255] + }); + } + if (parser.token === 1077936157) + report(parser, 24); + return left; + } + function parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup) { + if (!isLHS) + report(parser, 0); + const unaryOperator = parser.token; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + if (context & 1024 && unaryOperator === 16863278) { + if (arg.type === 'Identifier') { + report(parser, 117); + } + else if (isPropertyWithPrivateFieldKey(arg)) { + report(parser, 123); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UnaryExpression', + operator: KeywordDescTable[unaryOperator & 255], + argument: arg, + prefix: true + }); + } + function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column) { + const { token } = parser; + const expr = parseIdentifier(parser, context, isPattern); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + return parseFunctionExpression(parser, context, 1, inGroup, start, line, column); + } + if ((parser.token & 143360) === 143360) { + if (!isLHS) + report(parser, 0); + return parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column); + } + } + if (!inNew && parser.token === 67174411) { + return parseAsyncArrowOrCallExpression(parser, context, expr, canAssign, 1, 0, flags, start, line, column); + } + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + if (inNew) + report(parser, 48); + return parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + return expr; + } + function parseYieldExpression(parser, context, inGroup, canAssign, start, line, column) { + if (inGroup) + parser.destructible |= 256; + if (context & 2097152) { + nextToken(parser, context | 32768); + if (context & 8388608) + report(parser, 30); + if (!canAssign) + report(parser, 24); + if (parser.token === 22) + report(parser, 120); + let argument = null; + let delegate = false; + if ((parser.flags & 1) < 1) { + delegate = consumeOpt(parser, context | 32768, 8457014); + if (parser.token & (12288 | 65536) || delegate) { + argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'YieldExpression', + argument, + delegate + }); + } + if (context & 1024) + report(parser, 94, 'yield'); + return parseIdentifierOrArrow(parser, context, start, line, column); + } + function parseAwaitExpression(parser, context, inNew, inGroup, start, line, column) { + if (inGroup) + parser.destructible |= 128; + if (context & 4194304 || (context & 2048 && context & 8192)) { + if (inNew) + report(parser, 0); + if (context & 8388608) { + reportMessageAt(parser.index, parser.line, parser.index, 29); + } + nextToken(parser, context | 32768); + const argument = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'AwaitExpression', + argument + }); + } + if (context & 2048) + report(parser, 95); + return parseIdentifierOrArrow(parser, context, start, line, column); + } + function parseFunctionBody(parser, context, scope, origin, firstRestricted, scopeError) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + const body = []; + const prevContext = context; + if (parser.token !== 1074790415) { + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) { + context |= 1024; + if (parser.flags & 128) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 63); + } + if (parser.flags & 64) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 8); + } + } + body.push(parseDirective(parser, context, expr, token, tokenPos, parser.linePos, parser.colPos)); + } + if (context & 1024) { + if (firstRestricted) { + if ((firstRestricted & 537079808) === 537079808) { + report(parser, 115); + } + if ((firstRestricted & 36864) === 36864) { + report(parser, 38); + } + } + if (parser.flags & 512) + report(parser, 115); + if (parser.flags & 256) + report(parser, 114); + } + if (context & 64 && + scope && + scopeError !== void 0 && + (prevContext & 1024) < 1 && + (context & 8192) < 1) { + reportScopeError(scopeError); + } + } + parser.flags = + (parser.flags | 512 | 256 | 64) ^ + (512 | 256 | 64); + parser.destructible = (parser.destructible | 256) ^ 256; + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 4, {})); + } + consume(parser, origin & (16 | 8) ? context | 32768 : context, 1074790415); + parser.flags &= ~(128 | 64); + if (parser.token === 1077936157) + report(parser, 24); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'BlockStatement', + body + }); + } + function parseSuperExpression(parser, context, start, line, column) { + nextToken(parser, context); + switch (parser.token) { + case 67108991: + report(parser, 161); + case 67174411: { + if ((context & 524288) < 1) + report(parser, 26); + if (context & 16384) + report(parser, 143); + parser.assignable = 2; + break; + } + case 69271571: + case 67108877: { + if ((context & 262144) < 1) + report(parser, 27); + if (context & 16384) + report(parser, 143); + parser.assignable = 1; + break; + } + default: + report(parser, 28, 'super'); + } + return finishNode(parser, context, start, line, column, { type: 'Super' }); + } + function parseLeftHandSideExpression(parser, context, canAssign, inGroup, isLHS, start, line, column) { + const expression = parsePrimaryExpression(parser, context, 2, 0, canAssign, 0, inGroup, isLHS, start, line, column); + return parseMemberOrUpdateExpression(parser, context, expression, inGroup, 0, start, line, column); + } + function parseUpdateExpression(parser, context, expr, start, line, column) { + if (parser.assignable & 2) + report(parser, 52); + const { token } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: expr, + operator: KeywordDescTable[token & 255], + prefix: false + }); + } + function parseMemberOrUpdateExpression(parser, context, expr, inGroup, inChain, start, line, column) { + if ((parser.token & 33619968) === 33619968 && (parser.flags & 1) < 1) { + expr = parseUpdateExpression(parser, context, expr, start, line, column); + } + else if ((parser.token & 67108864) === 67108864) { + context = (context | 134217728 | 8192) ^ (134217728 | 8192); + switch (parser.token) { + case 67108877: { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }); + break; + } + case 69271571: { + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67174411: { + if ((parser.flags & 1024) === 1024) { + parser.flags = (parser.flags | 1024) ^ 1024; + return expr; + } + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + const args = parseArguments(parser, context, inGroup); + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67108991: { + nextToken(parser, context); + parser.flags |= 2048; + parser.assignable = 2; + expr = parseOptionalChain(parser, context, expr, start, line, column); + break; + } + default: + if ((parser.flags & 2048) === 2048) { + report(parser, 160); + } + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 1, start, line, column); + } + if (inChain === 0 && (parser.flags & 2048) === 2048) { + parser.flags = (parser.flags | 2048) ^ 2048; + expr = finishNode(parser, context, start, line, column, { + type: 'ChainExpression', + expression: expr + }); + } + return expr; + } + function parseOptionalChain(parser, context, expr, start, line, column) { + let restoreHasOptionalChaining = false; + let node; + if (parser.token === 69271571 || parser.token === 67174411) { + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + } + if (parser.token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, 0, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + optional: true, + property + }); + } + else if (parser.token === 67174411) { + const args = parseArguments(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args, + optional: true + }); + } + else { + if ((parser.token & (143360 | 4096)) < 1) + report(parser, 154); + const property = parseIdentifier(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + optional: true, + property + }); + } + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + return node; + } + function parsePropertyOrPrivatePropertyName(parser, context) { + if ((parser.token & (143360 | 4096)) < 1 && parser.token !== 131) { + report(parser, 154); + } + return context & 1 && parser.token === 131 + ? parsePrivateIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + : parseIdentifier(parser, context, 0); + } + function parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column) { + if (inNew) + report(parser, 53); + if (!isLHS) + report(parser, 0); + const { token } = parser; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.assignable & 2) { + report(parser, 52); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: arg, + operator: KeywordDescTable[token & 255], + prefix: true + }); + } + function parsePrimaryExpression(parser, context, kind, inNew, canAssign, isPattern, inGroup, isLHS, start, line, column) { + if ((parser.token & 143360) === 143360) { + switch (parser.token) { + case 209008: + return parseAwaitExpression(parser, context, inNew, inGroup, start, line, column); + case 241773: + return parseYieldExpression(parser, context, inGroup, canAssign, start, line, column); + case 209007: + return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column); + } + const { token, tokenValue } = parser; + const expr = parseIdentifier(parser, context | 65536, isPattern); + if (parser.token === 10) { + if (!isLHS) + report(parser, 0); + classifyIdentifier(parser, context, token, 1); + return parseArrowFromIdentifier(parser, context, tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + if (context & 16384 && token === 537079928) + report(parser, 126); + if (token === 241739) { + if (context & 1024) + report(parser, 109); + if (kind & (8 | 16)) + report(parser, 97); + } + parser.assignable = + context & 1024 && (token & 537079808) === 537079808 + ? 2 + : 1; + return expr; + } + if ((parser.token & 134217728) === 134217728) { + return parseLiteral(parser, context); + } + switch (parser.token) { + case 33619995: + case 33619996: + return parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column); + case 16863278: + case 16842800: + case 16842801: + case 25233970: + case 25233971: + case 16863277: + case 16863279: + return parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup); + case 86106: + return parseFunctionExpression(parser, context, 0, inGroup, start, line, column); + case 2162700: + return parseObjectLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 69271571: + return parseArrayLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 67174411: + return parseParenthesizedExpression(parser, context, canAssign, 1, 0, start, line, column); + case 86021: + case 86022: + case 86023: + return parseNullOrTrueOrFalseLiteral(parser, context, start, line, column); + case 86113: + return parseThisExpression(parser, context); + case 65540: + return parseRegExpLiteral(parser, context, start, line, column); + case 133: + case 86096: + return parseClassExpression(parser, context, inGroup, start, line, column); + case 86111: + return parseSuperExpression(parser, context, start, line, column); + case 67174409: + return parseTemplateLiteral(parser, context, start, line, column); + case 67174408: + return parseTemplate(parser, context); + case 86109: + return parseNewExpression(parser, context, inGroup, start, line, column); + case 134283389: + return parseBigIntLiteral(parser, context, start, line, column); + case 131: + return parsePrivateIdentifier(parser, context, start, line, column); + case 86108: + return parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column); + case 8456258: + if (context & 16) + return parseJSXRootElementOrFragment(parser, context, 1, start, line, column); + default: + if (isValidIdentifier(context, parser.token)) + return parseIdentifierOrArrow(parser, context, start, line, column); + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + function parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column) { + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 67108877) { + return parseImportMetaExpression(parser, context, expr, start, line, column); + } + if (inNew) + report(parser, 137); + expr = parseImportExpression(parser, context, inGroup, start, line, column); + parser.assignable = 2; + return parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + } + function parseImportMetaExpression(parser, context, meta, start, line, column) { + if ((context & 2048) === 0) + report(parser, 163); + nextToken(parser, context); + if (parser.token !== 143495 && parser.tokenValue !== 'meta') + report(parser, 28, KeywordDescTable[parser.token & 255]); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property: parseIdentifier(parser, context, 0) + }); + } + function parseImportExpression(parser, context, inGroup, start, line, column) { + consume(parser, context | 32768, 67174411); + if (parser.token === 14) + report(parser, 138); + const source = parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + return finishNode(parser, context, start, line, column, { + type: 'ImportExpression', + source + }); + } + function parseBigIntLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1), + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1) + }); + } + function parseTemplateLiteral(parser, context, start, line, column) { + parser.assignable = 2; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + const quasis = [parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)]; + return finishNode(parser, context, start, line, column, { + type: 'TemplateLiteral', + expressions: [], + quasis + }); + } + function parseTemplate(parser, context) { + context = (context | 134217728) ^ 134217728; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + const quasis = [ + parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false) + ]; + const expressions = [parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)]; + if (parser.token !== 1074790415) + report(parser, 80); + while ((parser.token = scanTemplateTail(parser, context)) !== 67174409) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false)); + expressions.push(parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + if (parser.token !== 1074790415) + report(parser, 80); + } + { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'TemplateLiteral', + expressions, + quasis + }); + } + function parseTemplateElement(parser, context, cooked, raw, start, line, col, tail) { + const node = finishNode(parser, context, start, line, col, { + type: 'TemplateElement', + value: { + cooked, + raw + }, + tail + }); + const tailSize = tail ? 1 : 2; + if (context & 2) { + node.start += 1; + node.range[0] += 1; + node.end -= tailSize; + node.range[1] -= tailSize; + } + if (context & 4) { + node.loc.start.column += 1; + node.loc.end.column -= tailSize; + } + return node; + } + function parseSpreadElement(parser, context, start, line, column) { + context = (context | 134217728) ^ 134217728; + consume(parser, context | 32768, 14); + const argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 1; + return finishNode(parser, context, start, line, column, { + type: 'SpreadElement', + argument + }); + } + function parseArguments(parser, context, inGroup) { + nextToken(parser, context | 32768); + const args = []; + if (parser.token === 16) { + nextToken(parser, context); + return args; + } + while (parser.token !== 16) { + if (parser.token === 14) { + args.push(parseSpreadElement(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + else { + args.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + if (parser.token !== 18) + break; + nextToken(parser, context | 32768); + if (parser.token === 16) + break; + } + consume(parser, context, 16); + return args; + } + function parseIdentifier(parser, context, isPattern) { + const { tokenValue, tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + return finishNode(parser, context, tokenPos, linePos, colPos, context & 268435456 + ? { + type: 'Identifier', + name: tokenValue, + pattern: isPattern === 1 + } + : { + type: 'Identifier', + name: tokenValue + }); + } + function parseLiteral(parser, context) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + if (parser.token === 134283389) { + return parseBigIntLiteral(parser, context, tokenPos, linePos, colPos); + } + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, context & 512 + ? { + type: 'Literal', + value: tokenValue, + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue + }); + } + function parseNullOrTrueOrFalseLiteral(parser, context, start, line, column) { + const raw = KeywordDescTable[parser.token & 255]; + const value = parser.token === 86023 ? null : raw === 'true'; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value, + raw + } + : { + type: 'Literal', + value + }); + } + function parseThisExpression(parser, context) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ThisExpression' + }); + } + function parseFunctionDeclaration(parser, context, scope, origin, allowGen, flags, isAsync, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = allowGen ? optionalBit(parser, context, 8457014) : 0; + let id = null; + let firstRestricted; + let functionScope = scope ? createScope() : void 0; + if (parser.token === 67174411) { + if ((flags & 1) < 1) + report(parser, 37, 'Function'); + } + else { + const kind = origin & 4 && ((context & 8192) < 1 || (context & 2048) < 1) + ? 4 + : 64; + validateFunctionName(parser, context | ((context & 3072) << 11), parser.token); + if (scope) { + if (kind & 4) { + addVarName(parser, context, scope, parser.tokenValue, kind); + } + else { + addBlockName(parser, context, scope, parser.tokenValue, kind, origin); + } + functionScope = addChildScope(functionScope, 256); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, parser.tokenValue); + } + } + } + firstRestricted = parser.token; + if (parser.token & 143360) { + id = parseIdentifier(parser, context, 0); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + ((isAsync * 2 + isGenerator) << 21) | + (isGenerator ? 0 : 1073741824); + if (scope) + functionScope = addChildScope(functionScope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, functionScope, 0, 1); + const body = parseFunctionBody(parser, (context | 8192 | 4096 | 131072) ^ + (8192 | 4096 | 131072), scope ? addChildScope(functionScope, 128) : functionScope, 8, firstRestricted, scope ? functionScope.scopeError : void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionDeclaration', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); + } + function parseFunctionExpression(parser, context, isAsync, inGroup, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = optionalBit(parser, context, 8457014); + const generatorAndAsyncFlags = (isAsync * 2 + isGenerator) << 21; + let id = null; + let firstRestricted; + let scope = context & 64 ? createScope() : void 0; + if ((parser.token & (143360 | 4096 | 36864)) > 0) { + validateFunctionName(parser, ((context | 0x1ec0000) ^ 0x1ec0000) | generatorAndAsyncFlags, parser.token); + if (scope) + scope = addChildScope(scope, 256); + firstRestricted = parser.token; + id = parseIdentifier(parser, context, 0); + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + generatorAndAsyncFlags | + (isGenerator ? 0 : 1073741824); + if (scope) + scope = addChildScope(scope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, scope, inGroup, 1); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192 | 4096 | 131072 | 16384), scope ? addChildScope(scope, 128) : scope, 0, firstRestricted, void 0); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); + } + function parseArrayLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseArrayExpressionOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; + } + function parseArrayExpressionOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context | 32768); + const elements = []; + let destructible = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 20) { + if (consumeOpt(parser, context | 32768, 18)) { + elements.push(null); + } + else { + let left; + const { token, tokenPos, linePos, colPos, tokenValue } = parser; + if (token & 143360) { + left = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + if (parser.assignable & 2) + report(parser, 24); + nextToken(parser, context | 32768); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + operator: '=', + left, + right + }); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else { + destructible |= + kind & 1 + ? 32 + : (kind & 2) < 1 + ? 16 + : 0; + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + if (parser.token !== 1077936157) + destructible |= 16; + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token & 2097152) { + left = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + parser.assignable = + parser.destructible & 16 + ? 2 + : 1; + if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 20, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos); + destructible |= parser.destructible; + if (parser.token !== 18 && parser.token !== 20) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + left = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + if ((kind & (2 | 1)) < 1 && token === 67174411) + destructible |= 16; + } + else if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === 67174411) { + destructible |= + parser.assignable & 1 && kind & (2 | 1) + ? 32 + : 16; + } + } + elements.push(left); + if (consumeOpt(parser, context | 32768, 18)) { + if (parser.token === 20) + break; + } + else + break; + } + } + consume(parser, context, 20); + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ArrayPattern' : 'ArrayExpression', + elements + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; + } + function parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node) { + if (parser.token !== 1077936157) + report(parser, 24); + nextToken(parser, context | 32768); + if (destructible & 16) + report(parser, 24); + if (!isPattern) + reinterpretToPattern(parser, node); + const { tokenPos, linePos, colPos } = parser; + const right = parseExpression(parser, context, 1, 1, inGroup, tokenPos, linePos, colPos); + parser.destructible = + ((destructible | 64 | 8) ^ + (8 | 64)) | + (parser.destructible & 128 ? 128 : 0) | + (parser.destructible & 256 ? 256 : 0); + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left: node, + right + } + : { + type: 'AssignmentExpression', + left: node, + operator: '=', + right + }); + } + function parseSpreadOrRestElement(parser, context, scope, closingToken, kind, origin, isAsync, inGroup, isPattern, start, line, column) { + nextToken(parser, context | 32768); + let argument = null; + let destructible = 0; + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + if (token & (4096 | 143360)) { + parser.assignable = 1; + argument = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + token = parser.token; + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== closingToken) { + if (parser.assignable & 2 && parser.token === 1077936157) + report(parser, 68); + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === closingToken || token === 18) { + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + else { + destructible |= 32; + } + destructible |= parser.destructible & 128 ? 128 : 0; + } + else if (token === closingToken) { + report(parser, 39); + } + else if (token & 2097152) { + argument = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + token = parser.token; + if (token !== 1077936157 && token !== closingToken && token !== 18) { + if (parser.destructible & 8) + report(parser, 68); + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + destructible |= parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + else { + if ((parser.token & 8454144) === 8454144) { + argument = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, argument); + } + if (consumeOpt(parser, context | 32768, 22)) { + argument = parseConditionalExpression(parser, context, argument, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + else { + destructible |= + closingToken === 1074790415 && token !== 1077936157 + ? 16 + : parser.destructible; + } + } + else { + destructible |= 32; + argument = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + const { token, tokenPos, linePos, colPos } = parser; + if (token === 1077936157 && token !== closingToken && token !== 18) { + if (parser.assignable & 2) + report(parser, 24); + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + destructible |= 16; + } + else { + if (token === 18) { + destructible |= 16; + } + else if (token !== closingToken) { + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + destructible |= + parser.assignable & 1 ? 32 : 16; + } + parser.destructible = destructible; + if (parser.token !== closingToken && parser.token !== 18) + report(parser, 155); + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + if (parser.token !== closingToken) { + if (kind & 1) + destructible |= isAsync ? 16 : 32; + if (consumeOpt(parser, context | 32768, 1077936157)) { + if (destructible & 16) + report(parser, 24); + reinterpretToPattern(parser, argument); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + argument = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left: argument, + right + } + : { + type: 'AssignmentExpression', + left: argument, + operator: '=', + right + }); + destructible = 16; + } + else { + destructible |= 16; + } + } + parser.destructible = destructible; + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + function parseMethodDefinition(parser, context, kind, inGroup, start, line, column) { + const modifierFlags = (kind & 64) < 1 ? 31981568 : 14680064; + context = + ((context | modifierFlags) ^ modifierFlags) | + ((kind & 88) << 18) | + 100925440; + let scope = context & 64 ? addChildScope(createScope(), 512) : void 0; + const params = parseMethodFormals(parser, context | 8388608, scope, kind, 1, inGroup); + if (scope) + scope = addChildScope(scope, 128); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192), scope, 0, void 0, void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + params, + body, + async: (kind & 16) > 0, + generator: (kind & 8) > 0, + id: null + }); + } + function parseObjectLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseObjectLiteralOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; + } + function parseObjectLiteralOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context); + const properties = []; + let destructible = 0; + let prototypeCount = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 1074790415) { + const { token, tokenValue, linePos, colPos, tokenPos } = parser; + if (token === 14) { + properties.push(parseSpreadOrRestElement(parser, context, scope, 1074790415, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos)); + } + else { + let state = 0; + let key = null; + let value; + const t = parser.token; + if (parser.token & (143360 | 4096) || parser.token === 121) { + key = parseIdentifier(parser, context, 0); + if (parser.token === 18 || parser.token === 1074790415 || parser.token === 1077936157) { + state |= 4; + if (context & 1024 && (token & 537079808) === 537079808) { + destructible |= 16; + } + else { + validateBindingIdentifier(parser, context, kind, token, 0); + } + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + if (consumeOpt(parser, context | 32768, 1077936157)) { + destructible |= 8; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + value = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: context & -2147483648 ? Object.assign({}, key) : key, + right + }); + } + else { + destructible |= + (token === 209008 ? 128 : 0) | + (token === 121 ? 16 : 0); + value = context & -2147483648 ? Object.assign({}, key) : key; + } + } + else if (consumeOpt(parser, context | 32768, 21)) { + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + const tokenAfterColon = parser.token; + const valueAfterColon = parser.tokenValue; + destructible |= t === 121 ? 16 : 0; + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + destructible |= parser.destructible & 128 ? 128 : 0; + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if ((parser.token & 4194304) === 4194304) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token !== 1077936157) { + destructible |= 32; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 69271571) { + destructible |= 16; + if (token === 209007) + state |= 16; + state |= + (token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1) | 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token & (143360 | 4096)) { + destructible |= 16; + if (token === 121) + report(parser, 92); + if (token === 209007) { + if (parser.flags & 1) + report(parser, 128); + state |= 16; + } + key = parseIdentifier(parser, context, 0); + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 67174411) { + destructible |= 16; + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 8457014) { + destructible |= 16; + if (token === 12402 || token === 12403) { + report(parser, 40); + } + else if (token === 143483) { + report(parser, 92); + } + nextToken(parser, context); + state |= + 8 | 1 | (token === 209007 ? 16 : 0); + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + state |= 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if ((parser.token & 134217728) === 134217728) { + if (token === 209007) + state |= 16; + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + destructible |= 16; + key = parseLiteral(parser, context); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 129); + } + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + if (parser.token === 21) { + consume(parser, context | 32768, 21); + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token, tokenValue: valueAfterColon } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if (parser.token === 1077936157) { + if (parser.assignable & 2) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if ((parser.destructible & 8) !== 8) { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible = parser.assignable | 16; + } + else { + report(parser, 130); + } + } + else if (parser.token === 69271571) { + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.destructible & 256 ? 256 : 0; + state |= 2; + if (parser.token === 21) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos, tokenValue, token: tokenAfterColon } = parser; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if ((parser.token & 4194304) === 4194304) { + destructible |= + parser.assignable & 2 + ? 16 + : token === 1077936157 + ? 0 + : 32; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (destructible & 8) { + report(parser, 59); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = + parser.assignable & 2 ? destructible | 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, linePos, colPos); + destructible = 16; + } + else { + report(parser, 41); + } + } + else if (token === 8457014) { + consume(parser, context | 32768, 8457014); + state |= 8; + if (parser.token & 143360) { + const { token, line, index } = parser; + key = parseIdentifier(parser, context, 0); + state |= 1; + if (parser.token === 67174411) { + destructible |= 16; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + reportMessageAt(index, line, index, token === 209007 + ? 43 + : token === 12402 || parser.token === 12403 + ? 42 + : 44, KeywordDescTable[token & 255]); + } + } + else if ((parser.token & 134217728) === 134217728) { + destructible |= 16; + key = parseLiteral(parser, context); + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + destructible |= 16; + state |= 2 | 1; + key = parseComputedPropertyName(parser, context, inGroup); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 122); + } + } + else { + report(parser, 28, KeywordDescTable[token & 255]); + } + destructible |= parser.destructible & 128 ? 128 : 0; + parser.destructible = destructible; + properties.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'Property', + key: key, + value, + kind: !(state & 768) ? 'init' : state & 512 ? 'set' : 'get', + computed: (state & 2) > 0, + method: (state & 1) > 0, + shorthand: (state & 4) > 0 + })); + } + destructible |= parser.destructible; + if (parser.token !== 18) + break; + nextToken(parser, context); + } + consume(parser, context, 1074790415); + if (prototypeCount > 1) + destructible |= 64; + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ObjectPattern' : 'ObjectExpression', + properties + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; + } + function parseMethodFormals(parser, context, scope, kind, type, inGroup) { + consume(parser, context, 67174411); + const params = []; + parser.flags = (parser.flags | 128) ^ 128; + if (parser.token === 16) { + if (kind & 512) { + report(parser, 35, 'Setter', 'one', ''); + } + nextToken(parser, context); + return params; + } + if (kind & 256) { + report(parser, 35, 'Getter', 'no', 's'); + } + if (kind & 512 && parser.token === 14) { + report(parser, 36); + } + context = (context | 134217728) ^ 134217728; + let setterArgs = 0; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left = null; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, type, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) + report(parser, 47); + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: left, + right + }); + } + setterArgs++; + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (kind & 512 && setterArgs !== 1) { + report(parser, 35, 'Setter', 'one', ''); + } + if (scope && scope.scopeError !== void 0) + reportScopeError(scope.scopeError); + if (isSimpleParameterList) + parser.flags |= 128; + consume(parser, context, 16); + return params; + } + function parseComputedPropertyName(parser, context, inGroup) { + nextToken(parser, context | 32768); + const key = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 20); + return key; + } + function parseParenthesizedExpression(parser, context, canAssign, kind, origin, start, line, column) { + parser.flags = (parser.flags | 128) ^ 128; + const { tokenPos: piStart, linePos: plStart, colPos: pcStart } = parser; + nextToken(parser, context | 32768 | 1073741824); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 0, start, line, column); + } + let destructible = 0; + parser.destructible &= ~(256 | 128); + let expr; + let expressions = []; + let isSequence = 0; + let isSimpleParameterList = 0; + const { tokenPos: iStart, linePos: lStart, colPos: cStart } = parser; + parser.assignable = 1; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 1, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808 || + (token & 36864) === 36864) { + isSimpleParameterList = 1; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if ((token & 2097152) === 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + parser.assignable = 2; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 0, 1, 0, tokenPos, linePos, colPos); + if (parser.destructible & 16) + report(parser, 71); + isSimpleParameterList = 1; + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + destructible |= 8; + break; + } + else { + destructible |= 16; + expr = parseExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (parser.token === 18) { + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + } + if (isSequence) { + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + } + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + parser.destructible = destructible; + return expr; + } + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (!consumeOpt(parser, context | 32768, 18)) + break; + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + if (parser.token === 16) { + destructible |= 8; + break; + } + } + if (isSequence) { + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + if (destructible & 16 && destructible & 8) + report(parser, 145); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 46); + if (context & (4194304 | 2048) && destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) { + report(parser, 30); + } + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, isSequence ? expressions : [expr], canAssign, 0, start, line, column); + } + else if (destructible & 8) { + report(parser, 139); + } + parser.destructible = ((parser.destructible | 256) ^ 256) | destructible; + return context & 128 + ? finishNode(parser, context, piStart, plStart, pcStart, { + type: 'ParenthesizedExpression', + expression: expr + }) + : expr; + } + function parseIdentifierOrArrow(parser, context, start, line, column) { + const { tokenValue } = parser; + const expr = parseIdentifier(parser, context, 0); + parser.assignable = 1; + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + return parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + return expr; + } + function parseArrowFromIdentifier(parser, context, value, expr, inNew, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + if (inNew) + report(parser, 48); + parser.flags &= ~128; + const scope = context & 64 ? createArrowHeadParsingScope(parser, context, value) : void 0; + return parseArrowFunctionExpression(parser, context, scope, [expr], isAsync, start, line, column); + } + function parseParenthesizedArrow(parser, context, scope, params, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + for (let i = 0; i < params.length; ++i) + reinterpretToPattern(parser, params[i]); + return parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column); + } + function parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column) { + if (parser.flags & 1) + report(parser, 45); + consume(parser, context | 32768, 10); + context = ((context | 15728640) ^ 15728640) | (isAsync << 22); + const expression = parser.token !== 2162700; + let body; + if (scope && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + if (expression) { + body = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + if (scope) + scope = addChildScope(scope, 128); + body = parseFunctionBody(parser, (context | 134221824 | 8192 | 16384) ^ + (134221824 | 8192 | 16384), scope, 16, void 0, void 0); + switch (parser.token) { + case 69271571: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + break; + case 67108877: + case 67174409: + case 22: + report(parser, 113); + case 67174411: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + parser.flags |= 1024; + break; + } + if ((parser.token & 8454144) === 8454144 && (parser.flags & 1) < 1) + report(parser, 28, KeywordDescTable[parser.token & 255]); + if ((parser.token & 33619968) === 33619968) + report(parser, 121); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ArrowFunctionExpression', + params, + body, + async: isAsync === 1, + expression + }); + } + function parseFormalParametersOrFormalList(parser, context, scope, inGroup, kind) { + consume(parser, context, 67174411); + parser.flags = (parser.flags | 128) ^ 128; + const params = []; + if (consumeOpt(parser, context, 16)) + return params; + context = (context | 134217728) ^ 134217728; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, kind, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) { + report(parser, 47); + } + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left, + right + }); + } + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (isSimpleParameterList) + parser.flags |= 128; + if (scope && (isSimpleParameterList || context & 1024) && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + consume(parser, context, 16); + return params; + } + function parseMembeExpressionNoCall(parser, context, expr, inGroup, start, line, column) { + const { token } = parser; + if (token & 67108864) { + if (token === 67108877) { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }), 0, start, line, column); + } + else if (token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }), 0, start, line, column); + } + else if (token === 67174408 || token === 67174409) { + parser.assignable = 2; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }), 0, start, line, column); + } + } + return expr; + } + function parseNewExpression(parser, context, inGroup, start, line, column) { + const id = parseIdentifier(parser, context | 32768, 0); + const { tokenPos, linePos, colPos } = parser; + if (consumeOpt(parser, context, 67108877)) { + if (context & 67108864 && parser.token === 143494) { + parser.assignable = 2; + return parseMetaProperty(parser, context, id, start, line, column); + } + report(parser, 91); + } + parser.assignable = 2; + if ((parser.token & 16842752) === 16842752) { + report(parser, 62, KeywordDescTable[parser.token & 255]); + } + const expr = parsePrimaryExpression(parser, context, 2, 1, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + context = (context | 134217728) ^ 134217728; + if (parser.token === 67108991) + report(parser, 162); + const callee = parseMembeExpressionNoCall(parser, context, expr, inGroup, tokenPos, linePos, colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'NewExpression', + callee, + arguments: parser.token === 67174411 ? parseArguments(parser, context, inGroup) : [] + }); + } + function parseMetaProperty(parser, context, meta, start, line, column) { + const property = parseIdentifier(parser, context, 0); + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property + }); + } + function parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column) { + if (parser.token === 209008) + report(parser, 29); + if (context & (1024 | 2097152) && parser.token === 241773) { + report(parser, 30); + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context, 0), 0, canAssign, 1, start, line, column); + } + function parseAsyncArrowOrCallExpression(parser, context, callee, canAssign, kind, origin, flags, start, line, column) { + nextToken(parser, context | 32768); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + if (parser.token === 10) { + if (flags & 1) + report(parser, 45); + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 1, start, line, column); + } + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: [] + }); + } + let destructible = 0; + let expr = null; + let isSimpleParameterList = 0; + parser.destructible = + (parser.destructible | 256 | 128) ^ + (256 | 128); + const params = []; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, kind, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808) { + parser.flags |= 512; + } + else if ((token & 36864) === 36864) { + parser.flags |= 256; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token & 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + expr = parseBinaryExpression(parser, context, 1, start, line, column, 4, token, expr); + } + if (consumeOpt(parser, context | 32768, 22)) { + expr = parseConditionalExpression(parser, context, expr, start, line, column); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 1, 1, 0, tokenPos, linePos, colPos); + destructible |= (parser.token === 16 ? 0 : 16) | parser.destructible; + isSimpleParameterList = 1; + } + else { + expr = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + destructible = parser.assignable; + params.push(expr); + while (consumeOpt(parser, context | 32768, 18)) { + params.push(parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos)); + } + destructible |= parser.assignable; + consume(parser, context, 16); + parser.destructible = destructible | 16; + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + params.push(expr); + if (!consumeOpt(parser, context | 32768, 18)) + break; + } + consume(parser, context, 16); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 25); + if (parser.flags & 1 || flags & 1) + report(parser, 45); + if (destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) + report(parser, 30); + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, params, canAssign, 1, start, line, column); + } + else if (destructible & 8) { + report(parser, 59); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + function parseRegExpLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenRegExp, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return context & 512 + ? finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp, + raw: tokenRaw + }) + : finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp + }); + } + function parseClassDeclaration(parser, context, scope, flags, start, line, column) { + context = (context | 16777216 | 1024) ^ 16777216; + let decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + if (parser.leadingDecorators.length) { + parser.leadingDecorators.push(...decorators); + decorators = parser.leadingDecorators; + parser.leadingDecorators = []; + } + nextToken(parser, context); + let id = null; + let superClass = null; + const { tokenValue } = parser; + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) { + report(parser, 114); + } + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + if (scope) { + addBlockName(parser, context, scope, tokenValue, 32, 0); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, tokenValue); + } + } + } + id = parseIdentifier(parser, context, 0); + } + else { + if ((flags & 1) < 1) + report(parser, 37, 'Class'); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, scope, 2, 8, 0); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassDeclaration', + id, + superClass, + decorators, + body + } + : { + type: 'ClassDeclaration', + id, + superClass, + body + }); + } + function parseClassExpression(parser, context, inGroup, start, line, column) { + let id = null; + let superClass = null; + context = (context | 1024 | 16777216) ^ 16777216; + const decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + nextToken(parser, context); + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + id = parseIdentifier(parser, context, 0); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, inGroup, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, void 0, 2, 0, inGroup); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassExpression', + id, + superClass, + decorators, + body + } + : { + type: 'ClassExpression', + id, + superClass, + body + }); + } + function parseDecorators(parser, context) { + const list = []; + if (context & 1) { + while (parser.token === 133) { + list.push(parseDecoratorList(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + } + return list; + } + function parseDecoratorList(parser, context, start, line, column) { + nextToken(parser, context | 32768); + let expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, start, line, column); + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + return finishNode(parser, context, start, line, column, { + type: 'Decorator', + expression + }); + } + function parseClassBody(parser, context, inheritedContext, scope, kind, origin, inGroup) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + context = (context | 134217728) ^ 134217728; + parser.flags = (parser.flags | 32) ^ 32; + const body = []; + let decorators; + while (parser.token !== 1074790415) { + let length = 0; + decorators = parseDecorators(parser, context); + length = decorators.length; + if (length > 0 && parser.tokenValue === 'constructor') { + report(parser, 106); + } + if (parser.token === 1074790415) + report(parser, 105); + if (consumeOpt(parser, context, 1074790417)) { + if (length > 0) + report(parser, 116); + continue; + } + body.push(parseClassElementList(parser, context, scope, inheritedContext, kind, decorators, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + consume(parser, origin & 8 ? context | 32768 : context, 1074790415); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ClassBody', + body + }); + } + function parseClassElementList(parser, context, scope, inheritedContext, type, decorators, isStatic, inGroup, start, line, column) { + let kind = isStatic ? 32 : 0; + let key = null; + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 36864)) { + key = parseIdentifier(parser, context, 0); + switch (token) { + case 36972: + if (!isStatic && parser.token !== 67174411) { + return parseClassElementList(parser, context, scope, inheritedContext, type, decorators, 1, inGroup, start, line, column); + } + break; + case 209007: + if (parser.token !== 67174411 && (parser.flags & 1) < 1) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 16 | (optionalBit(parser, context, 8457014) ? 8 : 0); + } + break; + case 12402: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 256; + } + break; + case 12403: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 512; + } + break; + } + } + else if (token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, inheritedContext, inGroup); + } + else if ((token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (token === 8457014) { + kind |= 8; + nextToken(parser, context); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + context = context | 16384; + } + else if (context & 1 && (parser.token & 1073741824) === 1073741824) { + kind |= 128; + context = context | 16384; + } + else if (token === 122) { + key = parseIdentifier(parser, context, 0); + if (parser.token !== 67174411) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + if (kind & (8 | 16 | 768)) { + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, context, 0); + } + else if (parser.token === 122) { + key = parseIdentifier(parser, context, 0); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + } + else + report(parser, 131); + } + if ((kind & 2) < 1) { + if (parser.tokenValue === 'constructor') { + if ((parser.token & 1073741824) === 1073741824) { + report(parser, 125); + } + else if ((kind & 32) < 1 && parser.token === 67174411) { + if (kind & (768 | 16 | 128 | 8)) { + report(parser, 50, 'accessor'); + } + else if ((context & 524288) < 1) { + if (parser.flags & 32) + report(parser, 51); + else + parser.flags |= 32; + } + } + kind |= 64; + } + else if ((kind & 4096) < 1 && + kind & (32 | 768 | 8 | 16) && + parser.tokenValue === 'prototype') { + report(parser, 49); + } + } + if (context & 1 && parser.token !== 67174411) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + const value = parseMethodDefinition(parser, context, kind, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + decorators, + value + } + : { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + value + }); + } + function parsePrivateIdentifier(parser, context, start, line, column) { + nextToken(parser, context); + const { tokenValue } = parser; + if (tokenValue === 'constructor') + report(parser, 124); + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'PrivateIdentifier', + name: tokenValue + }); + } + function parsePropertyDefinition(parser, context, key, state, decorators, start, line, column) { + let value = null; + if (state & 8) + report(parser, 0); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 537079928) + report(parser, 115); + value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 0, 1, tokenPos, linePos, colPos); + if ((parser.token & 1073741824) !== 1073741824) { + value = parseMemberOrUpdateExpression(parser, context | 16384, value, 0, 0, tokenPos, linePos, colPos); + value = parseAssignmentExpression(parser, context | 16384, 0, 0, tokenPos, linePos, colPos, value); + if (parser.token === 18) { + value = parseSequenceExpression(parser, context, 0, start, line, column, value); + } + } + } + return finishNode(parser, context, start, line, column, { + type: 'PropertyDefinition', + key, + value, + static: (state & 32) > 0, + computed: (state & 2) > 0, + decorators + }); + } + function parseBindingPattern(parser, context, scope, type, origin, start, line, column) { + if (parser.token & 143360) + return parseAndClassifyIdentifier(parser, context, scope, type, origin, start, line, column); + if ((parser.token & 2097152) !== 2097152) + report(parser, 28, KeywordDescTable[parser.token & 255]); + const left = parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column) + : parseObjectLiteralOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column); + if (parser.destructible & 16) + report(parser, 47); + if (parser.destructible & 32) + report(parser, 47); + return left; + } + function parseAndClassifyIdentifier(parser, context, scope, kind, origin, start, line, column) { + const { tokenValue, token } = parser; + if (context & 1024) { + if ((token & 537079808) === 537079808) { + report(parser, 115); + } + else if ((token & 36864) === 36864) { + report(parser, 114); + } + } + if ((token & 20480) === 20480) { + report(parser, 99); + } + if (context & (2048 | 2097152) && token === 241773) { + report(parser, 30); + } + if (token === 241739) { + if (kind & (8 | 16)) + report(parser, 97); + } + if (context & (4194304 | 2048) && token === 209008) { + report(parser, 95); + } + nextToken(parser, context); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + return finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: tokenValue + }); + } + function parseJSXRootElementOrFragment(parser, context, inJSXChild, start, line, column) { + nextToken(parser, context); + if (parser.token === 8456259) { + return finishNode(parser, context, start, line, column, { + type: 'JSXFragment', + openingFragment: parseOpeningFragment(parser, context, start, line, column), + children: parseJSXChildren(parser, context), + closingFragment: parseJSXClosingFragment(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + let closingElement = null; + let children = []; + const openingElement = parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column); + if (!openingElement.selfClosing) { + children = parseJSXChildren(parser, context); + closingElement = parseJSXClosingElement(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos); + const close = isEqualTagName(closingElement.name); + if (isEqualTagName(openingElement.name) !== close) + report(parser, 149, close); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXElement', + children, + openingElement, + closingElement + }); + } + function parseOpeningFragment(parser, context, start, line, column) { + scanJSXToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningFragment' + }); + } + function parseJSXClosingElement(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + const name = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + parser.token = scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingElement', + name + }); + } + function parseJSXClosingFragment(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + consume(parser, context, 8456259); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingFragment' + }); + } + function parseJSXChildren(parser, context) { + const children = []; + while (parser.token !== 25) { + parser.index = parser.tokenPos = parser.startPos; + parser.column = parser.colPos = parser.startColumn; + parser.line = parser.linePos = parser.startLine; + scanJSXToken(parser, context); + children.push(parseJSXChild(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return children; + } + function parseJSXChild(parser, context, start, line, column) { + if (parser.token === 138) + return parseJSXText(parser, context, start, line, column); + if (parser.token === 2162700) + return parseJSXExpressionContainer(parser, context, 0, 0, start, line, column); + if (parser.token === 8456258) + return parseJSXRootElementOrFragment(parser, context, 0, start, line, column); + report(parser, 0); + } + function parseJSXText(parser, context, start, line, column) { + scanJSXToken(parser, context); + const node = { + type: 'JSXText', + value: parser.tokenValue + }; + if (context & 512) { + node.raw = parser.tokenRaw; + } + return finishNode(parser, context, start, line, column, node); + } + function parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column) { + if ((parser.token & 143360) !== 143360 && (parser.token & 4096) !== 4096) + report(parser, 0); + const tagName = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + const attributes = parseJSXAttributes(parser, context); + const selfClosing = parser.token === 8457016; + if (parser.token === 8456259) { + scanJSXToken(parser, context); + } + else { + consume(parser, context, 8457016); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + scanJSXToken(parser, context); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningElement', + name: tagName, + attributes, + selfClosing + }); + } + function parseJSXElementName(parser, context, start, line, column) { + scanJSXIdentifier(parser); + let key = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) + return parseJSXNamespacedName(parser, context, key, start, line, column); + while (consumeOpt(parser, context, 67108877)) { + scanJSXIdentifier(parser); + key = parseJSXMemberExpression(parser, context, key, start, line, column); + } + return key; + } + function parseJSXMemberExpression(parser, context, object, start, line, column) { + const property = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXMemberExpression', + object, + property + }); + } + function parseJSXAttributes(parser, context) { + const attributes = []; + while (parser.token !== 8457016 && parser.token !== 8456259 && parser.token !== 1048576) { + attributes.push(parseJsxAttribute(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return attributes; + } + function parseJSXSpreadAttribute(parser, context, start, line, column) { + nextToken(parser, context); + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadAttribute', + argument: expression + }); + } + function parseJsxAttribute(parser, context, start, line, column) { + if (parser.token === 2162700) + return parseJSXSpreadAttribute(parser, context, start, line, column); + scanJSXIdentifier(parser); + let value = null; + let name = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) { + name = parseJSXNamespacedName(parser, context, name, start, line, column); + } + if (parser.token === 1077936157) { + const token = scanJSXAttributeValue(parser, context); + const { tokenPos, linePos, colPos } = parser; + switch (token) { + case 134283267: + value = parseLiteral(parser, context); + break; + case 8456258: + value = parseJSXRootElementOrFragment(parser, context, 1, tokenPos, linePos, colPos); + break; + case 2162700: + value = parseJSXExpressionContainer(parser, context, 1, 1, tokenPos, linePos, colPos); + break; + default: + report(parser, 148); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXAttribute', + value, + name + }); + } + function parseJSXNamespacedName(parser, context, namespace, start, line, column) { + consume(parser, context, 21); + const name = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXNamespacedName', + namespace, + name + }); + } + function parseJSXExpressionContainer(parser, context, inJSXChild, isAttr, start, line, column) { + nextToken(parser, context); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 14) + return parseJSXSpreadChild(parser, context, tokenPos, linePos, colPos); + let expression = null; + if (parser.token === 1074790415) { + if (isAttr) + report(parser, 151); + expression = parseJSXEmptyExpression(parser, context, parser.startPos, parser.startLine, parser.startColumn); + } + else { + expression = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + } + if (inJSXChild) { + consume(parser, context, 1074790415); + } + else { + scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXExpressionContainer', + expression + }); + } + function parseJSXSpreadChild(parser, context, start, line, column) { + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadChild', + expression + }); + } + function parseJSXEmptyExpression(parser, context, start, line, column) { + parser.startPos = parser.tokenPos; + parser.startLine = parser.linePos; + parser.startColumn = parser.colPos; + return finishNode(parser, context, start, line, column, { + type: 'JSXEmptyExpression' + }); + } + function parseJSXIdentifier(parser, context, start, line, column) { + const { tokenValue } = parser; + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXIdentifier', + name: tokenValue + }); + } + + var estree = /*#__PURE__*/Object.freeze({ + __proto__: null + }); + exports('ESTree', estree); + + var version$1 = "4.2.0"; + + const version = exports('version', version$1); + function parseScript(source, options) { + return parseSource(source, options, 0); + } + function parseModule(source, options) { + return parseSource(source, options, 1024 | 2048); + } + function parse(source, options) { + return parseSource(source, options, 0); + } + + } + }; +}); diff --git a/node_modules/meriyah/dist/meriyah.system.min.js b/node_modules/meriyah/dist/meriyah.system.min.js new file mode 100644 index 0000000..da3148a --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.system.min.js @@ -0,0 +1 @@ +System.register("meriyah",[],(function(e){"use strict";return{execute:function(){e({parse:function(e,t){return me(e,t,0)},parseModule:function(e,t){return me(e,t,3072)},parseScript:function(e,t){return me(e,t,0)}});const t={0:"Unexpected token",28:"Unexpected token: '%0'",1:"Octal escape sequences are not allowed in strict mode",2:"Octal escape sequences are not allowed in template strings",3:"Unexpected token `#`",4:"Illegal Unicode escape sequence",5:"Invalid code point %0",6:"Invalid hexadecimal escape sequence",8:"Octal literals are not allowed in strict mode",7:"Decimal integer literals with a leading zero are forbidden in strict mode",9:"Expected number in radix %0",145:"Invalid left-hand side assignment to a destructible right-hand side",10:"Non-number found after exponent indicator",11:"Invalid BigIntLiteral",12:"No identifiers allowed directly after numeric literal",13:"Escapes \\8 or \\9 are not syntactically valid escapes",14:"Unterminated string literal",15:"Unterminated template literal",16:"Multiline comment was not closed properly",17:"The identifier contained dynamic unicode escape that was not closed",18:"Illegal character '%0'",19:"Missing hexadecimal digits",20:"Invalid implicit octal",21:"Invalid line break in string literal",22:"Only unicode escapes are legal in identifier names",23:"Expected '%0'",24:"Invalid left-hand side in assignment",25:"Invalid left-hand side in async arrow",26:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',27:"Member access on super must be in a method",29:"Await expression not allowed in formal parameter",30:"Yield expression not allowed in formal parameter",92:"Unexpected token: 'escaped keyword'",31:"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses",119:"Async functions can only be declared at the top level or inside a block",32:"Unterminated regular expression",33:"Unexpected regular expression flag",34:"Duplicate regular expression flag '%0'",35:"%0 functions must have exactly %1 argument%2",36:"Setter function argument must not be a rest parameter",37:"%0 declaration must have a name in this context",38:"Function name may not contain any reserved words or be eval or arguments in strict mode",39:"The rest operator is missing an argument",40:"A getter cannot be a generator",41:"A computed property name must be followed by a colon or paren",130:"Object literal keys that are strings or numbers must be a method or have a colon",43:"Found `* async x(){}` but this should be `async * x(){}`",42:"Getters and setters can not be generators",44:"'%0' can not be generator method",45:"No line break is allowed after '=>'",46:"The left-hand side of the arrow can only be destructed through assignment",47:"The binding declaration is not destructible",48:"Async arrow can not be followed by new expression",49:"Classes may not have a static property named 'prototype'",50:"Class constructor may not be a %0",51:"Duplicate constructor method in class",52:"Invalid increment/decrement operand",53:"Invalid use of `new` keyword on an increment/decrement expression",54:"`=>` is an invalid assignment target",55:"Rest element may not have a trailing comma",56:"Missing initializer in %0 declaration",57:"'for-%0' loop head declarations can not have an initializer",58:"Invalid left-hand side in for-%0 loop: Must have a single binding",59:"Invalid shorthand property initializer",60:"Property name __proto__ appears more than once in object literal",61:"Let is disallowed as a lexically bound name",62:"Invalid use of '%0' inside new expression",63:"Illegal 'use strict' directive in function with non-simple parameter list",64:'Identifier "let" disallowed as left-hand side expression in strict mode',65:"Illegal continue statement",66:"Illegal break statement",67:"Cannot have `let[...]` as a var name in strict mode",68:"Invalid destructuring assignment target",69:"Rest parameter may not have a default initializer",70:"The rest argument must the be last parameter",71:"Invalid rest argument",73:"In strict mode code, functions can only be declared at top level or inside a block",74:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement",75:"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement",76:"Class declaration can't appear in single-statement context",77:"Invalid left-hand side in for-%0",78:"Invalid assignment in for-%0",79:"for await (... of ...) is only valid in async functions and async generators",80:"The first token after the template expression should be a continuation of the template",82:"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode",81:"`let \n [` is a restricted production at the start of a statement",83:"Catch clause requires exactly one parameter, not more (and no trailing comma)",84:"Catch clause parameter does not support default values",85:"Missing catch or finally after try",86:"More than one default clause in switch statement",87:"Illegal newline after throw",88:"Strict mode code may not include a with statement",89:"Illegal return statement",90:"The left hand side of the for-header binding declaration is not destructible",91:"new.target only allowed within functions",93:"'#' not followed by identifier",99:"Invalid keyword",98:"Can not use 'let' as a class name",97:"'A lexical declaration can't define a 'let' binding",96:"Can not use `let` as variable name in strict mode",94:"'%0' may not be used as an identifier in this context",95:"Await is only valid in async functions",100:"The %0 keyword can only be used with the module goal",101:"Unicode codepoint must not be greater than 0x10FFFF",102:"%0 source must be string",103:"Only a identifier can be used to indicate alias",104:"Only '*' or '{...}' can be imported after default",105:"Trailing decorator may be followed by method",106:"Decorators can't be used with a constructor",108:"HTML comments are only allowed with web compatibility (Annex B)",109:"The identifier 'let' must not be in expression position in strict mode",110:"Cannot assign to `eval` and `arguments` in strict mode",111:"The left-hand side of a for-of loop may not start with 'let'",112:"Block body arrows can not be immediately invoked without a group",113:"Block body arrows can not be immediately accessed without a group",114:"Unexpected strict mode reserved word",115:"Unexpected eval or arguments in strict mode",116:"Decorators must not be followed by a semicolon",117:"Calling delete on expression not allowed in strict mode",118:"Pattern can not have a tail",120:"Can not have a `yield` expression on the left side of a ternary",121:"An arrow function can not have a postfix update operator",122:"Invalid object literal key character after generator star",123:"Private fields can not be deleted",125:"Classes may not have a field called constructor",124:"Classes may not have a private element named constructor",126:"A class field initializer may not contain arguments",127:"Generators can only be declared at the top level or inside a block",128:"Async methods are a restricted production and cannot have a newline following it",129:"Unexpected character after object literal property name",131:"Invalid key token",132:"Label '%0' has already been declared",133:"continue statement must be nested within an iteration statement",134:"Undefined label '%0'",135:"Trailing comma is disallowed inside import(...) arguments",136:"import() requires exactly one argument",137:"Cannot use new with import(...)",138:"... is not allowed in import()",139:"Expected '=>'",140:"Duplicate binding '%0'",141:"Cannot export a duplicate name '%0'",144:"Duplicate %0 for-binding",142:"Exported binding '%0' needs to refer to a top-level declared variable",143:"Unexpected private field",147:"Numeric separators are not allowed at the end of numeric literals",146:"Only one underscore is allowed as numeric separator",148:"JSX value should be either an expression or a quoted JSX text",149:"Expected corresponding JSX closing tag for %0",150:"Adjacent JSX elements must be wrapped in an enclosing tag",151:"JSX attributes must only be assigned a non-empty 'expression'",152:"'%0' has already been declared",153:"'%0' shadowed a catch clause binding",154:"Dot property must be an identifier",155:"Encountered invalid input after spread/rest argument",156:"Catch without try",157:"Finally without try",158:"Expected corresponding closing tag for JSX fragment",159:"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses",160:"Invalid tagged template on optional chain",161:"Invalid optional chain from super property",162:"Invalid optional chain from new expression",163:'Cannot use "import.meta" outside a module',164:"Leading decorators must be attached to a class declaration"};class n extends SyntaxError{constructor(e,n,o,r,...s){const a="["+n+":"+o+"]: "+t[r].replace(/%(\d+)/g,((e,t)=>s[t]));super(`${a}`),this.index=e,this.line=n,this.column=o,this.description=a,this.loc={line:n,column:o}}}function o(e,t,...o){throw new n(e.index,e.line,e.column,t,...o)}function r(e){throw new n(e.index,e.line,e.column,e.type,e.params)}function s(e,t,o,r,...s){throw new n(e,t,o,r,...s)}function a(e,t,o,r){throw new n(e,t,o,r)}const i=((e,t)=>{const n=new Uint32Array(104448);let o=0,r=0;for(;o<3540;){const s=e[o++];if(s<0)r-=s;else{let a=e[o++];2&s&&(a=t[a]),1&s?n.fill(a,r,r+=e[o++]):n[r++]=a}}return n})([-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828e3,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902e3,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532]);function l(e){return e.column++,e.currentChar=e.source.charCodeAt(++e.index)}function c(e,t){if(55296!=(64512&t))return 0;const n=e.source.charCodeAt(e.index+1);return 56320!=(64512&n)?0:(t=e.currentChar=65536+((1023&t)<<10)+(1023&n),0==(1&i[0+(t>>>5)]>>>t)&&o(e,18,p(t)),e.index++,e.column++,1)}function u(e,t){e.currentChar=e.source.charCodeAt(++e.index),e.flags|=1,0==(4&t)&&(e.column=0,e.line++)}function d(e){e.flags|=1,e.currentChar=e.source.charCodeAt(++e.index),e.column=0,e.line++}function p(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(e>>>10)+String.fromCharCode(1023&e)}function f(e){return e<65?e-48:e-65+10&15}const k=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],g=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],m=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function b(e){return e<=127?g[e]:1&i[34816+(e>>>5)]>>>e}function h(e){return e<=127?m[e]:1&i[0+(e>>>5)]>>>e||8204===e||8205===e}const P=["SingleLine","MultiLine","HTMLOpen","HTMLClose","HashbangComment"];function y(e,t,n,r,s,a,i,l){return 2048&r&&o(e,0),x(e,t,n,s,a,i,l)}function x(e,t,n,o,r,s,a){const{index:i}=e;for(e.tokenPos=e.index,e.linePos=e.line,e.colPos=e.column;e.index=e.source.length)return o(e,32)}const s=e.index-1;let a=0,i=e.currentChar;const{index:c}=e;for(;h(i);){switch(i){case 103:2&a&&o(e,34,"g"),a|=2;break;case 105:1&a&&o(e,34,"i"),a|=1;break;case 109:4&a&&o(e,34,"m"),a|=4;break;case 117:16&a&&o(e,34,"g"),a|=16;break;case 121:8&a&&o(e,34,"y"),a|=8;break;case 115:12&a&&o(e,34,"s"),a|=12;break;default:o(e,33)}i=l(e)}const u=e.source.slice(c,e.index),d=e.source.slice(n,s);return e.tokenRegExp={pattern:d,flags:u},512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),e.tokenValue=function(e,t,n){try{return new RegExp(t,n)}catch(t){o(e,32)}}(e,d,u),65540}function q(e,t,n){const{index:r}=e;let s="",a=l(e),i=e.index;for(;0==(8&k[a]);){if(a===n)return s+=e.source.slice(i,e.index),l(e),512&t&&(e.tokenRaw=e.source.slice(r,e.index)),e.tokenValue=s,134283267;if(8==(8&a)&&92===a){if(s+=e.source.slice(i,e.index),a=l(e),a<127||8232===a||8233===a){const n=C(e,t,a);n>=0?s+=p(n):E(e,n,0)}else s+=p(a);i=e.index+1}e.index>=e.end&&o(e,14),a=l(e)}o(e,14)}function C(e,t,n){switch(n){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(e.index1114111)return-5;return e.currentChar<1||125!==e.currentChar?-4:t}{if(0==(64&k[t]))return-4;const n=e.source.charCodeAt(e.index+1);if(0==(64&k[n]))return-4;const o=e.source.charCodeAt(e.index+2);if(0==(64&k[o]))return-4;const r=e.source.charCodeAt(e.index+3);return 0==(64&k[r])?-4:(e.index+=3,e.column+=3,e.currentChar=e.source.charCodeAt(e.index),f(t)<<12|f(n)<<8|f(o)<<4|f(r))}}case 56:case 57:if(0==(256&t))return-3;default:return n}}function E(e,t,n){switch(t){case-1:return;case-2:o(e,n?2:1);case-3:o(e,13);case-4:o(e,6);case-5:o(e,101)}}function A(e,t){const{index:n}=e;let r=67174409,s="",a=l(e);for(;96!==a;){if(36===a&&123===e.source.charCodeAt(e.index+1)){l(e),r=67174408;break}if(8==(8&a)&&92===a)if(a=l(e),a>126)s+=p(a);else{const n=C(e,1024|t,a);if(n>=0)s+=p(n);else{if(-1!==n&&65536&t){s=void 0,a=S(e,a),a<0&&(r=67174408);break}E(e,n,1)}}else e.index=e.end&&o(e,15),a=l(e)}return l(e),e.tokenValue=s,e.tokenRaw=e.source.slice(n+1,e.index-(67174409===r?1:2)),r}function S(e,t){for(;96!==t;){switch(t){case 36:{const n=e.index+1;if(n=e.end&&o(e,15),t=l(e)}return t}function D(e,t){return e.index>=e.end&&o(e,0),e.index--,e.column--,A(e,t)}function L(e,t,n){let r=e.currentChar,s=0,i=9,c=64&n?0:1,u=0,d=0;if(64&n)s="."+V(e,r),r=e.currentChar,110===r&&o(e,11);else{if(48===r)if(r=l(e),120==(32|r)){for(n=136,r=l(e);4160&k[r];)95!==r?(d=1,s=16*s+f(r),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?19:147)}else if(111==(32|r)){for(n=132,r=l(e);4128&k[r];)95!==r?(d=1,s=8*s+(r-48),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?0:147)}else if(98==(32|r)){for(n=130,r=l(e);4224&k[r];)95!==r?(d=1,s=2*s+(r-48),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?0:147)}else if(32&k[r])for(1024&t&&o(e,1),n=1;16&k[r];){if(512&k[r]){n=32,c=0;break}s=8*s+(r-48),r=l(e)}else 512&k[r]?(1024&t&&o(e,1),e.flags|=64,n=32):95===r&&o(e,0);if(48&n){if(c){for(;i>=0&&4112&k[r];)95!==r?(d=0,s=10*s+(r-48),r=l(e),--i):(r=l(e),(95===r||32&n)&&a(e.index,e.line,e.index+1,146),d=1);if(d&&a(e.index,e.line,e.index+1,147),i>=0&&!b(r)&&46!==r)return e.tokenValue=s,512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),134283266}s+=V(e,r),r=e.currentChar,46===r&&(95===l(e)&&o(e,0),n=64,s+="."+V(e,e.currentChar),r=e.currentChar)}}const p=e.index;let g=0;if(110===r&&128&n)g=1,r=l(e);else if(101==(32|r)){r=l(e),256&k[r]&&(r=l(e));const{index:t}=e;(16&k[r])<1&&o(e,10),s+=e.source.substring(p,t)+V(e,r),r=e.currentChar}return(e.index","(","{",".","...","}",")",";",",","[","]",":","?","'",'"',"","++","--","=","<<=",">>=",">>>=","**=","+=","-=","*=","/=","%=","^=","|=","&=","||=","&&=","??=","typeof","delete","void","!","~","+","-","in","instanceof","*","%","/","**","&&","||","===","!==","==","!=","<=",">=","<",">","<<",">>",">>>","&","|","^","var","let","const","break","case","catch","class","continue","debugger","default","do","else","export","extends","finally","for","function","if","import","new","return","super","switch","this","throw","try","while","with","implements","interface","package","private","protected","public","static","yield","as","async","await","constructor","get","set","from","of","enum","eval","arguments","escaped keyword","escaped future reserved keyword","reserved if strict","#","BigIntLiteral","??","?.","WhiteSpace","Illegal","LineTerminator","PrivateField","Template","@","target","meta","LineFeed","Escaped","JSXText"],R=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function N(e,t,n){for(;m[l(e)];);return e.tokenValue=e.source.slice(e.tokenPos,e.index),92!==e.currentChar&&e.currentChar<126?R[e.tokenValue]||208897:U(e,t,0,n)}function I(e,t){const n=O(e);return h(n)||o(e,4),e.tokenValue=p(n),U(e,t,1,4&k[n])}function U(e,t,n,r){let s=e.index;for(;e.index=2&&a<=11){const o=R[e.tokenValue];return void 0===o?208897:n?1024&t?209008===o&&0==(4196352&t)?o:36972===o||36864==(36864&o)?122:121:1073741824&t&&0==(8192&t)&&20480==(20480&o)?o:241773===o?1073741824&t?143483:2097152&t?121:o:209007===o&&1073741824&t?143483:36864==(36864&o)||209008===o&&0==(4194304&t)?o:121:o}return 208897}function B(e){return b(l(e))||o(e,93),131}function O(e){return 117!==e.source.charCodeAt(e.index+1)&&o(e,4),e.currentChar=e.source.charCodeAt(e.index+=2),function(e){let t=0;const n=e.currentChar;if(123===n){const n=e.index-2;for(;64&k[l(e)];)t=t<<4|f(e.currentChar),t>1114111&&a(n,e.line,e.index+1,101);return 125!==e.currentChar&&a(n,e.line,e.index-1,6),l(e),t}0==(64&k[n])&&o(e,6);const r=e.source.charCodeAt(e.index+1);0==(64&k[r])&&o(e,6);const s=e.source.charCodeAt(e.index+2);0==(64&k[s])&&o(e,6);const i=e.source.charCodeAt(e.index+3);0==(64&k[i])&&o(e,6);return t=f(n)<<12|f(r)<<8|f(s)<<4|f(i),e.currentChar=e.source.charCodeAt(e.index+=4),t}(e)}const G=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function F(e,t){if(e.flags=1^(1|e.flags),e.startPos=e.index,e.startColumn=e.column,e.startLine=e.line,e.token=j(e,t,0),e.onToken&&1048576!==e.token){const t={start:{line:e.linePos,column:e.colPos},end:{line:e.line,column:e.column}};e.onToken(function(e){switch(e){case 134283266:return"NumericLiteral";case 134283267:return"StringLiteral";case 86021:case 86022:return"BooleanLiteral";case 86023:return"NullLiteral";case 65540:return"RegularExpression";case 67174408:case 67174409:case 132:return"TemplateLiteral";default:return 143360==(143360&e)?"Identifier":4096==(4096&e)?"Keyword":"Punctuator"}}(e.token),e.tokenPos,e.index,t)}}function j(e,t,n){const r=0===e.index,s=e.source;let a=e.index,c=e.line,f=e.column;for(;e.index=e.end)return 8457014;const t=e.currentChar;return 61===t?(l(e),4194340):42!==t?8457014:61!==l(e)?8457273:(l(e),4194337)}case 8455497:return 61!==l(e)?8455497:(l(e),4194343);case 25233970:{l(e);const t=e.currentChar;return 43===t?(l(e),33619995):61===t?(l(e),4194338):25233970}case 25233971:{l(e);const i=e.currentChar;if(45===i){if(l(e),(1&n||r)&&62===e.currentChar){0==(256&t)&&o(e,108),l(e),n=y(e,s,n,t,3,a,c,f),a=e.tokenPos,c=e.linePos,f=e.colPos;continue}return 33619996}return 61===i?(l(e),4194339):25233971}case 8457016:if(l(e),e.index=48&&k<=57)return L(e,t,80);if(46===k){const t=e.index+1;if(t=48&&t<=57)))return l(e),67108991}return 22}}}else{if((8232^g)<=1){n=-5&n|1,d(e);continue}if(55296==(64512&g)||0!=(1&i[34816+(g>>>5)]>>>g))return 56320==(64512&g)&&(g=(1023&g)<<10|1023&g|65536,0==(1&i[0+(g>>>5)]>>>g)&&o(e,18,p(g)),e.index++,e.currentChar=g),e.column++,e.tokenValue="",U(e,t,0,0);if(160===(k=g)||65279===k||133===k||5760===k||k>=8192&&k<=8203||8239===k||8287===k||12288===k||8201===k||65519===k){l(e);continue}o(e,18,p(g))}}var k;return 1048576}const H={AElig:"Æ",AMP:"&",Aacute:"Á",Abreve:"Ă",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atilde:"Ã",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ETH:"Ð",Eacute:"É",Ecaron:"Ě",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"Í",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"â",acute:"´",acy:"а",aelig:"æ",af:"⁡",afr:"𝔞",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"ð",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"í",ic:"⁣",icirc:"î",icy:"и",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"ó",oast:"⊛",ocir:"⊚",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"ø",osol:"⊘",otilde:"õ",otimes:"⊗",otimesas:"⨶",ouml:"ö",ovbar:"⌽",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"þ",tilde:"˜",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"},J={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function M(e){return e.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g,(e=>{if("#"===e.charAt(1)){const t=e.charAt(2);return function(e){if(e>=55296&&e<=57343||e>1114111)return"�";e in J&&(e=J[e]);return String.fromCodePoint(e)}("X"===t||"x"===t?parseInt(e.slice(3),16):parseInt(e.slice(2),10))}return H[e.slice(1,-1)]||e}))}function z(e,t){return e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.token=8192&k[e.currentChar]?function(e,t){const n=e.currentChar;let r=l(e);const s=e.index;for(;r!==n;)e.index>=e.end&&o(e,14),r=l(e);r!==n&&o(e,14);e.tokenValue=e.source.slice(s,e.index),l(e),512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index));return 134283267}(e,t):j(e,t,0),e.token}function X(e,t){if(e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.index>=e.end)return e.token=1048576;switch(G[e.source.charCodeAt(e.index)]){case 8456258:l(e),47===e.currentChar?(l(e),e.token=25):e.token=8456258;break;case 2162700:l(e),e.token=2162700;break;default:{let n=0;for(;e.index0&&W(e,t,209008);K(e,32768|t,67174411),n&&(n=le(n,1));let c,u=null,d=null,p=0,f=null,k=86090===e.token||241739===e.token||86092===e.token;const{token:g,tokenPos:m,linePos:b,colPos:h}=e;k?241739===g?(f=nt(e,t,0),2240512&e.token?(8738868===e.token?1024&t&&o(e,64):f=re(e,t,m,b,h,{type:"VariableDeclaration",kind:"let",declarations:De(e,134217728|t,n,8,32)}),e.assignable=1):1024&t?o(e,64):(k=!1,e.assignable=1,f=ze(e,t,f,0,0,m,b,h),274549===e.token&&o(e,111))):(F(e,t),f=re(e,t,m,b,h,86090===g?{type:"VariableDeclaration",kind:"var",declarations:De(e,134217728|t,n,4,32)}:{type:"VariableDeclaration",kind:"const",declarations:De(e,134217728|t,n,16,32)}),e.assignable=1):1074790417===g?l&&o(e,79):2097152==(2097152&g)?(f=2162700===g?ut(e,t,void 0,1,0,0,2,32,m,b,h):at(e,t,void 0,1,0,0,2,32,m,b,h),p=e.destructible,256&t&&64&p&&o(e,60),e.assignable=16&p?2:1,f=ze(e,134217728|t,f,0,0,e.tokenPos,e.linePos,e.colPos)):f=Me(e,134217728|t,1,0,1,m,b,h);if(262144==(262144&e.token)){if(274549===e.token){2&e.assignable&&o(e,77,l?"await":"of"),Q(e,f),F(e,32768|t),c=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),K(e,32768|t,16);return re(e,t,s,a,i,{type:"ForOfStatement",left:f,right:c,body:Ee(e,t,n,r),await:l})}2&e.assignable&&o(e,77,"in"),Q(e,f),F(e,32768|t),l&&o(e,79),c=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos),K(e,32768|t,16);return re(e,t,s,a,i,{type:"ForInStatement",body:Ee(e,t,n,r),left:f,right:c})}l&&o(e,79);k||(8&p&&1077936157!==e.token&&o(e,77,"loop"),f=Ge(e,134217728|t,0,0,m,b,h,f));18===e.token&&(f=Be(e,t,0,e.tokenPos,e.linePos,e.colPos,f));K(e,32768|t,1074790417),1074790417!==e.token&&(u=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos));K(e,32768|t,1074790417),16!==e.token&&(d=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos));K(e,32768|t,16);const P=Ee(e,t,n,r);return re(e,t,s,a,i,{type:"ForStatement",init:f,test:u,update:d,body:P})}(e,t,n,s,i,l,c);case 20564:return function(e,t,n,o,r,s,a){F(e,32768|t);const i=Ee(e,t,n,o);K(e,t,20580),K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return K(e,32768|t,16),W(e,t,1074790417),re(e,t,r,s,a,{type:"DoWhileStatement",body:i,test:l})}(e,t,n,s,i,l,c);case 20580:return function(e,t,n,o,r,s,a){F(e,t),K(e,32768|t,67174411);const i=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,16);const l=Ee(e,t,n,o);return re(e,t,r,s,a,{type:"WhileStatement",test:i,body:l})}(e,t,n,s,i,l,c);case 86112:return function(e,t,n,r,s,a,i){F(e,t),K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,t,16),K(e,t,2162700);const c=[];let u=0;n&&(n=le(n,8));for(;1074790415!==e.token;){const{tokenPos:s,linePos:a,colPos:i}=e;let l=null;const d=[];for(W(e,32768|t,20558)?l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos):(K(e,32768|t,20563),u&&o(e,86),u=1),K(e,32768|t,21);20558!==e.token&&1074790415!==e.token&&20563!==e.token;)d.push(he(e,4096|t,n,2,{$:r}));c.push(re(e,t,s,a,i,{type:"SwitchCase",test:l,consequent:d}))}return K(e,32768|t,1074790415),re(e,t,s,a,i,{type:"SwitchStatement",discriminant:l,cases:c})}(e,t,n,s,i,l,c);case 1074790417:return function(e,t,n,o,r){return F(e,32768|t),re(e,t,n,o,r,{type:"EmptyStatement"})}(e,t,i,l,c);case 2162700:return ye(e,t,n?le(n,2):n,s,i,l,c);case 86114:return function(e,t,n,r,s){F(e,32768|t),1&e.flags&&o(e,87);const a=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return $(e,32768|t),re(e,t,n,r,s,{type:"ThrowStatement",argument:a})}(e,t,i,l,c);case 20557:return function(e,t,n,r,s,a){F(e,32768|t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=nt(e,32768|t,0),oe(e,n,r,0)||o(e,134,r)}else(135168&t)<1&&o(e,66);return $(e,32768|t),re(e,t,r,s,a,{type:"BreakStatement",label:i})}(e,t,s,i,l,c);case 20561:return function(e,t,n,r,s,a){(131072&t)<1&&o(e,65);F(e,t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=nt(e,32768|t,0),oe(e,n,r,1)||o(e,134,r)}return $(e,32768|t),re(e,t,r,s,a,{type:"ContinueStatement",label:i})}(e,t,s,i,l,c);case 20579:return function(e,t,n,r,s,a,i){F(e,32768|t);const l=n?le(n,32):void 0,c=ye(e,t,l,{$:r},e.tokenPos,e.linePos,e.colPos),{tokenPos:u,linePos:d,colPos:p}=e,f=W(e,32768|t,20559)?function(e,t,n,r,s,a,i){let l=null,c=n;W(e,t,67174411)&&(n&&(n=le(n,4)),l=At(e,t,n,2097152==(2097152&e.token)?256:512,0,e.tokenPos,e.linePos,e.colPos),18===e.token?o(e,83):1077936157===e.token&&o(e,84),K(e,32768|t,16),n&&(c=le(n,64)));const u=ye(e,t,c,{$:r},e.tokenPos,e.linePos,e.colPos);return re(e,t,s,a,i,{type:"CatchClause",param:l,body:u})}(e,t,n,r,u,d,p):null;let k=null;if(20568===e.token){F(e,32768|t);k=ye(e,t,l?le(n,4):void 0,{$:r},e.tokenPos,e.linePos,e.colPos)}f||k||o(e,85);return re(e,t,s,a,i,{type:"TryStatement",block:c,handler:f,finalizer:k})}(e,t,n,s,i,l,c);case 20581:return function(e,t,n,r,s,a,i){F(e,t),1024&t&&o(e,88);K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,16);const c=Pe(e,t,n,2,r,0,e.tokenPos,e.linePos,e.colPos);return re(e,t,s,a,i,{type:"WithStatement",object:l,body:c})}(e,t,n,s,i,l,c);case 20562:return function(e,t,n,o,r){return F(e,32768|t),$(e,32768|t),re(e,t,n,o,r,{type:"DebuggerStatement"})}(e,t,i,l,c);case 209007:return we(e,t,n,r,s,0,i,l,c);case 20559:o(e,156);case 20568:o(e,157);case 86106:o(e,1024&t?73:(256&t)<1?75:74);case 86096:o(e,76);default:return function(e,t,n,r,s,a,i,l,c){const{tokenValue:u,token:d}=e;let p;switch(d){case 241739:p=nt(e,t,0),1024&t&&o(e,82),69271571===e.token&&o(e,81);break;default:p=_e(e,t,2,0,1,0,0,1,e.tokenPos,e.linePos,e.colPos)}if(143360&d&&21===e.token)return ve(e,t,n,r,s,u,p,d,a,i,l,c);p=ze(e,t,p,0,0,i,l,c),p=Ge(e,t,0,0,i,l,c,p),18===e.token&&(p=Be(e,t,0,i,l,c,p));return xe(e,t,p,i,l,c)}(e,t,n,r,s,a,i,l,c)}}function ye(e,t,n,o,r,s,a){const i=[];for(K(e,32768|t,2162700);1074790415!==e.token;)i.push(he(e,t,n,2,{$:o}));return K(e,32768|t,1074790415),re(e,t,r,s,a,{type:"BlockStatement",body:i})}function xe(e,t,n,o,r,s){return $(e,32768|t),re(e,t,o,r,s,{type:"ExpressionStatement",expression:n})}function ve(e,t,n,r,s,a,i,l,c,u,d,p){ee(e,t,0,l,1),function(e,t,n){let r=t;for(;r;)r["$"+n]&&o(e,132,n),r=r.$;t["$"+n]=1}(e,s,a),F(e,32768|t);return re(e,t,u,d,p,{type:"LabeledStatement",label:i,body:c&&(1024&t)<1&&256&t&&86106===e.token?rt(e,t,le(n,2),r,0,0,0,e.tokenPos,e.linePos,e.colPos):Pe(e,t,n,r,s,c,e.tokenPos,e.linePos,e.colPos)})}function we(e,t,n,r,s,a,i,l,c){const{token:u,tokenValue:d}=e;let p=nt(e,t,0);if(21===e.token)return ve(e,t,n,r,s,d,p,u,1,i,l,c);const f=1&e.flags;if(!f){if(86106===e.token)return a||o(e,119),rt(e,t,n,r,1,0,1,i,l,c);if(143360==(143360&e.token))return p=ht(e,t,1,i,l,c),18===e.token&&(p=Be(e,t,0,i,l,c,p)),xe(e,t,p,i,l,c)}return 67174411===e.token?p=Pt(e,t,p,1,1,0,f,i,l,c):(10===e.token&&(ge(e,t,u,1),p=ft(e,t,e.tokenValue,p,0,1,0,i,l,c)),e.assignable=1),p=ze(e,t,p,0,0,i,l,c),18===e.token&&(p=Be(e,t,0,i,l,c,p)),p=Ge(e,t,0,0,i,l,c,p),e.assignable=1,xe(e,t,p,i,l,c)}function qe(e,t,n,o,r,s,a){return 1074790417!==o&&(e.assignable=2,n=ze(e,t,n,0,0,r,s,a),1074790417!==e.token&&(n=Ge(e,t,0,0,r,s,a,n),18===e.token&&(n=Be(e,t,0,r,s,a,n))),$(e,32768|t)),8&t&&"Literal"===n.type&&"string"==typeof n.value?re(e,t,r,s,a,{type:"ExpressionStatement",expression:n,directive:n.raw.slice(1,-1)}):re(e,t,r,s,a,{type:"ExpressionStatement",expression:n})}function Ce(e,t,n,o,r,s,a){return 1024&t||(256&t)<1||86106!==e.token?Pe(e,t,n,0,{$:o},0,e.tokenPos,e.linePos,e.colPos):rt(e,t,le(n,2),0,0,0,0,r,s,a)}function Ee(e,t,n,o){return Pe(e,134217728^(134217728|t)|131072,n,0,{loop:1,$:o},0,e.tokenPos,e.linePos,e.colPos)}function Ae(e,t,n,o,r,s,a,i){F(e,t);const l=De(e,t,n,o,r);return $(e,32768|t),re(e,t,s,a,i,{type:"VariableDeclaration",kind:8&o?"let":"const",declarations:l})}function Se(e,t,n,o,r,s,a){F(e,t);const i=De(e,t,n,4,o);return $(e,32768|t),re(e,t,r,s,a,{type:"VariableDeclaration",kind:"var",declarations:i})}function De(e,t,n,r,s){let a=1;const i=[Le(e,t,n,r,s)];for(;W(e,t,18);)a++,i.push(Le(e,t,n,r,s));return a>1&&32&s&&262144&e.token&&o(e,58,T[255&e.token]),i}function Le(e,t,n,r,a){const{token:i,tokenPos:l,linePos:c,colPos:u}=e;let d=null;const p=At(e,t,n,r,a,l,c,u);return 1077936157===e.token?(F(e,32768|t),d=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),(32&a||(2097152&i)<1)&&(274549===e.token||8738868===e.token&&(2097152&i||(4&r)<1||1024&t))&&s(l,e.line,e.index-3,57,274549===e.token?"of":"in")):(16&r||(2097152&i)>0)&&262144!=(262144&e.token)&&o(e,56,16&r?"const":"destructuring"),re(e,t,l,c,u,{type:"VariableDeclarator",id:p,init:d})}function Ve(e,t,n){return ke(t,e.token)||o(e,114),537079808==(537079808&e.token)&&o(e,115),n&&ue(e,t,n,e.tokenValue,8,0),nt(e,t,0)}function Te(e,t,n){const{tokenPos:o,linePos:r,colPos:a}=e;return F(e,t),K(e,t,77934),134217728==(134217728&e.token)&&s(o,e.line,e.index,28,T[255&e.token]),re(e,t,o,r,a,{type:"ImportNamespaceSpecifier",local:Ve(e,t,n)})}function Re(e,t,n,r){for(F(e,t);143360&e.token;){let{token:s,tokenValue:a,tokenPos:i,linePos:l,colPos:c}=e;const u=nt(e,t,0);let d;W(e,t,77934)?(134217728==(134217728&e.token)||18===e.token?o(e,103):ee(e,t,16,e.token,0),a=e.tokenValue,d=nt(e,t,0)):(ee(e,t,16,s,0),d=u),n&&ue(e,t,n,a,8,0),r.push(re(e,t,i,l,c,{type:"ImportSpecifier",local:d,imported:u})),1074790415!==e.token&&K(e,t,18)}return K(e,t,1074790415),r}function Ne(e,t,n,o,r){let s=$e(e,t,re(e,t,n,o,r,{type:"Identifier",name:"import"}),n,o,r);return s=ze(e,t,s,0,0,n,o,r),s=Ge(e,t,0,0,n,o,r,s),xe(e,t,s,n,o,r)}function Ie(e,t,n,o,r){let s=Ye(e,t,0,n,o,r);return s=ze(e,t,s,0,0,n,o,r),xe(e,t,s,n,o,r)}function Ue(e,t,n,o,r,s,a,i){let l=_e(e,t,2,0,n,o,r,1,s,a,i);return l=ze(e,t,l,r,0,s,a,i),Ge(e,t,r,0,s,a,i,l)}function Be(e,t,n,o,r,s,a){const i=[a];for(;W(e,32768|t,18);)i.push(Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos));return re(e,t,o,r,s,{type:"SequenceExpression",expressions:i})}function Oe(e,t,n,o,r,s,a){const i=Ue(e,t,o,0,n,r,s,a);return 18===e.token?Be(e,t,n,r,s,a,i):i}function Ge(e,t,n,r,s,a,i,l){const{token:c}=e;if(4194304==(4194304&c)){2&e.assignable&&o(e,24),(!r&&1077936157===c&&"ArrayExpression"===l.type||"ObjectExpression"===l.type)&&Q(e,l),F(e,32768|t);const u=Ue(e,t,1,1,n,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,re(e,t,s,a,i,r?{type:"AssignmentPattern",left:l,right:u}:{type:"AssignmentExpression",left:l,operator:T[255&c],right:u})}return 8454144==(8454144&c)&&(l=He(e,t,n,s,a,i,4,c,l)),W(e,32768|t,22)&&(l=je(e,t,l,s,a,i)),l}function Fe(e,t,n,o,r,s,a,i){const{token:l}=e;F(e,32768|t);const c=Ue(e,t,1,1,n,e.tokenPos,e.linePos,e.colPos);return i=re(e,t,r,s,a,o?{type:"AssignmentPattern",left:i,right:c}:{type:"AssignmentExpression",left:i,operator:T[255&l],right:c}),e.assignable=2,i}function je(e,t,n,o,r,s){const a=Ue(e,134217728^(134217728|t),1,0,0,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,21),e.assignable=1;const i=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,re(e,t,o,r,s,{type:"ConditionalExpression",test:n,consequent:a,alternate:i})}function He(e,t,n,r,s,a,i,l,c){const u=8738868&-((134217728&t)>0);let d,p;for(e.assignable=2;8454144&e.token&&(d=e.token,p=3840&d,(524288&d&&268435456&l||524288&l&&268435456&d)&&o(e,159),!(p+((8457273===d)<<8)-((u===d)<<12)<=i));)F(e,32768|t),c=re(e,t,r,s,a,{type:524288&d||268435456&d?"LogicalExpression":"BinaryExpression",left:c,right:He(e,t,n,e.tokenPos,e.linePos,e.colPos,p,d,Me(e,t,0,n,1,e.tokenPos,e.linePos,e.colPos)),operator:T[255&d]});return 1077936157===e.token&&o(e,24),c}function Je(e,t,n,a,i,l){const{tokenPos:c,linePos:u,colPos:d}=e;K(e,32768|t,2162700);const p=[],f=t;if(1074790415!==e.token){for(;134283267===e.token;){const{index:n,tokenPos:o,tokenValue:r,token:a}=e,i=ot(e,t);Y(e,n,o,r)&&(t|=1024,128&e.flags&&s(e.index,e.line,e.tokenPos,63),64&e.flags&&s(e.index,e.line,e.tokenPos,8)),p.push(qe(e,t,i,a,o,e.linePos,e.colPos))}1024&t&&(i&&(537079808==(537079808&i)&&o(e,115),36864==(36864&i)&&o(e,38)),512&e.flags&&o(e,115),256&e.flags&&o(e,114)),64&t&&n&&void 0!==l&&(1024&f)<1&&(8192&t)<1&&r(l)}for(e.flags=832^(832|e.flags),e.destructible=256^(256|e.destructible);1074790415!==e.token;)p.push(he(e,t,n,4,{}));return K(e,24&a?32768|t:t,1074790415),e.flags&=-193,1077936157===e.token&&o(e,24),re(e,t,c,u,d,{type:"BlockStatement",body:p})}function Me(e,t,n,o,r,s,a,i){return ze(e,t,_e(e,t,2,0,n,0,o,r,s,a,i),o,0,s,a,i)}function ze(e,t,n,r,s,a,i,l){if(33619968==(33619968&e.token)&&(1&e.flags)<1)n=function(e,t,n,r,s,a){2&e.assignable&&o(e,52);const{token:i}=e;return F(e,t),e.assignable=2,re(e,t,r,s,a,{type:"UpdateExpression",argument:n,operator:T[255&i],prefix:!1})}(e,t,n,a,i,l);else if(67108864==(67108864&e.token)){switch(t=134225920^(134225920|t),e.token){case 67108877:F(e,1073741824|t),e.assignable=1;n=re(e,t,a,i,l,{type:"MemberExpression",object:n,computed:!1,property:Xe(e,t)});break;case 69271571:{let o=!1;2048==(2048&e.flags)&&(o=!0,e.flags=2048^(2048|e.flags)),F(e,32768|t);const{tokenPos:s,linePos:c,colPos:u}=e,d=Oe(e,t,r,1,s,c,u);K(e,t,20),e.assignable=1,n=re(e,t,a,i,l,{type:"MemberExpression",object:n,computed:!0,property:d}),o&&(e.flags|=2048);break}case 67174411:{if(1024==(1024&e.flags))return e.flags=1024^(1024|e.flags),n;let o=!1;2048==(2048&e.flags)&&(o=!0,e.flags=2048^(2048|e.flags));const s=tt(e,t,r);e.assignable=2,n=re(e,t,a,i,l,{type:"CallExpression",callee:n,arguments:s}),o&&(e.flags|=2048);break}case 67108991:F(e,t),e.flags|=2048,e.assignable=2,n=function(e,t,n,r,s,a){let i,l=!1;69271571!==e.token&&67174411!==e.token||2048==(2048&e.flags)&&(l=!0,e.flags=2048^(2048|e.flags));if(69271571===e.token){F(e,32768|t);const{tokenPos:o,linePos:l,colPos:c}=e,u=Oe(e,t,0,1,o,l,c);K(e,t,20),e.assignable=2,i=re(e,t,r,s,a,{type:"MemberExpression",object:n,computed:!0,optional:!0,property:u})}else if(67174411===e.token){const o=tt(e,t,0);e.assignable=2,i=re(e,t,r,s,a,{type:"CallExpression",callee:n,arguments:o,optional:!0})}else{(143360&e.token)<1&&o(e,154);const l=nt(e,t,0);e.assignable=2,i=re(e,t,r,s,a,{type:"MemberExpression",object:n,computed:!1,optional:!0,property:l})}l&&(e.flags|=2048);return i}(e,t,n,a,i,l);break;default:2048==(2048&e.flags)&&o(e,160),e.assignable=2,n=re(e,t,a,i,l,{type:"TaggedTemplateExpression",tag:n,quasi:67174408===e.token?Ke(e,65536|t):We(e,t,e.tokenPos,e.linePos,e.colPos)})}n=ze(e,t,n,0,1,a,i,l)}return 0===s&&2048==(2048&e.flags)&&(e.flags=2048^(2048|e.flags),n=re(e,t,a,i,l,{type:"ChainExpression",expression:n})),n}function Xe(e,t){return(143360&e.token)<1&&131!==e.token&&o(e,154),1&t&&131===e.token?Ct(e,t,e.tokenPos,e.linePos,e.colPos):nt(e,t,0)}function _e(e,t,n,r,a,i,l,c,u,d,p){if(143360==(143360&e.token)){switch(e.token){case 209008:return function(e,t,n,r,a,i,l){if(r&&(e.destructible|=128),4194304&t||2048&t&&8192&t){n&&o(e,0),8388608&t&&s(e.index,e.line,e.index,29),F(e,32768|t);const r=Me(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 8457273===e.token&&o(e,31),e.assignable=2,re(e,t,a,i,l,{type:"AwaitExpression",argument:r})}return 2048&t&&o(e,95),pt(e,t,a,i,l)}(e,t,r,l,u,d,p);case 241773:return function(e,t,n,r,s,a,i){if(n&&(e.destructible|=256),2097152&t){F(e,32768|t),8388608&t&&o(e,30),r||o(e,24),22===e.token&&o(e,120);let n=null,l=!1;return(1&e.flags)<1&&(l=W(e,32768|t,8457014),(77824&e.token||l)&&(n=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos))),e.assignable=2,re(e,t,s,a,i,{type:"YieldExpression",argument:n,delegate:l})}return 1024&t&&o(e,94,"yield"),pt(e,t,s,a,i)}(e,t,l,a,u,d,p);case 209007:return function(e,t,n,r,s,a,i,l,c,u){const{token:d}=e,p=nt(e,t,a),{flags:f}=e;if((1&f)<1){if(86106===e.token)return st(e,t,1,n,l,c,u);if(143360==(143360&e.token))return r||o(e,0),ht(e,t,s,l,c,u)}return i||67174411!==e.token?10===e.token?(ge(e,t,d,1),i&&o(e,48),ft(e,t,e.tokenValue,p,i,s,0,l,c,u)):p:Pt(e,t,p,s,1,0,f,l,c,u)}(e,t,l,c,a,i,r,u,d,p)}const{token:f,tokenValue:k}=e,g=nt(e,65536|t,i);return 10===e.token?(c||o(e,0),ge(e,t,f,1),ft(e,t,k,g,r,a,0,u,d,p)):(16384&t&&537079928===f&&o(e,126),241739===f&&(1024&t&&o(e,109),24&n&&o(e,97)),e.assignable=1024&t&&537079808==(537079808&f)?2:1,g)}if(134217728==(134217728&e.token))return ot(e,t);switch(e.token){case 33619995:case 33619996:return function(e,t,n,r,s,a,i){n&&o(e,53),r||o(e,0);const{token:l}=e;F(e,32768|t);const c=Me(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 2&e.assignable&&o(e,52),e.assignable=2,re(e,t,s,a,i,{type:"UpdateExpression",argument:c,operator:T[255&l],prefix:!0})}(e,t,r,c,u,d,p);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return function(e,t,n,r,s,a,i){n||o(e,0);const l=e.token;F(e,32768|t);const c=Me(e,t,0,i,1,e.tokenPos,e.linePos,e.colPos);var u;return 8457273===e.token&&o(e,31),1024&t&&16863278===l&&("Identifier"===c.type?o(e,117):(u=c).property&&"PrivateIdentifier"===u.property.type&&o(e,123)),e.assignable=2,re(e,t,r,s,a,{type:"UnaryExpression",operator:T[255&l],argument:c,prefix:!0})}(e,t,c,u,d,p,l);case 86106:return st(e,t,0,l,u,d,p);case 2162700:return function(e,t,n,r,s,a,i){const l=ut(e,t,void 0,n,r,0,2,0,s,a,i);256&t&&64&e.destructible&&o(e,60);8&e.destructible&&o(e,59);return l}(e,t,a?0:1,l,u,d,p);case 69271571:return function(e,t,n,r,s,a,i){const l=at(e,t,void 0,n,r,0,2,0,s,a,i);256&t&&64&e.destructible&&o(e,60);8&e.destructible&&o(e,59);return l}(e,t,a?0:1,l,u,d,p);case 67174411:return function(e,t,n,r,s,a,i,l){e.flags=128^(128|e.flags);const{tokenPos:c,linePos:u,colPos:d}=e;F(e,1073774592|t);const p=64&t?le({parent:void 0,type:2},1024):void 0;if(W(e,t=134217728^(134217728|t),16))return kt(e,t,p,[],n,0,a,i,l);let f,k=0;e.destructible&=-385;let g=[],m=0,b=0;const{tokenPos:h,linePos:P,colPos:y}=e;e.assignable=1;for(;16!==e.token;){const{token:n,tokenPos:a,linePos:i,colPos:l}=e;if(143360&n)p&&ue(e,t,p,e.tokenValue,1,0),f=_e(e,t,r,0,1,0,1,1,a,i,l),16===e.token||18===e.token?2&e.assignable?(k|=16,b=1):537079808!=(537079808&n)&&36864!=(36864&n)||(b=1):(1077936157===e.token?b=1:k|=16,f=ze(e,t,f,1,0,a,i,l),16!==e.token&&18!==e.token&&(f=Ge(e,t,1,0,a,i,l,f)));else{if(2097152!=(2097152&n)){if(14===n){f=lt(e,t,p,16,r,s,0,1,0,a,i,l),16&e.destructible&&o(e,71),b=1,!m||16!==e.token&&18!==e.token||g.push(f),k|=8;break}if(k|=16,f=Ue(e,t,1,0,1,a,i,l),!m||16!==e.token&&18!==e.token||g.push(f),18===e.token&&(m||(m=1,g=[f])),m){for(;W(e,32768|t,18);)g.push(Ue(e,t,1,0,1,e.tokenPos,e.linePos,e.colPos));e.assignable=2,f=re(e,t,h,P,y,{type:"SequenceExpression",expressions:g})}return K(e,t,16),e.destructible=k,f}f=2162700===n?ut(e,1073741824|t,p,0,1,0,r,s,a,i,l):at(e,1073741824|t,p,0,1,0,r,s,a,i,l),k|=e.destructible,b=1,e.assignable=2,16!==e.token&&18!==e.token&&(8&k&&o(e,118),f=ze(e,t,f,0,0,a,i,l),k|=16,16!==e.token&&18!==e.token&&(f=Ge(e,t,0,0,a,i,l,f)))}if(!m||16!==e.token&&18!==e.token||g.push(f),!W(e,32768|t,18))break;if(m||(m=1,g=[f]),16===e.token){k|=8;break}}m&&(e.assignable=2,f=re(e,t,h,P,y,{type:"SequenceExpression",expressions:g}));K(e,t,16),16&k&&8&k&&o(e,145);if(k|=256&e.destructible?256:0|128&e.destructible?128:0,10===e.token)return 48&k&&o(e,46),4196352&t&&128&k&&o(e,29),2098176&t&&256&k&&o(e,30),b&&(e.flags|=128),kt(e,t,p,m?g:[f],n,0,a,i,l);8&k&&o(e,139);return e.destructible=256^(256|e.destructible)|k,128&t?re(e,t,c,u,d,{type:"ParenthesizedExpression",expression:f}):f}(e,t,a,1,0,u,d,p);case 86021:case 86022:case 86023:return function(e,t,n,o,r){const s=T[255&e.token],a=86023===e.token?null:"true"===s;return F(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:a,raw:s}:{type:"Literal",value:a})}(e,t,u,d,p);case 86113:return function(e,t){const{tokenPos:n,linePos:o,colPos:r}=e;return F(e,t),e.assignable=2,re(e,t,n,o,r,{type:"ThisExpression"})}(e,t);case 65540:return function(e,t,n,o,r){const{tokenRaw:s,tokenRegExp:a,tokenValue:i}=e;return F(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:i,regex:a,raw:s}:{type:"Literal",value:i,regex:a})}(e,t,u,d,p);case 133:case 86096:return function(e,t,n,r,s,a){let i=null,l=null;const c=xt(e,t=16777216^(16778240|t));c.length&&(r=e.tokenPos,s=e.linePos,a=e.colPos);F(e,t),4096&e.token&&20567!==e.token&&(ne(e,t,e.token)&&o(e,114),537079808==(537079808&e.token)&&o(e,115),i=nt(e,t,0));let u=t;W(e,32768|t,20567)?(l=Me(e,t,0,n,0,e.tokenPos,e.linePos,e.colPos),u|=524288):u=524288^(524288|u);const d=wt(e,u,t,void 0,2,0,n);return e.assignable=2,re(e,t,r,s,a,1&t?{type:"ClassExpression",id:i,superClass:l,decorators:c,body:d}:{type:"ClassExpression",id:i,superClass:l,body:d})}(e,t,l,u,d,p);case 86111:return function(e,t,n,r,s){switch(F(e,t),e.token){case 67108991:o(e,161);case 67174411:(524288&t)<1&&o(e,26),16384&t&&o(e,143),e.assignable=2;break;case 69271571:case 67108877:(262144&t)<1&&o(e,27),16384&t&&o(e,143),e.assignable=1;break;default:o(e,28,"super")}return re(e,t,n,r,s,{type:"Super"})}(e,t,u,d,p);case 67174409:return We(e,t,u,d,p);case 67174408:return Ke(e,t);case 86109:return function(e,t,n,r,s,a){const i=nt(e,32768|t,0),{tokenPos:l,linePos:c,colPos:u}=e;if(W(e,t,67108877)){if(67108864&t&&143494===e.token)return e.assignable=2,function(e,t,n,o,r,s){const a=nt(e,t,0);return re(e,t,o,r,s,{type:"MetaProperty",meta:n,property:a})}(e,t,i,r,s,a);o(e,91)}e.assignable=2,16842752==(16842752&e.token)&&o(e,62,T[255&e.token]);const d=_e(e,t,2,1,0,0,n,1,l,c,u);t=134217728^(134217728|t),67108991===e.token&&o(e,162);const p=bt(e,t,d,n,l,c,u);return e.assignable=2,re(e,t,r,s,a,{type:"NewExpression",callee:p,arguments:67174411===e.token?tt(e,t,n):[]})}(e,t,l,u,d,p);case 134283389:return Ze(e,t,u,d,p);case 131:return Ct(e,t,u,d,p);case 86108:return function(e,t,n,r,s,a,i){let l=nt(e,t,0);if(67108877===e.token)return $e(e,t,l,s,a,i);n&&o(e,137);return l=Ye(e,t,r,s,a,i),e.assignable=2,ze(e,t,l,r,0,s,a,i)}(e,t,r,l,u,d,p);case 8456258:if(16&t)return Dt(e,t,1,u,d,p);default:if(ke(t,e.token))return pt(e,t,u,d,p);o(e,28,T[255&e.token])}}function $e(e,t,n,r,s,a){return 0==(2048&t)&&o(e,163),F(e,t),143495!==e.token&&"meta"!==e.tokenValue&&o(e,28,T[255&e.token]),e.assignable=2,re(e,t,r,s,a,{type:"MetaProperty",meta:n,property:nt(e,t,0)})}function Ye(e,t,n,r,s,a){K(e,32768|t,67174411),14===e.token&&o(e,138);const i=Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos);return K(e,t,16),re(e,t,r,s,a,{type:"ImportExpression",source:i})}function Ze(e,t,n,o,r){const{tokenRaw:s,tokenValue:a}=e;return F(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:a,bigint:s.slice(0,-1),raw:s}:{type:"Literal",value:a,bigint:s.slice(0,-1)})}function We(e,t,n,o,r){e.assignable=2;const{tokenValue:s,tokenRaw:a,tokenPos:i,linePos:l,colPos:c}=e;K(e,t,67174409);return re(e,t,n,o,r,{type:"TemplateLiteral",expressions:[],quasis:[Qe(e,t,s,a,i,l,c,!0)]})}function Ke(e,t){t=134217728^(134217728|t);const{tokenValue:n,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;K(e,32768|t,67174408);const l=[Qe(e,t,n,r,s,a,i,!1)],c=[Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos)];for(1074790415!==e.token&&o(e,80);67174409!==(e.token=D(e,t));){const{tokenValue:n,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;K(e,32768|t,67174408),l.push(Qe(e,t,n,r,s,a,i,!1)),c.push(Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos)),1074790415!==e.token&&o(e,80)}{const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;K(e,t,67174409),l.push(Qe(e,t,n,o,r,s,a,!0))}return re(e,t,s,a,i,{type:"TemplateLiteral",expressions:c,quasis:l})}function Qe(e,t,n,o,r,s,a,i){const l=re(e,t,r,s,a,{type:"TemplateElement",value:{cooked:n,raw:o},tail:i}),c=i?1:2;return 2&t&&(l.start+=1,l.range[0]+=1,l.end-=c,l.range[1]-=c),4&t&&(l.loc.start.column+=1,l.loc.end.column-=c),l}function et(e,t,n,o,r){K(e,32768|(t=134217728^(134217728|t)),14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=1,re(e,t,n,o,r,{type:"SpreadElement",argument:s})}function tt(e,t,n){F(e,32768|t);const o=[];if(16===e.token)return F(e,t),o;for(;16!==e.token&&(14===e.token?o.push(et(e,t,e.tokenPos,e.linePos,e.colPos)):o.push(Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos)),18===e.token)&&(F(e,32768|t),16!==e.token););return K(e,t,16),o}function nt(e,t,n){const{tokenValue:o,tokenPos:r,linePos:s,colPos:a}=e;return F(e,t),re(e,t,r,s,a,268435456&t?{type:"Identifier",name:o,pattern:1===n}:{type:"Identifier",name:o})}function ot(e,t){const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;return 134283389===e.token?Ze(e,t,r,s,a):(F(e,t),e.assignable=2,re(e,t,r,s,a,512&t?{type:"Literal",value:n,raw:o}:{type:"Literal",value:n}))}function rt(e,t,n,r,s,a,i,l,c,u){F(e,32768|t);const d=s?Z(e,t,8457014):0;let p,f=null,k=n?{parent:void 0,type:2}:void 0;if(67174411===e.token)(1&a)<1&&o(e,37,"Function");else{const s=4&r&&((8192&t)<1||(2048&t)<1)?4:64;te(e,t|(3072&t)<<11,e.token),n&&(4&s?de(e,t,n,e.tokenValue,s):ue(e,t,n,e.tokenValue,s,r),k=le(k,256),a&&2&a&&pe(e,e.tokenValue)),p=e.token,143360&e.token?f=nt(e,t,0):o(e,28,T[255&e.token])}t=32243712^(32243712|t)|67108864|2*i+d<<21|(d?0:1073741824),n&&(k=le(k,512));return re(e,t,l,c,u,{type:"FunctionDeclaration",id:f,params:mt(e,8388608|t,k,0,1),body:Je(e,143360^(143360|t),n?le(k,128):k,8,p,n?k.scopeError:void 0),async:1===i,generator:1===d})}function st(e,t,n,o,r,s,a){F(e,32768|t);const i=Z(e,t,8457014),l=2*n+i<<21;let c,u=null,d=64&t?{parent:void 0,type:2}:void 0;(176128&e.token)>0&&(te(e,32243712^(32243712|t)|l,e.token),d&&(d=le(d,256)),c=e.token,u=nt(e,t,0)),t=32243712^(32243712|t)|67108864|l|(i?0:1073741824),d&&(d=le(d,512));const p=mt(e,8388608|t,d,o,1),f=Je(e,-134377473&t,d?le(d,128):d,0,c,void 0);return e.assignable=2,re(e,t,r,s,a,{type:"FunctionExpression",id:u,params:p,body:f,async:1===n,generator:1===i})}function at(e,t,n,r,s,a,i,l,c,u,d){F(e,32768|t);const p=[];let f=0;for(t=134217728^(134217728|t);20!==e.token;)if(W(e,32768|t,18))p.push(null);else{let r;const{token:c,tokenPos:u,linePos:d,colPos:k,tokenValue:g}=e;if(143360&c)if(r=_e(e,t,i,0,1,0,s,1,u,d,k),1077936157===e.token){2&e.assignable&&o(e,24),F(e,32768|t),n&&ce(e,t,n,g,i,l);const c=Ue(e,t,1,1,s,e.tokenPos,e.linePos,e.colPos);r=re(e,t,u,d,k,a?{type:"AssignmentPattern",left:r,right:c}:{type:"AssignmentExpression",operator:"=",left:r,right:c}),f|=256&e.destructible?256:0|128&e.destructible?128:0}else 18===e.token||20===e.token?(2&e.assignable?f|=16:n&&ce(e,t,n,g,i,l),f|=256&e.destructible?256:0|128&e.destructible?128:0):(f|=1&i?32:(2&i)<1?16:0,r=ze(e,t,r,s,0,u,d,k),18!==e.token&&20!==e.token?(1077936157!==e.token&&(f|=16),r=Ge(e,t,s,a,u,d,k,r)):1077936157!==e.token&&(f|=2&e.assignable?16:32));else 2097152&c?(r=2162700===e.token?ut(e,t,n,0,s,a,i,l,u,d,k):at(e,t,n,0,s,a,i,l,u,d,k),f|=e.destructible,e.assignable=16&e.destructible?2:1,18===e.token||20===e.token?2&e.assignable&&(f|=16):8&e.destructible?o(e,68):(r=ze(e,t,r,s,0,u,d,k),f=2&e.assignable?16:0,18!==e.token&&20!==e.token?r=Ge(e,t,s,a,u,d,k,r):1077936157!==e.token&&(f|=2&e.assignable?16:32))):14===c?(r=lt(e,t,n,20,i,l,0,s,a,u,d,k),f|=e.destructible,18!==e.token&&20!==e.token&&o(e,28,T[255&e.token])):(r=Me(e,t,1,0,1,u,d,k),18!==e.token&&20!==e.token?(r=Ge(e,t,s,a,u,d,k,r),(3&i)<1&&67174411===c&&(f|=16)):2&e.assignable?f|=16:67174411===c&&(f|=1&e.assignable&&3&i?32:16));if(p.push(r),!W(e,32768|t,18))break;if(20===e.token)break}K(e,t,20);const k=re(e,t,c,u,d,{type:a?"ArrayPattern":"ArrayExpression",elements:p});return!r&&4194304&e.token?it(e,t,f,s,a,c,u,d,k):(e.destructible=f,k)}function it(e,t,n,r,s,a,i,l,c){1077936157!==e.token&&o(e,24),F(e,32768|t),16&n&&o(e,24),s||Q(e,c);const{tokenPos:u,linePos:d,colPos:p}=e,f=Ue(e,t,1,1,r,u,d,p);return e.destructible=72^(72|n)|(128&e.destructible?128:0)|(256&e.destructible?256:0),re(e,t,a,i,l,s?{type:"AssignmentPattern",left:c,right:f}:{type:"AssignmentExpression",left:c,operator:"=",right:f})}function lt(e,t,n,r,s,a,i,l,c,u,d,p){F(e,32768|t);let f=null,k=0,{token:g,tokenValue:m,tokenPos:b,linePos:h,colPos:P}=e;if(143360&g)e.assignable=1,f=_e(e,t,s,0,1,0,l,1,b,h,P),g=e.token,f=ze(e,t,f,l,0,b,h,P),18!==e.token&&e.token!==r&&(2&e.assignable&&1077936157===e.token&&o(e,68),k|=16,f=Ge(e,t,l,c,b,h,P,f)),2&e.assignable?k|=16:g===r||18===g?n&&ce(e,t,n,m,s,a):k|=32,k|=128&e.destructible?128:0;else if(g===r)o(e,39);else{if(!(2097152&g)){k|=32,f=Me(e,t,1,l,1,e.tokenPos,e.linePos,e.colPos);const{token:n,tokenPos:s,linePos:a,colPos:i}=e;return 1077936157===n&&n!==r&&18!==n?(2&e.assignable&&o(e,24),f=Ge(e,t,l,c,s,a,i,f),k|=16):(18===n?k|=16:n!==r&&(f=Ge(e,t,l,c,s,a,i,f)),k|=1&e.assignable?32:16),e.destructible=k,e.token!==r&&18!==e.token&&o(e,155),re(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}f=2162700===e.token?ut(e,t,n,1,l,c,s,a,b,h,P):at(e,t,n,1,l,c,s,a,b,h,P),g=e.token,1077936157!==g&&g!==r&&18!==g?(8&e.destructible&&o(e,68),f=ze(e,t,f,l,0,b,h,P),k|=2&e.assignable?16:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),f=Ge(e,t,l,c,b,h,P,f)):(8454144==(8454144&e.token)&&(f=He(e,t,1,b,h,P,4,g,f)),W(e,32768|t,22)&&(f=je(e,t,f,b,h,P)),k|=2&e.assignable?16:32)):k|=1074790415===r&&1077936157!==g?16:e.destructible}if(e.token!==r)if(1&s&&(k|=i?16:32),W(e,32768|t,1077936157)){16&k&&o(e,24),Q(e,f);const n=Ue(e,t,1,1,l,e.tokenPos,e.linePos,e.colPos);f=re(e,t,b,h,P,c?{type:"AssignmentPattern",left:f,right:n}:{type:"AssignmentExpression",left:f,operator:"=",right:n}),k=16}else k|=16;return e.destructible=k,re(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}function ct(e,t,n,s,a,i,l){const c=(64&n)<1?31981568:14680064;let u=64&(t=(t|c)^c|(88&n)<<18|100925440)?le({parent:void 0,type:2},512):void 0;const d=function(e,t,n,s,a,i){K(e,t,67174411);const l=[];if(e.flags=128^(128|e.flags),16===e.token)return 512&s&&o(e,35,"Setter","one",""),F(e,t),l;256&s&&o(e,35,"Getter","no","s");512&s&&14===e.token&&o(e,36);t=134217728^(134217728|t);let c=0,u=0;for(;18!==e.token;){let r=null;const{tokenPos:d,linePos:p,colPos:f}=e;if(143360&e.token?((1024&t)<1&&(36864==(36864&e.token)&&(e.flags|=256),537079808==(537079808&e.token)&&(e.flags|=512)),r=St(e,t,n,1|s,0,d,p,f)):(2162700===e.token?r=ut(e,t,n,1,i,1,a,0,d,p,f):69271571===e.token?r=at(e,t,n,1,i,1,a,0,d,p,f):14===e.token&&(r=lt(e,t,n,16,a,0,0,i,1,d,p,f)),u=1,48&e.destructible&&o(e,47)),1077936157===e.token){F(e,32768|t),u=1;r=re(e,t,d,p,f,{type:"AssignmentPattern",left:r,right:Ue(e,t,1,1,0,e.tokenPos,e.linePos,e.colPos)})}if(c++,l.push(r),!W(e,t,18))break;if(16===e.token)break}512&s&&1!==c&&o(e,35,"Setter","one","");n&&void 0!==n.scopeError&&r(n.scopeError);u&&(e.flags|=128);return K(e,t,16),l}(e,8388608|t,u,n,1,s);u&&(u=le(u,128));return re(e,t,a,i,l,{type:"FunctionExpression",params:d,body:Je(e,-134230017&t,u,0,void 0,void 0),async:(16&n)>0,generator:(8&n)>0,id:null})}function ut(e,t,n,r,a,i,l,c,u,d,p){F(e,t);const f=[];let k=0,g=0;for(t=134217728^(134217728|t);1074790415!==e.token;){const{token:r,tokenValue:u,linePos:d,colPos:p,tokenPos:m}=e;if(14===r)f.push(lt(e,t,n,1074790415,l,c,0,a,i,m,d,p));else{let b,h=0,P=null;const y=e.token;if(143360&e.token||121===e.token)if(P=nt(e,t,0),18===e.token||1074790415===e.token||1077936157===e.token)if(h|=4,1024&t&&537079808==(537079808&r)?k|=16:ee(e,t,l,r,0),n&&ce(e,t,n,u,l,c),W(e,32768|t,1077936157)){k|=8;const n=Ue(e,t,1,1,a,e.tokenPos,e.linePos,e.colPos);k|=256&e.destructible?256:0|128&e.destructible?128:0,b=re(e,t,m,d,p,{type:"AssignmentPattern",left:-2147483648&t?Object.assign({},P):P,right:n})}else k|=(209008===r?128:0)|(121===r?16:0),b=-2147483648&t?Object.assign({},P):P;else if(W(e,32768|t,21)){const{tokenPos:s,linePos:d,colPos:p}=e;if("__proto__"===u&&g++,143360&e.token){const o=e.token,r=e.tokenValue;k|=121===y?16:0,b=_e(e,t,l,0,1,0,a,1,s,d,p);const{token:u}=e;b=ze(e,t,b,a,0,s,d,p),18===e.token||1074790415===e.token?1077936157===u||1074790415===u||18===u?(k|=128&e.destructible?128:0,2&e.assignable?k|=16:n&&143360==(143360&o)&&ce(e,t,n,r,l,c)):k|=1&e.assignable?32:16:4194304==(4194304&e.token)?(2&e.assignable?k|=16:1077936157!==u?k|=32:n&&ce(e,t,n,r,l,c),b=Ge(e,t,a,i,s,d,p,b)):(k|=16,8454144==(8454144&e.token)&&(b=He(e,t,1,s,d,p,4,u,b)),W(e,32768|t,22)&&(b=je(e,t,b,s,d,p)))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,s,d,p):ut(e,t,n,0,a,i,l,c,s,d,p),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&e.destructible?o(e,68):(b=ze(e,t,b,a,0,s,d,p),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=Fe(e,t,a,i,s,d,p,b):(8454144==(8454144&e.token)&&(b=He(e,t,1,s,d,p,4,r,b)),W(e,32768|t,22)&&(b=je(e,t,b,s,d,p)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,a,1,s,d,p),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,s,d,p),k=2&e.assignable?16:0,18!==e.token&&1074790415!==r&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,s,d,p,b))))}else 69271571===e.token?(k|=16,209007===r&&(h|=16),h|=2|(12402===r?256:12403===r?512:1),P=dt(e,t,a),k|=e.assignable,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):143360&e.token?(k|=16,121===r&&o(e,92),209007===r&&(1&e.flags&&o(e,128),h|=16),P=nt(e,t,0),h|=12402===r?256:12403===r?512:1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):67174411===e.token?(k|=16,h|=1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):8457014===e.token?(k|=16,12402===r||12403===r?o(e,40):143483===r&&o(e,92),F(e,t),h|=9|(209007===r?16:0),143360&e.token?P=nt(e,t,0):134217728==(134217728&e.token)?P=ot(e,t):69271571===e.token?(h|=2,P=dt(e,t,a),k|=e.assignable):o(e,28,T[255&e.token]),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):134217728==(134217728&e.token)?(209007===r&&(h|=16),h|=12402===r?256:12403===r?512:1,k|=16,P=ot(e,t),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):o(e,129);else if(134217728==(134217728&e.token))if(P=ot(e,t),21===e.token){K(e,32768|t,21);const{tokenPos:o,linePos:s,colPos:d}=e;if("__proto__"===u&&g++,143360&e.token){b=_e(e,t,l,0,1,0,a,1,o,s,d);const{token:r,tokenValue:u}=e;b=ze(e,t,b,a,0,o,s,d),18===e.token||1074790415===e.token?1077936157===r||1074790415===r||18===r?2&e.assignable?k|=16:n&&ce(e,t,n,u,l,c):k|=1&e.assignable?32:16:1077936157===e.token?(2&e.assignable&&(k|=16),b=Ge(e,t,a,i,o,s,d,b)):(k|=16,b=Ge(e,t,a,i,o,s,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,o,s,d):ut(e,t,n,0,a,i,l,c,o,s,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8!=(8&e.destructible)&&(b=ze(e,t,b,a,0,o,s,d),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=Fe(e,t,a,i,o,s,d,b):(8454144==(8454144&e.token)&&(b=He(e,t,1,o,s,d,4,r,b)),W(e,32768|t,22)&&(b=je(e,t,b,o,s,d)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,0,1,o,s,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,o,s,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,o,s,d,b))))}else 67174411===e.token?(h|=1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos),k=16|e.assignable):o(e,130);else if(69271571===e.token)if(P=dt(e,t,a),k|=256&e.destructible?256:0,h|=2,21===e.token){F(e,32768|t);const{tokenPos:s,linePos:u,colPos:d,tokenValue:p,token:f}=e;if(143360&e.token){b=_e(e,t,l,0,1,0,a,1,s,u,d);const{token:o}=e;b=ze(e,t,b,a,0,s,u,d),4194304==(4194304&e.token)?(k|=2&e.assignable?16:1077936157===o?0:32,b=Fe(e,t,a,i,s,u,d,b)):18===e.token||1074790415===e.token?1077936157===o||1074790415===o||18===o?2&e.assignable?k|=16:n&&143360==(143360&f)&&ce(e,t,n,p,l,c):k|=1&e.assignable?32:16:(k|=16,b=Ge(e,t,a,i,s,u,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,s,u,d):ut(e,t,n,0,a,i,l,c,s,u,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&k?o(e,59):(b=ze(e,t,b,a,0,s,u,d),k=2&e.assignable?16|k:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),b=Fe(e,t,a,i,s,u,d,b)):(8454144==(8454144&e.token)&&(b=He(e,t,1,s,u,d,4,r,b)),W(e,32768|t,22)&&(b=je(e,t,b,s,u,d)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,0,1,s,u,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,s,u,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,s,u,d,b))))}else 67174411===e.token?(h|=1,b=ct(e,t,h,a,e.tokenPos,d,p),k=16):o(e,41);else if(8457014===r)if(K(e,32768|t,8457014),h|=8,143360&e.token){const{token:n,line:o,index:r}=e;P=nt(e,t,0),h|=1,67174411===e.token?(k|=16,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):s(r,o,r,209007===n?43:12402===n||12403===e.token?42:44,T[255&n])}else 134217728==(134217728&e.token)?(k|=16,P=ot(e,t),h|=1,b=ct(e,t,h,a,m,d,p)):69271571===e.token?(k|=16,h|=3,P=dt(e,t,a),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):o(e,122);else o(e,28,T[255&r]);k|=128&e.destructible?128:0,e.destructible=k,f.push(re(e,t,m,d,p,{type:"Property",key:P,value:b,kind:768&h?512&h?"set":"get":"init",computed:(2&h)>0,method:(1&h)>0,shorthand:(4&h)>0}))}if(k|=e.destructible,18!==e.token)break;F(e,t)}K(e,t,1074790415),g>1&&(k|=64);const m=re(e,t,u,d,p,{type:i?"ObjectPattern":"ObjectExpression",properties:f});return!r&&4194304&e.token?it(e,t,k,a,i,u,d,p,m):(e.destructible=k,m)}function dt(e,t,n){F(e,32768|t);const o=Ue(e,134217728^(134217728|t),1,0,n,e.tokenPos,e.linePos,e.colPos);return K(e,t,20),o}function pt(e,t,n,o,r){const{tokenValue:s}=e,a=nt(e,t,0);if(e.assignable=1,10===e.token){let i;return 64&t&&(i=ae(e,t,s)),e.flags=128^(128|e.flags),gt(e,t,i,[a],0,n,o,r)}return a}function ft(e,t,n,r,s,a,i,l,c,u){a||o(e,54),s&&o(e,48),e.flags&=-129;return gt(e,t,64&t?ae(e,t,n):void 0,[r],i,l,c,u)}function kt(e,t,n,r,s,a,i,l,c){s||o(e,54);for(let t=0;t0&&"constructor"===e.tokenValue&&o(e,106),1074790415===e.token&&o(e,105),W(e,t,1074790417)?a>0&&o(e,116):d.push(qt(e,t,r,n,s,p,0,i,e.tokenPos,e.linePos,e.colPos))}return K(e,8&a?32768|t:t,1074790415),re(e,t,l,c,u,{type:"ClassBody",body:d})}function qt(e,t,n,r,s,a,i,l,c,u,d){let p=i?32:0,f=null;const{token:k,tokenPos:g,linePos:m,colPos:b}=e;if(176128&k)switch(f=nt(e,t,0),k){case 36972:if(!i&&67174411!==e.token)return qt(e,t,n,r,s,a,1,l,c,u,d);break;case 209007:if(67174411!==e.token&&(1&e.flags)<1){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=16|(Z(e,t,8457014)?8:0)}break;case 12402:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=256}break;case 12403:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=512}}else 69271571===k?(p|=2,f=dt(e,r,l)):134217728==(134217728&k)?f=ot(e,t):8457014===k?(p|=8,F(e,t)):1&t&&131===e.token?(p|=4096,f=Ct(e,t,g,m,b),t|=16384):1&t&&1073741824==(1073741824&e.token)?(p|=128,t|=16384):122===k?(f=nt(e,t,0),67174411!==e.token&&o(e,28,T[255&e.token])):o(e,28,T[255&e.token]);if(792&p&&(143360&e.token?f=nt(e,t,0):134217728==(134217728&e.token)?f=ot(e,t):69271571===e.token?(p|=2,f=dt(e,t,0)):122===e.token?f=nt(e,t,0):1&t&&131===e.token?(p|=4096,f=Ct(e,t,g,m,b)):o(e,131)),(2&p)<1&&("constructor"===e.tokenValue?(1073741824==(1073741824&e.token)?o(e,125):(32&p)<1&&67174411===e.token&&(920&p?o(e,50,"accessor"):(524288&t)<1&&(32&e.flags?o(e,51):e.flags|=32)),p|=64):(4096&p)<1&&824&p&&"prototype"===e.tokenValue&&o(e,49)),1&t&&67174411!==e.token)return Et(e,t,f,p,a,g,m,b);const h=ct(e,t,p,l,e.tokenPos,e.linePos,e.colPos);return re(e,t,c,u,d,1&t?{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,decorators:a,value:h}:{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,value:h})}function Ct(e,t,n,r,s){F(e,t);const{tokenValue:a}=e;return"constructor"===a&&o(e,124),F(e,t),re(e,t,n,r,s,{type:"PrivateIdentifier",name:a})}function Et(e,t,n,r,s,a,i,l){let c=null;if(8&r&&o(e,0),1077936157===e.token){F(e,32768|t);const{tokenPos:n,linePos:r,colPos:s}=e;537079928===e.token&&o(e,115),c=_e(e,16384|t,2,0,1,0,0,1,n,r,s),1073741824!=(1073741824&e.token)&&(c=ze(e,16384|t,c,0,0,n,r,s),c=Ge(e,16384|t,0,0,n,r,s,c),18===e.token&&(c=Be(e,t,0,a,i,l,c)))}return re(e,t,a,i,l,{type:"PropertyDefinition",key:n,value:c,static:(32&r)>0,computed:(2&r)>0,decorators:s})}function At(e,t,n,r,s,a,i,l){if(143360&e.token)return St(e,t,n,r,s,a,i,l);2097152!=(2097152&e.token)&&o(e,28,T[255&e.token]);const c=69271571===e.token?at(e,t,n,1,0,1,r,s,a,i,l):ut(e,t,n,1,0,1,r,s,a,i,l);return 16&e.destructible&&o(e,47),32&e.destructible&&o(e,47),c}function St(e,t,n,r,s,a,i,l){const{tokenValue:c,token:u}=e;return 1024&t&&(537079808==(537079808&u)?o(e,115):36864==(36864&u)&&o(e,114)),20480==(20480&u)&&o(e,99),2099200&t&&241773===u&&o(e,30),241739===u&&24&r&&o(e,97),4196352&t&&209008===u&&o(e,95),F(e,t),n&&ce(e,t,n,c,r,s),re(e,t,a,i,l,{type:"Identifier",name:c})}function Dt(e,t,n,r,s,a){if(F(e,t),8456259===e.token)return re(e,t,r,s,a,{type:"JSXFragment",openingFragment:Lt(e,t,r,s,a),children:Tt(e,t),closingFragment:Vt(e,t,n,e.tokenPos,e.linePos,e.colPos)});let i=null,l=[];const c=function(e,t,n,r,s,a){143360!=(143360&e.token)&&4096!=(4096&e.token)&&o(e,0);const i=Nt(e,t,e.tokenPos,e.linePos,e.colPos),l=function(e,t){const n=[];for(;8457016!==e.token&&8456259!==e.token&&1048576!==e.token;)n.push(Ut(e,t,e.tokenPos,e.linePos,e.colPos));return n}(e,t),c=8457016===e.token;8456259===e.token?X(e,t):(K(e,t,8457016),n?K(e,t,8456259):X(e,t));return re(e,t,r,s,a,{type:"JSXOpeningElement",name:i,attributes:l,selfClosing:c})}(e,t,n,r,s,a);if(!c.selfClosing){l=Tt(e,t),i=function(e,t,n,o,r,s){K(e,t,25);const a=Nt(e,t,e.tokenPos,e.linePos,e.colPos);n?K(e,t,8456259):e.token=X(e,t);return re(e,t,o,r,s,{type:"JSXClosingElement",name:a})}(e,t,n,e.tokenPos,e.linePos,e.colPos);const r=se(i.name);se(c.name)!==r&&o(e,149,r)}return re(e,t,r,s,a,{type:"JSXElement",children:l,openingElement:c,closingElement:i})}function Lt(e,t,n,o,r){return X(e,t),re(e,t,n,o,r,{type:"JSXOpeningFragment"})}function Vt(e,t,n,o,r,s){return K(e,t,25),K(e,t,8456259),re(e,t,o,r,s,{type:"JSXClosingFragment"})}function Tt(e,t){const n=[];for(;25!==e.token;)e.index=e.tokenPos=e.startPos,e.column=e.colPos=e.startColumn,e.line=e.linePos=e.startLine,X(e,t),n.push(Rt(e,t,e.tokenPos,e.linePos,e.colPos));return n}function Rt(e,t,n,r,s){return 138===e.token?function(e,t,n,o,r){X(e,t);const s={type:"JSXText",value:e.tokenValue};512&t&&(s.raw=e.tokenRaw);return re(e,t,n,o,r,s)}(e,t,n,r,s):2162700===e.token?Ot(e,t,0,0,n,r,s):8456258===e.token?Dt(e,t,0,n,r,s):void o(e,0)}function Nt(e,t,n,o,r){_(e);let s=Gt(e,t,n,o,r);if(21===e.token)return Bt(e,t,s,n,o,r);for(;W(e,t,67108877);)_(e),s=It(e,t,s,n,o,r);return s}function It(e,t,n,o,r,s){return re(e,t,o,r,s,{type:"JSXMemberExpression",object:n,property:Gt(e,t,e.tokenPos,e.linePos,e.colPos)})}function Ut(e,t,n,r,s){if(2162700===e.token)return function(e,t,n,o,r){F(e,t),K(e,t,14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return K(e,t,1074790415),re(e,t,n,o,r,{type:"JSXSpreadAttribute",argument:s})}(e,t,n,r,s);_(e);let a=null,i=Gt(e,t,n,r,s);if(21===e.token&&(i=Bt(e,t,i,n,r,s)),1077936157===e.token){const n=z(e,t),{tokenPos:r,linePos:s,colPos:i}=e;switch(n){case 134283267:a=ot(e,t);break;case 8456258:a=Dt(e,t,1,r,s,i);break;case 2162700:a=Ot(e,t,1,1,r,s,i);break;default:o(e,148)}}return re(e,t,n,r,s,{type:"JSXAttribute",value:a,name:i})}function Bt(e,t,n,o,r,s){K(e,t,21);return re(e,t,o,r,s,{type:"JSXNamespacedName",namespace:n,name:Gt(e,t,e.tokenPos,e.linePos,e.colPos)})}function Ot(e,t,n,r,s,a,i){F(e,t);const{tokenPos:l,linePos:c,colPos:u}=e;if(14===e.token)return function(e,t,n,o,r){K(e,t,14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return K(e,t,1074790415),re(e,t,n,o,r,{type:"JSXSpreadChild",expression:s})}(e,t,l,c,u);let d=null;return 1074790415===e.token?(r&&o(e,151),d=function(e,t,n,o,r){return e.startPos=e.tokenPos,e.startLine=e.linePos,e.startColumn=e.colPos,re(e,t,n,o,r,{type:"JSXEmptyExpression"})}(e,t,e.startPos,e.startLine,e.startColumn)):d=Ue(e,t,1,0,0,l,c,u),n?K(e,t,1074790415):X(e,t),re(e,t,s,a,i,{type:"JSXExpressionContainer",expression:d})}function Gt(e,t,n,o,r){const{tokenValue:s}=e;return F(e,t),re(e,t,n,o,r,{type:"JSXIdentifier",name:s})}e("ESTree",Object.freeze({__proto__:null}));e("version","4.2.0")}}})); diff --git a/node_modules/meriyah/dist/meriyah.umd.cjs b/node_modules/meriyah/dist/meriyah.umd.cjs new file mode 100644 index 0000000..16469ba --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.umd.cjs @@ -0,0 +1,8796 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.meriyah = {})); +}(this, (function (exports) { 'use strict'; + + const errorMessages = { + [0]: 'Unexpected token', + [28]: "Unexpected token: '%0'", + [1]: 'Octal escape sequences are not allowed in strict mode', + [2]: 'Octal escape sequences are not allowed in template strings', + [3]: 'Unexpected token `#`', + [4]: 'Illegal Unicode escape sequence', + [5]: 'Invalid code point %0', + [6]: 'Invalid hexadecimal escape sequence', + [8]: 'Octal literals are not allowed in strict mode', + [7]: 'Decimal integer literals with a leading zero are forbidden in strict mode', + [9]: 'Expected number in radix %0', + [145]: 'Invalid left-hand side assignment to a destructible right-hand side', + [10]: 'Non-number found after exponent indicator', + [11]: 'Invalid BigIntLiteral', + [12]: 'No identifiers allowed directly after numeric literal', + [13]: 'Escapes \\8 or \\9 are not syntactically valid escapes', + [14]: 'Unterminated string literal', + [15]: 'Unterminated template literal', + [16]: 'Multiline comment was not closed properly', + [17]: 'The identifier contained dynamic unicode escape that was not closed', + [18]: "Illegal character '%0'", + [19]: 'Missing hexadecimal digits', + [20]: 'Invalid implicit octal', + [21]: 'Invalid line break in string literal', + [22]: 'Only unicode escapes are legal in identifier names', + [23]: "Expected '%0'", + [24]: 'Invalid left-hand side in assignment', + [25]: 'Invalid left-hand side in async arrow', + [26]: 'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass', + [27]: 'Member access on super must be in a method', + [29]: 'Await expression not allowed in formal parameter', + [30]: 'Yield expression not allowed in formal parameter', + [92]: "Unexpected token: 'escaped keyword'", + [31]: 'Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses', + [119]: 'Async functions can only be declared at the top level or inside a block', + [32]: 'Unterminated regular expression', + [33]: 'Unexpected regular expression flag', + [34]: "Duplicate regular expression flag '%0'", + [35]: '%0 functions must have exactly %1 argument%2', + [36]: 'Setter function argument must not be a rest parameter', + [37]: '%0 declaration must have a name in this context', + [38]: 'Function name may not contain any reserved words or be eval or arguments in strict mode', + [39]: 'The rest operator is missing an argument', + [40]: 'A getter cannot be a generator', + [41]: 'A computed property name must be followed by a colon or paren', + [130]: 'Object literal keys that are strings or numbers must be a method or have a colon', + [43]: 'Found `* async x(){}` but this should be `async * x(){}`', + [42]: 'Getters and setters can not be generators', + [44]: "'%0' can not be generator method", + [45]: "No line break is allowed after '=>'", + [46]: 'The left-hand side of the arrow can only be destructed through assignment', + [47]: 'The binding declaration is not destructible', + [48]: 'Async arrow can not be followed by new expression', + [49]: "Classes may not have a static property named 'prototype'", + [50]: 'Class constructor may not be a %0', + [51]: 'Duplicate constructor method in class', + [52]: 'Invalid increment/decrement operand', + [53]: 'Invalid use of `new` keyword on an increment/decrement expression', + [54]: '`=>` is an invalid assignment target', + [55]: 'Rest element may not have a trailing comma', + [56]: 'Missing initializer in %0 declaration', + [57]: "'for-%0' loop head declarations can not have an initializer", + [58]: 'Invalid left-hand side in for-%0 loop: Must have a single binding', + [59]: 'Invalid shorthand property initializer', + [60]: 'Property name __proto__ appears more than once in object literal', + [61]: 'Let is disallowed as a lexically bound name', + [62]: "Invalid use of '%0' inside new expression", + [63]: "Illegal 'use strict' directive in function with non-simple parameter list", + [64]: 'Identifier "let" disallowed as left-hand side expression in strict mode', + [65]: 'Illegal continue statement', + [66]: 'Illegal break statement', + [67]: 'Cannot have `let[...]` as a var name in strict mode', + [68]: 'Invalid destructuring assignment target', + [69]: 'Rest parameter may not have a default initializer', + [70]: 'The rest argument must the be last parameter', + [71]: 'Invalid rest argument', + [73]: 'In strict mode code, functions can only be declared at top level or inside a block', + [74]: 'In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement', + [75]: 'Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement', + [76]: "Class declaration can't appear in single-statement context", + [77]: 'Invalid left-hand side in for-%0', + [78]: 'Invalid assignment in for-%0', + [79]: 'for await (... of ...) is only valid in async functions and async generators', + [80]: 'The first token after the template expression should be a continuation of the template', + [82]: '`let` declaration not allowed here and `let` cannot be a regular var name in strict mode', + [81]: '`let \n [` is a restricted production at the start of a statement', + [83]: 'Catch clause requires exactly one parameter, not more (and no trailing comma)', + [84]: 'Catch clause parameter does not support default values', + [85]: 'Missing catch or finally after try', + [86]: 'More than one default clause in switch statement', + [87]: 'Illegal newline after throw', + [88]: 'Strict mode code may not include a with statement', + [89]: 'Illegal return statement', + [90]: 'The left hand side of the for-header binding declaration is not destructible', + [91]: 'new.target only allowed within functions', + [93]: "'#' not followed by identifier", + [99]: 'Invalid keyword', + [98]: "Can not use 'let' as a class name", + [97]: "'A lexical declaration can't define a 'let' binding", + [96]: 'Can not use `let` as variable name in strict mode', + [94]: "'%0' may not be used as an identifier in this context", + [95]: 'Await is only valid in async functions', + [100]: 'The %0 keyword can only be used with the module goal', + [101]: 'Unicode codepoint must not be greater than 0x10FFFF', + [102]: '%0 source must be string', + [103]: 'Only a identifier can be used to indicate alias', + [104]: "Only '*' or '{...}' can be imported after default", + [105]: 'Trailing decorator may be followed by method', + [106]: "Decorators can't be used with a constructor", + [108]: 'HTML comments are only allowed with web compatibility (Annex B)', + [109]: "The identifier 'let' must not be in expression position in strict mode", + [110]: 'Cannot assign to `eval` and `arguments` in strict mode', + [111]: "The left-hand side of a for-of loop may not start with 'let'", + [112]: 'Block body arrows can not be immediately invoked without a group', + [113]: 'Block body arrows can not be immediately accessed without a group', + [114]: 'Unexpected strict mode reserved word', + [115]: 'Unexpected eval or arguments in strict mode', + [116]: 'Decorators must not be followed by a semicolon', + [117]: 'Calling delete on expression not allowed in strict mode', + [118]: 'Pattern can not have a tail', + [120]: 'Can not have a `yield` expression on the left side of a ternary', + [121]: 'An arrow function can not have a postfix update operator', + [122]: 'Invalid object literal key character after generator star', + [123]: 'Private fields can not be deleted', + [125]: 'Classes may not have a field called constructor', + [124]: 'Classes may not have a private element named constructor', + [126]: 'A class field initializer may not contain arguments', + [127]: 'Generators can only be declared at the top level or inside a block', + [128]: 'Async methods are a restricted production and cannot have a newline following it', + [129]: 'Unexpected character after object literal property name', + [131]: 'Invalid key token', + [132]: "Label '%0' has already been declared", + [133]: 'continue statement must be nested within an iteration statement', + [134]: "Undefined label '%0'", + [135]: 'Trailing comma is disallowed inside import(...) arguments', + [136]: 'import() requires exactly one argument', + [137]: 'Cannot use new with import(...)', + [138]: '... is not allowed in import()', + [139]: "Expected '=>'", + [140]: "Duplicate binding '%0'", + [141]: "Cannot export a duplicate name '%0'", + [144]: 'Duplicate %0 for-binding', + [142]: "Exported binding '%0' needs to refer to a top-level declared variable", + [143]: 'Unexpected private field', + [147]: 'Numeric separators are not allowed at the end of numeric literals', + [146]: 'Only one underscore is allowed as numeric separator', + [148]: 'JSX value should be either an expression or a quoted JSX text', + [149]: 'Expected corresponding JSX closing tag for %0', + [150]: 'Adjacent JSX elements must be wrapped in an enclosing tag', + [151]: "JSX attributes must only be assigned a non-empty 'expression'", + [152]: "'%0' has already been declared", + [153]: "'%0' shadowed a catch clause binding", + [154]: 'Dot property must be an identifier', + [155]: 'Encountered invalid input after spread/rest argument', + [156]: 'Catch without try', + [157]: 'Finally without try', + [158]: 'Expected corresponding closing tag for JSX fragment', + [159]: 'Coalescing and logical operators used together in the same expression must be disambiguated with parentheses', + [160]: 'Invalid tagged template on optional chain', + [161]: 'Invalid optional chain from super property', + [162]: 'Invalid optional chain from new expression', + [163]: 'Cannot use "import.meta" outside a module', + [164]: 'Leading decorators must be attached to a class declaration' + }; + class ParseError extends SyntaxError { + constructor(startindex, line, column, type, ...params) { + const message = '[' + line + ':' + column + ']: ' + errorMessages[type].replace(/%(\d+)/g, (_, i) => params[i]); + super(`${message}`); + this.index = startindex; + this.line = line; + this.column = column; + this.description = message; + this.loc = { + line, + column + }; + } + } + function report(parser, type, ...params) { + throw new ParseError(parser.index, parser.line, parser.column, type, ...params); + } + function reportScopeError(scope) { + throw new ParseError(scope.index, scope.line, scope.column, scope.type, scope.params); + } + function reportMessageAt(index, line, column, type, ...params) { + throw new ParseError(index, line, column, type, ...params); + } + function reportScannerError(index, line, column, type) { + throw new ParseError(index, line, column, type); + } + + const unicodeLookup = ((compressed, lookup) => { + const result = new Uint32Array(104448); + let index = 0; + let subIndex = 0; + while (index < 3540) { + const inst = compressed[index++]; + if (inst < 0) { + subIndex -= inst; + } + else { + let code = compressed[index++]; + if (inst & 2) + code = lookup[code]; + if (inst & 1) { + result.fill(code, subIndex, subIndex += compressed[index++]); + } + else { + result[subIndex++] = code; + } + } + } + return result; + })([-1, 2, 24, 2, 25, 2, 5, -1, 0, 77595648, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 16, 2, 60, 2, 0, 0, 4294836735, 0, 3221225471, 0, 4294901942, 2, 61, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 17, 2, 0, 0, 4294961151, 3, 0, 2, 2, 19, 2, 0, 0, 608174079, 2, 0, 2, 131, 2, 6, 2, 56, -1, 2, 37, 0, 4294443263, 2, 1, 3, 0, 3, 0, 4294901711, 2, 39, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2967484831, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 2, 194, 2, 3, 0, 3825204735, 0, 123747807, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1080049119, 0, 458703, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 66, 0, 4284449919, 0, 851904, 2, 4, 2, 11, 0, 67076095, -1, 2, 67, 0, 1073741743, 0, 4093591391, -1, 0, 50331649, 0, 3265266687, 2, 32, 0, 4294844415, 0, 4278190047, 2, 18, 2, 129, -1, 3, 0, 2, 2, 21, 2, 0, 2, 9, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 10, 0, 261632, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 2088959, 2, 27, 2, 8, 0, 909311, 3, 0, 2, 0, 814743551, 2, 41, 0, 67057664, 3, 0, 2, 2, 40, 2, 0, 2, 28, 2, 0, 2, 29, 2, 7, 0, 268374015, 2, 26, 2, 49, 2, 0, 2, 76, 0, 134153215, -1, 2, 6, 2, 0, 2, 7, 0, 2684354559, 0, 67044351, 0, 3221160064, 0, 1, -1, 3, 0, 2, 2, 42, 0, 1046528, 3, 0, 3, 2, 8, 2, 0, 2, 51, 0, 4294960127, 2, 9, 2, 38, 2, 10, 0, 4294377472, 2, 11, 3, 0, 7, 0, 4227858431, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -1, 2, 124, 0, 1048577, 2, 82, 2, 13, -1, 2, 13, 0, 131042, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 1046559, 2, 0, 2, 14, 2, 0, 0, 2147516671, 2, 20, 3, 86, 2, 2, 0, -16, 2, 87, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 2, 121, 2, 0, 0, 3220242431, 3, 0, 3, 2, 19, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 2, 0, 0, 4351, 2, 0, 2, 8, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 22, 2, 8, 2, 18, 3, 0, 2, 0, 67076097, 2, 7, 2, 0, 2, 20, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 3774349439, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, 2, 23, 0, 1638399, 2, 172, 2, 105, 3, 0, 3, 2, 18, 2, 24, 2, 25, 2, 5, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -3, 2, 150, -4, 2, 18, 2, 0, 2, 35, 0, 1, 2, 0, 2, 62, 2, 28, 2, 11, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 21, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277137519, 0, 2269118463, -1, 3, 18, 2, -1, 2, 32, 2, 36, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 46, -10, 2, 0, 0, 203775, -2, 2, 18, 2, 43, 2, 35, -2, 2, 17, 2, 117, 2, 20, 3, 0, 2, 2, 36, 0, 2147549120, 2, 0, 2, 11, 2, 17, 2, 135, 2, 0, 2, 37, 2, 52, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 120, 0, 1090519039, -2, 2, 122, 2, 38, 2, 0, 0, 67045375, 2, 39, 0, 4226678271, 0, 3766565279, 0, 2039759, -4, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 40, 2, 41, -1, 2, 10, 2, 42, -6, 2, 0, 2, 11, -3, 3, 0, 2, 0, 2147484671, 2, 125, 0, 4190109695, 2, 50, -2, 2, 126, 0, 4244635647, 0, 27, 2, 0, 2, 7, 2, 43, 2, 0, 2, 63, -1, 2, 0, 2, 40, -8, 2, 54, 2, 44, 0, 67043329, 2, 127, 2, 45, 0, 8388351, -2, 2, 128, 0, 3028287487, 2, 46, 2, 130, 0, 33259519, 2, 41, -9, 2, 20, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, 2, 41, -2, 2, 17, 2, 49, 2, 0, 2, 20, 2, 50, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 196635, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 0, 1677656575, -166, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 28, -13, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 88, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -42, 0, 4194303871, 0, 2011, -6, 2, 0, 0, 1073684479, 0, 17407, -11, 2, 0, 2, 31, -40, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 42, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -105, 2, 24, -32, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -22381, 3, 0, 7, 2, 23, -6130, 3, 5, 2, -1, 0, 69207040, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 16, 2, 60, 2, 0, 2, 33, -1, 2, 17, 2, 61, -1, 2, 0, 2, 56, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 23, 2, 62, 3, 0, 2, 0, 131135, 2, 95, 0, 70256639, 0, 71303167, 0, 272, 2, 40, 2, 56, -1, 2, 37, 2, 30, -1, 2, 96, 2, 63, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 65, 2, 64, 0, 33554435, 2, 123, 2, 65, 2, 151, 0, 131075, 0, 3594373096, 0, 67094296, 2, 64, -1, 0, 4294828000, 0, 603979263, 2, 160, 0, 3, 0, 4294828001, 0, 602930687, 2, 183, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 66, 2, 36, -1, 2, 4, 0, 917503, 2, 36, -1, 2, 67, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 32, 2, 68, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 11, -1, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 253951, 3, 19, 2, 0, 122879, 2, 0, 2, 8, 0, 276824064, -2, 3, 0, 2, 2, 40, 2, 0, 0, 4294903295, 2, 0, 2, 29, 2, 7, -1, 2, 17, 2, 49, 2, 0, 2, 76, 2, 41, -1, 2, 20, 2, 0, 2, 27, -2, 0, 128, -2, 2, 77, 2, 8, 0, 4064, -1, 2, 119, 0, 4227907585, 2, 0, 2, 118, 2, 0, 2, 48, 2, 173, 2, 9, 2, 38, 2, 10, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -3, 2, 82, 2, 13, -3, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 817183, 2, 0, 2, 14, 2, 0, 0, 33023, 2, 20, 3, 86, 2, -17, 2, 87, 0, 524157950, 2, 4, 2, 0, 2, 88, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 0, 3072, 2, 0, 0, 2147516415, 2, 9, 3, 0, 2, 2, 23, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 0, 4294965179, 0, 7, 2, 0, 2, 8, 2, 91, 2, 8, -1, 0, 1761345536, 2, 95, 0, 4294901823, 2, 36, 2, 18, 2, 96, 2, 34, 2, 166, 0, 2080440287, 2, 0, 2, 33, 2, 143, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 7, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 2700607615, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, -3, 2, 105, 3, 0, 3, 2, 18, -1, 3, 5, 2, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -8, 2, 18, 2, 0, 2, 35, -1, 2, 0, 2, 62, 2, 28, 2, 29, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 17, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277075969, 2, 29, -1, 3, 18, 2, -1, 2, 32, 2, 117, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 48, -10, 2, 0, 0, 197631, -2, 2, 18, 2, 43, 2, 118, -2, 2, 17, 2, 117, 2, 20, 2, 119, 2, 51, -2, 2, 119, 2, 23, 2, 17, 2, 33, 2, 119, 2, 36, 0, 4294901904, 0, 4718591, 2, 119, 2, 34, 0, 335544350, -1, 2, 120, 2, 121, -2, 2, 122, 2, 38, 2, 7, -1, 2, 123, 2, 65, 0, 3758161920, 0, 3, -4, 2, 0, 2, 27, 0, 2147485568, 0, 3, 2, 0, 2, 23, 0, 176, -5, 2, 0, 2, 47, 2, 186, -1, 2, 0, 2, 23, 2, 197, -1, 2, 0, 0, 16779263, -2, 2, 11, -7, 2, 0, 2, 121, -3, 3, 0, 2, 2, 124, 2, 125, 0, 2147549183, 0, 2, -2, 2, 126, 2, 35, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, -1, 2, 0, 2, 40, -8, 2, 54, 2, 47, 0, 1, 2, 127, 2, 23, -3, 2, 128, 2, 35, 2, 129, 2, 130, 0, 16778239, -10, 2, 34, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, -3, 2, 17, 2, 131, 2, 0, 2, 23, 2, 48, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 67583, -1, 2, 103, -2, 0, 11, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 2, 135, -187, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 2, 143, -73, 2, 0, 0, 1065361407, 0, 16384, -11, 2, 0, 2, 121, -40, 3, 0, 6, 2, 117, -1, 3, 0, 2, 0, 2063, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -138, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -28517, 2, 0, 0, 1, -1, 2, 124, 2, 0, 0, 8193, -21, 2, 193, 0, 10255, 0, 4, -11, 2, 64, 2, 171, -1, 0, 71680, -1, 2, 161, 0, 4292900864, 0, 805306431, -5, 2, 150, -1, 2, 157, -1, 0, 6144, -2, 2, 127, -1, 2, 154, -1, 0, 2147532800, 2, 151, 2, 165, 2, 0, 2, 164, 0, 524032, 0, 4, -4, 2, 190, 0, 205128192, 0, 1333757536, 0, 2147483696, 0, 423953, 0, 747766272, 0, 2717763192, 0, 4286578751, 0, 278545, 2, 152, 0, 4294886464, 0, 33292336, 0, 417809, 2, 152, 0, 1327482464, 0, 4278190128, 0, 700594195, 0, 1006647527, 0, 4286497336, 0, 4160749631, 2, 153, 0, 469762560, 0, 4171219488, 0, 8323120, 2, 153, 0, 202375680, 0, 3214918176, 0, 4294508592, 2, 153, -1, 0, 983584, 0, 48, 0, 58720273, 0, 3489923072, 0, 10517376, 0, 4293066815, 0, 1, 0, 2013265920, 2, 177, 2, 0, 0, 2089, 0, 3221225552, 0, 201375904, 2, 0, -2, 0, 256, 0, 122880, 0, 16777216, 2, 150, 0, 4160757760, 2, 0, -6, 2, 167, -11, 0, 3263218176, -1, 0, 49664, 0, 2160197632, 0, 8388802, -1, 0, 12713984, -1, 2, 154, 2, 159, 2, 178, -2, 2, 162, -20, 0, 3758096385, -2, 2, 155, 0, 4292878336, 2, 90, 2, 169, 0, 4294057984, -2, 2, 163, 2, 156, 2, 175, -2, 2, 155, -1, 2, 182, -1, 2, 170, 2, 124, 0, 4026593280, 0, 14, 0, 4292919296, -1, 2, 158, 0, 939588608, -1, 0, 805306368, -1, 2, 124, 0, 1610612736, 2, 156, 2, 157, 2, 4, 2, 0, -2, 2, 158, 2, 159, -3, 0, 267386880, -1, 2, 160, 0, 7168, -1, 0, 65024, 2, 154, 2, 161, 2, 179, -7, 2, 168, -8, 2, 162, -1, 0, 1426112704, 2, 163, -1, 2, 164, 0, 271581216, 0, 2149777408, 2, 23, 2, 161, 2, 124, 0, 851967, 2, 180, -1, 2, 23, 2, 181, -4, 2, 158, -20, 2, 195, 2, 165, -56, 0, 3145728, 2, 185, -4, 2, 166, 2, 124, -4, 0, 32505856, -1, 2, 167, -1, 0, 2147385088, 2, 90, 1, 2155905152, 2, -3, 2, 103, 2, 0, 2, 168, -2, 2, 169, -6, 2, 170, 0, 4026597375, 0, 1, -1, 0, 1, -1, 2, 171, -3, 2, 117, 2, 64, -2, 2, 166, -2, 2, 176, 2, 124, -878, 2, 159, -36, 2, 172, -1, 2, 201, -10, 2, 188, -5, 2, 174, -6, 0, 4294965251, 2, 27, -1, 2, 173, -1, 2, 174, -2, 0, 4227874752, -3, 0, 2146435072, 2, 159, -2, 0, 1006649344, 2, 124, -1, 2, 90, 0, 201375744, -3, 0, 134217720, 2, 90, 0, 4286677377, 0, 32896, -1, 2, 158, -3, 2, 175, -349, 2, 176, 0, 1920, 2, 177, 3, 0, 264, -11, 2, 157, -2, 2, 178, 2, 0, 0, 520617856, 0, 2692743168, 0, 36, -3, 0, 524284, -11, 2, 23, -1, 2, 187, -1, 2, 184, 0, 3221291007, 2, 178, -1, 2, 202, 0, 2158720, -3, 2, 159, 0, 1, -4, 2, 124, 0, 3808625411, 0, 3489628288, 2, 200, 0, 1207959680, 0, 3221274624, 2, 0, -3, 2, 179, 0, 120, 0, 7340032, -2, 2, 180, 2, 4, 2, 23, 2, 163, 3, 0, 4, 2, 159, -1, 2, 181, 2, 177, -1, 0, 8176, 2, 182, 2, 179, 2, 183, -1, 0, 4290773232, 2, 0, -4, 2, 163, 2, 189, 0, 15728640, 2, 177, -1, 2, 161, -1, 0, 4294934512, 3, 0, 4, -9, 2, 90, 2, 170, 2, 184, 3, 0, 4, 0, 704, 0, 1849688064, 2, 185, -1, 2, 124, 0, 4294901887, 2, 0, 0, 130547712, 0, 1879048192, 2, 199, 3, 0, 2, -1, 2, 186, 2, 187, -1, 0, 17829776, 0, 2025848832, 0, 4261477888, -2, 2, 0, -1, 0, 4286580608, -1, 0, 29360128, 2, 192, 0, 16252928, 0, 3791388672, 2, 38, 3, 0, 2, -2, 2, 196, 2, 0, -1, 2, 103, -1, 0, 66584576, -1, 2, 191, 3, 0, 9, 2, 124, -1, 0, 4294755328, 3, 0, 2, -1, 2, 161, 2, 178, 3, 0, 2, 2, 23, 2, 188, 2, 90, -2, 0, 245760, 0, 2147418112, -1, 2, 150, 2, 203, 0, 4227923456, -1, 2, 164, 2, 161, 2, 90, -3, 0, 4292870145, 0, 262144, 2, 124, 3, 0, 2, 0, 1073758848, 2, 189, -1, 0, 4227921920, 2, 190, 0, 68289024, 0, 528402016, 0, 4292927536, 3, 0, 4, -2, 0, 268435456, 2, 91, -2, 2, 191, 3, 0, 5, -1, 2, 192, 2, 163, 2, 0, -2, 0, 4227923936, 2, 62, -1, 2, 155, 2, 95, 2, 0, 2, 154, 2, 158, 3, 0, 6, -1, 2, 177, 3, 0, 3, -2, 0, 2146959360, 0, 9440640, 0, 104857600, 0, 4227923840, 3, 0, 2, 0, 768, 2, 193, 2, 77, -2, 2, 161, -2, 2, 119, -1, 2, 155, 3, 0, 8, 0, 512, 0, 8388608, 2, 194, 2, 172, 2, 187, 0, 4286578944, 3, 0, 2, 0, 1152, 0, 1266679808, 2, 191, 0, 576, 0, 4261707776, 2, 95, 3, 0, 9, 2, 155, 3, 0, 5, 2, 16, -1, 0, 2147221504, -28, 2, 178, 3, 0, 3, -3, 0, 4292902912, -6, 2, 96, 3, 0, 85, -33, 0, 4294934528, 3, 0, 126, -18, 2, 195, 3, 0, 269, -17, 2, 155, 2, 124, 2, 198, 3, 0, 2, 2, 23, 0, 4290822144, -2, 0, 67174336, 0, 520093700, 2, 17, 3, 0, 21, -2, 2, 179, 3, 0, 3, -2, 0, 30720, -1, 0, 32512, 3, 0, 2, 0, 4294770656, -191, 2, 174, -38, 2, 170, 2, 0, 2, 196, 3, 0, 279, -8, 2, 124, 2, 0, 0, 4294508543, 0, 65295, -11, 2, 177, 3, 0, 72, -3, 0, 3758159872, 0, 201391616, 3, 0, 155, -7, 2, 170, -1, 0, 384, -1, 0, 133693440, -3, 2, 196, -2, 2, 26, 3, 0, 4, 2, 169, -2, 2, 90, 2, 155, 3, 0, 4, -2, 2, 164, -1, 2, 150, 0, 335552923, 2, 197, -1, 0, 538974272, 0, 2214592512, 0, 132000, -10, 0, 192, -8, 0, 12288, -21, 0, 134213632, 0, 4294901761, 3, 0, 42, 0, 100663424, 0, 4294965284, 3, 0, 6, -1, 0, 3221282816, 2, 198, 3, 0, 11, -1, 2, 199, 3, 0, 40, -6, 0, 4286578784, 2, 0, -2, 0, 1006694400, 3, 0, 24, 2, 35, -1, 2, 94, 3, 0, 2, 0, 1, 2, 163, 3, 0, 6, 2, 197, 0, 4110942569, 0, 1432950139, 0, 2701658217, 0, 4026532864, 0, 4026532881, 2, 0, 2, 45, 3, 0, 8, -1, 2, 158, -2, 2, 169, 0, 98304, 0, 65537, 2, 170, -5, 0, 4294950912, 2, 0, 2, 118, 0, 65528, 2, 177, 0, 4294770176, 2, 26, 3, 0, 4, -30, 2, 174, 0, 3758153728, -3, 2, 169, -2, 2, 155, 2, 188, 2, 158, -1, 2, 191, -1, 2, 161, 0, 4294754304, 3, 0, 2, -3, 0, 33554432, -2, 2, 200, -3, 2, 169, 0, 4175478784, 2, 201, 0, 4286643712, 0, 4286644216, 2, 0, -4, 2, 202, -1, 2, 165, 0, 4227923967, 3, 0, 32, -1334, 2, 163, 2, 0, -129, 2, 94, -6, 2, 163, -180, 2, 203, -233, 2, 4, 3, 0, 96, -16, 2, 163, 3, 0, 47, -154, 2, 165, 3, 0, 22381, -7, 2, 17, 3, 0, 6128], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 268435455, 2147483647, 1048575, 1073741823, 3892314111, 134217727, 1061158911, 536805376, 4294910143, 4160749567, 4294901759, 4294901760, 536870911, 262143, 8388607, 4294902783, 4294918143, 65535, 67043328, 2281701374, 4294967232, 2097151, 4294903807, 4194303, 255, 67108863, 4294967039, 511, 524287, 131071, 127, 4292870143, 4294902271, 4294549487, 33554431, 1023, 67047423, 4294901888, 4286578687, 4294770687, 67043583, 32767, 15, 2047999, 67043343, 16777215, 4294902000, 4294934527, 4294966783, 4294967279, 2047, 262083, 20511, 4290772991, 41943039, 493567, 4294959104, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 4294967264, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 2044, 4292870144, 4294966272, 4294967280, 8289918, 4294934399, 4294901775, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4294966591, 2445279231, 3670015, 3238002687, 31, 63, 4294967288, 4294705151, 4095, 3221208447, 4294549472, 2147483648, 4285526655, 4294966527, 4294705152, 4294966143, 64, 4294966719, 16383, 3774873592, 458752, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967103, 4160749565, 4087, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901763, 536870912, 2952790016, 202506752, 139264, 402653184, 4261412864, 4227922944, 49152, 61440, 3758096384, 117440512, 65280, 3233808384, 3221225472, 2097152, 4294965248, 32768, 57152, 67108864, 4293918720, 4290772992, 25165824, 57344, 4227915776, 4278190080, 4227907584, 65520, 4026531840, 4227858432, 4160749568, 3758129152, 4294836224, 63488, 1073741824, 4294967040, 4194304, 251658240, 196608, 4294963200, 64512, 417808, 4227923712, 12582912, 50331648, 65472, 4294967168, 4294966784, 16, 4294917120, 2080374784, 4096, 65408, 524288, 65532]); + + function advanceChar(parser) { + parser.column++; + return (parser.currentChar = parser.source.charCodeAt(++parser.index)); + } + function consumeMultiUnitCodePoint(parser, hi) { + if ((hi & 0xfc00) !== 55296) + return 0; + const lo = parser.source.charCodeAt(parser.index + 1); + if ((lo & 0xfc00) !== 0xdc00) + return 0; + hi = parser.currentChar = 65536 + ((hi & 0x3ff) << 10) + (lo & 0x3ff); + if (((unicodeLookup[(hi >>> 5) + 0] >>> hi) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(hi)); + } + parser.index++; + parser.column++; + return 1; + } + function consumeLineFeed(parser, state) { + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.flags |= 1; + if ((state & 4) === 0) { + parser.column = 0; + parser.line++; + } + } + function scanNewLine(parser) { + parser.flags |= 1; + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.column = 0; + parser.line++; + } + function isExoticECMAScriptWhitespace(ch) { + return (ch === 160 || + ch === 65279 || + ch === 133 || + ch === 5760 || + (ch >= 8192 && ch <= 8203) || + ch === 8239 || + ch === 8287 || + ch === 12288 || + ch === 8201 || + ch === 65519); + } + function fromCodePoint(codePoint) { + return codePoint <= 65535 + ? String.fromCharCode(codePoint) + : String.fromCharCode(codePoint >>> 10) + String.fromCharCode(codePoint & 0x3ff); + } + function toHex(code) { + return code < 65 ? code - 48 : (code - 65 + 10) & 0xf; + } + function convertTokenType(t) { + switch (t) { + case 134283266: + return 'NumericLiteral'; + case 134283267: + return 'StringLiteral'; + case 86021: + case 86022: + return 'BooleanLiteral'; + case 86023: + return 'NullLiteral'; + case 65540: + return 'RegularExpression'; + case 67174408: + case 67174409: + case 132: + return 'TemplateLiteral'; + default: + if ((t & 143360) === 143360) + return 'Identifier'; + if ((t & 4096) === 4096) + return 'Keyword'; + return 'Punctuator'; + } + } + + const CharTypes = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8 | 1024, + 0, + 0, + 8 | 2048, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8192, + 0, + 1 | 2, + 0, + 0, + 8192, + 0, + 0, + 0, + 256, + 0, + 256 | 32768, + 0, + 0, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 512 | 64, + 2 | 16 | 512 | 64, + 0, + 0, + 16384, + 0, + 0, + 0, + 0, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 0, + 1, + 0, + 0, + 1 | 2 | 4096, + 0, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 16384, + 0, + 0, + 0, + 0 + ]; + const isIdStart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ]; + const isIdPart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ]; + function isIdentifierStart(code) { + return code <= 0x7F + ? isIdStart[code] + : (unicodeLookup[(code >>> 5) + 34816] >>> code) & 31 & 1; + } + function isIdentifierPart(code) { + return code <= 0x7F + ? isIdPart[code] + : (unicodeLookup[(code >>> 5) + 0] >>> code) & 31 & 1 || (code === 8204 || code === 8205); + } + + const CommentTypes = ['SingleLine', 'MultiLine', 'HTMLOpen', 'HTMLClose', 'HashbangComment']; + function skipHashBang(parser) { + const source = parser.source; + if (parser.currentChar === 35 && source.charCodeAt(parser.index + 1) === 33) { + advanceChar(parser); + advanceChar(parser); + skipSingleLineComment(parser, source, 0, 4, parser.tokenPos, parser.linePos, parser.colPos); + } + } + function skipSingleHTMLComment(parser, source, state, context, type, start, line, column) { + if (context & 2048) + report(parser, 0); + return skipSingleLineComment(parser, source, state, type, start, line, column); + } + function skipSingleLineComment(parser, source, state, type, start, line, column) { + const { index } = parser; + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + while (parser.index < parser.end) { + if (CharTypes[parser.currentChar] & 8) { + const isCR = parser.currentChar === 13; + scanNewLine(parser); + if (isCR && parser.index < parser.end && parser.currentChar === 10) + parser.currentChar = source.charCodeAt(++parser.index); + break; + } + else if ((parser.currentChar ^ 8232) <= 1) { + scanNewLine(parser); + break; + } + advanceChar(parser); + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + } + if (parser.onComment) { + const loc = { + start: { + line, + column + }, + end: { + line: parser.linePos, + column: parser.colPos + } + }; + parser.onComment(CommentTypes[type & 0xff], source.slice(index, parser.tokenPos), start, parser.tokenPos, loc); + } + return state | 1; + } + function skipMultiLineComment(parser, source, state) { + const { index } = parser; + while (parser.index < parser.end) { + if (parser.currentChar < 0x2b) { + let skippedOneAsterisk = false; + while (parser.currentChar === 42) { + if (!skippedOneAsterisk) { + state &= ~4; + skippedOneAsterisk = true; + } + if (advanceChar(parser) === 47) { + advanceChar(parser); + if (parser.onComment) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onComment(CommentTypes[1 & 0xff], source.slice(index, parser.index - 2), index - 2, parser.index, loc); + } + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + return state; + } + } + if (skippedOneAsterisk) { + continue; + } + if (CharTypes[parser.currentChar] & 8) { + if (parser.currentChar === 13) { + state |= 1 | 4; + scanNewLine(parser); + } + else { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + } + else { + advanceChar(parser); + } + } + else if ((parser.currentChar ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + } + else { + state &= ~4; + advanceChar(parser); + } + } + report(parser, 16); + } + + function scanRegularExpression(parser, context) { + const bodyStart = parser.index; + let preparseState = 0; + loop: while (true) { + const ch = parser.currentChar; + advanceChar(parser); + if (preparseState & 1) { + preparseState &= ~1; + } + else { + switch (ch) { + case 47: + if (!preparseState) + break loop; + else + break; + case 92: + preparseState |= 1; + break; + case 91: + preparseState |= 2; + break; + case 93: + preparseState &= 1; + break; + case 13: + case 10: + case 8232: + case 8233: + report(parser, 32); + } + } + if (parser.index >= parser.source.length) { + return report(parser, 32); + } + } + const bodyEnd = parser.index - 1; + let mask = 0; + let char = parser.currentChar; + const { index: flagStart } = parser; + while (isIdentifierPart(char)) { + switch (char) { + case 103: + if (mask & 2) + report(parser, 34, 'g'); + mask |= 2; + break; + case 105: + if (mask & 1) + report(parser, 34, 'i'); + mask |= 1; + break; + case 109: + if (mask & 4) + report(parser, 34, 'm'); + mask |= 4; + break; + case 117: + if (mask & 16) + report(parser, 34, 'g'); + mask |= 16; + break; + case 121: + if (mask & 8) + report(parser, 34, 'y'); + mask |= 8; + break; + case 115: + if (mask & 12) + report(parser, 34, 's'); + mask |= 12; + break; + default: + report(parser, 33); + } + char = advanceChar(parser); + } + const flags = parser.source.slice(flagStart, parser.index); + const pattern = parser.source.slice(bodyStart, bodyEnd); + parser.tokenRegExp = { pattern, flags }; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = validate(parser, pattern, flags); + return 65540; + } + function validate(parser, pattern, flags) { + try { + return new RegExp(pattern, flags); + } + catch (e) { + report(parser, 32); + } + } + + function scanString(parser, context, quote) { + const { index: start } = parser; + let ret = ''; + let char = advanceChar(parser); + let marker = parser.index; + while ((CharTypes[char] & 8) === 0) { + if (char === quote) { + ret += parser.source.slice(marker, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(start, parser.index); + parser.tokenValue = ret; + return 134283267; + } + if ((char & 8) === 8 && char === 92) { + ret += parser.source.slice(marker, parser.index); + char = advanceChar(parser); + if (char < 0x7f || char === 8232 || char === 8233) { + const code = parseEscape(parser, context, char); + if (code >= 0) + ret += fromCodePoint(code); + else + handleStringError(parser, code, 0); + } + else { + ret += fromCodePoint(char); + } + marker = parser.index + 1; + } + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + report(parser, 14); + } + function parseEscape(parser, context, first) { + switch (first) { + case 98: + return 8; + case 102: + return 12; + case 114: + return 13; + case 110: + return 10; + case 116: + return 9; + case 118: + return 11; + case 13: { + if (parser.index < parser.end) { + const nextChar = parser.source.charCodeAt(parser.index + 1); + if (nextChar === 10) { + parser.index = parser.index + 1; + parser.currentChar = nextChar; + } + } + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + return -1; + case 48: + case 49: + case 50: + case 51: { + let code = first - 48; + let index = parser.index + 1; + let column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if ((CharTypes[next] & 32) === 0) { + if ((code !== 0 || CharTypes[next] & 512) && context & 1024) + return -2; + } + else if (context & 1024) { + return -2; + } + else { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + } + } + parser.flags |= 64; + parser.index = index - 1; + parser.column = column - 1; + } + } + return code; + } + case 52: + case 53: + case 54: + case 55: { + if (context & 1024) + return -2; + let code = first - 48; + const index = parser.index + 1; + const column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + code = (code << 3) | (next - 48); + parser.currentChar = next; + parser.index = index; + parser.column = column; + } + } + parser.flags |= 64; + return code; + } + case 120: { + const ch1 = advanceChar(parser); + if ((CharTypes[ch1] & 64) === 0) + return -4; + const hi = toHex(ch1); + const ch2 = advanceChar(parser); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const lo = toHex(ch2); + return (hi << 4) | lo; + } + case 117: { + const ch = advanceChar(parser); + if (parser.currentChar === 123) { + let code = 0; + while ((CharTypes[advanceChar(parser)] & 64) !== 0) { + code = (code << 4) | toHex(parser.currentChar); + if (code > 1114111) + return -5; + } + if (parser.currentChar < 1 || parser.currentChar !== 125) { + return -4; + } + return code; + } + else { + if ((CharTypes[ch] & 64) === 0) + return -4; + const ch2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const ch3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[ch3] & 64) === 0) + return -4; + const ch4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[ch4] & 64) === 0) + return -4; + parser.index += 3; + parser.column += 3; + parser.currentChar = parser.source.charCodeAt(parser.index); + return (toHex(ch) << 12) | (toHex(ch2) << 8) | (toHex(ch3) << 4) | toHex(ch4); + } + } + case 56: + case 57: + if ((context & 256) === 0) + return -3; + default: + return first; + } + } + function handleStringError(state, code, isTemplate) { + switch (code) { + case -1: + return; + case -2: + report(state, isTemplate ? 2 : 1); + case -3: + report(state, 13); + case -4: + report(state, 6); + case -5: + report(state, 101); + } + } + + function scanTemplate(parser, context) { + const { index: start } = parser; + let token = 67174409; + let ret = ''; + let char = advanceChar(parser); + while (char !== 96) { + if (char === 36 && parser.source.charCodeAt(parser.index + 1) === 123) { + advanceChar(parser); + token = 67174408; + break; + } + else if ((char & 8) === 8 && char === 92) { + char = advanceChar(parser); + if (char > 0x7e) { + ret += fromCodePoint(char); + } + else { + const code = parseEscape(parser, context | 1024, char); + if (code >= 0) { + ret += fromCodePoint(code); + } + else if (code !== -1 && context & 65536) { + ret = undefined; + char = scanBadTemplate(parser, char); + if (char < 0) + token = 67174408; + break; + } + else { + handleStringError(parser, code, 1); + } + } + } + else { + if (parser.index < parser.end && + char === 13 && + parser.source.charCodeAt(parser.index) === 10) { + ret += fromCodePoint(char); + parser.currentChar = parser.source.charCodeAt(++parser.index); + } + if (((char & 83) < 3 && char === 10) || (char ^ 8232) <= 1) { + parser.column = -1; + parser.line++; + } + ret += fromCodePoint(char); + } + if (parser.index >= parser.end) + report(parser, 15); + char = advanceChar(parser); + } + advanceChar(parser); + parser.tokenValue = ret; + parser.tokenRaw = parser.source.slice(start + 1, parser.index - (token === 67174409 ? 1 : 2)); + return token; + } + function scanBadTemplate(parser, ch) { + while (ch !== 96) { + switch (ch) { + case 36: { + const index = parser.index + 1; + if (index < parser.end && parser.source.charCodeAt(index) === 123) { + parser.index = index; + parser.column++; + return -ch; + } + break; + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + } + if (parser.index >= parser.end) + report(parser, 15); + ch = advanceChar(parser); + } + return ch; + } + function scanTemplateTail(parser, context) { + if (parser.index >= parser.end) + report(parser, 0); + parser.index--; + parser.column--; + return scanTemplate(parser, context); + } + + function scanNumber(parser, context, kind) { + let char = parser.currentChar; + let value = 0; + let digit = 9; + let atStart = kind & 64 ? 0 : 1; + let digits = 0; + let allowSeparator = 0; + if (kind & 64) { + value = '.' + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 110) + report(parser, 11); + } + else { + if (char === 48) { + char = advanceChar(parser); + if ((char | 32) === 120) { + kind = 8 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (64 | 4096)) { + if (char === 95) { + if (!allowSeparator) + report(parser, 146); + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 0x10 + toHex(char); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 19 : 147); + } + } + else if ((char | 32) === 111) { + kind = 4 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (32 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 8 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if ((char | 32) === 98) { + kind = 2 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (128 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 2 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if (CharTypes[char] & 32) { + if (context & 1024) + report(parser, 1); + kind = 1; + while (CharTypes[char] & 16) { + if (CharTypes[char] & 512) { + kind = 32; + atStart = 0; + break; + } + value = value * 8 + (char - 48); + char = advanceChar(parser); + } + } + else if (CharTypes[char] & 512) { + if (context & 1024) + report(parser, 1); + parser.flags |= 64; + kind = 32; + } + else if (char === 95) { + report(parser, 0); + } + } + if (kind & 48) { + if (atStart) { + while (digit >= 0 && CharTypes[char] & (16 | 4096)) { + if (char === 95) { + char = advanceChar(parser); + if (char === 95 || kind & 32) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + continue; + } + allowSeparator = 0; + value = 10 * value + (char - 48); + char = advanceChar(parser); + --digit; + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + if (digit >= 0 && !isIdentifierStart(char) && char !== 46) { + parser.tokenValue = value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + } + value += scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 46) { + if (advanceChar(parser) === 95) + report(parser, 0); + kind = 64; + value += '.' + scanDecimalDigitsOrSeparator(parser, parser.currentChar); + char = parser.currentChar; + } + } + } + const end = parser.index; + let isBigInt = 0; + if (char === 110 && kind & 128) { + isBigInt = 1; + char = advanceChar(parser); + } + else { + if ((char | 32) === 101) { + char = advanceChar(parser); + if (CharTypes[char] & 256) + char = advanceChar(parser); + const { index } = parser; + if ((CharTypes[char] & 16) < 1) + report(parser, 10); + value += parser.source.substring(end, index) + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + } + } + if ((parser.index < parser.end && CharTypes[char] & 16) || isIdentifierStart(char)) { + report(parser, 12); + } + if (isBigInt) { + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = BigInt(value); + return 134283389; + } + parser.tokenValue = + kind & (1 | 2 | 8 | 4) + ? value + : kind & 32 + ? parseFloat(parser.source.substring(parser.tokenPos, parser.index)) + : +value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + function scanDecimalDigitsOrSeparator(parser, char) { + let allowSeparator = 0; + let start = parser.index; + let ret = ''; + while (CharTypes[char] & (16 | 4096)) { + if (char === 95) { + const { index } = parser; + char = advanceChar(parser); + if (char === 95) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + ret += parser.source.substring(start, index); + start = parser.index; + continue; + } + allowSeparator = 0; + char = advanceChar(parser); + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + return ret + parser.source.substring(start, parser.index); + } + + const KeywordDescTable = [ + 'end of source', + 'identifier', 'number', 'string', 'regular expression', + 'false', 'true', 'null', + 'template continuation', 'template tail', + '=>', '(', '{', '.', '...', '}', ')', ';', ',', '[', ']', ':', '?', '\'', '"', '', + '++', '--', + '=', '<<=', '>>=', '>>>=', '**=', '+=', '-=', '*=', '/=', '%=', '^=', '|=', + '&=', '||=', '&&=', '??=', + 'typeof', 'delete', 'void', '!', '~', '+', '-', 'in', 'instanceof', '*', '%', '/', '**', '&&', + '||', '===', '!==', '==', '!=', '<=', '>=', '<', '>', '<<', '>>', '>>>', '&', '|', '^', + 'var', 'let', 'const', + 'break', 'case', 'catch', 'class', 'continue', 'debugger', 'default', 'do', 'else', 'export', + 'extends', 'finally', 'for', 'function', 'if', 'import', 'new', 'return', 'super', 'switch', + 'this', 'throw', 'try', 'while', 'with', + 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield', + 'as', 'async', 'await', 'constructor', 'get', 'set', 'from', 'of', + 'enum', 'eval', 'arguments', 'escaped keyword', 'escaped future reserved keyword', 'reserved if strict', '#', + 'BigIntLiteral', '??', '?.', 'WhiteSpace', 'Illegal', 'LineTerminator', 'PrivateField', + 'Template', '@', 'target', 'meta', 'LineFeed', 'Escaped', 'JSXText' + ]; + const descKeywordTable = Object.create(null, { + this: { value: 86113 }, + function: { value: 86106 }, + if: { value: 20571 }, + return: { value: 20574 }, + var: { value: 86090 }, + else: { value: 20565 }, + for: { value: 20569 }, + new: { value: 86109 }, + in: { value: 8738868 }, + typeof: { value: 16863277 }, + while: { value: 20580 }, + case: { value: 20558 }, + break: { value: 20557 }, + try: { value: 20579 }, + catch: { value: 20559 }, + delete: { value: 16863278 }, + throw: { value: 86114 }, + switch: { value: 86112 }, + continue: { value: 20561 }, + default: { value: 20563 }, + instanceof: { value: 8476725 }, + do: { value: 20564 }, + void: { value: 16863279 }, + finally: { value: 20568 }, + async: { value: 209007 }, + await: { value: 209008 }, + class: { value: 86096 }, + const: { value: 86092 }, + constructor: { value: 12401 }, + debugger: { value: 20562 }, + export: { value: 20566 }, + extends: { value: 20567 }, + false: { value: 86021 }, + from: { value: 12404 }, + get: { value: 12402 }, + implements: { value: 36966 }, + import: { value: 86108 }, + interface: { value: 36967 }, + let: { value: 241739 }, + null: { value: 86023 }, + of: { value: 274549 }, + package: { value: 36968 }, + private: { value: 36969 }, + protected: { value: 36970 }, + public: { value: 36971 }, + set: { value: 12403 }, + static: { value: 36972 }, + super: { value: 86111 }, + true: { value: 86022 }, + with: { value: 20581 }, + yield: { value: 241773 }, + enum: { value: 86134 }, + eval: { value: 537079927 }, + as: { value: 77934 }, + arguments: { value: 537079928 }, + target: { value: 143494 }, + meta: { value: 143495 }, + }); + + function scanIdentifier(parser, context, isValidAsKeyword) { + while (isIdPart[advanceChar(parser)]) { } + parser.tokenValue = parser.source.slice(parser.tokenPos, parser.index); + return parser.currentChar !== 92 && parser.currentChar < 0x7e + ? descKeywordTable[parser.tokenValue] || 208897 + : scanIdentifierSlowCase(parser, context, 0, isValidAsKeyword); + } + function scanUnicodeIdentifier(parser, context) { + const cookedChar = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(cookedChar)) + report(parser, 4); + parser.tokenValue = fromCodePoint(cookedChar); + return scanIdentifierSlowCase(parser, context, 1, CharTypes[cookedChar] & 4); + } + function scanIdentifierSlowCase(parser, context, hasEscape, isValidAsKeyword) { + let start = parser.index; + while (parser.index < parser.end) { + if (parser.currentChar === 92) { + parser.tokenValue += parser.source.slice(start, parser.index); + hasEscape = 1; + const code = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(code)) + report(parser, 4); + isValidAsKeyword = isValidAsKeyword && CharTypes[code] & 4; + parser.tokenValue += fromCodePoint(code); + start = parser.index; + } + else if (isIdentifierPart(parser.currentChar) || consumeMultiUnitCodePoint(parser, parser.currentChar)) { + advanceChar(parser); + } + else { + break; + } + } + if (parser.index <= parser.end) { + parser.tokenValue += parser.source.slice(start, parser.index); + } + const length = parser.tokenValue.length; + if (isValidAsKeyword && length >= 2 && length <= 11) { + const token = descKeywordTable[parser.tokenValue]; + if (token === void 0) + return 208897; + if (!hasEscape) + return token; + if (context & 1024) { + return token === 209008 && (context & (2048 | 4194304)) === 0 + ? token + : token === 36972 + ? 122 + : (token & 36864) === 36864 + ? 122 + : 121; + } + if (context & 1073741824 && + (context & 8192) === 0 && + (token & 20480) === 20480) + return token; + if (token === 241773) { + return context & 1073741824 + ? 143483 + : context & 2097152 + ? 121 + : token; + } + return token === 209007 && context & 1073741824 + ? 143483 + : (token & 36864) === 36864 + ? token + : token === 209008 && (context & 4194304) === 0 + ? token + : 121; + } + return 208897; + } + function scanPrivateIdentifier(parser) { + if (!isIdentifierStart(advanceChar(parser))) + report(parser, 93); + return 131; + } + function scanIdentifierUnicodeEscape(parser) { + if (parser.source.charCodeAt(parser.index + 1) !== 117) { + report(parser, 4); + } + parser.currentChar = parser.source.charCodeAt((parser.index += 2)); + return scanUnicodeEscape(parser); + } + function scanUnicodeEscape(parser) { + let codePoint = 0; + const char = parser.currentChar; + if (char === 123) { + const begin = parser.index - 2; + while (CharTypes[advanceChar(parser)] & 64) { + codePoint = (codePoint << 4) | toHex(parser.currentChar); + if (codePoint > 1114111) + reportScannerError(begin, parser.line, parser.index + 1, 101); + } + if (parser.currentChar !== 125) { + reportScannerError(begin, parser.line, parser.index - 1, 6); + } + advanceChar(parser); + return codePoint; + } + if ((CharTypes[char] & 64) === 0) + report(parser, 6); + const char2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[char2] & 64) === 0) + report(parser, 6); + const char3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[char3] & 64) === 0) + report(parser, 6); + const char4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[char4] & 64) === 0) + report(parser, 6); + codePoint = (toHex(char) << 12) | (toHex(char2) << 8) | (toHex(char3) << 4) | toHex(char4); + parser.currentChar = parser.source.charCodeAt((parser.index += 4)); + return codePoint; + } + + const TokenLookup = [ + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 136, + 128, + 128, + 130, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 16842800, + 134283267, + 131, + 208897, + 8457015, + 8455751, + 134283267, + 67174411, + 16, + 8457014, + 25233970, + 18, + 25233971, + 67108877, + 8457016, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 21, + 1074790417, + 8456258, + 1077936157, + 8456259, + 22, + 133, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 69271571, + 137, + 20, + 8455497, + 208897, + 132, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 208897, + 4096, + 208897, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 4096, + 4096, + 208897, + 4096, + 4096, + 208897, + 4096, + 4096, + 2162700, + 8455240, + 1074790415, + 16842801, + 129 + ]; + function nextToken(parser, context) { + parser.flags = (parser.flags | 1) ^ 1; + parser.startPos = parser.index; + parser.startColumn = parser.column; + parser.startLine = parser.line; + parser.token = scanSingleToken(parser, context, 0); + if (parser.onToken && parser.token !== 1048576) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onToken(convertTokenType(parser.token), parser.tokenPos, parser.index, loc); + } + } + function scanSingleToken(parser, context, state) { + const isStartOfLine = parser.index === 0; + const source = parser.source; + let startPos = parser.index; + let startLine = parser.line; + let startColumn = parser.column; + while (parser.index < parser.end) { + parser.tokenPos = parser.index; + parser.colPos = parser.column; + parser.linePos = parser.line; + let char = parser.currentChar; + if (char <= 0x7e) { + const token = TokenLookup[char]; + switch (token) { + case 67174411: + case 16: + case 2162700: + case 1074790415: + case 69271571: + case 20: + case 21: + case 1074790417: + case 18: + case 16842801: + case 133: + case 129: + advanceChar(parser); + return token; + case 208897: + return scanIdentifier(parser, context, 0); + case 4096: + return scanIdentifier(parser, context, 1); + case 134283266: + return scanNumber(parser, context, 16 | 128); + case 134283267: + return scanString(parser, context, char); + case 132: + return scanTemplate(parser, context); + case 137: + return scanUnicodeIdentifier(parser, context); + case 131: + return scanPrivateIdentifier(parser); + case 128: + advanceChar(parser); + break; + case 130: + state |= 1 | 4; + scanNewLine(parser); + break; + case 136: + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + break; + case 8456258: + let ch = advanceChar(parser); + if (parser.index < parser.end) { + if (ch === 60) { + if (parser.index < parser.end && advanceChar(parser) === 61) { + advanceChar(parser); + return 4194334; + } + return 8456516; + } + else if (ch === 61) { + advanceChar(parser); + return 8456000; + } + if (ch === 33) { + const index = parser.index + 1; + if (index + 1 < parser.end && + source.charCodeAt(index) === 45 && + source.charCodeAt(index + 1) == 45) { + parser.column += 3; + parser.currentChar = source.charCodeAt((parser.index += 3)); + state = skipSingleHTMLComment(parser, source, state, context, 2, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 8456258; + } + if (ch === 47) { + if ((context & 16) < 1) + return 8456258; + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (ch === 42 || ch === 47) + break; + } + advanceChar(parser); + return 25; + } + } + return 8456258; + case 1077936157: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 8455996; + } + return 8455998; + } + if (ch === 62) { + advanceChar(parser); + return 10; + } + return 1077936157; + } + case 16842800: + if (advanceChar(parser) !== 61) { + return 16842800; + } + if (advanceChar(parser) !== 61) { + return 8455999; + } + advanceChar(parser); + return 8455997; + case 8457015: + if (advanceChar(parser) !== 61) + return 8457015; + advanceChar(parser); + return 4194342; + case 8457014: { + advanceChar(parser); + if (parser.index >= parser.end) + return 8457014; + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 4194340; + } + if (ch !== 42) + return 8457014; + if (advanceChar(parser) !== 61) + return 8457273; + advanceChar(parser); + return 4194337; + } + case 8455497: + if (advanceChar(parser) !== 61) + return 8455497; + advanceChar(parser); + return 4194343; + case 25233970: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 43) { + advanceChar(parser); + return 33619995; + } + if (ch === 61) { + advanceChar(parser); + return 4194338; + } + return 25233970; + } + case 25233971: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 45) { + advanceChar(parser); + if ((state & 1 || isStartOfLine) && parser.currentChar === 62) { + if ((context & 256) === 0) + report(parser, 108); + advanceChar(parser); + state = skipSingleHTMLComment(parser, source, state, context, 3, startPos, startLine, startColumn); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 33619996; + } + if (ch === 61) { + advanceChar(parser); + return 4194339; + } + return 25233971; + } + case 8457016: { + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 47) { + advanceChar(parser); + state = skipSingleLineComment(parser, source, state, 0, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (ch === 42) { + advanceChar(parser); + state = skipMultiLineComment(parser, source, state); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (context & 32768) { + return scanRegularExpression(parser, context); + } + if (ch === 61) { + advanceChar(parser); + return 4259877; + } + } + return 8457016; + } + case 67108877: + const next = advanceChar(parser); + if (next >= 48 && next <= 57) + return scanNumber(parser, context, 64 | 16); + if (next === 46) { + const index = parser.index + 1; + if (index < parser.end && source.charCodeAt(index) === 46) { + parser.column += 2; + parser.currentChar = source.charCodeAt((parser.index += 2)); + return 14; + } + } + return 67108877; + case 8455240: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 124) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194346; + } + return 8979003; + } + if (ch === 61) { + advanceChar(parser); + return 4194344; + } + return 8455240; + } + case 8456259: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 8456001; + } + if (ch !== 62) + return 8456259; + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 62) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 4194336; + } + return 8456518; + } + if (ch === 61) { + advanceChar(parser); + return 4194335; + } + } + return 8456517; + } + case 8455751: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 38) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194347; + } + return 8979258; + } + if (ch === 61) { + advanceChar(parser); + return 4194345; + } + return 8455751; + } + case 22: { + let ch = advanceChar(parser); + if (ch === 63) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194348; + } + return 276889982; + } + if (ch === 46) { + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (!(ch >= 48 && ch <= 57)) { + advanceChar(parser); + return 67108991; + } + } + } + return 22; + } + } + } + else { + if ((char ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + continue; + } + if ((char & 0xfc00) === 0xd800 || ((unicodeLookup[(char >>> 5) + 34816] >>> char) & 31 & 1) !== 0) { + if ((char & 0xfc00) === 0xdc00) { + char = ((char & 0x3ff) << 10) | (char & 0x3ff) | 0x10000; + if (((unicodeLookup[(char >>> 5) + 0] >>> char) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(char)); + } + parser.index++; + parser.currentChar = char; + } + parser.column++; + parser.tokenValue = ''; + return scanIdentifierSlowCase(parser, context, 0, 0); + } + if (isExoticECMAScriptWhitespace(char)) { + advanceChar(parser); + continue; + } + report(parser, 18, fromCodePoint(char)); + } + } + return 1048576; + } + + const entities = { + AElig: '\u00C6', + AMP: '\u0026', + Aacute: '\u00C1', + Abreve: '\u0102', + Acirc: '\u00C2', + Acy: '\u0410', + Afr: '\uD835\uDD04', + Agrave: '\u00C0', + Alpha: '\u0391', + Amacr: '\u0100', + And: '\u2A53', + Aogon: '\u0104', + Aopf: '\uD835\uDD38', + ApplyFunction: '\u2061', + Aring: '\u00C5', + Ascr: '\uD835\uDC9C', + Assign: '\u2254', + Atilde: '\u00C3', + Auml: '\u00C4', + Backslash: '\u2216', + Barv: '\u2AE7', + Barwed: '\u2306', + Bcy: '\u0411', + Because: '\u2235', + Bernoullis: '\u212C', + Beta: '\u0392', + Bfr: '\uD835\uDD05', + Bopf: '\uD835\uDD39', + Breve: '\u02D8', + Bscr: '\u212C', + Bumpeq: '\u224E', + CHcy: '\u0427', + COPY: '\u00A9', + Cacute: '\u0106', + Cap: '\u22D2', + CapitalDifferentialD: '\u2145', + Cayleys: '\u212D', + Ccaron: '\u010C', + Ccedil: '\u00C7', + Ccirc: '\u0108', + Cconint: '\u2230', + Cdot: '\u010A', + Cedilla: '\u00B8', + CenterDot: '\u00B7', + Cfr: '\u212D', + Chi: '\u03A7', + CircleDot: '\u2299', + CircleMinus: '\u2296', + CirclePlus: '\u2295', + CircleTimes: '\u2297', + ClockwiseContourIntegral: '\u2232', + CloseCurlyDoubleQuote: '\u201D', + CloseCurlyQuote: '\u2019', + Colon: '\u2237', + Colone: '\u2A74', + Congruent: '\u2261', + Conint: '\u222F', + ContourIntegral: '\u222E', + Copf: '\u2102', + Coproduct: '\u2210', + CounterClockwiseContourIntegral: '\u2233', + Cross: '\u2A2F', + Cscr: '\uD835\uDC9E', + Cup: '\u22D3', + CupCap: '\u224D', + DD: '\u2145', + DDotrahd: '\u2911', + DJcy: '\u0402', + DScy: '\u0405', + DZcy: '\u040F', + Dagger: '\u2021', + Darr: '\u21A1', + Dashv: '\u2AE4', + Dcaron: '\u010E', + Dcy: '\u0414', + Del: '\u2207', + Delta: '\u0394', + Dfr: '\uD835\uDD07', + DiacriticalAcute: '\u00B4', + DiacriticalDot: '\u02D9', + DiacriticalDoubleAcute: '\u02DD', + DiacriticalGrave: '\u0060', + DiacriticalTilde: '\u02DC', + Diamond: '\u22C4', + DifferentialD: '\u2146', + Dopf: '\uD835\uDD3B', + Dot: '\u00A8', + DotDot: '\u20DC', + DotEqual: '\u2250', + DoubleContourIntegral: '\u222F', + DoubleDot: '\u00A8', + DoubleDownArrow: '\u21D3', + DoubleLeftArrow: '\u21D0', + DoubleLeftRightArrow: '\u21D4', + DoubleLeftTee: '\u2AE4', + DoubleLongLeftArrow: '\u27F8', + DoubleLongLeftRightArrow: '\u27FA', + DoubleLongRightArrow: '\u27F9', + DoubleRightArrow: '\u21D2', + DoubleRightTee: '\u22A8', + DoubleUpArrow: '\u21D1', + DoubleUpDownArrow: '\u21D5', + DoubleVerticalBar: '\u2225', + DownArrow: '\u2193', + DownArrowBar: '\u2913', + DownArrowUpArrow: '\u21F5', + DownBreve: '\u0311', + DownLeftRightVector: '\u2950', + DownLeftTeeVector: '\u295E', + DownLeftVector: '\u21BD', + DownLeftVectorBar: '\u2956', + DownRightTeeVector: '\u295F', + DownRightVector: '\u21C1', + DownRightVectorBar: '\u2957', + DownTee: '\u22A4', + DownTeeArrow: '\u21A7', + Downarrow: '\u21D3', + Dscr: '\uD835\uDC9F', + Dstrok: '\u0110', + ENG: '\u014A', + ETH: '\u00D0', + Eacute: '\u00C9', + Ecaron: '\u011A', + Ecirc: '\u00CA', + Ecy: '\u042D', + Edot: '\u0116', + Efr: '\uD835\uDD08', + Egrave: '\u00C8', + Element: '\u2208', + Emacr: '\u0112', + EmptySmallSquare: '\u25FB', + EmptyVerySmallSquare: '\u25AB', + Eogon: '\u0118', + Eopf: '\uD835\uDD3C', + Epsilon: '\u0395', + Equal: '\u2A75', + EqualTilde: '\u2242', + Equilibrium: '\u21CC', + Escr: '\u2130', + Esim: '\u2A73', + Eta: '\u0397', + Euml: '\u00CB', + Exists: '\u2203', + ExponentialE: '\u2147', + Fcy: '\u0424', + Ffr: '\uD835\uDD09', + FilledSmallSquare: '\u25FC', + FilledVerySmallSquare: '\u25AA', + Fopf: '\uD835\uDD3D', + ForAll: '\u2200', + Fouriertrf: '\u2131', + Fscr: '\u2131', + GJcy: '\u0403', + GT: '\u003E', + Gamma: '\u0393', + Gammad: '\u03DC', + Gbreve: '\u011E', + Gcedil: '\u0122', + Gcirc: '\u011C', + Gcy: '\u0413', + Gdot: '\u0120', + Gfr: '\uD835\uDD0A', + Gg: '\u22D9', + Gopf: '\uD835\uDD3E', + GreaterEqual: '\u2265', + GreaterEqualLess: '\u22DB', + GreaterFullEqual: '\u2267', + GreaterGreater: '\u2AA2', + GreaterLess: '\u2277', + GreaterSlantEqual: '\u2A7E', + GreaterTilde: '\u2273', + Gscr: '\uD835\uDCA2', + Gt: '\u226B', + HARDcy: '\u042A', + Hacek: '\u02C7', + Hat: '\u005E', + Hcirc: '\u0124', + Hfr: '\u210C', + HilbertSpace: '\u210B', + Hopf: '\u210D', + HorizontalLine: '\u2500', + Hscr: '\u210B', + Hstrok: '\u0126', + HumpDownHump: '\u224E', + HumpEqual: '\u224F', + IEcy: '\u0415', + IJlig: '\u0132', + IOcy: '\u0401', + Iacute: '\u00CD', + Icirc: '\u00CE', + Icy: '\u0418', + Idot: '\u0130', + Ifr: '\u2111', + Igrave: '\u00CC', + Im: '\u2111', + Imacr: '\u012A', + ImaginaryI: '\u2148', + Implies: '\u21D2', + Int: '\u222C', + Integral: '\u222B', + Intersection: '\u22C2', + InvisibleComma: '\u2063', + InvisibleTimes: '\u2062', + Iogon: '\u012E', + Iopf: '\uD835\uDD40', + Iota: '\u0399', + Iscr: '\u2110', + Itilde: '\u0128', + Iukcy: '\u0406', + Iuml: '\u00CF', + Jcirc: '\u0134', + Jcy: '\u0419', + Jfr: '\uD835\uDD0D', + Jopf: '\uD835\uDD41', + Jscr: '\uD835\uDCA5', + Jsercy: '\u0408', + Jukcy: '\u0404', + KHcy: '\u0425', + KJcy: '\u040C', + Kappa: '\u039A', + Kcedil: '\u0136', + Kcy: '\u041A', + Kfr: '\uD835\uDD0E', + Kopf: '\uD835\uDD42', + Kscr: '\uD835\uDCA6', + LJcy: '\u0409', + LT: '\u003C', + Lacute: '\u0139', + Lambda: '\u039B', + Lang: '\u27EA', + Laplacetrf: '\u2112', + Larr: '\u219E', + Lcaron: '\u013D', + Lcedil: '\u013B', + Lcy: '\u041B', + LeftAngleBracket: '\u27E8', + LeftArrow: '\u2190', + LeftArrowBar: '\u21E4', + LeftArrowRightArrow: '\u21C6', + LeftCeiling: '\u2308', + LeftDoubleBracket: '\u27E6', + LeftDownTeeVector: '\u2961', + LeftDownVector: '\u21C3', + LeftDownVectorBar: '\u2959', + LeftFloor: '\u230A', + LeftRightArrow: '\u2194', + LeftRightVector: '\u294E', + LeftTee: '\u22A3', + LeftTeeArrow: '\u21A4', + LeftTeeVector: '\u295A', + LeftTriangle: '\u22B2', + LeftTriangleBar: '\u29CF', + LeftTriangleEqual: '\u22B4', + LeftUpDownVector: '\u2951', + LeftUpTeeVector: '\u2960', + LeftUpVector: '\u21BF', + LeftUpVectorBar: '\u2958', + LeftVector: '\u21BC', + LeftVectorBar: '\u2952', + Leftarrow: '\u21D0', + Leftrightarrow: '\u21D4', + LessEqualGreater: '\u22DA', + LessFullEqual: '\u2266', + LessGreater: '\u2276', + LessLess: '\u2AA1', + LessSlantEqual: '\u2A7D', + LessTilde: '\u2272', + Lfr: '\uD835\uDD0F', + Ll: '\u22D8', + Lleftarrow: '\u21DA', + Lmidot: '\u013F', + LongLeftArrow: '\u27F5', + LongLeftRightArrow: '\u27F7', + LongRightArrow: '\u27F6', + Longleftarrow: '\u27F8', + Longleftrightarrow: '\u27FA', + Longrightarrow: '\u27F9', + Lopf: '\uD835\uDD43', + LowerLeftArrow: '\u2199', + LowerRightArrow: '\u2198', + Lscr: '\u2112', + Lsh: '\u21B0', + Lstrok: '\u0141', + Lt: '\u226A', + Map: '\u2905', + Mcy: '\u041C', + MediumSpace: '\u205F', + Mellintrf: '\u2133', + Mfr: '\uD835\uDD10', + MinusPlus: '\u2213', + Mopf: '\uD835\uDD44', + Mscr: '\u2133', + Mu: '\u039C', + NJcy: '\u040A', + Nacute: '\u0143', + Ncaron: '\u0147', + Ncedil: '\u0145', + Ncy: '\u041D', + NegativeMediumSpace: '\u200B', + NegativeThickSpace: '\u200B', + NegativeThinSpace: '\u200B', + NegativeVeryThinSpace: '\u200B', + NestedGreaterGreater: '\u226B', + NestedLessLess: '\u226A', + NewLine: '\u000A', + Nfr: '\uD835\uDD11', + NoBreak: '\u2060', + NonBreakingSpace: '\u00A0', + Nopf: '\u2115', + Not: '\u2AEC', + NotCongruent: '\u2262', + NotCupCap: '\u226D', + NotDoubleVerticalBar: '\u2226', + NotElement: '\u2209', + NotEqual: '\u2260', + NotEqualTilde: '\u2242\u0338', + NotExists: '\u2204', + NotGreater: '\u226F', + NotGreaterEqual: '\u2271', + NotGreaterFullEqual: '\u2267\u0338', + NotGreaterGreater: '\u226B\u0338', + NotGreaterLess: '\u2279', + NotGreaterSlantEqual: '\u2A7E\u0338', + NotGreaterTilde: '\u2275', + NotHumpDownHump: '\u224E\u0338', + NotHumpEqual: '\u224F\u0338', + NotLeftTriangle: '\u22EA', + NotLeftTriangleBar: '\u29CF\u0338', + NotLeftTriangleEqual: '\u22EC', + NotLess: '\u226E', + NotLessEqual: '\u2270', + NotLessGreater: '\u2278', + NotLessLess: '\u226A\u0338', + NotLessSlantEqual: '\u2A7D\u0338', + NotLessTilde: '\u2274', + NotNestedGreaterGreater: '\u2AA2\u0338', + NotNestedLessLess: '\u2AA1\u0338', + NotPrecedes: '\u2280', + NotPrecedesEqual: '\u2AAF\u0338', + NotPrecedesSlantEqual: '\u22E0', + NotReverseElement: '\u220C', + NotRightTriangle: '\u22EB', + NotRightTriangleBar: '\u29D0\u0338', + NotRightTriangleEqual: '\u22ED', + NotSquareSubset: '\u228F\u0338', + NotSquareSubsetEqual: '\u22E2', + NotSquareSuperset: '\u2290\u0338', + NotSquareSupersetEqual: '\u22E3', + NotSubset: '\u2282\u20D2', + NotSubsetEqual: '\u2288', + NotSucceeds: '\u2281', + NotSucceedsEqual: '\u2AB0\u0338', + NotSucceedsSlantEqual: '\u22E1', + NotSucceedsTilde: '\u227F\u0338', + NotSuperset: '\u2283\u20D2', + NotSupersetEqual: '\u2289', + NotTilde: '\u2241', + NotTildeEqual: '\u2244', + NotTildeFullEqual: '\u2247', + NotTildeTilde: '\u2249', + NotVerticalBar: '\u2224', + Nscr: '\uD835\uDCA9', + Ntilde: '\u00D1', + Nu: '\u039D', + OElig: '\u0152', + Oacute: '\u00D3', + Ocirc: '\u00D4', + Ocy: '\u041E', + Odblac: '\u0150', + Ofr: '\uD835\uDD12', + Ograve: '\u00D2', + Omacr: '\u014C', + Omega: '\u03A9', + Omicron: '\u039F', + Oopf: '\uD835\uDD46', + OpenCurlyDoubleQuote: '\u201C', + OpenCurlyQuote: '\u2018', + Or: '\u2A54', + Oscr: '\uD835\uDCAA', + Oslash: '\u00D8', + Otilde: '\u00D5', + Otimes: '\u2A37', + Ouml: '\u00D6', + OverBar: '\u203E', + OverBrace: '\u23DE', + OverBracket: '\u23B4', + OverParenthesis: '\u23DC', + PartialD: '\u2202', + Pcy: '\u041F', + Pfr: '\uD835\uDD13', + Phi: '\u03A6', + Pi: '\u03A0', + PlusMinus: '\u00B1', + Poincareplane: '\u210C', + Popf: '\u2119', + Pr: '\u2ABB', + Precedes: '\u227A', + PrecedesEqual: '\u2AAF', + PrecedesSlantEqual: '\u227C', + PrecedesTilde: '\u227E', + Prime: '\u2033', + Product: '\u220F', + Proportion: '\u2237', + Proportional: '\u221D', + Pscr: '\uD835\uDCAB', + Psi: '\u03A8', + QUOT: '\u0022', + Qfr: '\uD835\uDD14', + Qopf: '\u211A', + Qscr: '\uD835\uDCAC', + RBarr: '\u2910', + REG: '\u00AE', + Racute: '\u0154', + Rang: '\u27EB', + Rarr: '\u21A0', + Rarrtl: '\u2916', + Rcaron: '\u0158', + Rcedil: '\u0156', + Rcy: '\u0420', + Re: '\u211C', + ReverseElement: '\u220B', + ReverseEquilibrium: '\u21CB', + ReverseUpEquilibrium: '\u296F', + Rfr: '\u211C', + Rho: '\u03A1', + RightAngleBracket: '\u27E9', + RightArrow: '\u2192', + RightArrowBar: '\u21E5', + RightArrowLeftArrow: '\u21C4', + RightCeiling: '\u2309', + RightDoubleBracket: '\u27E7', + RightDownTeeVector: '\u295D', + RightDownVector: '\u21C2', + RightDownVectorBar: '\u2955', + RightFloor: '\u230B', + RightTee: '\u22A2', + RightTeeArrow: '\u21A6', + RightTeeVector: '\u295B', + RightTriangle: '\u22B3', + RightTriangleBar: '\u29D0', + RightTriangleEqual: '\u22B5', + RightUpDownVector: '\u294F', + RightUpTeeVector: '\u295C', + RightUpVector: '\u21BE', + RightUpVectorBar: '\u2954', + RightVector: '\u21C0', + RightVectorBar: '\u2953', + Rightarrow: '\u21D2', + Ropf: '\u211D', + RoundImplies: '\u2970', + Rrightarrow: '\u21DB', + Rscr: '\u211B', + Rsh: '\u21B1', + RuleDelayed: '\u29F4', + SHCHcy: '\u0429', + SHcy: '\u0428', + SOFTcy: '\u042C', + Sacute: '\u015A', + Sc: '\u2ABC', + Scaron: '\u0160', + Scedil: '\u015E', + Scirc: '\u015C', + Scy: '\u0421', + Sfr: '\uD835\uDD16', + ShortDownArrow: '\u2193', + ShortLeftArrow: '\u2190', + ShortRightArrow: '\u2192', + ShortUpArrow: '\u2191', + Sigma: '\u03A3', + SmallCircle: '\u2218', + Sopf: '\uD835\uDD4A', + Sqrt: '\u221A', + Square: '\u25A1', + SquareIntersection: '\u2293', + SquareSubset: '\u228F', + SquareSubsetEqual: '\u2291', + SquareSuperset: '\u2290', + SquareSupersetEqual: '\u2292', + SquareUnion: '\u2294', + Sscr: '\uD835\uDCAE', + Star: '\u22C6', + Sub: '\u22D0', + Subset: '\u22D0', + SubsetEqual: '\u2286', + Succeeds: '\u227B', + SucceedsEqual: '\u2AB0', + SucceedsSlantEqual: '\u227D', + SucceedsTilde: '\u227F', + SuchThat: '\u220B', + Sum: '\u2211', + Sup: '\u22D1', + Superset: '\u2283', + SupersetEqual: '\u2287', + Supset: '\u22D1', + THORN: '\u00DE', + TRADE: '\u2122', + TSHcy: '\u040B', + TScy: '\u0426', + Tab: '\u0009', + Tau: '\u03A4', + Tcaron: '\u0164', + Tcedil: '\u0162', + Tcy: '\u0422', + Tfr: '\uD835\uDD17', + Therefore: '\u2234', + Theta: '\u0398', + ThickSpace: '\u205F\u200A', + ThinSpace: '\u2009', + Tilde: '\u223C', + TildeEqual: '\u2243', + TildeFullEqual: '\u2245', + TildeTilde: '\u2248', + Topf: '\uD835\uDD4B', + TripleDot: '\u20DB', + Tscr: '\uD835\uDCAF', + Tstrok: '\u0166', + Uacute: '\u00DA', + Uarr: '\u219F', + Uarrocir: '\u2949', + Ubrcy: '\u040E', + Ubreve: '\u016C', + Ucirc: '\u00DB', + Ucy: '\u0423', + Udblac: '\u0170', + Ufr: '\uD835\uDD18', + Ugrave: '\u00D9', + Umacr: '\u016A', + UnderBar: '\u005F', + UnderBrace: '\u23DF', + UnderBracket: '\u23B5', + UnderParenthesis: '\u23DD', + Union: '\u22C3', + UnionPlus: '\u228E', + Uogon: '\u0172', + Uopf: '\uD835\uDD4C', + UpArrow: '\u2191', + UpArrowBar: '\u2912', + UpArrowDownArrow: '\u21C5', + UpDownArrow: '\u2195', + UpEquilibrium: '\u296E', + UpTee: '\u22A5', + UpTeeArrow: '\u21A5', + Uparrow: '\u21D1', + Updownarrow: '\u21D5', + UpperLeftArrow: '\u2196', + UpperRightArrow: '\u2197', + Upsi: '\u03D2', + Upsilon: '\u03A5', + Uring: '\u016E', + Uscr: '\uD835\uDCB0', + Utilde: '\u0168', + Uuml: '\u00DC', + VDash: '\u22AB', + Vbar: '\u2AEB', + Vcy: '\u0412', + Vdash: '\u22A9', + Vdashl: '\u2AE6', + Vee: '\u22C1', + Verbar: '\u2016', + Vert: '\u2016', + VerticalBar: '\u2223', + VerticalLine: '\u007C', + VerticalSeparator: '\u2758', + VerticalTilde: '\u2240', + VeryThinSpace: '\u200A', + Vfr: '\uD835\uDD19', + Vopf: '\uD835\uDD4D', + Vscr: '\uD835\uDCB1', + Vvdash: '\u22AA', + Wcirc: '\u0174', + Wedge: '\u22C0', + Wfr: '\uD835\uDD1A', + Wopf: '\uD835\uDD4E', + Wscr: '\uD835\uDCB2', + Xfr: '\uD835\uDD1B', + Xi: '\u039E', + Xopf: '\uD835\uDD4F', + Xscr: '\uD835\uDCB3', + YAcy: '\u042F', + YIcy: '\u0407', + YUcy: '\u042E', + Yacute: '\u00DD', + Ycirc: '\u0176', + Ycy: '\u042B', + Yfr: '\uD835\uDD1C', + Yopf: '\uD835\uDD50', + Yscr: '\uD835\uDCB4', + Yuml: '\u0178', + ZHcy: '\u0416', + Zacute: '\u0179', + Zcaron: '\u017D', + Zcy: '\u0417', + Zdot: '\u017B', + ZeroWidthSpace: '\u200B', + Zeta: '\u0396', + Zfr: '\u2128', + Zopf: '\u2124', + Zscr: '\uD835\uDCB5', + aacute: '\u00E1', + abreve: '\u0103', + ac: '\u223E', + acE: '\u223E\u0333', + acd: '\u223F', + acirc: '\u00E2', + acute: '\u00B4', + acy: '\u0430', + aelig: '\u00E6', + af: '\u2061', + afr: '\uD835\uDD1E', + agrave: '\u00E0', + alefsym: '\u2135', + aleph: '\u2135', + alpha: '\u03B1', + amacr: '\u0101', + amalg: '\u2A3F', + amp: '\u0026', + and: '\u2227', + andand: '\u2A55', + andd: '\u2A5C', + andslope: '\u2A58', + andv: '\u2A5A', + ang: '\u2220', + ange: '\u29A4', + angle: '\u2220', + angmsd: '\u2221', + angmsdaa: '\u29A8', + angmsdab: '\u29A9', + angmsdac: '\u29AA', + angmsdad: '\u29AB', + angmsdae: '\u29AC', + angmsdaf: '\u29AD', + angmsdag: '\u29AE', + angmsdah: '\u29AF', + angrt: '\u221F', + angrtvb: '\u22BE', + angrtvbd: '\u299D', + angsph: '\u2222', + angst: '\u00C5', + angzarr: '\u237C', + aogon: '\u0105', + aopf: '\uD835\uDD52', + ap: '\u2248', + apE: '\u2A70', + apacir: '\u2A6F', + ape: '\u224A', + apid: '\u224B', + apos: '\u0027', + approx: '\u2248', + approxeq: '\u224A', + aring: '\u00E5', + ascr: '\uD835\uDCB6', + ast: '\u002A', + asymp: '\u2248', + asympeq: '\u224D', + atilde: '\u00E3', + auml: '\u00E4', + awconint: '\u2233', + awint: '\u2A11', + bNot: '\u2AED', + backcong: '\u224C', + backepsilon: '\u03F6', + backprime: '\u2035', + backsim: '\u223D', + backsimeq: '\u22CD', + barvee: '\u22BD', + barwed: '\u2305', + barwedge: '\u2305', + bbrk: '\u23B5', + bbrktbrk: '\u23B6', + bcong: '\u224C', + bcy: '\u0431', + bdquo: '\u201E', + becaus: '\u2235', + because: '\u2235', + bemptyv: '\u29B0', + bepsi: '\u03F6', + bernou: '\u212C', + beta: '\u03B2', + beth: '\u2136', + between: '\u226C', + bfr: '\uD835\uDD1F', + bigcap: '\u22C2', + bigcirc: '\u25EF', + bigcup: '\u22C3', + bigodot: '\u2A00', + bigoplus: '\u2A01', + bigotimes: '\u2A02', + bigsqcup: '\u2A06', + bigstar: '\u2605', + bigtriangledown: '\u25BD', + bigtriangleup: '\u25B3', + biguplus: '\u2A04', + bigvee: '\u22C1', + bigwedge: '\u22C0', + bkarow: '\u290D', + blacklozenge: '\u29EB', + blacksquare: '\u25AA', + blacktriangle: '\u25B4', + blacktriangledown: '\u25BE', + blacktriangleleft: '\u25C2', + blacktriangleright: '\u25B8', + blank: '\u2423', + blk12: '\u2592', + blk14: '\u2591', + blk34: '\u2593', + block: '\u2588', + bne: '\u003D\u20E5', + bnequiv: '\u2261\u20E5', + bnot: '\u2310', + bopf: '\uD835\uDD53', + bot: '\u22A5', + bottom: '\u22A5', + bowtie: '\u22C8', + boxDL: '\u2557', + boxDR: '\u2554', + boxDl: '\u2556', + boxDr: '\u2553', + boxH: '\u2550', + boxHD: '\u2566', + boxHU: '\u2569', + boxHd: '\u2564', + boxHu: '\u2567', + boxUL: '\u255D', + boxUR: '\u255A', + boxUl: '\u255C', + boxUr: '\u2559', + boxV: '\u2551', + boxVH: '\u256C', + boxVL: '\u2563', + boxVR: '\u2560', + boxVh: '\u256B', + boxVl: '\u2562', + boxVr: '\u255F', + boxbox: '\u29C9', + boxdL: '\u2555', + boxdR: '\u2552', + boxdl: '\u2510', + boxdr: '\u250C', + boxh: '\u2500', + boxhD: '\u2565', + boxhU: '\u2568', + boxhd: '\u252C', + boxhu: '\u2534', + boxminus: '\u229F', + boxplus: '\u229E', + boxtimes: '\u22A0', + boxuL: '\u255B', + boxuR: '\u2558', + boxul: '\u2518', + boxur: '\u2514', + boxv: '\u2502', + boxvH: '\u256A', + boxvL: '\u2561', + boxvR: '\u255E', + boxvh: '\u253C', + boxvl: '\u2524', + boxvr: '\u251C', + bprime: '\u2035', + breve: '\u02D8', + brvbar: '\u00A6', + bscr: '\uD835\uDCB7', + bsemi: '\u204F', + bsim: '\u223D', + bsime: '\u22CD', + bsol: '\u005C', + bsolb: '\u29C5', + bsolhsub: '\u27C8', + bull: '\u2022', + bullet: '\u2022', + bump: '\u224E', + bumpE: '\u2AAE', + bumpe: '\u224F', + bumpeq: '\u224F', + cacute: '\u0107', + cap: '\u2229', + capand: '\u2A44', + capbrcup: '\u2A49', + capcap: '\u2A4B', + capcup: '\u2A47', + capdot: '\u2A40', + caps: '\u2229\uFE00', + caret: '\u2041', + caron: '\u02C7', + ccaps: '\u2A4D', + ccaron: '\u010D', + ccedil: '\u00E7', + ccirc: '\u0109', + ccups: '\u2A4C', + ccupssm: '\u2A50', + cdot: '\u010B', + cedil: '\u00B8', + cemptyv: '\u29B2', + cent: '\u00A2', + centerdot: '\u00B7', + cfr: '\uD835\uDD20', + chcy: '\u0447', + check: '\u2713', + checkmark: '\u2713', + chi: '\u03C7', + cir: '\u25CB', + cirE: '\u29C3', + circ: '\u02C6', + circeq: '\u2257', + circlearrowleft: '\u21BA', + circlearrowright: '\u21BB', + circledR: '\u00AE', + circledS: '\u24C8', + circledast: '\u229B', + circledcirc: '\u229A', + circleddash: '\u229D', + cire: '\u2257', + cirfnint: '\u2A10', + cirmid: '\u2AEF', + cirscir: '\u29C2', + clubs: '\u2663', + clubsuit: '\u2663', + colon: '\u003A', + colone: '\u2254', + coloneq: '\u2254', + comma: '\u002C', + commat: '\u0040', + comp: '\u2201', + compfn: '\u2218', + complement: '\u2201', + complexes: '\u2102', + cong: '\u2245', + congdot: '\u2A6D', + conint: '\u222E', + copf: '\uD835\uDD54', + coprod: '\u2210', + copy: '\u00A9', + copysr: '\u2117', + crarr: '\u21B5', + cross: '\u2717', + cscr: '\uD835\uDCB8', + csub: '\u2ACF', + csube: '\u2AD1', + csup: '\u2AD0', + csupe: '\u2AD2', + ctdot: '\u22EF', + cudarrl: '\u2938', + cudarrr: '\u2935', + cuepr: '\u22DE', + cuesc: '\u22DF', + cularr: '\u21B6', + cularrp: '\u293D', + cup: '\u222A', + cupbrcap: '\u2A48', + cupcap: '\u2A46', + cupcup: '\u2A4A', + cupdot: '\u228D', + cupor: '\u2A45', + cups: '\u222A\uFE00', + curarr: '\u21B7', + curarrm: '\u293C', + curlyeqprec: '\u22DE', + curlyeqsucc: '\u22DF', + curlyvee: '\u22CE', + curlywedge: '\u22CF', + curren: '\u00A4', + curvearrowleft: '\u21B6', + curvearrowright: '\u21B7', + cuvee: '\u22CE', + cuwed: '\u22CF', + cwconint: '\u2232', + cwint: '\u2231', + cylcty: '\u232D', + dArr: '\u21D3', + dHar: '\u2965', + dagger: '\u2020', + daleth: '\u2138', + darr: '\u2193', + dash: '\u2010', + dashv: '\u22A3', + dbkarow: '\u290F', + dblac: '\u02DD', + dcaron: '\u010F', + dcy: '\u0434', + dd: '\u2146', + ddagger: '\u2021', + ddarr: '\u21CA', + ddotseq: '\u2A77', + deg: '\u00B0', + delta: '\u03B4', + demptyv: '\u29B1', + dfisht: '\u297F', + dfr: '\uD835\uDD21', + dharl: '\u21C3', + dharr: '\u21C2', + diam: '\u22C4', + diamond: '\u22C4', + diamondsuit: '\u2666', + diams: '\u2666', + die: '\u00A8', + digamma: '\u03DD', + disin: '\u22F2', + div: '\u00F7', + divide: '\u00F7', + divideontimes: '\u22C7', + divonx: '\u22C7', + djcy: '\u0452', + dlcorn: '\u231E', + dlcrop: '\u230D', + dollar: '\u0024', + dopf: '\uD835\uDD55', + dot: '\u02D9', + doteq: '\u2250', + doteqdot: '\u2251', + dotminus: '\u2238', + dotplus: '\u2214', + dotsquare: '\u22A1', + doublebarwedge: '\u2306', + downarrow: '\u2193', + downdownarrows: '\u21CA', + downharpoonleft: '\u21C3', + downharpoonright: '\u21C2', + drbkarow: '\u2910', + drcorn: '\u231F', + drcrop: '\u230C', + dscr: '\uD835\uDCB9', + dscy: '\u0455', + dsol: '\u29F6', + dstrok: '\u0111', + dtdot: '\u22F1', + dtri: '\u25BF', + dtrif: '\u25BE', + duarr: '\u21F5', + duhar: '\u296F', + dwangle: '\u29A6', + dzcy: '\u045F', + dzigrarr: '\u27FF', + eDDot: '\u2A77', + eDot: '\u2251', + eacute: '\u00E9', + easter: '\u2A6E', + ecaron: '\u011B', + ecir: '\u2256', + ecirc: '\u00EA', + ecolon: '\u2255', + ecy: '\u044D', + edot: '\u0117', + ee: '\u2147', + efDot: '\u2252', + efr: '\uD835\uDD22', + eg: '\u2A9A', + egrave: '\u00E8', + egs: '\u2A96', + egsdot: '\u2A98', + el: '\u2A99', + elinters: '\u23E7', + ell: '\u2113', + els: '\u2A95', + elsdot: '\u2A97', + emacr: '\u0113', + empty: '\u2205', + emptyset: '\u2205', + emptyv: '\u2205', + emsp13: '\u2004', + emsp14: '\u2005', + emsp: '\u2003', + eng: '\u014B', + ensp: '\u2002', + eogon: '\u0119', + eopf: '\uD835\uDD56', + epar: '\u22D5', + eparsl: '\u29E3', + eplus: '\u2A71', + epsi: '\u03B5', + epsilon: '\u03B5', + epsiv: '\u03F5', + eqcirc: '\u2256', + eqcolon: '\u2255', + eqsim: '\u2242', + eqslantgtr: '\u2A96', + eqslantless: '\u2A95', + equals: '\u003D', + equest: '\u225F', + equiv: '\u2261', + equivDD: '\u2A78', + eqvparsl: '\u29E5', + erDot: '\u2253', + erarr: '\u2971', + escr: '\u212F', + esdot: '\u2250', + esim: '\u2242', + eta: '\u03B7', + eth: '\u00F0', + euml: '\u00EB', + euro: '\u20AC', + excl: '\u0021', + exist: '\u2203', + expectation: '\u2130', + exponentiale: '\u2147', + fallingdotseq: '\u2252', + fcy: '\u0444', + female: '\u2640', + ffilig: '\uFB03', + fflig: '\uFB00', + ffllig: '\uFB04', + ffr: '\uD835\uDD23', + filig: '\uFB01', + fjlig: '\u0066\u006A', + flat: '\u266D', + fllig: '\uFB02', + fltns: '\u25B1', + fnof: '\u0192', + fopf: '\uD835\uDD57', + forall: '\u2200', + fork: '\u22D4', + forkv: '\u2AD9', + fpartint: '\u2A0D', + frac12: '\u00BD', + frac13: '\u2153', + frac14: '\u00BC', + frac15: '\u2155', + frac16: '\u2159', + frac18: '\u215B', + frac23: '\u2154', + frac25: '\u2156', + frac34: '\u00BE', + frac35: '\u2157', + frac38: '\u215C', + frac45: '\u2158', + frac56: '\u215A', + frac58: '\u215D', + frac78: '\u215E', + frasl: '\u2044', + frown: '\u2322', + fscr: '\uD835\uDCBB', + gE: '\u2267', + gEl: '\u2A8C', + gacute: '\u01F5', + gamma: '\u03B3', + gammad: '\u03DD', + gap: '\u2A86', + gbreve: '\u011F', + gcirc: '\u011D', + gcy: '\u0433', + gdot: '\u0121', + ge: '\u2265', + gel: '\u22DB', + geq: '\u2265', + geqq: '\u2267', + geqslant: '\u2A7E', + ges: '\u2A7E', + gescc: '\u2AA9', + gesdot: '\u2A80', + gesdoto: '\u2A82', + gesdotol: '\u2A84', + gesl: '\u22DB\uFE00', + gesles: '\u2A94', + gfr: '\uD835\uDD24', + gg: '\u226B', + ggg: '\u22D9', + gimel: '\u2137', + gjcy: '\u0453', + gl: '\u2277', + glE: '\u2A92', + gla: '\u2AA5', + glj: '\u2AA4', + gnE: '\u2269', + gnap: '\u2A8A', + gnapprox: '\u2A8A', + gne: '\u2A88', + gneq: '\u2A88', + gneqq: '\u2269', + gnsim: '\u22E7', + gopf: '\uD835\uDD58', + grave: '\u0060', + gscr: '\u210A', + gsim: '\u2273', + gsime: '\u2A8E', + gsiml: '\u2A90', + gt: '\u003E', + gtcc: '\u2AA7', + gtcir: '\u2A7A', + gtdot: '\u22D7', + gtlPar: '\u2995', + gtquest: '\u2A7C', + gtrapprox: '\u2A86', + gtrarr: '\u2978', + gtrdot: '\u22D7', + gtreqless: '\u22DB', + gtreqqless: '\u2A8C', + gtrless: '\u2277', + gtrsim: '\u2273', + gvertneqq: '\u2269\uFE00', + gvnE: '\u2269\uFE00', + hArr: '\u21D4', + hairsp: '\u200A', + half: '\u00BD', + hamilt: '\u210B', + hardcy: '\u044A', + harr: '\u2194', + harrcir: '\u2948', + harrw: '\u21AD', + hbar: '\u210F', + hcirc: '\u0125', + hearts: '\u2665', + heartsuit: '\u2665', + hellip: '\u2026', + hercon: '\u22B9', + hfr: '\uD835\uDD25', + hksearow: '\u2925', + hkswarow: '\u2926', + hoarr: '\u21FF', + homtht: '\u223B', + hookleftarrow: '\u21A9', + hookrightarrow: '\u21AA', + hopf: '\uD835\uDD59', + horbar: '\u2015', + hscr: '\uD835\uDCBD', + hslash: '\u210F', + hstrok: '\u0127', + hybull: '\u2043', + hyphen: '\u2010', + iacute: '\u00ED', + ic: '\u2063', + icirc: '\u00EE', + icy: '\u0438', + iecy: '\u0435', + iexcl: '\u00A1', + iff: '\u21D4', + ifr: '\uD835\uDD26', + igrave: '\u00EC', + ii: '\u2148', + iiiint: '\u2A0C', + iiint: '\u222D', + iinfin: '\u29DC', + iiota: '\u2129', + ijlig: '\u0133', + imacr: '\u012B', + image: '\u2111', + imagline: '\u2110', + imagpart: '\u2111', + imath: '\u0131', + imof: '\u22B7', + imped: '\u01B5', + in: '\u2208', + incare: '\u2105', + infin: '\u221E', + infintie: '\u29DD', + inodot: '\u0131', + int: '\u222B', + intcal: '\u22BA', + integers: '\u2124', + intercal: '\u22BA', + intlarhk: '\u2A17', + intprod: '\u2A3C', + iocy: '\u0451', + iogon: '\u012F', + iopf: '\uD835\uDD5A', + iota: '\u03B9', + iprod: '\u2A3C', + iquest: '\u00BF', + iscr: '\uD835\uDCBE', + isin: '\u2208', + isinE: '\u22F9', + isindot: '\u22F5', + isins: '\u22F4', + isinsv: '\u22F3', + isinv: '\u2208', + it: '\u2062', + itilde: '\u0129', + iukcy: '\u0456', + iuml: '\u00EF', + jcirc: '\u0135', + jcy: '\u0439', + jfr: '\uD835\uDD27', + jmath: '\u0237', + jopf: '\uD835\uDD5B', + jscr: '\uD835\uDCBF', + jsercy: '\u0458', + jukcy: '\u0454', + kappa: '\u03BA', + kappav: '\u03F0', + kcedil: '\u0137', + kcy: '\u043A', + kfr: '\uD835\uDD28', + kgreen: '\u0138', + khcy: '\u0445', + kjcy: '\u045C', + kopf: '\uD835\uDD5C', + kscr: '\uD835\uDCC0', + lAarr: '\u21DA', + lArr: '\u21D0', + lAtail: '\u291B', + lBarr: '\u290E', + lE: '\u2266', + lEg: '\u2A8B', + lHar: '\u2962', + lacute: '\u013A', + laemptyv: '\u29B4', + lagran: '\u2112', + lambda: '\u03BB', + lang: '\u27E8', + langd: '\u2991', + langle: '\u27E8', + lap: '\u2A85', + laquo: '\u00AB', + larr: '\u2190', + larrb: '\u21E4', + larrbfs: '\u291F', + larrfs: '\u291D', + larrhk: '\u21A9', + larrlp: '\u21AB', + larrpl: '\u2939', + larrsim: '\u2973', + larrtl: '\u21A2', + lat: '\u2AAB', + latail: '\u2919', + late: '\u2AAD', + lates: '\u2AAD\uFE00', + lbarr: '\u290C', + lbbrk: '\u2772', + lbrace: '\u007B', + lbrack: '\u005B', + lbrke: '\u298B', + lbrksld: '\u298F', + lbrkslu: '\u298D', + lcaron: '\u013E', + lcedil: '\u013C', + lceil: '\u2308', + lcub: '\u007B', + lcy: '\u043B', + ldca: '\u2936', + ldquo: '\u201C', + ldquor: '\u201E', + ldrdhar: '\u2967', + ldrushar: '\u294B', + ldsh: '\u21B2', + le: '\u2264', + leftarrow: '\u2190', + leftarrowtail: '\u21A2', + leftharpoondown: '\u21BD', + leftharpoonup: '\u21BC', + leftleftarrows: '\u21C7', + leftrightarrow: '\u2194', + leftrightarrows: '\u21C6', + leftrightharpoons: '\u21CB', + leftrightsquigarrow: '\u21AD', + leftthreetimes: '\u22CB', + leg: '\u22DA', + leq: '\u2264', + leqq: '\u2266', + leqslant: '\u2A7D', + les: '\u2A7D', + lescc: '\u2AA8', + lesdot: '\u2A7F', + lesdoto: '\u2A81', + lesdotor: '\u2A83', + lesg: '\u22DA\uFE00', + lesges: '\u2A93', + lessapprox: '\u2A85', + lessdot: '\u22D6', + lesseqgtr: '\u22DA', + lesseqqgtr: '\u2A8B', + lessgtr: '\u2276', + lesssim: '\u2272', + lfisht: '\u297C', + lfloor: '\u230A', + lfr: '\uD835\uDD29', + lg: '\u2276', + lgE: '\u2A91', + lhard: '\u21BD', + lharu: '\u21BC', + lharul: '\u296A', + lhblk: '\u2584', + ljcy: '\u0459', + ll: '\u226A', + llarr: '\u21C7', + llcorner: '\u231E', + llhard: '\u296B', + lltri: '\u25FA', + lmidot: '\u0140', + lmoust: '\u23B0', + lmoustache: '\u23B0', + lnE: '\u2268', + lnap: '\u2A89', + lnapprox: '\u2A89', + lne: '\u2A87', + lneq: '\u2A87', + lneqq: '\u2268', + lnsim: '\u22E6', + loang: '\u27EC', + loarr: '\u21FD', + lobrk: '\u27E6', + longleftarrow: '\u27F5', + longleftrightarrow: '\u27F7', + longmapsto: '\u27FC', + longrightarrow: '\u27F6', + looparrowleft: '\u21AB', + looparrowright: '\u21AC', + lopar: '\u2985', + lopf: '\uD835\uDD5D', + loplus: '\u2A2D', + lotimes: '\u2A34', + lowast: '\u2217', + lowbar: '\u005F', + loz: '\u25CA', + lozenge: '\u25CA', + lozf: '\u29EB', + lpar: '\u0028', + lparlt: '\u2993', + lrarr: '\u21C6', + lrcorner: '\u231F', + lrhar: '\u21CB', + lrhard: '\u296D', + lrm: '\u200E', + lrtri: '\u22BF', + lsaquo: '\u2039', + lscr: '\uD835\uDCC1', + lsh: '\u21B0', + lsim: '\u2272', + lsime: '\u2A8D', + lsimg: '\u2A8F', + lsqb: '\u005B', + lsquo: '\u2018', + lsquor: '\u201A', + lstrok: '\u0142', + lt: '\u003C', + ltcc: '\u2AA6', + ltcir: '\u2A79', + ltdot: '\u22D6', + lthree: '\u22CB', + ltimes: '\u22C9', + ltlarr: '\u2976', + ltquest: '\u2A7B', + ltrPar: '\u2996', + ltri: '\u25C3', + ltrie: '\u22B4', + ltrif: '\u25C2', + lurdshar: '\u294A', + luruhar: '\u2966', + lvertneqq: '\u2268\uFE00', + lvnE: '\u2268\uFE00', + mDDot: '\u223A', + macr: '\u00AF', + male: '\u2642', + malt: '\u2720', + maltese: '\u2720', + map: '\u21A6', + mapsto: '\u21A6', + mapstodown: '\u21A7', + mapstoleft: '\u21A4', + mapstoup: '\u21A5', + marker: '\u25AE', + mcomma: '\u2A29', + mcy: '\u043C', + mdash: '\u2014', + measuredangle: '\u2221', + mfr: '\uD835\uDD2A', + mho: '\u2127', + micro: '\u00B5', + mid: '\u2223', + midast: '\u002A', + midcir: '\u2AF0', + middot: '\u00B7', + minus: '\u2212', + minusb: '\u229F', + minusd: '\u2238', + minusdu: '\u2A2A', + mlcp: '\u2ADB', + mldr: '\u2026', + mnplus: '\u2213', + models: '\u22A7', + mopf: '\uD835\uDD5E', + mp: '\u2213', + mscr: '\uD835\uDCC2', + mstpos: '\u223E', + mu: '\u03BC', + multimap: '\u22B8', + mumap: '\u22B8', + nGg: '\u22D9\u0338', + nGt: '\u226B\u20D2', + nGtv: '\u226B\u0338', + nLeftarrow: '\u21CD', + nLeftrightarrow: '\u21CE', + nLl: '\u22D8\u0338', + nLt: '\u226A\u20D2', + nLtv: '\u226A\u0338', + nRightarrow: '\u21CF', + nVDash: '\u22AF', + nVdash: '\u22AE', + nabla: '\u2207', + nacute: '\u0144', + nang: '\u2220\u20D2', + nap: '\u2249', + napE: '\u2A70\u0338', + napid: '\u224B\u0338', + napos: '\u0149', + napprox: '\u2249', + natur: '\u266E', + natural: '\u266E', + naturals: '\u2115', + nbsp: '\u00A0', + nbump: '\u224E\u0338', + nbumpe: '\u224F\u0338', + ncap: '\u2A43', + ncaron: '\u0148', + ncedil: '\u0146', + ncong: '\u2247', + ncongdot: '\u2A6D\u0338', + ncup: '\u2A42', + ncy: '\u043D', + ndash: '\u2013', + ne: '\u2260', + neArr: '\u21D7', + nearhk: '\u2924', + nearr: '\u2197', + nearrow: '\u2197', + nedot: '\u2250\u0338', + nequiv: '\u2262', + nesear: '\u2928', + nesim: '\u2242\u0338', + nexist: '\u2204', + nexists: '\u2204', + nfr: '\uD835\uDD2B', + ngE: '\u2267\u0338', + nge: '\u2271', + ngeq: '\u2271', + ngeqq: '\u2267\u0338', + ngeqslant: '\u2A7E\u0338', + nges: '\u2A7E\u0338', + ngsim: '\u2275', + ngt: '\u226F', + ngtr: '\u226F', + nhArr: '\u21CE', + nharr: '\u21AE', + nhpar: '\u2AF2', + ni: '\u220B', + nis: '\u22FC', + nisd: '\u22FA', + niv: '\u220B', + njcy: '\u045A', + nlArr: '\u21CD', + nlE: '\u2266\u0338', + nlarr: '\u219A', + nldr: '\u2025', + nle: '\u2270', + nleftarrow: '\u219A', + nleftrightarrow: '\u21AE', + nleq: '\u2270', + nleqq: '\u2266\u0338', + nleqslant: '\u2A7D\u0338', + nles: '\u2A7D\u0338', + nless: '\u226E', + nlsim: '\u2274', + nlt: '\u226E', + nltri: '\u22EA', + nltrie: '\u22EC', + nmid: '\u2224', + nopf: '\uD835\uDD5F', + not: '\u00AC', + notin: '\u2209', + notinE: '\u22F9\u0338', + notindot: '\u22F5\u0338', + notinva: '\u2209', + notinvb: '\u22F7', + notinvc: '\u22F6', + notni: '\u220C', + notniva: '\u220C', + notnivb: '\u22FE', + notnivc: '\u22FD', + npar: '\u2226', + nparallel: '\u2226', + nparsl: '\u2AFD\u20E5', + npart: '\u2202\u0338', + npolint: '\u2A14', + npr: '\u2280', + nprcue: '\u22E0', + npre: '\u2AAF\u0338', + nprec: '\u2280', + npreceq: '\u2AAF\u0338', + nrArr: '\u21CF', + nrarr: '\u219B', + nrarrc: '\u2933\u0338', + nrarrw: '\u219D\u0338', + nrightarrow: '\u219B', + nrtri: '\u22EB', + nrtrie: '\u22ED', + nsc: '\u2281', + nsccue: '\u22E1', + nsce: '\u2AB0\u0338', + nscr: '\uD835\uDCC3', + nshortmid: '\u2224', + nshortparallel: '\u2226', + nsim: '\u2241', + nsime: '\u2244', + nsimeq: '\u2244', + nsmid: '\u2224', + nspar: '\u2226', + nsqsube: '\u22E2', + nsqsupe: '\u22E3', + nsub: '\u2284', + nsubE: '\u2AC5\u0338', + nsube: '\u2288', + nsubset: '\u2282\u20D2', + nsubseteq: '\u2288', + nsubseteqq: '\u2AC5\u0338', + nsucc: '\u2281', + nsucceq: '\u2AB0\u0338', + nsup: '\u2285', + nsupE: '\u2AC6\u0338', + nsupe: '\u2289', + nsupset: '\u2283\u20D2', + nsupseteq: '\u2289', + nsupseteqq: '\u2AC6\u0338', + ntgl: '\u2279', + ntilde: '\u00F1', + ntlg: '\u2278', + ntriangleleft: '\u22EA', + ntrianglelefteq: '\u22EC', + ntriangleright: '\u22EB', + ntrianglerighteq: '\u22ED', + nu: '\u03BD', + num: '\u0023', + numero: '\u2116', + numsp: '\u2007', + nvDash: '\u22AD', + nvHarr: '\u2904', + nvap: '\u224D\u20D2', + nvdash: '\u22AC', + nvge: '\u2265\u20D2', + nvgt: '\u003E\u20D2', + nvinfin: '\u29DE', + nvlArr: '\u2902', + nvle: '\u2264\u20D2', + nvlt: '\u003C\u20D2', + nvltrie: '\u22B4\u20D2', + nvrArr: '\u2903', + nvrtrie: '\u22B5\u20D2', + nvsim: '\u223C\u20D2', + nwArr: '\u21D6', + nwarhk: '\u2923', + nwarr: '\u2196', + nwarrow: '\u2196', + nwnear: '\u2927', + oS: '\u24C8', + oacute: '\u00F3', + oast: '\u229B', + ocir: '\u229A', + ocirc: '\u00F4', + ocy: '\u043E', + odash: '\u229D', + odblac: '\u0151', + odiv: '\u2A38', + odot: '\u2299', + odsold: '\u29BC', + oelig: '\u0153', + ofcir: '\u29BF', + ofr: '\uD835\uDD2C', + ogon: '\u02DB', + ograve: '\u00F2', + ogt: '\u29C1', + ohbar: '\u29B5', + ohm: '\u03A9', + oint: '\u222E', + olarr: '\u21BA', + olcir: '\u29BE', + olcross: '\u29BB', + oline: '\u203E', + olt: '\u29C0', + omacr: '\u014D', + omega: '\u03C9', + omicron: '\u03BF', + omid: '\u29B6', + ominus: '\u2296', + oopf: '\uD835\uDD60', + opar: '\u29B7', + operp: '\u29B9', + oplus: '\u2295', + or: '\u2228', + orarr: '\u21BB', + ord: '\u2A5D', + order: '\u2134', + orderof: '\u2134', + ordf: '\u00AA', + ordm: '\u00BA', + origof: '\u22B6', + oror: '\u2A56', + orslope: '\u2A57', + orv: '\u2A5B', + oscr: '\u2134', + oslash: '\u00F8', + osol: '\u2298', + otilde: '\u00F5', + otimes: '\u2297', + otimesas: '\u2A36', + ouml: '\u00F6', + ovbar: '\u233D', + par: '\u2225', + para: '\u00B6', + parallel: '\u2225', + parsim: '\u2AF3', + parsl: '\u2AFD', + part: '\u2202', + pcy: '\u043F', + percnt: '\u0025', + period: '\u002E', + permil: '\u2030', + perp: '\u22A5', + pertenk: '\u2031', + pfr: '\uD835\uDD2D', + phi: '\u03C6', + phiv: '\u03D5', + phmmat: '\u2133', + phone: '\u260E', + pi: '\u03C0', + pitchfork: '\u22D4', + piv: '\u03D6', + planck: '\u210F', + planckh: '\u210E', + plankv: '\u210F', + plus: '\u002B', + plusacir: '\u2A23', + plusb: '\u229E', + pluscir: '\u2A22', + plusdo: '\u2214', + plusdu: '\u2A25', + pluse: '\u2A72', + plusmn: '\u00B1', + plussim: '\u2A26', + plustwo: '\u2A27', + pm: '\u00B1', + pointint: '\u2A15', + popf: '\uD835\uDD61', + pound: '\u00A3', + pr: '\u227A', + prE: '\u2AB3', + prap: '\u2AB7', + prcue: '\u227C', + pre: '\u2AAF', + prec: '\u227A', + precapprox: '\u2AB7', + preccurlyeq: '\u227C', + preceq: '\u2AAF', + precnapprox: '\u2AB9', + precneqq: '\u2AB5', + precnsim: '\u22E8', + precsim: '\u227E', + prime: '\u2032', + primes: '\u2119', + prnE: '\u2AB5', + prnap: '\u2AB9', + prnsim: '\u22E8', + prod: '\u220F', + profalar: '\u232E', + profline: '\u2312', + profsurf: '\u2313', + prop: '\u221D', + propto: '\u221D', + prsim: '\u227E', + prurel: '\u22B0', + pscr: '\uD835\uDCC5', + psi: '\u03C8', + puncsp: '\u2008', + qfr: '\uD835\uDD2E', + qint: '\u2A0C', + qopf: '\uD835\uDD62', + qprime: '\u2057', + qscr: '\uD835\uDCC6', + quaternions: '\u210D', + quatint: '\u2A16', + quest: '\u003F', + questeq: '\u225F', + quot: '\u0022', + rAarr: '\u21DB', + rArr: '\u21D2', + rAtail: '\u291C', + rBarr: '\u290F', + rHar: '\u2964', + race: '\u223D\u0331', + racute: '\u0155', + radic: '\u221A', + raemptyv: '\u29B3', + rang: '\u27E9', + rangd: '\u2992', + range: '\u29A5', + rangle: '\u27E9', + raquo: '\u00BB', + rarr: '\u2192', + rarrap: '\u2975', + rarrb: '\u21E5', + rarrbfs: '\u2920', + rarrc: '\u2933', + rarrfs: '\u291E', + rarrhk: '\u21AA', + rarrlp: '\u21AC', + rarrpl: '\u2945', + rarrsim: '\u2974', + rarrtl: '\u21A3', + rarrw: '\u219D', + ratail: '\u291A', + ratio: '\u2236', + rationals: '\u211A', + rbarr: '\u290D', + rbbrk: '\u2773', + rbrace: '\u007D', + rbrack: '\u005D', + rbrke: '\u298C', + rbrksld: '\u298E', + rbrkslu: '\u2990', + rcaron: '\u0159', + rcedil: '\u0157', + rceil: '\u2309', + rcub: '\u007D', + rcy: '\u0440', + rdca: '\u2937', + rdldhar: '\u2969', + rdquo: '\u201D', + rdquor: '\u201D', + rdsh: '\u21B3', + real: '\u211C', + realine: '\u211B', + realpart: '\u211C', + reals: '\u211D', + rect: '\u25AD', + reg: '\u00AE', + rfisht: '\u297D', + rfloor: '\u230B', + rfr: '\uD835\uDD2F', + rhard: '\u21C1', + rharu: '\u21C0', + rharul: '\u296C', + rho: '\u03C1', + rhov: '\u03F1', + rightarrow: '\u2192', + rightarrowtail: '\u21A3', + rightharpoondown: '\u21C1', + rightharpoonup: '\u21C0', + rightleftarrows: '\u21C4', + rightleftharpoons: '\u21CC', + rightrightarrows: '\u21C9', + rightsquigarrow: '\u219D', + rightthreetimes: '\u22CC', + ring: '\u02DA', + risingdotseq: '\u2253', + rlarr: '\u21C4', + rlhar: '\u21CC', + rlm: '\u200F', + rmoust: '\u23B1', + rmoustache: '\u23B1', + rnmid: '\u2AEE', + roang: '\u27ED', + roarr: '\u21FE', + robrk: '\u27E7', + ropar: '\u2986', + ropf: '\uD835\uDD63', + roplus: '\u2A2E', + rotimes: '\u2A35', + rpar: '\u0029', + rpargt: '\u2994', + rppolint: '\u2A12', + rrarr: '\u21C9', + rsaquo: '\u203A', + rscr: '\uD835\uDCC7', + rsh: '\u21B1', + rsqb: '\u005D', + rsquo: '\u2019', + rsquor: '\u2019', + rthree: '\u22CC', + rtimes: '\u22CA', + rtri: '\u25B9', + rtrie: '\u22B5', + rtrif: '\u25B8', + rtriltri: '\u29CE', + ruluhar: '\u2968', + rx: '\u211E', + sacute: '\u015B', + sbquo: '\u201A', + sc: '\u227B', + scE: '\u2AB4', + scap: '\u2AB8', + scaron: '\u0161', + sccue: '\u227D', + sce: '\u2AB0', + scedil: '\u015F', + scirc: '\u015D', + scnE: '\u2AB6', + scnap: '\u2ABA', + scnsim: '\u22E9', + scpolint: '\u2A13', + scsim: '\u227F', + scy: '\u0441', + sdot: '\u22C5', + sdotb: '\u22A1', + sdote: '\u2A66', + seArr: '\u21D8', + searhk: '\u2925', + searr: '\u2198', + searrow: '\u2198', + sect: '\u00A7', + semi: '\u003B', + seswar: '\u2929', + setminus: '\u2216', + setmn: '\u2216', + sext: '\u2736', + sfr: '\uD835\uDD30', + sfrown: '\u2322', + sharp: '\u266F', + shchcy: '\u0449', + shcy: '\u0448', + shortmid: '\u2223', + shortparallel: '\u2225', + shy: '\u00AD', + sigma: '\u03C3', + sigmaf: '\u03C2', + sigmav: '\u03C2', + sim: '\u223C', + simdot: '\u2A6A', + sime: '\u2243', + simeq: '\u2243', + simg: '\u2A9E', + simgE: '\u2AA0', + siml: '\u2A9D', + simlE: '\u2A9F', + simne: '\u2246', + simplus: '\u2A24', + simrarr: '\u2972', + slarr: '\u2190', + smallsetminus: '\u2216', + smashp: '\u2A33', + smeparsl: '\u29E4', + smid: '\u2223', + smile: '\u2323', + smt: '\u2AAA', + smte: '\u2AAC', + smtes: '\u2AAC\uFE00', + softcy: '\u044C', + sol: '\u002F', + solb: '\u29C4', + solbar: '\u233F', + sopf: '\uD835\uDD64', + spades: '\u2660', + spadesuit: '\u2660', + spar: '\u2225', + sqcap: '\u2293', + sqcaps: '\u2293\uFE00', + sqcup: '\u2294', + sqcups: '\u2294\uFE00', + sqsub: '\u228F', + sqsube: '\u2291', + sqsubset: '\u228F', + sqsubseteq: '\u2291', + sqsup: '\u2290', + sqsupe: '\u2292', + sqsupset: '\u2290', + sqsupseteq: '\u2292', + squ: '\u25A1', + square: '\u25A1', + squarf: '\u25AA', + squf: '\u25AA', + srarr: '\u2192', + sscr: '\uD835\uDCC8', + ssetmn: '\u2216', + ssmile: '\u2323', + sstarf: '\u22C6', + star: '\u2606', + starf: '\u2605', + straightepsilon: '\u03F5', + straightphi: '\u03D5', + strns: '\u00AF', + sub: '\u2282', + subE: '\u2AC5', + subdot: '\u2ABD', + sube: '\u2286', + subedot: '\u2AC3', + submult: '\u2AC1', + subnE: '\u2ACB', + subne: '\u228A', + subplus: '\u2ABF', + subrarr: '\u2979', + subset: '\u2282', + subseteq: '\u2286', + subseteqq: '\u2AC5', + subsetneq: '\u228A', + subsetneqq: '\u2ACB', + subsim: '\u2AC7', + subsub: '\u2AD5', + subsup: '\u2AD3', + succ: '\u227B', + succapprox: '\u2AB8', + succcurlyeq: '\u227D', + succeq: '\u2AB0', + succnapprox: '\u2ABA', + succneqq: '\u2AB6', + succnsim: '\u22E9', + succsim: '\u227F', + sum: '\u2211', + sung: '\u266A', + sup1: '\u00B9', + sup2: '\u00B2', + sup3: '\u00B3', + sup: '\u2283', + supE: '\u2AC6', + supdot: '\u2ABE', + supdsub: '\u2AD8', + supe: '\u2287', + supedot: '\u2AC4', + suphsol: '\u27C9', + suphsub: '\u2AD7', + suplarr: '\u297B', + supmult: '\u2AC2', + supnE: '\u2ACC', + supne: '\u228B', + supplus: '\u2AC0', + supset: '\u2283', + supseteq: '\u2287', + supseteqq: '\u2AC6', + supsetneq: '\u228B', + supsetneqq: '\u2ACC', + supsim: '\u2AC8', + supsub: '\u2AD4', + supsup: '\u2AD6', + swArr: '\u21D9', + swarhk: '\u2926', + swarr: '\u2199', + swarrow: '\u2199', + swnwar: '\u292A', + szlig: '\u00DF', + target: '\u2316', + tau: '\u03C4', + tbrk: '\u23B4', + tcaron: '\u0165', + tcedil: '\u0163', + tcy: '\u0442', + tdot: '\u20DB', + telrec: '\u2315', + tfr: '\uD835\uDD31', + there4: '\u2234', + therefore: '\u2234', + theta: '\u03B8', + thetasym: '\u03D1', + thetav: '\u03D1', + thickapprox: '\u2248', + thicksim: '\u223C', + thinsp: '\u2009', + thkap: '\u2248', + thksim: '\u223C', + thorn: '\u00FE', + tilde: '\u02DC', + times: '\u00D7', + timesb: '\u22A0', + timesbar: '\u2A31', + timesd: '\u2A30', + tint: '\u222D', + toea: '\u2928', + top: '\u22A4', + topbot: '\u2336', + topcir: '\u2AF1', + topf: '\uD835\uDD65', + topfork: '\u2ADA', + tosa: '\u2929', + tprime: '\u2034', + trade: '\u2122', + triangle: '\u25B5', + triangledown: '\u25BF', + triangleleft: '\u25C3', + trianglelefteq: '\u22B4', + triangleq: '\u225C', + triangleright: '\u25B9', + trianglerighteq: '\u22B5', + tridot: '\u25EC', + trie: '\u225C', + triminus: '\u2A3A', + triplus: '\u2A39', + trisb: '\u29CD', + tritime: '\u2A3B', + trpezium: '\u23E2', + tscr: '\uD835\uDCC9', + tscy: '\u0446', + tshcy: '\u045B', + tstrok: '\u0167', + twixt: '\u226C', + twoheadleftarrow: '\u219E', + twoheadrightarrow: '\u21A0', + uArr: '\u21D1', + uHar: '\u2963', + uacute: '\u00FA', + uarr: '\u2191', + ubrcy: '\u045E', + ubreve: '\u016D', + ucirc: '\u00FB', + ucy: '\u0443', + udarr: '\u21C5', + udblac: '\u0171', + udhar: '\u296E', + ufisht: '\u297E', + ufr: '\uD835\uDD32', + ugrave: '\u00F9', + uharl: '\u21BF', + uharr: '\u21BE', + uhblk: '\u2580', + ulcorn: '\u231C', + ulcorner: '\u231C', + ulcrop: '\u230F', + ultri: '\u25F8', + umacr: '\u016B', + uml: '\u00A8', + uogon: '\u0173', + uopf: '\uD835\uDD66', + uparrow: '\u2191', + updownarrow: '\u2195', + upharpoonleft: '\u21BF', + upharpoonright: '\u21BE', + uplus: '\u228E', + upsi: '\u03C5', + upsih: '\u03D2', + upsilon: '\u03C5', + upuparrows: '\u21C8', + urcorn: '\u231D', + urcorner: '\u231D', + urcrop: '\u230E', + uring: '\u016F', + urtri: '\u25F9', + uscr: '\uD835\uDCCA', + utdot: '\u22F0', + utilde: '\u0169', + utri: '\u25B5', + utrif: '\u25B4', + uuarr: '\u21C8', + uuml: '\u00FC', + uwangle: '\u29A7', + vArr: '\u21D5', + vBar: '\u2AE8', + vBarv: '\u2AE9', + vDash: '\u22A8', + vangrt: '\u299C', + varepsilon: '\u03F5', + varkappa: '\u03F0', + varnothing: '\u2205', + varphi: '\u03D5', + varpi: '\u03D6', + varpropto: '\u221D', + varr: '\u2195', + varrho: '\u03F1', + varsigma: '\u03C2', + varsubsetneq: '\u228A\uFE00', + varsubsetneqq: '\u2ACB\uFE00', + varsupsetneq: '\u228B\uFE00', + varsupsetneqq: '\u2ACC\uFE00', + vartheta: '\u03D1', + vartriangleleft: '\u22B2', + vartriangleright: '\u22B3', + vcy: '\u0432', + vdash: '\u22A2', + vee: '\u2228', + veebar: '\u22BB', + veeeq: '\u225A', + vellip: '\u22EE', + verbar: '\u007C', + vert: '\u007C', + vfr: '\uD835\uDD33', + vltri: '\u22B2', + vnsub: '\u2282\u20D2', + vnsup: '\u2283\u20D2', + vopf: '\uD835\uDD67', + vprop: '\u221D', + vrtri: '\u22B3', + vscr: '\uD835\uDCCB', + vsubnE: '\u2ACB\uFE00', + vsubne: '\u228A\uFE00', + vsupnE: '\u2ACC\uFE00', + vsupne: '\u228B\uFE00', + vzigzag: '\u299A', + wcirc: '\u0175', + wedbar: '\u2A5F', + wedge: '\u2227', + wedgeq: '\u2259', + weierp: '\u2118', + wfr: '\uD835\uDD34', + wopf: '\uD835\uDD68', + wp: '\u2118', + wr: '\u2240', + wreath: '\u2240', + wscr: '\uD835\uDCCC', + xcap: '\u22C2', + xcirc: '\u25EF', + xcup: '\u22C3', + xdtri: '\u25BD', + xfr: '\uD835\uDD35', + xhArr: '\u27FA', + xharr: '\u27F7', + xi: '\u03BE', + xlArr: '\u27F8', + xlarr: '\u27F5', + xmap: '\u27FC', + xnis: '\u22FB', + xodot: '\u2A00', + xopf: '\uD835\uDD69', + xoplus: '\u2A01', + xotime: '\u2A02', + xrArr: '\u27F9', + xrarr: '\u27F6', + xscr: '\uD835\uDCCD', + xsqcup: '\u2A06', + xuplus: '\u2A04', + xutri: '\u25B3', + xvee: '\u22C1', + xwedge: '\u22C0', + yacute: '\u00FD', + yacy: '\u044F', + ycirc: '\u0177', + ycy: '\u044B', + yen: '\u00A5', + yfr: '\uD835\uDD36', + yicy: '\u0457', + yopf: '\uD835\uDD6A', + yscr: '\uD835\uDCCE', + yucy: '\u044E', + yuml: '\u00FF', + zacute: '\u017A', + zcaron: '\u017E', + zcy: '\u0437', + zdot: '\u017C', + zeetrf: '\u2128', + zeta: '\u03B6', + zfr: '\uD835\uDD37', + zhcy: '\u0436', + zigrarr: '\u21DD', + zopf: '\uD835\uDD6B', + zscr: '\uD835\uDCCF', + zwj: '\u200D', + zwnj: '\u200C' + }; + const decodeMap = { + '0': 65533, + '128': 8364, + '130': 8218, + '131': 402, + '132': 8222, + '133': 8230, + '134': 8224, + '135': 8225, + '136': 710, + '137': 8240, + '138': 352, + '139': 8249, + '140': 338, + '142': 381, + '145': 8216, + '146': 8217, + '147': 8220, + '148': 8221, + '149': 8226, + '150': 8211, + '151': 8212, + '152': 732, + '153': 8482, + '154': 353, + '155': 8250, + '156': 339, + '158': 382, + '159': 376 + }; + function decodeHTMLStrict(text) { + return text.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, (key) => { + if (key.charAt(1) === '#') { + const secondChar = key.charAt(2); + const codePoint = secondChar === 'X' || secondChar === 'x' + ? parseInt(key.slice(3), 16) + : parseInt(key.slice(2), 10); + return decodeCodePoint(codePoint); + } + return entities[key.slice(1, -1)] || key; + }); + } + function decodeCodePoint(codePoint) { + if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { + return '\uFFFD'; + } + if (codePoint in decodeMap) { + codePoint = decodeMap[codePoint]; + } + return String.fromCodePoint(codePoint); + } + + function scanJSXAttributeValue(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + parser.token = + CharTypes[parser.currentChar] & 8192 + ? scanJSXString(parser, context) + : scanSingleToken(parser, context, 0); + return parser.token; + } + function scanJSXString(parser, context) { + const quote = parser.currentChar; + let char = advanceChar(parser); + const start = parser.index; + while (char !== quote) { + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + if (char !== quote) + report(parser, 14); + parser.tokenValue = parser.source.slice(start, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283267; + } + function scanJSXToken(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + if (parser.index >= parser.end) + return (parser.token = 1048576); + const token = TokenLookup[parser.source.charCodeAt(parser.index)]; + switch (token) { + case 8456258: { + advanceChar(parser); + if (parser.currentChar === 47) { + advanceChar(parser); + parser.token = 25; + } + else { + parser.token = 8456258; + } + break; + } + case 2162700: { + advanceChar(parser); + parser.token = 2162700; + break; + } + default: { + let state = 0; + while (parser.index < parser.end) { + const type = CharTypes[parser.source.charCodeAt(parser.index)]; + if (type & 1024) { + state |= 1 | 4; + scanNewLine(parser); + } + else if (type & 2048) { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + else { + advanceChar(parser); + } + if (CharTypes[parser.currentChar] & 16384) + break; + } + const raw = parser.source.slice(parser.tokenPos, parser.index); + if (context & 512) + parser.tokenRaw = raw; + parser.tokenValue = decodeHTMLStrict(raw); + parser.token = 138; + } + } + return parser.token; + } + function scanJSXIdentifier(parser) { + if ((parser.token & 143360) === 143360) { + const { index } = parser; + let char = parser.currentChar; + while (CharTypes[char] & (32768 | 2)) { + char = advanceChar(parser); + } + parser.tokenValue += parser.source.slice(index, parser.index); + } + parser.token = 208897; + return parser.token; + } + + function matchOrInsertSemicolon(parser, context, specDeviation) { + if ((parser.flags & 1) === 0 && + (parser.token & 1048576) !== 1048576 && + !specDeviation) { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + consumeOpt(parser, context, 1074790417); + } + function isValidStrictMode(parser, index, tokenPos, tokenValue) { + if (index - tokenPos < 13 && tokenValue === 'use strict') { + if ((parser.token & 1048576) === 1048576 || parser.flags & 1) { + return 1; + } + } + return 0; + } + function optionalBit(parser, context, t) { + if (parser.token !== t) + return 0; + nextToken(parser, context); + return 1; + } + function consumeOpt(parser, context, t) { + if (parser.token !== t) + return false; + nextToken(parser, context); + return true; + } + function consume(parser, context, t) { + if (parser.token !== t) + report(parser, 23, KeywordDescTable[t & 255]); + nextToken(parser, context); + } + function reinterpretToPattern(state, node) { + switch (node.type) { + case 'ArrayExpression': + node.type = 'ArrayPattern'; + const elements = node.elements; + for (let i = 0, n = elements.length; i < n; ++i) { + const element = elements[i]; + if (element) + reinterpretToPattern(state, element); + } + return; + case 'ObjectExpression': + node.type = 'ObjectPattern'; + const properties = node.properties; + for (let i = 0, n = properties.length; i < n; ++i) { + reinterpretToPattern(state, properties[i]); + } + return; + case 'AssignmentExpression': + node.type = 'AssignmentPattern'; + if (node.operator !== '=') + report(state, 68); + delete node.operator; + reinterpretToPattern(state, node.left); + return; + case 'Property': + reinterpretToPattern(state, node.value); + return; + case 'SpreadElement': + node.type = 'RestElement'; + reinterpretToPattern(state, node.argument); + } + } + function validateBindingIdentifier(parser, context, kind, t, skipEvalArgCheck) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if (!skipEvalArgCheck && (t & 537079808) === 537079808) { + report(parser, 115); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (kind & (8 | 16) && t === 241739) { + report(parser, 97); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } + } + function validateFunctionName(parser, context, t) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if ((t & 537079808) === 537079808) { + report(parser, 115); + } + if (t === 122) { + report(parser, 92); + } + if (t === 121) { + report(parser, 92); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } + } + function isStrictReservedWord(parser, context, t) { + if (t === 209008) { + if (context & (4194304 | 2048)) + report(parser, 95); + parser.destructible |= 128; + } + if (t === 241773 && context & 2097152) + report(parser, 94, 'yield'); + return ((t & 20480) === 20480 || + (t & 36864) === 36864 || + t == 122); + } + function isPropertyWithPrivateFieldKey(expr) { + return !expr.property ? false : expr.property.type === 'PrivateIdentifier'; + } + function isValidLabel(parser, labels, name, isIterationStatement) { + while (labels) { + if (labels['$' + name]) { + if (isIterationStatement) + report(parser, 133); + return 1; + } + if (isIterationStatement && labels.loop) + isIterationStatement = 0; + labels = labels['$']; + } + return 0; + } + function validateAndDeclareLabel(parser, labels, name) { + let set = labels; + while (set) { + if (set['$' + name]) + report(parser, 132, name); + set = set['$']; + } + labels['$' + name] = 1; + } + function finishNode(parser, context, start, line, column, node) { + if (context & 2) { + node.start = start; + node.end = parser.startPos; + node.range = [start, parser.startPos]; + } + if (context & 4) { + node.loc = { + start: { + line, + column + }, + end: { + line: parser.startLine, + column: parser.startColumn + } + }; + if (parser.sourceFile) { + node.loc.source = parser.sourceFile; + } + } + return node; + } + function isEqualTagName(elementName) { + switch (elementName.type) { + case 'JSXIdentifier': + return elementName.name; + case 'JSXNamespacedName': + return elementName.namespace + ':' + elementName.name; + case 'JSXMemberExpression': + return isEqualTagName(elementName.object) + '.' + isEqualTagName(elementName.property); + } + } + function createArrowHeadParsingScope(parser, context, value) { + const scope = addChildScope(createScope(), 1024); + addBlockName(parser, context, scope, value, 1, 0); + return scope; + } + function recordScopeError(parser, type, ...params) { + const { index, line, column } = parser; + return { + type, + params, + index, + line, + column + }; + } + function createScope() { + return { + parent: void 0, + type: 2 + }; + } + function addChildScope(parent, type) { + return { + parent, + type, + scopeError: void 0 + }; + } + function addVarOrBlock(parser, context, scope, name, kind, origin) { + if (kind & 4) { + addVarName(parser, context, scope, name, kind); + } + else { + addBlockName(parser, context, scope, name, kind, origin); + } + if (origin & 64) { + declareUnboundVariable(parser, name); + } + } + function addBlockName(parser, context, scope, name, kind, origin) { + const value = scope['#' + name]; + if (value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + else if (context & 256 && + value & 64 && + origin & 2) ; + else { + report(parser, 140, name); + } + } + if (scope.type & 128 && + (scope.parent['#' + name] && (scope.parent['#' + name] & 2) === 0)) { + report(parser, 140, name); + } + if (scope.type & 1024 && value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + } + if (scope.type & 64) { + if (scope.parent['#' + name] & 768) + report(parser, 153, name); + } + scope['#' + name] = kind; + } + function addVarName(parser, context, scope, name, kind) { + let currentScope = scope; + while (currentScope && (currentScope.type & 256) === 0) { + const value = currentScope['#' + name]; + if (value & 248) { + if (context & 256 && + (context & 1024) === 0 && + ((kind & 128 && value & 68) || + (value & 128 && kind & 68))) ; + else { + report(parser, 140, name); + } + } + if (currentScope === scope) { + if (value & 1 && kind & 1) { + currentScope.scopeError = recordScopeError(parser, 140, name); + } + } + if (value & (512 | 256)) { + if ((value & 512) === 0 || + (context & 256) === 0 || + context & 1024) { + report(parser, 140, name); + } + } + currentScope['#' + name] = kind; + currentScope = currentScope.parent; + } + } + function declareUnboundVariable(parser, name) { + if (parser.exportedNames !== void 0 && name !== '') { + if (parser.exportedNames['#' + name]) { + report(parser, 141, name); + } + parser.exportedNames['#' + name] = 1; + } + } + function addBindingToExports(parser, name) { + if (parser.exportedBindings !== void 0 && name !== '') { + parser.exportedBindings['#' + name] = 1; + } + } + function pushComment(context, array) { + return function (type, value, start, end, loc) { + const comment = { + type, + value + }; + if (context & 2) { + comment.start = start; + comment.end = end; + comment.range = [start, end]; + } + if (context & 4) { + comment.loc = loc; + } + array.push(comment); + }; + } + function pushToken(context, array) { + return function (token, start, end, loc) { + const tokens = { + token + }; + if (context & 2) { + tokens.start = start; + tokens.end = end; + tokens.range = [start, end]; + } + if (context & 4) { + tokens.loc = loc; + } + array.push(tokens); + }; + } + function isValidIdentifier(context, t) { + if (context & (1024 | 2097152)) { + if (context & 2048 && t === 209008) + return false; + if (context & 2097152 && t === 241773) + return false; + return (t & 143360) === 143360 || (t & 12288) === 12288; + } + return ((t & 143360) === 143360 || + (t & 12288) === 12288 || + (t & 36864) === 36864); + } + function classifyIdentifier(parser, context, t, isArrow) { + if ((t & 537079808) === 537079808) { + if (context & 1024) + report(parser, 115); + if (isArrow) + parser.flags |= 512; + } + if (!isValidIdentifier(context, t)) + report(parser, 0); + } + + function create(source, sourceFile, onComment, onToken) { + return { + source, + flags: 0, + index: 0, + line: 1, + column: 0, + startPos: 0, + end: source.length, + tokenPos: 0, + startColumn: 0, + colPos: 0, + linePos: 1, + startLine: 1, + sourceFile, + tokenValue: '', + token: 1048576, + tokenRaw: '', + tokenRegExp: void 0, + currentChar: source.charCodeAt(0), + exportedNames: [], + exportedBindings: [], + assignable: 1, + destructible: 0, + onComment, + onToken, + leadingDecorators: [] + }; + } + function parseSource(source, options, context) { + let sourceFile = ''; + let onComment; + let onToken; + if (options != null) { + if (options.module) + context |= 2048 | 1024; + if (options.next) + context |= 1; + if (options.loc) + context |= 4; + if (options.ranges) + context |= 2; + if (options.uniqueKeyInPattern) + context |= -2147483648; + if (options.lexical) + context |= 64; + if (options.webcompat) + context |= 256; + if (options.directives) + context |= 8 | 512; + if (options.globalReturn) + context |= 32; + if (options.raw) + context |= 512; + if (options.preserveParens) + context |= 128; + if (options.impliedStrict) + context |= 1024; + if (options.jsx) + context |= 16; + if (options.identifierPattern) + context |= 268435456; + if (options.specDeviation) + context |= 536870912; + if (options.source) + sourceFile = options.source; + if (options.onComment != null) { + onComment = Array.isArray(options.onComment) ? pushComment(context, options.onComment) : options.onComment; + } + if (options.onToken != null) { + onToken = Array.isArray(options.onToken) ? pushToken(context, options.onToken) : options.onToken; + } + } + const parser = create(source, sourceFile, onComment, onToken); + if (context & 1) + skipHashBang(parser); + const scope = context & 64 ? createScope() : void 0; + let body = []; + let sourceType = 'script'; + if (context & 2048) { + sourceType = 'module'; + body = parseModuleItemList(parser, context | 8192, scope); + if (scope) { + for (const key in parser.exportedBindings) { + if (key[0] === '#' && !scope[key]) + report(parser, 142, key.slice(1)); + } + } + } + else { + body = parseStatementList(parser, context | 8192, scope); + } + const node = { + type: 'Program', + sourceType, + body + }; + if (context & 2) { + node.start = 0; + node.end = source.length; + node.range = [0, source.length]; + } + if (context & 4) { + node.loc = { + start: { line: 1, column: 0 }, + end: { line: parser.line, column: parser.column } + }; + if (parser.sourceFile) + node.loc.source = sourceFile; + } + return node; + } + function parseStatementList(parser, context, scope) { + nextToken(parser, context | 32768 | 1073741824); + const statements = []; + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, linePos, colPos, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) + context |= 1024; + statements.push(parseDirective(parser, context, expr, token, tokenPos, linePos, colPos)); + } + while (parser.token !== 1048576) { + statements.push(parseStatementListItem(parser, context, scope, 4, {})); + } + return statements; + } + function parseModuleItemList(parser, context, scope) { + nextToken(parser, context | 32768); + const statements = []; + if (context & 8) { + while (parser.token === 134283267) { + const { tokenPos, linePos, colPos, token } = parser; + statements.push(parseDirective(parser, context, parseLiteral(parser, context), token, tokenPos, linePos, colPos)); + } + } + while (parser.token !== 1048576) { + statements.push(parseModuleItem(parser, context, scope)); + } + return statements; + } + function parseModuleItem(parser, context, scope) { + parser.leadingDecorators = parseDecorators(parser, context); + let moduleItem; + switch (parser.token) { + case 20566: + moduleItem = parseExportDeclaration(parser, context, scope); + break; + case 86108: + moduleItem = parseImportDeclaration(parser, context, scope); + break; + default: + moduleItem = parseStatementListItem(parser, context, scope, 4, {}); + } + if (parser.leadingDecorators.length) { + report(parser, 164); + } + return moduleItem; + } + function parseStatementListItem(parser, context, scope, origin, labels) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + switch (parser.token) { + case 86106: + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 0, start, line, column); + case 133: + case 86096: + return parseClassDeclaration(parser, context, scope, 0, start, line, column); + case 86092: + return parseLexicalDeclaration(parser, context, scope, 16, 0, start, line, column); + case 241739: + return parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column); + case 20566: + report(parser, 100, 'export'); + case 86108: + nextToken(parser, context); + switch (parser.token) { + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 100, 'import'); + } + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 1, start, line, column); + default: + return parseStatement(parser, context, scope, origin, labels, 1, start, line, column); + } + } + function parseStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + switch (parser.token) { + case 86090: + return parseVariableStatement(parser, context, scope, 0, start, line, column); + case 20574: + return parseReturnStatement(parser, context, start, line, column); + case 20571: + return parseIfStatement(parser, context, scope, labels, start, line, column); + case 20569: + return parseForStatement(parser, context, scope, labels, start, line, column); + case 20564: + return parseDoWhileStatement(parser, context, scope, labels, start, line, column); + case 20580: + return parseWhileStatement(parser, context, scope, labels, start, line, column); + case 86112: + return parseSwitchStatement(parser, context, scope, labels, start, line, column); + case 1074790417: + return parseEmptyStatement(parser, context, start, line, column); + case 2162700: + return parseBlock(parser, context, scope ? addChildScope(scope, 2) : scope, labels, start, line, column); + case 86114: + return parseThrowStatement(parser, context, start, line, column); + case 20557: + return parseBreakStatement(parser, context, labels, start, line, column); + case 20561: + return parseContinueStatement(parser, context, labels, start, line, column); + case 20579: + return parseTryStatement(parser, context, scope, labels, start, line, column); + case 20581: + return parseWithStatement(parser, context, scope, labels, start, line, column); + case 20562: + return parseDebuggerStatement(parser, context, start, line, column); + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 0, start, line, column); + case 20559: + report(parser, 156); + case 20568: + report(parser, 157); + case 86106: + report(parser, context & 1024 + ? 73 + : (context & 256) < 1 + ? 75 + : 74); + case 86096: + report(parser, 76); + default: + return parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column); + } + } + function parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { tokenValue, token } = parser; + let expr; + switch (token) { + case 241739: + expr = parseIdentifier(parser, context, 0); + if (context & 1024) + report(parser, 82); + if (parser.token === 69271571) + report(parser, 81); + break; + default: + expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + if (token & 143360 && parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, allowFuncDecl, start, line, column); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseBlock(parser, context, scope, labels, start, line, column) { + const body = []; + consume(parser, context | 32768, 2162700); + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 2, { $: labels })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'BlockStatement', + body + }); + } + function parseReturnStatement(parser, context, start, line, column) { + if ((context & 32) < 1 && context & 8192) + report(parser, 89); + nextToken(parser, context | 32768); + const argument = parser.flags & 1 || parser.token & 1048576 + ? null + : parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.column); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ReturnStatement', + argument + }); + } + function parseExpressionStatement(parser, context, expression, start, line, column) { + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); + } + function parseLabelledStatement(parser, context, scope, origin, labels, value, expr, token, allowFuncDecl, start, line, column) { + validateBindingIdentifier(parser, context, 0, token, 1); + validateAndDeclareLabel(parser, labels, value); + nextToken(parser, context | 32768); + const body = allowFuncDecl && + (context & 1024) < 1 && + context & 256 && + parser.token === 86106 + ? parseFunctionDeclaration(parser, context, addChildScope(scope, 2), origin, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseStatement(parser, context, scope, origin, labels, allowFuncDecl, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'LabeledStatement', + label: expr, + body + }); + } + function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, 1, start, line, column); + } + const asyncNewLine = parser.flags & 1; + if (!asyncNewLine) { + if (parser.token === 86106) { + if (!allowFuncDecl) + report(parser, 119); + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 1, start, line, column); + } + if ((parser.token & 143360) === 143360) { + expr = parseAsyncArrowAfterIdent(parser, context, 1, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + } + if (parser.token === 67174411) { + expr = parseAsyncArrowOrCallExpression(parser, context, expr, 1, 1, 0, asyncNewLine, start, line, column); + } + else { + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + expr = parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, 0, 1, 0, start, line, column); + } + parser.assignable = 1; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + parser.assignable = 1; + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseDirective(parser, context, expression, token, start, line, column) { + if (token !== 1074790417) { + parser.assignable = 2; + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + if (parser.token !== 1074790417) { + expression = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expression); + if (parser.token === 18) { + expression = parseSequenceExpression(parser, context, 0, start, line, column, expression); + } + } + matchOrInsertSemicolon(parser, context | 32768); + } + return context & 8 && expression.type === 'Literal' && typeof expression.value === 'string' + ? finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression, + directive: expression.raw.slice(1, -1) + }) + : finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); + } + function parseEmptyStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'EmptyStatement' + }); + } + function parseThrowStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + if (parser.flags & 1) + report(parser, 87); + const argument = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ThrowStatement', + argument + }); + } + function parseIfStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + parser.assignable = 1; + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.colPos); + consume(parser, context | 32768, 16); + const consequent = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + let alternate = null; + if (parser.token === 20565) { + nextToken(parser, context | 32768); + alternate = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + } + return finishNode(parser, context, start, line, column, { + type: 'IfStatement', + test, + consequent, + alternate + }); + } + function parseConsequentOrAlternative(parser, context, scope, labels, start, line, column) { + return context & 1024 || + (context & 256) < 1 || + parser.token !== 86106 + ? parseStatement(parser, context, scope, 0, { $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseFunctionDeclaration(parser, context, addChildScope(scope, 2), 0, 0, 0, 0, start, line, column); + } + function parseSwitchStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const discriminant = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + consume(parser, context, 2162700); + const cases = []; + let seenDefault = 0; + if (scope) + scope = addChildScope(scope, 8); + while (parser.token !== 1074790415) { + const { tokenPos, linePos, colPos } = parser; + let test = null; + const consequent = []; + if (consumeOpt(parser, context | 32768, 20558)) { + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + consume(parser, context | 32768, 20563); + if (seenDefault) + report(parser, 86); + seenDefault = 1; + } + consume(parser, context | 32768, 21); + while (parser.token !== 20558 && + parser.token !== 1074790415 && + parser.token !== 20563) { + consequent.push(parseStatementListItem(parser, context | 4096, scope, 2, { + $: labels + })); + } + cases.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'SwitchCase', + test, + consequent + })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'SwitchStatement', + discriminant, + cases + }); + } + function parseWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'WhileStatement', + test, + body + }); + } + function parseIterationStatementBody(parser, context, scope, labels) { + return parseStatement(parser, ((context | 134217728) ^ 134217728) | 131072, scope, 0, { loop: 1, $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + function parseContinueStatement(parser, context, labels, start, line, column) { + if ((context & 131072) < 1) + report(parser, 65); + nextToken(parser, context); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 1)) + report(parser, 134, tokenValue); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ContinueStatement', + label + }); + } + function parseBreakStatement(parser, context, labels, start, line, column) { + nextToken(parser, context | 32768); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 0)) + report(parser, 134, tokenValue); + } + else if ((context & (4096 | 131072)) < 1) { + report(parser, 66); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'BreakStatement', + label + }); + } + function parseWithStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + if (context & 1024) + report(parser, 88); + consume(parser, context | 32768, 67174411); + const object = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseStatement(parser, context, scope, 2, labels, 0, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'WithStatement', + object, + body + }); + } + function parseDebuggerStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'DebuggerStatement' + }); + } + function parseTryStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const firstScope = scope ? addChildScope(scope, 32) : void 0; + const block = parseBlock(parser, context, firstScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + const { tokenPos, linePos, colPos } = parser; + const handler = consumeOpt(parser, context | 32768, 20559) + ? parseCatchBlock(parser, context, scope, labels, tokenPos, linePos, colPos) + : null; + let finalizer = null; + if (parser.token === 20568) { + nextToken(parser, context | 32768); + const finalizerScope = firstScope ? addChildScope(scope, 4) : void 0; + finalizer = parseBlock(parser, context, finalizerScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + } + if (!handler && !finalizer) { + report(parser, 85); + } + return finishNode(parser, context, start, line, column, { + type: 'TryStatement', + block, + handler, + finalizer + }); + } + function parseCatchBlock(parser, context, scope, labels, start, line, column) { + let param = null; + let additionalScope = scope; + if (consumeOpt(parser, context, 67174411)) { + if (scope) + scope = addChildScope(scope, 4); + param = parseBindingPattern(parser, context, scope, (parser.token & 2097152) === 2097152 + ? 256 + : 512, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 18) { + report(parser, 83); + } + else if (parser.token === 1077936157) { + report(parser, 84); + } + consume(parser, context | 32768, 16); + if (scope) + additionalScope = addChildScope(scope, 64); + } + const body = parseBlock(parser, context, additionalScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'CatchClause', + param, + body + }); + } + function parseDoWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const body = parseIterationStatementBody(parser, context, scope, labels); + consume(parser, context, 20580); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + consumeOpt(parser, context, 1074790417); + return finishNode(parser, context, start, line, column, { + type: 'DoWhileStatement', + body, + test + }); + } + function parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + const declarations = parseVariableDeclarationList(parser, context, scope, 8, 0); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'let', + declarations + }); + } + parser.assignable = 1; + if (context & 1024) + report(parser, 82); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, {}, tokenValue, expr, token, 0, start, line, column); + } + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + expr = parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + else { + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + } + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseLexicalDeclaration(parser, context, scope, kind, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, kind, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: kind & 8 ? 'let' : 'const', + declarations + }); + } + function parseVariableStatement(parser, context, scope, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, 4, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'var', + declarations + }); + } + function parseVariableDeclarationList(parser, context, scope, kind, origin) { + let bindingCount = 1; + const list = [parseVariableDeclaration(parser, context, scope, kind, origin)]; + while (consumeOpt(parser, context, 18)) { + bindingCount++; + list.push(parseVariableDeclaration(parser, context, scope, kind, origin)); + } + if (bindingCount > 1 && origin & 32 && parser.token & 262144) { + report(parser, 58, KeywordDescTable[parser.token & 255]); + } + return list; + } + function parseVariableDeclaration(parser, context, scope, kind, origin) { + const { token, tokenPos, linePos, colPos } = parser; + let init = null; + const id = parseBindingPattern(parser, context, scope, kind, origin, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + init = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (origin & 32 || (token & 2097152) < 1) { + if (parser.token === 274549 || + (parser.token === 8738868 && + (token & 2097152 || (kind & 4) < 1 || context & 1024))) { + reportMessageAt(tokenPos, parser.line, parser.index - 3, 57, parser.token === 274549 ? 'of' : 'in'); + } + } + } + else if ((kind & 16 || (token & 2097152) > 0) && + (parser.token & 262144) !== 262144) { + report(parser, 56, kind & 16 ? 'const' : 'destructuring'); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclarator', + id, + init + }); + } + function parseForStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + const forAwait = (context & 4194304) > 0 && consumeOpt(parser, context, 209008); + consume(parser, context | 32768, 67174411); + if (scope) + scope = addChildScope(scope, 1); + let test = null; + let update = null; + let destructible = 0; + let init = null; + let isVarDecl = parser.token === 86090 || parser.token === 241739 || parser.token === 86092; + let right; + const { token, tokenPos, linePos, colPos } = parser; + if (isVarDecl) { + if (token === 241739) { + init = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + if (parser.token === 8738868) { + if (context & 1024) + report(parser, 64); + } + else { + init = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclaration', + kind: 'let', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 8, 32) + }); + } + parser.assignable = 1; + } + else if (context & 1024) { + report(parser, 64); + } + else { + isVarDecl = false; + parser.assignable = 1; + init = parseMemberOrUpdateExpression(parser, context, init, 0, 0, tokenPos, linePos, colPos); + if (parser.token === 274549) + report(parser, 111); + } + } + else { + nextToken(parser, context); + init = finishNode(parser, context, tokenPos, linePos, colPos, token === 86090 + ? { + type: 'VariableDeclaration', + kind: 'var', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 4, 32) + } + : { + type: 'VariableDeclaration', + kind: 'const', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 16, 32) + }); + parser.assignable = 1; + } + } + else if (token === 1074790417) { + if (forAwait) + report(parser, 79); + } + else if ((token & 2097152) === 2097152) { + init = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos); + destructible = parser.destructible; + if (context & 256 && destructible & 64) { + report(parser, 60); + } + parser.assignable = + destructible & 16 ? 2 : 1; + init = parseMemberOrUpdateExpression(parser, context | 134217728, init, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + init = parseLeftHandSideExpression(parser, context | 134217728, 1, 0, 1, tokenPos, linePos, colPos); + } + if ((parser.token & 262144) === 262144) { + if (parser.token === 274549) { + if (parser.assignable & 2) + report(parser, 77, forAwait ? 'await' : 'of'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + right = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForOfStatement', + left: init, + right, + body, + await: forAwait + }); + } + if (parser.assignable & 2) + report(parser, 77, 'in'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + if (forAwait) + report(parser, 79); + right = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForInStatement', + body, + left: init, + right + }); + } + if (forAwait) + report(parser, 79); + if (!isVarDecl) { + if (destructible & 8 && parser.token !== 1077936157) { + report(parser, 77, 'loop'); + } + init = parseAssignmentExpression(parser, context | 134217728, 0, 0, tokenPos, linePos, colPos, init); + } + if (parser.token === 18) + init = parseSequenceExpression(parser, context, 0, parser.tokenPos, parser.linePos, parser.colPos, init); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 1074790417) + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 16) + update = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForStatement', + init, + test, + update, + body + }); + } + function parseRestrictedIdentifier(parser, context, scope) { + if (!isValidIdentifier(context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) + report(parser, 115); + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 8, 0); + return parseIdentifier(parser, context, 0); + } + function parseImportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context); + let source = null; + const { tokenPos, linePos, colPos } = parser; + let specifiers = []; + if (parser.token === 134283267) { + source = parseLiteral(parser, context); + } + else { + if (parser.token & 143360) { + const local = parseRestrictedIdentifier(parser, context, scope); + specifiers = [ + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportDefaultSpecifier', + local + }) + ]; + if (consumeOpt(parser, context, 18)) { + switch (parser.token) { + case 8457014: + specifiers.push(parseImportNamespaceSpecifier(parser, context, scope)); + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + default: + report(parser, 104); + } + } + } + else { + switch (parser.token) { + case 8457014: + specifiers = [parseImportNamespaceSpecifier(parser, context, scope)]; + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + source = parseModuleSpecifier(parser, context); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ImportDeclaration', + specifiers, + source + }); + } + function parseImportNamespaceSpecifier(parser, context, scope) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + consume(parser, context, 77934); + if ((parser.token & 134217728) === 134217728) { + reportMessageAt(tokenPos, parser.line, parser.index, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportNamespaceSpecifier', + local: parseRestrictedIdentifier(parser, context, scope) + }); + } + function parseModuleSpecifier(parser, context) { + consumeOpt(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Import'); + return parseLiteral(parser, context); + } + function parseImportSpecifierOrNamedImports(parser, context, scope, specifiers) { + nextToken(parser, context); + while (parser.token & 143360) { + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + const imported = parseIdentifier(parser, context, 0); + let local; + if (consumeOpt(parser, context, 77934)) { + if ((parser.token & 134217728) === 134217728 || parser.token === 18) { + report(parser, 103); + } + else { + validateBindingIdentifier(parser, context, 16, parser.token, 0); + } + tokenValue = parser.tokenValue; + local = parseIdentifier(parser, context, 0); + } + else { + validateBindingIdentifier(parser, context, 16, token, 0); + local = imported; + } + if (scope) + addBlockName(parser, context, scope, tokenValue, 8, 0); + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportSpecifier', + local, + imported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + return specifiers; + } + function parseImportMetaDeclaration(parser, context, start, line, column) { + let expr = parseImportMetaExpression(parser, context, finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: 'import' + }), start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseImportCallDeclaration(parser, context, start, line, column) { + let expr = parseImportExpression(parser, context, 0, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseExportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context | 32768); + const specifiers = []; + let declaration = null; + let source = null; + let key; + if (consumeOpt(parser, context | 32768, 20563)) { + switch (parser.token) { + case 86106: { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + } + case 133: + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 1, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + declaration = parseIdentifier(parser, context, 0); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 1, tokenPos, linePos, colPos); + } + else { + if (parser.token === 67174411) { + declaration = parseAsyncArrowOrCallExpression(parser, context, declaration, 1, 1, 0, flags, tokenPos, linePos, colPos); + declaration = parseMemberOrUpdateExpression(parser, context, declaration, 0, 0, tokenPos, linePos, colPos); + declaration = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, declaration); + } + else if (parser.token & 143360) { + if (scope) + scope = createArrowHeadParsingScope(parser, context, parser.tokenValue); + declaration = parseIdentifier(parser, context, 0); + declaration = parseArrowFunctionExpression(parser, context, scope, [declaration], 1, tokenPos, linePos, colPos); + } + } + } + break; + default: + declaration = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + } + if (scope) + declareUnboundVariable(parser, 'default'); + return finishNode(parser, context, start, line, column, { + type: 'ExportDefaultDeclaration', + declaration + }); + } + switch (parser.token) { + case 8457014: { + nextToken(parser, context); + let exported = null; + const isNamedDeclaration = consumeOpt(parser, context, 77934); + if (isNamedDeclaration) { + if (scope) + declareUnboundVariable(parser, parser.tokenValue); + exported = parseIdentifier(parser, context, 0); + } + consume(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExportAllDeclaration', + source, + exported + }); + } + case 2162700: { + nextToken(parser, context); + const tmpExportedNames = []; + const tmpExportedBindings = []; + while (parser.token & 143360) { + const { tokenPos, tokenValue, linePos, colPos } = parser; + const local = parseIdentifier(parser, context, 0); + let exported; + if (parser.token === 77934) { + nextToken(parser, context); + if ((parser.token & 134217728) === 134217728) { + report(parser, 103); + } + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(tokenValue); + } + exported = parseIdentifier(parser, context, 0); + } + else { + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(parser.tokenValue); + } + exported = local; + } + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ExportSpecifier', + local, + exported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + if (consumeOpt(parser, context, 12404)) { + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + } + else if (scope) { + let i = 0; + let iMax = tmpExportedNames.length; + for (; i < iMax; i++) { + declareUnboundVariable(parser, tmpExportedNames[i]); + } + i = 0; + iMax = tmpExportedBindings.length; + for (; i < iMax; i++) { + addBindingToExports(parser, tmpExportedBindings[i]); + } + } + matchOrInsertSemicolon(parser, context | 32768); + break; + } + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 2, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86106: + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 241739: + declaration = parseLexicalDeclaration(parser, context, scope, 8, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86092: + declaration = parseLexicalDeclaration(parser, context, scope, 16, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86090: + declaration = parseVariableStatement(parser, context, scope, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + if ((parser.flags & 1) < 1 && parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 1, tokenPos, linePos, colPos); + if (scope) { + key = declaration.id ? declaration.id.name : ''; + declareUnboundVariable(parser, key); + } + break; + } + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, start, line, column, { + type: 'ExportNamedDeclaration', + declaration, + specifiers, + source + }); + } + function parseExpression(parser, context, canAssign, isPattern, inGroup, start, line, column) { + let expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, isPattern, inGroup, 1, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + return parseAssignmentExpression(parser, context, inGroup, 0, start, line, column, expr); + } + function parseSequenceExpression(parser, context, inGroup, start, line, column, expr) { + const expressions = [expr]; + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + return finishNode(parser, context, start, line, column, { + type: 'SequenceExpression', + expressions + }); + } + function parseExpressions(parser, context, inGroup, canAssign, start, line, column) { + const expr = parseExpression(parser, context, canAssign, 0, inGroup, start, line, column); + return parser.token === 18 + ? parseSequenceExpression(parser, context, inGroup, start, line, column, expr) + : expr; + } + function parseAssignmentExpression(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + if ((token & 4194304) === 4194304) { + if (parser.assignable & 2) + report(parser, 24); + if ((!isPattern && token === 1077936157 && left.type === 'ArrayExpression') || + left.type === 'ObjectExpression') { + reinterpretToPattern(parser, left); + } + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + } + if ((token & 8454144) === 8454144) { + left = parseBinaryExpression(parser, context, inGroup, start, line, column, 4, token, left); + } + if (consumeOpt(parser, context | 32768, 22)) { + left = parseConditionalExpression(parser, context, left, start, line, column); + } + return left; + } + function parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + parser.assignable = 2; + return left; + } + function parseConditionalExpression(parser, context, test, start, line, column) { + const consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 21); + parser.assignable = 1; + const alternate = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ConditionalExpression', + test, + consequent, + alternate + }); + } + function parseBinaryExpression(parser, context, inGroup, start, line, column, minPrec, operator, left) { + const bit = -((context & 134217728) > 0) & 8738868; + let t; + let prec; + parser.assignable = 2; + while (parser.token & 8454144) { + t = parser.token; + prec = t & 3840; + if ((t & 524288 && operator & 268435456) || (operator & 524288 && t & 268435456)) { + report(parser, 159); + } + if (prec + ((t === 8457273) << 8) - ((bit === t) << 12) <= minPrec) + break; + nextToken(parser, context | 32768); + left = finishNode(parser, context, start, line, column, { + type: t & 524288 || t & 268435456 ? 'LogicalExpression' : 'BinaryExpression', + left, + right: parseBinaryExpression(parser, context, inGroup, parser.tokenPos, parser.linePos, parser.colPos, prec, t, parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos)), + operator: KeywordDescTable[t & 255] + }); + } + if (parser.token === 1077936157) + report(parser, 24); + return left; + } + function parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup) { + if (!isLHS) + report(parser, 0); + const unaryOperator = parser.token; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + if (context & 1024 && unaryOperator === 16863278) { + if (arg.type === 'Identifier') { + report(parser, 117); + } + else if (isPropertyWithPrivateFieldKey(arg)) { + report(parser, 123); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UnaryExpression', + operator: KeywordDescTable[unaryOperator & 255], + argument: arg, + prefix: true + }); + } + function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column) { + const { token } = parser; + const expr = parseIdentifier(parser, context, isPattern); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + return parseFunctionExpression(parser, context, 1, inGroup, start, line, column); + } + if ((parser.token & 143360) === 143360) { + if (!isLHS) + report(parser, 0); + return parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column); + } + } + if (!inNew && parser.token === 67174411) { + return parseAsyncArrowOrCallExpression(parser, context, expr, canAssign, 1, 0, flags, start, line, column); + } + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + if (inNew) + report(parser, 48); + return parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + return expr; + } + function parseYieldExpression(parser, context, inGroup, canAssign, start, line, column) { + if (inGroup) + parser.destructible |= 256; + if (context & 2097152) { + nextToken(parser, context | 32768); + if (context & 8388608) + report(parser, 30); + if (!canAssign) + report(parser, 24); + if (parser.token === 22) + report(parser, 120); + let argument = null; + let delegate = false; + if ((parser.flags & 1) < 1) { + delegate = consumeOpt(parser, context | 32768, 8457014); + if (parser.token & (12288 | 65536) || delegate) { + argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'YieldExpression', + argument, + delegate + }); + } + if (context & 1024) + report(parser, 94, 'yield'); + return parseIdentifierOrArrow(parser, context, start, line, column); + } + function parseAwaitExpression(parser, context, inNew, inGroup, start, line, column) { + if (inGroup) + parser.destructible |= 128; + if (context & 4194304 || (context & 2048 && context & 8192)) { + if (inNew) + report(parser, 0); + if (context & 8388608) { + reportMessageAt(parser.index, parser.line, parser.index, 29); + } + nextToken(parser, context | 32768); + const argument = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'AwaitExpression', + argument + }); + } + if (context & 2048) + report(parser, 95); + return parseIdentifierOrArrow(parser, context, start, line, column); + } + function parseFunctionBody(parser, context, scope, origin, firstRestricted, scopeError) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + const body = []; + const prevContext = context; + if (parser.token !== 1074790415) { + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) { + context |= 1024; + if (parser.flags & 128) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 63); + } + if (parser.flags & 64) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 8); + } + } + body.push(parseDirective(parser, context, expr, token, tokenPos, parser.linePos, parser.colPos)); + } + if (context & 1024) { + if (firstRestricted) { + if ((firstRestricted & 537079808) === 537079808) { + report(parser, 115); + } + if ((firstRestricted & 36864) === 36864) { + report(parser, 38); + } + } + if (parser.flags & 512) + report(parser, 115); + if (parser.flags & 256) + report(parser, 114); + } + if (context & 64 && + scope && + scopeError !== void 0 && + (prevContext & 1024) < 1 && + (context & 8192) < 1) { + reportScopeError(scopeError); + } + } + parser.flags = + (parser.flags | 512 | 256 | 64) ^ + (512 | 256 | 64); + parser.destructible = (parser.destructible | 256) ^ 256; + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 4, {})); + } + consume(parser, origin & (16 | 8) ? context | 32768 : context, 1074790415); + parser.flags &= ~(128 | 64); + if (parser.token === 1077936157) + report(parser, 24); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'BlockStatement', + body + }); + } + function parseSuperExpression(parser, context, start, line, column) { + nextToken(parser, context); + switch (parser.token) { + case 67108991: + report(parser, 161); + case 67174411: { + if ((context & 524288) < 1) + report(parser, 26); + if (context & 16384) + report(parser, 143); + parser.assignable = 2; + break; + } + case 69271571: + case 67108877: { + if ((context & 262144) < 1) + report(parser, 27); + if (context & 16384) + report(parser, 143); + parser.assignable = 1; + break; + } + default: + report(parser, 28, 'super'); + } + return finishNode(parser, context, start, line, column, { type: 'Super' }); + } + function parseLeftHandSideExpression(parser, context, canAssign, inGroup, isLHS, start, line, column) { + const expression = parsePrimaryExpression(parser, context, 2, 0, canAssign, 0, inGroup, isLHS, start, line, column); + return parseMemberOrUpdateExpression(parser, context, expression, inGroup, 0, start, line, column); + } + function parseUpdateExpression(parser, context, expr, start, line, column) { + if (parser.assignable & 2) + report(parser, 52); + const { token } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: expr, + operator: KeywordDescTable[token & 255], + prefix: false + }); + } + function parseMemberOrUpdateExpression(parser, context, expr, inGroup, inChain, start, line, column) { + if ((parser.token & 33619968) === 33619968 && (parser.flags & 1) < 1) { + expr = parseUpdateExpression(parser, context, expr, start, line, column); + } + else if ((parser.token & 67108864) === 67108864) { + context = (context | 134217728 | 8192) ^ (134217728 | 8192); + switch (parser.token) { + case 67108877: { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }); + break; + } + case 69271571: { + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67174411: { + if ((parser.flags & 1024) === 1024) { + parser.flags = (parser.flags | 1024) ^ 1024; + return expr; + } + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + const args = parseArguments(parser, context, inGroup); + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67108991: { + nextToken(parser, context); + parser.flags |= 2048; + parser.assignable = 2; + expr = parseOptionalChain(parser, context, expr, start, line, column); + break; + } + default: + if ((parser.flags & 2048) === 2048) { + report(parser, 160); + } + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 1, start, line, column); + } + if (inChain === 0 && (parser.flags & 2048) === 2048) { + parser.flags = (parser.flags | 2048) ^ 2048; + expr = finishNode(parser, context, start, line, column, { + type: 'ChainExpression', + expression: expr + }); + } + return expr; + } + function parseOptionalChain(parser, context, expr, start, line, column) { + let restoreHasOptionalChaining = false; + let node; + if (parser.token === 69271571 || parser.token === 67174411) { + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + } + if (parser.token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, 0, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + optional: true, + property + }); + } + else if (parser.token === 67174411) { + const args = parseArguments(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args, + optional: true + }); + } + else { + if ((parser.token & (143360 | 4096)) < 1) + report(parser, 154); + const property = parseIdentifier(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + optional: true, + property + }); + } + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + return node; + } + function parsePropertyOrPrivatePropertyName(parser, context) { + if ((parser.token & (143360 | 4096)) < 1 && parser.token !== 131) { + report(parser, 154); + } + return context & 1 && parser.token === 131 + ? parsePrivateIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + : parseIdentifier(parser, context, 0); + } + function parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column) { + if (inNew) + report(parser, 53); + if (!isLHS) + report(parser, 0); + const { token } = parser; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.assignable & 2) { + report(parser, 52); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: arg, + operator: KeywordDescTable[token & 255], + prefix: true + }); + } + function parsePrimaryExpression(parser, context, kind, inNew, canAssign, isPattern, inGroup, isLHS, start, line, column) { + if ((parser.token & 143360) === 143360) { + switch (parser.token) { + case 209008: + return parseAwaitExpression(parser, context, inNew, inGroup, start, line, column); + case 241773: + return parseYieldExpression(parser, context, inGroup, canAssign, start, line, column); + case 209007: + return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column); + } + const { token, tokenValue } = parser; + const expr = parseIdentifier(parser, context | 65536, isPattern); + if (parser.token === 10) { + if (!isLHS) + report(parser, 0); + classifyIdentifier(parser, context, token, 1); + return parseArrowFromIdentifier(parser, context, tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + if (context & 16384 && token === 537079928) + report(parser, 126); + if (token === 241739) { + if (context & 1024) + report(parser, 109); + if (kind & (8 | 16)) + report(parser, 97); + } + parser.assignable = + context & 1024 && (token & 537079808) === 537079808 + ? 2 + : 1; + return expr; + } + if ((parser.token & 134217728) === 134217728) { + return parseLiteral(parser, context); + } + switch (parser.token) { + case 33619995: + case 33619996: + return parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column); + case 16863278: + case 16842800: + case 16842801: + case 25233970: + case 25233971: + case 16863277: + case 16863279: + return parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup); + case 86106: + return parseFunctionExpression(parser, context, 0, inGroup, start, line, column); + case 2162700: + return parseObjectLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 69271571: + return parseArrayLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 67174411: + return parseParenthesizedExpression(parser, context, canAssign, 1, 0, start, line, column); + case 86021: + case 86022: + case 86023: + return parseNullOrTrueOrFalseLiteral(parser, context, start, line, column); + case 86113: + return parseThisExpression(parser, context); + case 65540: + return parseRegExpLiteral(parser, context, start, line, column); + case 133: + case 86096: + return parseClassExpression(parser, context, inGroup, start, line, column); + case 86111: + return parseSuperExpression(parser, context, start, line, column); + case 67174409: + return parseTemplateLiteral(parser, context, start, line, column); + case 67174408: + return parseTemplate(parser, context); + case 86109: + return parseNewExpression(parser, context, inGroup, start, line, column); + case 134283389: + return parseBigIntLiteral(parser, context, start, line, column); + case 131: + return parsePrivateIdentifier(parser, context, start, line, column); + case 86108: + return parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column); + case 8456258: + if (context & 16) + return parseJSXRootElementOrFragment(parser, context, 1, start, line, column); + default: + if (isValidIdentifier(context, parser.token)) + return parseIdentifierOrArrow(parser, context, start, line, column); + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + function parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column) { + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 67108877) { + return parseImportMetaExpression(parser, context, expr, start, line, column); + } + if (inNew) + report(parser, 137); + expr = parseImportExpression(parser, context, inGroup, start, line, column); + parser.assignable = 2; + return parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + } + function parseImportMetaExpression(parser, context, meta, start, line, column) { + if ((context & 2048) === 0) + report(parser, 163); + nextToken(parser, context); + if (parser.token !== 143495 && parser.tokenValue !== 'meta') + report(parser, 28, KeywordDescTable[parser.token & 255]); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property: parseIdentifier(parser, context, 0) + }); + } + function parseImportExpression(parser, context, inGroup, start, line, column) { + consume(parser, context | 32768, 67174411); + if (parser.token === 14) + report(parser, 138); + const source = parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + return finishNode(parser, context, start, line, column, { + type: 'ImportExpression', + source + }); + } + function parseBigIntLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1), + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1) + }); + } + function parseTemplateLiteral(parser, context, start, line, column) { + parser.assignable = 2; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + const quasis = [parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)]; + return finishNode(parser, context, start, line, column, { + type: 'TemplateLiteral', + expressions: [], + quasis + }); + } + function parseTemplate(parser, context) { + context = (context | 134217728) ^ 134217728; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + const quasis = [ + parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false) + ]; + const expressions = [parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)]; + if (parser.token !== 1074790415) + report(parser, 80); + while ((parser.token = scanTemplateTail(parser, context)) !== 67174409) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false)); + expressions.push(parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + if (parser.token !== 1074790415) + report(parser, 80); + } + { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'TemplateLiteral', + expressions, + quasis + }); + } + function parseTemplateElement(parser, context, cooked, raw, start, line, col, tail) { + const node = finishNode(parser, context, start, line, col, { + type: 'TemplateElement', + value: { + cooked, + raw + }, + tail + }); + const tailSize = tail ? 1 : 2; + if (context & 2) { + node.start += 1; + node.range[0] += 1; + node.end -= tailSize; + node.range[1] -= tailSize; + } + if (context & 4) { + node.loc.start.column += 1; + node.loc.end.column -= tailSize; + } + return node; + } + function parseSpreadElement(parser, context, start, line, column) { + context = (context | 134217728) ^ 134217728; + consume(parser, context | 32768, 14); + const argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 1; + return finishNode(parser, context, start, line, column, { + type: 'SpreadElement', + argument + }); + } + function parseArguments(parser, context, inGroup) { + nextToken(parser, context | 32768); + const args = []; + if (parser.token === 16) { + nextToken(parser, context); + return args; + } + while (parser.token !== 16) { + if (parser.token === 14) { + args.push(parseSpreadElement(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + else { + args.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + if (parser.token !== 18) + break; + nextToken(parser, context | 32768); + if (parser.token === 16) + break; + } + consume(parser, context, 16); + return args; + } + function parseIdentifier(parser, context, isPattern) { + const { tokenValue, tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + return finishNode(parser, context, tokenPos, linePos, colPos, context & 268435456 + ? { + type: 'Identifier', + name: tokenValue, + pattern: isPattern === 1 + } + : { + type: 'Identifier', + name: tokenValue + }); + } + function parseLiteral(parser, context) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + if (parser.token === 134283389) { + return parseBigIntLiteral(parser, context, tokenPos, linePos, colPos); + } + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, context & 512 + ? { + type: 'Literal', + value: tokenValue, + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue + }); + } + function parseNullOrTrueOrFalseLiteral(parser, context, start, line, column) { + const raw = KeywordDescTable[parser.token & 255]; + const value = parser.token === 86023 ? null : raw === 'true'; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value, + raw + } + : { + type: 'Literal', + value + }); + } + function parseThisExpression(parser, context) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ThisExpression' + }); + } + function parseFunctionDeclaration(parser, context, scope, origin, allowGen, flags, isAsync, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = allowGen ? optionalBit(parser, context, 8457014) : 0; + let id = null; + let firstRestricted; + let functionScope = scope ? createScope() : void 0; + if (parser.token === 67174411) { + if ((flags & 1) < 1) + report(parser, 37, 'Function'); + } + else { + const kind = origin & 4 && ((context & 8192) < 1 || (context & 2048) < 1) + ? 4 + : 64; + validateFunctionName(parser, context | ((context & 3072) << 11), parser.token); + if (scope) { + if (kind & 4) { + addVarName(parser, context, scope, parser.tokenValue, kind); + } + else { + addBlockName(parser, context, scope, parser.tokenValue, kind, origin); + } + functionScope = addChildScope(functionScope, 256); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, parser.tokenValue); + } + } + } + firstRestricted = parser.token; + if (parser.token & 143360) { + id = parseIdentifier(parser, context, 0); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + ((isAsync * 2 + isGenerator) << 21) | + (isGenerator ? 0 : 1073741824); + if (scope) + functionScope = addChildScope(functionScope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, functionScope, 0, 1); + const body = parseFunctionBody(parser, (context | 8192 | 4096 | 131072) ^ + (8192 | 4096 | 131072), scope ? addChildScope(functionScope, 128) : functionScope, 8, firstRestricted, scope ? functionScope.scopeError : void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionDeclaration', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); + } + function parseFunctionExpression(parser, context, isAsync, inGroup, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = optionalBit(parser, context, 8457014); + const generatorAndAsyncFlags = (isAsync * 2 + isGenerator) << 21; + let id = null; + let firstRestricted; + let scope = context & 64 ? createScope() : void 0; + if ((parser.token & (143360 | 4096 | 36864)) > 0) { + validateFunctionName(parser, ((context | 0x1ec0000) ^ 0x1ec0000) | generatorAndAsyncFlags, parser.token); + if (scope) + scope = addChildScope(scope, 256); + firstRestricted = parser.token; + id = parseIdentifier(parser, context, 0); + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + generatorAndAsyncFlags | + (isGenerator ? 0 : 1073741824); + if (scope) + scope = addChildScope(scope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, scope, inGroup, 1); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192 | 4096 | 131072 | 16384), scope ? addChildScope(scope, 128) : scope, 0, firstRestricted, void 0); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); + } + function parseArrayLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseArrayExpressionOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; + } + function parseArrayExpressionOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context | 32768); + const elements = []; + let destructible = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 20) { + if (consumeOpt(parser, context | 32768, 18)) { + elements.push(null); + } + else { + let left; + const { token, tokenPos, linePos, colPos, tokenValue } = parser; + if (token & 143360) { + left = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + if (parser.assignable & 2) + report(parser, 24); + nextToken(parser, context | 32768); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + operator: '=', + left, + right + }); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else { + destructible |= + kind & 1 + ? 32 + : (kind & 2) < 1 + ? 16 + : 0; + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + if (parser.token !== 1077936157) + destructible |= 16; + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token & 2097152) { + left = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + parser.assignable = + parser.destructible & 16 + ? 2 + : 1; + if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 20, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos); + destructible |= parser.destructible; + if (parser.token !== 18 && parser.token !== 20) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + left = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + if ((kind & (2 | 1)) < 1 && token === 67174411) + destructible |= 16; + } + else if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === 67174411) { + destructible |= + parser.assignable & 1 && kind & (2 | 1) + ? 32 + : 16; + } + } + elements.push(left); + if (consumeOpt(parser, context | 32768, 18)) { + if (parser.token === 20) + break; + } + else + break; + } + } + consume(parser, context, 20); + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ArrayPattern' : 'ArrayExpression', + elements + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; + } + function parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node) { + if (parser.token !== 1077936157) + report(parser, 24); + nextToken(parser, context | 32768); + if (destructible & 16) + report(parser, 24); + if (!isPattern) + reinterpretToPattern(parser, node); + const { tokenPos, linePos, colPos } = parser; + const right = parseExpression(parser, context, 1, 1, inGroup, tokenPos, linePos, colPos); + parser.destructible = + ((destructible | 64 | 8) ^ + (8 | 64)) | + (parser.destructible & 128 ? 128 : 0) | + (parser.destructible & 256 ? 256 : 0); + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left: node, + right + } + : { + type: 'AssignmentExpression', + left: node, + operator: '=', + right + }); + } + function parseSpreadOrRestElement(parser, context, scope, closingToken, kind, origin, isAsync, inGroup, isPattern, start, line, column) { + nextToken(parser, context | 32768); + let argument = null; + let destructible = 0; + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + if (token & (4096 | 143360)) { + parser.assignable = 1; + argument = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + token = parser.token; + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== closingToken) { + if (parser.assignable & 2 && parser.token === 1077936157) + report(parser, 68); + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === closingToken || token === 18) { + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + else { + destructible |= 32; + } + destructible |= parser.destructible & 128 ? 128 : 0; + } + else if (token === closingToken) { + report(parser, 39); + } + else if (token & 2097152) { + argument = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + token = parser.token; + if (token !== 1077936157 && token !== closingToken && token !== 18) { + if (parser.destructible & 8) + report(parser, 68); + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + destructible |= parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + else { + if ((parser.token & 8454144) === 8454144) { + argument = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, argument); + } + if (consumeOpt(parser, context | 32768, 22)) { + argument = parseConditionalExpression(parser, context, argument, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + else { + destructible |= + closingToken === 1074790415 && token !== 1077936157 + ? 16 + : parser.destructible; + } + } + else { + destructible |= 32; + argument = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + const { token, tokenPos, linePos, colPos } = parser; + if (token === 1077936157 && token !== closingToken && token !== 18) { + if (parser.assignable & 2) + report(parser, 24); + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + destructible |= 16; + } + else { + if (token === 18) { + destructible |= 16; + } + else if (token !== closingToken) { + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + destructible |= + parser.assignable & 1 ? 32 : 16; + } + parser.destructible = destructible; + if (parser.token !== closingToken && parser.token !== 18) + report(parser, 155); + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + if (parser.token !== closingToken) { + if (kind & 1) + destructible |= isAsync ? 16 : 32; + if (consumeOpt(parser, context | 32768, 1077936157)) { + if (destructible & 16) + report(parser, 24); + reinterpretToPattern(parser, argument); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + argument = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left: argument, + right + } + : { + type: 'AssignmentExpression', + left: argument, + operator: '=', + right + }); + destructible = 16; + } + else { + destructible |= 16; + } + } + parser.destructible = destructible; + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + function parseMethodDefinition(parser, context, kind, inGroup, start, line, column) { + const modifierFlags = (kind & 64) < 1 ? 31981568 : 14680064; + context = + ((context | modifierFlags) ^ modifierFlags) | + ((kind & 88) << 18) | + 100925440; + let scope = context & 64 ? addChildScope(createScope(), 512) : void 0; + const params = parseMethodFormals(parser, context | 8388608, scope, kind, 1, inGroup); + if (scope) + scope = addChildScope(scope, 128); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192), scope, 0, void 0, void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + params, + body, + async: (kind & 16) > 0, + generator: (kind & 8) > 0, + id: null + }); + } + function parseObjectLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseObjectLiteralOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; + } + function parseObjectLiteralOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context); + const properties = []; + let destructible = 0; + let prototypeCount = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 1074790415) { + const { token, tokenValue, linePos, colPos, tokenPos } = parser; + if (token === 14) { + properties.push(parseSpreadOrRestElement(parser, context, scope, 1074790415, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos)); + } + else { + let state = 0; + let key = null; + let value; + const t = parser.token; + if (parser.token & (143360 | 4096) || parser.token === 121) { + key = parseIdentifier(parser, context, 0); + if (parser.token === 18 || parser.token === 1074790415 || parser.token === 1077936157) { + state |= 4; + if (context & 1024 && (token & 537079808) === 537079808) { + destructible |= 16; + } + else { + validateBindingIdentifier(parser, context, kind, token, 0); + } + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + if (consumeOpt(parser, context | 32768, 1077936157)) { + destructible |= 8; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + value = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: context & -2147483648 ? Object.assign({}, key) : key, + right + }); + } + else { + destructible |= + (token === 209008 ? 128 : 0) | + (token === 121 ? 16 : 0); + value = context & -2147483648 ? Object.assign({}, key) : key; + } + } + else if (consumeOpt(parser, context | 32768, 21)) { + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + const tokenAfterColon = parser.token; + const valueAfterColon = parser.tokenValue; + destructible |= t === 121 ? 16 : 0; + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + destructible |= parser.destructible & 128 ? 128 : 0; + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if ((parser.token & 4194304) === 4194304) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token !== 1077936157) { + destructible |= 32; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 69271571) { + destructible |= 16; + if (token === 209007) + state |= 16; + state |= + (token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1) | 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token & (143360 | 4096)) { + destructible |= 16; + if (token === 121) + report(parser, 92); + if (token === 209007) { + if (parser.flags & 1) + report(parser, 128); + state |= 16; + } + key = parseIdentifier(parser, context, 0); + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 67174411) { + destructible |= 16; + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 8457014) { + destructible |= 16; + if (token === 12402 || token === 12403) { + report(parser, 40); + } + else if (token === 143483) { + report(parser, 92); + } + nextToken(parser, context); + state |= + 8 | 1 | (token === 209007 ? 16 : 0); + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + state |= 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if ((parser.token & 134217728) === 134217728) { + if (token === 209007) + state |= 16; + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + destructible |= 16; + key = parseLiteral(parser, context); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 129); + } + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + if (parser.token === 21) { + consume(parser, context | 32768, 21); + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token, tokenValue: valueAfterColon } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if (parser.token === 1077936157) { + if (parser.assignable & 2) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if ((parser.destructible & 8) !== 8) { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible = parser.assignable | 16; + } + else { + report(parser, 130); + } + } + else if (parser.token === 69271571) { + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.destructible & 256 ? 256 : 0; + state |= 2; + if (parser.token === 21) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos, tokenValue, token: tokenAfterColon } = parser; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if ((parser.token & 4194304) === 4194304) { + destructible |= + parser.assignable & 2 + ? 16 + : token === 1077936157 + ? 0 + : 32; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (destructible & 8) { + report(parser, 59); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = + parser.assignable & 2 ? destructible | 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, linePos, colPos); + destructible = 16; + } + else { + report(parser, 41); + } + } + else if (token === 8457014) { + consume(parser, context | 32768, 8457014); + state |= 8; + if (parser.token & 143360) { + const { token, line, index } = parser; + key = parseIdentifier(parser, context, 0); + state |= 1; + if (parser.token === 67174411) { + destructible |= 16; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + reportMessageAt(index, line, index, token === 209007 + ? 43 + : token === 12402 || parser.token === 12403 + ? 42 + : 44, KeywordDescTable[token & 255]); + } + } + else if ((parser.token & 134217728) === 134217728) { + destructible |= 16; + key = parseLiteral(parser, context); + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + destructible |= 16; + state |= 2 | 1; + key = parseComputedPropertyName(parser, context, inGroup); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 122); + } + } + else { + report(parser, 28, KeywordDescTable[token & 255]); + } + destructible |= parser.destructible & 128 ? 128 : 0; + parser.destructible = destructible; + properties.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'Property', + key: key, + value, + kind: !(state & 768) ? 'init' : state & 512 ? 'set' : 'get', + computed: (state & 2) > 0, + method: (state & 1) > 0, + shorthand: (state & 4) > 0 + })); + } + destructible |= parser.destructible; + if (parser.token !== 18) + break; + nextToken(parser, context); + } + consume(parser, context, 1074790415); + if (prototypeCount > 1) + destructible |= 64; + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ObjectPattern' : 'ObjectExpression', + properties + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; + } + function parseMethodFormals(parser, context, scope, kind, type, inGroup) { + consume(parser, context, 67174411); + const params = []; + parser.flags = (parser.flags | 128) ^ 128; + if (parser.token === 16) { + if (kind & 512) { + report(parser, 35, 'Setter', 'one', ''); + } + nextToken(parser, context); + return params; + } + if (kind & 256) { + report(parser, 35, 'Getter', 'no', 's'); + } + if (kind & 512 && parser.token === 14) { + report(parser, 36); + } + context = (context | 134217728) ^ 134217728; + let setterArgs = 0; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left = null; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, type, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) + report(parser, 47); + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: left, + right + }); + } + setterArgs++; + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (kind & 512 && setterArgs !== 1) { + report(parser, 35, 'Setter', 'one', ''); + } + if (scope && scope.scopeError !== void 0) + reportScopeError(scope.scopeError); + if (isSimpleParameterList) + parser.flags |= 128; + consume(parser, context, 16); + return params; + } + function parseComputedPropertyName(parser, context, inGroup) { + nextToken(parser, context | 32768); + const key = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 20); + return key; + } + function parseParenthesizedExpression(parser, context, canAssign, kind, origin, start, line, column) { + parser.flags = (parser.flags | 128) ^ 128; + const { tokenPos: piStart, linePos: plStart, colPos: pcStart } = parser; + nextToken(parser, context | 32768 | 1073741824); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 0, start, line, column); + } + let destructible = 0; + parser.destructible &= ~(256 | 128); + let expr; + let expressions = []; + let isSequence = 0; + let isSimpleParameterList = 0; + const { tokenPos: iStart, linePos: lStart, colPos: cStart } = parser; + parser.assignable = 1; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 1, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808 || + (token & 36864) === 36864) { + isSimpleParameterList = 1; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if ((token & 2097152) === 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + parser.assignable = 2; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 0, 1, 0, tokenPos, linePos, colPos); + if (parser.destructible & 16) + report(parser, 71); + isSimpleParameterList = 1; + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + destructible |= 8; + break; + } + else { + destructible |= 16; + expr = parseExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (parser.token === 18) { + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + } + if (isSequence) { + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + } + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + parser.destructible = destructible; + return expr; + } + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (!consumeOpt(parser, context | 32768, 18)) + break; + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + if (parser.token === 16) { + destructible |= 8; + break; + } + } + if (isSequence) { + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + if (destructible & 16 && destructible & 8) + report(parser, 145); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 46); + if (context & (4194304 | 2048) && destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) { + report(parser, 30); + } + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, isSequence ? expressions : [expr], canAssign, 0, start, line, column); + } + else if (destructible & 8) { + report(parser, 139); + } + parser.destructible = ((parser.destructible | 256) ^ 256) | destructible; + return context & 128 + ? finishNode(parser, context, piStart, plStart, pcStart, { + type: 'ParenthesizedExpression', + expression: expr + }) + : expr; + } + function parseIdentifierOrArrow(parser, context, start, line, column) { + const { tokenValue } = parser; + const expr = parseIdentifier(parser, context, 0); + parser.assignable = 1; + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + return parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + return expr; + } + function parseArrowFromIdentifier(parser, context, value, expr, inNew, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + if (inNew) + report(parser, 48); + parser.flags &= ~128; + const scope = context & 64 ? createArrowHeadParsingScope(parser, context, value) : void 0; + return parseArrowFunctionExpression(parser, context, scope, [expr], isAsync, start, line, column); + } + function parseParenthesizedArrow(parser, context, scope, params, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + for (let i = 0; i < params.length; ++i) + reinterpretToPattern(parser, params[i]); + return parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column); + } + function parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column) { + if (parser.flags & 1) + report(parser, 45); + consume(parser, context | 32768, 10); + context = ((context | 15728640) ^ 15728640) | (isAsync << 22); + const expression = parser.token !== 2162700; + let body; + if (scope && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + if (expression) { + body = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + if (scope) + scope = addChildScope(scope, 128); + body = parseFunctionBody(parser, (context | 134221824 | 8192 | 16384) ^ + (134221824 | 8192 | 16384), scope, 16, void 0, void 0); + switch (parser.token) { + case 69271571: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + break; + case 67108877: + case 67174409: + case 22: + report(parser, 113); + case 67174411: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + parser.flags |= 1024; + break; + } + if ((parser.token & 8454144) === 8454144 && (parser.flags & 1) < 1) + report(parser, 28, KeywordDescTable[parser.token & 255]); + if ((parser.token & 33619968) === 33619968) + report(parser, 121); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ArrowFunctionExpression', + params, + body, + async: isAsync === 1, + expression + }); + } + function parseFormalParametersOrFormalList(parser, context, scope, inGroup, kind) { + consume(parser, context, 67174411); + parser.flags = (parser.flags | 128) ^ 128; + const params = []; + if (consumeOpt(parser, context, 16)) + return params; + context = (context | 134217728) ^ 134217728; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, kind, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) { + report(parser, 47); + } + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left, + right + }); + } + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (isSimpleParameterList) + parser.flags |= 128; + if (scope && (isSimpleParameterList || context & 1024) && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + consume(parser, context, 16); + return params; + } + function parseMembeExpressionNoCall(parser, context, expr, inGroup, start, line, column) { + const { token } = parser; + if (token & 67108864) { + if (token === 67108877) { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }), 0, start, line, column); + } + else if (token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }), 0, start, line, column); + } + else if (token === 67174408 || token === 67174409) { + parser.assignable = 2; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }), 0, start, line, column); + } + } + return expr; + } + function parseNewExpression(parser, context, inGroup, start, line, column) { + const id = parseIdentifier(parser, context | 32768, 0); + const { tokenPos, linePos, colPos } = parser; + if (consumeOpt(parser, context, 67108877)) { + if (context & 67108864 && parser.token === 143494) { + parser.assignable = 2; + return parseMetaProperty(parser, context, id, start, line, column); + } + report(parser, 91); + } + parser.assignable = 2; + if ((parser.token & 16842752) === 16842752) { + report(parser, 62, KeywordDescTable[parser.token & 255]); + } + const expr = parsePrimaryExpression(parser, context, 2, 1, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + context = (context | 134217728) ^ 134217728; + if (parser.token === 67108991) + report(parser, 162); + const callee = parseMembeExpressionNoCall(parser, context, expr, inGroup, tokenPos, linePos, colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'NewExpression', + callee, + arguments: parser.token === 67174411 ? parseArguments(parser, context, inGroup) : [] + }); + } + function parseMetaProperty(parser, context, meta, start, line, column) { + const property = parseIdentifier(parser, context, 0); + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property + }); + } + function parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column) { + if (parser.token === 209008) + report(parser, 29); + if (context & (1024 | 2097152) && parser.token === 241773) { + report(parser, 30); + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context, 0), 0, canAssign, 1, start, line, column); + } + function parseAsyncArrowOrCallExpression(parser, context, callee, canAssign, kind, origin, flags, start, line, column) { + nextToken(parser, context | 32768); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + if (parser.token === 10) { + if (flags & 1) + report(parser, 45); + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 1, start, line, column); + } + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: [] + }); + } + let destructible = 0; + let expr = null; + let isSimpleParameterList = 0; + parser.destructible = + (parser.destructible | 256 | 128) ^ + (256 | 128); + const params = []; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, kind, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808) { + parser.flags |= 512; + } + else if ((token & 36864) === 36864) { + parser.flags |= 256; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token & 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + expr = parseBinaryExpression(parser, context, 1, start, line, column, 4, token, expr); + } + if (consumeOpt(parser, context | 32768, 22)) { + expr = parseConditionalExpression(parser, context, expr, start, line, column); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 1, 1, 0, tokenPos, linePos, colPos); + destructible |= (parser.token === 16 ? 0 : 16) | parser.destructible; + isSimpleParameterList = 1; + } + else { + expr = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + destructible = parser.assignable; + params.push(expr); + while (consumeOpt(parser, context | 32768, 18)) { + params.push(parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos)); + } + destructible |= parser.assignable; + consume(parser, context, 16); + parser.destructible = destructible | 16; + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + params.push(expr); + if (!consumeOpt(parser, context | 32768, 18)) + break; + } + consume(parser, context, 16); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 25); + if (parser.flags & 1 || flags & 1) + report(parser, 45); + if (destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) + report(parser, 30); + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, params, canAssign, 1, start, line, column); + } + else if (destructible & 8) { + report(parser, 59); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + function parseRegExpLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenRegExp, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return context & 512 + ? finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp, + raw: tokenRaw + }) + : finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp + }); + } + function parseClassDeclaration(parser, context, scope, flags, start, line, column) { + context = (context | 16777216 | 1024) ^ 16777216; + let decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + if (parser.leadingDecorators.length) { + parser.leadingDecorators.push(...decorators); + decorators = parser.leadingDecorators; + parser.leadingDecorators = []; + } + nextToken(parser, context); + let id = null; + let superClass = null; + const { tokenValue } = parser; + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) { + report(parser, 114); + } + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + if (scope) { + addBlockName(parser, context, scope, tokenValue, 32, 0); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, tokenValue); + } + } + } + id = parseIdentifier(parser, context, 0); + } + else { + if ((flags & 1) < 1) + report(parser, 37, 'Class'); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, scope, 2, 8, 0); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassDeclaration', + id, + superClass, + decorators, + body + } + : { + type: 'ClassDeclaration', + id, + superClass, + body + }); + } + function parseClassExpression(parser, context, inGroup, start, line, column) { + let id = null; + let superClass = null; + context = (context | 1024 | 16777216) ^ 16777216; + const decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + nextToken(parser, context); + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + id = parseIdentifier(parser, context, 0); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, inGroup, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, void 0, 2, 0, inGroup); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassExpression', + id, + superClass, + decorators, + body + } + : { + type: 'ClassExpression', + id, + superClass, + body + }); + } + function parseDecorators(parser, context) { + const list = []; + if (context & 1) { + while (parser.token === 133) { + list.push(parseDecoratorList(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + } + return list; + } + function parseDecoratorList(parser, context, start, line, column) { + nextToken(parser, context | 32768); + let expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, start, line, column); + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + return finishNode(parser, context, start, line, column, { + type: 'Decorator', + expression + }); + } + function parseClassBody(parser, context, inheritedContext, scope, kind, origin, inGroup) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + context = (context | 134217728) ^ 134217728; + parser.flags = (parser.flags | 32) ^ 32; + const body = []; + let decorators; + while (parser.token !== 1074790415) { + let length = 0; + decorators = parseDecorators(parser, context); + length = decorators.length; + if (length > 0 && parser.tokenValue === 'constructor') { + report(parser, 106); + } + if (parser.token === 1074790415) + report(parser, 105); + if (consumeOpt(parser, context, 1074790417)) { + if (length > 0) + report(parser, 116); + continue; + } + body.push(parseClassElementList(parser, context, scope, inheritedContext, kind, decorators, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + consume(parser, origin & 8 ? context | 32768 : context, 1074790415); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ClassBody', + body + }); + } + function parseClassElementList(parser, context, scope, inheritedContext, type, decorators, isStatic, inGroup, start, line, column) { + let kind = isStatic ? 32 : 0; + let key = null; + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 36864)) { + key = parseIdentifier(parser, context, 0); + switch (token) { + case 36972: + if (!isStatic && parser.token !== 67174411) { + return parseClassElementList(parser, context, scope, inheritedContext, type, decorators, 1, inGroup, start, line, column); + } + break; + case 209007: + if (parser.token !== 67174411 && (parser.flags & 1) < 1) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 16 | (optionalBit(parser, context, 8457014) ? 8 : 0); + } + break; + case 12402: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 256; + } + break; + case 12403: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 512; + } + break; + } + } + else if (token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, inheritedContext, inGroup); + } + else if ((token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (token === 8457014) { + kind |= 8; + nextToken(parser, context); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + context = context | 16384; + } + else if (context & 1 && (parser.token & 1073741824) === 1073741824) { + kind |= 128; + context = context | 16384; + } + else if (token === 122) { + key = parseIdentifier(parser, context, 0); + if (parser.token !== 67174411) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + if (kind & (8 | 16 | 768)) { + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, context, 0); + } + else if (parser.token === 122) { + key = parseIdentifier(parser, context, 0); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + } + else + report(parser, 131); + } + if ((kind & 2) < 1) { + if (parser.tokenValue === 'constructor') { + if ((parser.token & 1073741824) === 1073741824) { + report(parser, 125); + } + else if ((kind & 32) < 1 && parser.token === 67174411) { + if (kind & (768 | 16 | 128 | 8)) { + report(parser, 50, 'accessor'); + } + else if ((context & 524288) < 1) { + if (parser.flags & 32) + report(parser, 51); + else + parser.flags |= 32; + } + } + kind |= 64; + } + else if ((kind & 4096) < 1 && + kind & (32 | 768 | 8 | 16) && + parser.tokenValue === 'prototype') { + report(parser, 49); + } + } + if (context & 1 && parser.token !== 67174411) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + const value = parseMethodDefinition(parser, context, kind, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + decorators, + value + } + : { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + value + }); + } + function parsePrivateIdentifier(parser, context, start, line, column) { + nextToken(parser, context); + const { tokenValue } = parser; + if (tokenValue === 'constructor') + report(parser, 124); + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'PrivateIdentifier', + name: tokenValue + }); + } + function parsePropertyDefinition(parser, context, key, state, decorators, start, line, column) { + let value = null; + if (state & 8) + report(parser, 0); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 537079928) + report(parser, 115); + value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 0, 1, tokenPos, linePos, colPos); + if ((parser.token & 1073741824) !== 1073741824) { + value = parseMemberOrUpdateExpression(parser, context | 16384, value, 0, 0, tokenPos, linePos, colPos); + value = parseAssignmentExpression(parser, context | 16384, 0, 0, tokenPos, linePos, colPos, value); + if (parser.token === 18) { + value = parseSequenceExpression(parser, context, 0, start, line, column, value); + } + } + } + return finishNode(parser, context, start, line, column, { + type: 'PropertyDefinition', + key, + value, + static: (state & 32) > 0, + computed: (state & 2) > 0, + decorators + }); + } + function parseBindingPattern(parser, context, scope, type, origin, start, line, column) { + if (parser.token & 143360) + return parseAndClassifyIdentifier(parser, context, scope, type, origin, start, line, column); + if ((parser.token & 2097152) !== 2097152) + report(parser, 28, KeywordDescTable[parser.token & 255]); + const left = parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column) + : parseObjectLiteralOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column); + if (parser.destructible & 16) + report(parser, 47); + if (parser.destructible & 32) + report(parser, 47); + return left; + } + function parseAndClassifyIdentifier(parser, context, scope, kind, origin, start, line, column) { + const { tokenValue, token } = parser; + if (context & 1024) { + if ((token & 537079808) === 537079808) { + report(parser, 115); + } + else if ((token & 36864) === 36864) { + report(parser, 114); + } + } + if ((token & 20480) === 20480) { + report(parser, 99); + } + if (context & (2048 | 2097152) && token === 241773) { + report(parser, 30); + } + if (token === 241739) { + if (kind & (8 | 16)) + report(parser, 97); + } + if (context & (4194304 | 2048) && token === 209008) { + report(parser, 95); + } + nextToken(parser, context); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + return finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: tokenValue + }); + } + function parseJSXRootElementOrFragment(parser, context, inJSXChild, start, line, column) { + nextToken(parser, context); + if (parser.token === 8456259) { + return finishNode(parser, context, start, line, column, { + type: 'JSXFragment', + openingFragment: parseOpeningFragment(parser, context, start, line, column), + children: parseJSXChildren(parser, context), + closingFragment: parseJSXClosingFragment(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + let closingElement = null; + let children = []; + const openingElement = parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column); + if (!openingElement.selfClosing) { + children = parseJSXChildren(parser, context); + closingElement = parseJSXClosingElement(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos); + const close = isEqualTagName(closingElement.name); + if (isEqualTagName(openingElement.name) !== close) + report(parser, 149, close); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXElement', + children, + openingElement, + closingElement + }); + } + function parseOpeningFragment(parser, context, start, line, column) { + scanJSXToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningFragment' + }); + } + function parseJSXClosingElement(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + const name = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + parser.token = scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingElement', + name + }); + } + function parseJSXClosingFragment(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + consume(parser, context, 8456259); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingFragment' + }); + } + function parseJSXChildren(parser, context) { + const children = []; + while (parser.token !== 25) { + parser.index = parser.tokenPos = parser.startPos; + parser.column = parser.colPos = parser.startColumn; + parser.line = parser.linePos = parser.startLine; + scanJSXToken(parser, context); + children.push(parseJSXChild(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return children; + } + function parseJSXChild(parser, context, start, line, column) { + if (parser.token === 138) + return parseJSXText(parser, context, start, line, column); + if (parser.token === 2162700) + return parseJSXExpressionContainer(parser, context, 0, 0, start, line, column); + if (parser.token === 8456258) + return parseJSXRootElementOrFragment(parser, context, 0, start, line, column); + report(parser, 0); + } + function parseJSXText(parser, context, start, line, column) { + scanJSXToken(parser, context); + const node = { + type: 'JSXText', + value: parser.tokenValue + }; + if (context & 512) { + node.raw = parser.tokenRaw; + } + return finishNode(parser, context, start, line, column, node); + } + function parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column) { + if ((parser.token & 143360) !== 143360 && (parser.token & 4096) !== 4096) + report(parser, 0); + const tagName = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + const attributes = parseJSXAttributes(parser, context); + const selfClosing = parser.token === 8457016; + if (parser.token === 8456259) { + scanJSXToken(parser, context); + } + else { + consume(parser, context, 8457016); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + scanJSXToken(parser, context); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningElement', + name: tagName, + attributes, + selfClosing + }); + } + function parseJSXElementName(parser, context, start, line, column) { + scanJSXIdentifier(parser); + let key = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) + return parseJSXNamespacedName(parser, context, key, start, line, column); + while (consumeOpt(parser, context, 67108877)) { + scanJSXIdentifier(parser); + key = parseJSXMemberExpression(parser, context, key, start, line, column); + } + return key; + } + function parseJSXMemberExpression(parser, context, object, start, line, column) { + const property = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXMemberExpression', + object, + property + }); + } + function parseJSXAttributes(parser, context) { + const attributes = []; + while (parser.token !== 8457016 && parser.token !== 8456259 && parser.token !== 1048576) { + attributes.push(parseJsxAttribute(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return attributes; + } + function parseJSXSpreadAttribute(parser, context, start, line, column) { + nextToken(parser, context); + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadAttribute', + argument: expression + }); + } + function parseJsxAttribute(parser, context, start, line, column) { + if (parser.token === 2162700) + return parseJSXSpreadAttribute(parser, context, start, line, column); + scanJSXIdentifier(parser); + let value = null; + let name = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) { + name = parseJSXNamespacedName(parser, context, name, start, line, column); + } + if (parser.token === 1077936157) { + const token = scanJSXAttributeValue(parser, context); + const { tokenPos, linePos, colPos } = parser; + switch (token) { + case 134283267: + value = parseLiteral(parser, context); + break; + case 8456258: + value = parseJSXRootElementOrFragment(parser, context, 1, tokenPos, linePos, colPos); + break; + case 2162700: + value = parseJSXExpressionContainer(parser, context, 1, 1, tokenPos, linePos, colPos); + break; + default: + report(parser, 148); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXAttribute', + value, + name + }); + } + function parseJSXNamespacedName(parser, context, namespace, start, line, column) { + consume(parser, context, 21); + const name = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXNamespacedName', + namespace, + name + }); + } + function parseJSXExpressionContainer(parser, context, inJSXChild, isAttr, start, line, column) { + nextToken(parser, context); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 14) + return parseJSXSpreadChild(parser, context, tokenPos, linePos, colPos); + let expression = null; + if (parser.token === 1074790415) { + if (isAttr) + report(parser, 151); + expression = parseJSXEmptyExpression(parser, context, parser.startPos, parser.startLine, parser.startColumn); + } + else { + expression = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + } + if (inJSXChild) { + consume(parser, context, 1074790415); + } + else { + scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXExpressionContainer', + expression + }); + } + function parseJSXSpreadChild(parser, context, start, line, column) { + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadChild', + expression + }); + } + function parseJSXEmptyExpression(parser, context, start, line, column) { + parser.startPos = parser.tokenPos; + parser.startLine = parser.linePos; + parser.startColumn = parser.colPos; + return finishNode(parser, context, start, line, column, { + type: 'JSXEmptyExpression' + }); + } + function parseJSXIdentifier(parser, context, start, line, column) { + const { tokenValue } = parser; + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXIdentifier', + name: tokenValue + }); + } + + var estree = /*#__PURE__*/Object.freeze({ + __proto__: null + }); + + var version$1 = "4.2.0"; + + const version = version$1; + function parseScript(source, options) { + return parseSource(source, options, 0); + } + function parseModule(source, options) { + return parseSource(source, options, 1024 | 2048); + } + function parse(source, options) { + return parseSource(source, options, 0); + } + + exports.ESTree = estree; + exports.parse = parse; + exports.parseModule = parseModule; + exports.parseScript = parseScript; + exports.version = version; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/node_modules/meriyah/dist/meriyah.umd.es5.js b/node_modules/meriyah/dist/meriyah.umd.es5.js new file mode 100644 index 0000000..72ecccf --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.umd.es5.js @@ -0,0 +1,8855 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.meriyah = {})); +}(this, (function (exports) { 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + /* global Reflect, Promise */ + + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + + function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + } + + function __spreadArray(to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + to[j] = from[i]; + return to; + } + + var _a; + var errorMessages = (_a = {}, + _a[0] = 'Unexpected token', + _a[28] = "Unexpected token: '%0'", + _a[1] = 'Octal escape sequences are not allowed in strict mode', + _a[2] = 'Octal escape sequences are not allowed in template strings', + _a[3] = 'Unexpected token `#`', + _a[4] = 'Illegal Unicode escape sequence', + _a[5] = 'Invalid code point %0', + _a[6] = 'Invalid hexadecimal escape sequence', + _a[8] = 'Octal literals are not allowed in strict mode', + _a[7] = 'Decimal integer literals with a leading zero are forbidden in strict mode', + _a[9] = 'Expected number in radix %0', + _a[145] = 'Invalid left-hand side assignment to a destructible right-hand side', + _a[10] = 'Non-number found after exponent indicator', + _a[11] = 'Invalid BigIntLiteral', + _a[12] = 'No identifiers allowed directly after numeric literal', + _a[13] = 'Escapes \\8 or \\9 are not syntactically valid escapes', + _a[14] = 'Unterminated string literal', + _a[15] = 'Unterminated template literal', + _a[16] = 'Multiline comment was not closed properly', + _a[17] = 'The identifier contained dynamic unicode escape that was not closed', + _a[18] = "Illegal character '%0'", + _a[19] = 'Missing hexadecimal digits', + _a[20] = 'Invalid implicit octal', + _a[21] = 'Invalid line break in string literal', + _a[22] = 'Only unicode escapes are legal in identifier names', + _a[23] = "Expected '%0'", + _a[24] = 'Invalid left-hand side in assignment', + _a[25] = 'Invalid left-hand side in async arrow', + _a[26] = 'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass', + _a[27] = 'Member access on super must be in a method', + _a[29] = 'Await expression not allowed in formal parameter', + _a[30] = 'Yield expression not allowed in formal parameter', + _a[92] = "Unexpected token: 'escaped keyword'", + _a[31] = 'Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses', + _a[119] = 'Async functions can only be declared at the top level or inside a block', + _a[32] = 'Unterminated regular expression', + _a[33] = 'Unexpected regular expression flag', + _a[34] = "Duplicate regular expression flag '%0'", + _a[35] = '%0 functions must have exactly %1 argument%2', + _a[36] = 'Setter function argument must not be a rest parameter', + _a[37] = '%0 declaration must have a name in this context', + _a[38] = 'Function name may not contain any reserved words or be eval or arguments in strict mode', + _a[39] = 'The rest operator is missing an argument', + _a[40] = 'A getter cannot be a generator', + _a[41] = 'A computed property name must be followed by a colon or paren', + _a[130] = 'Object literal keys that are strings or numbers must be a method or have a colon', + _a[43] = 'Found `* async x(){}` but this should be `async * x(){}`', + _a[42] = 'Getters and setters can not be generators', + _a[44] = "'%0' can not be generator method", + _a[45] = "No line break is allowed after '=>'", + _a[46] = 'The left-hand side of the arrow can only be destructed through assignment', + _a[47] = 'The binding declaration is not destructible', + _a[48] = 'Async arrow can not be followed by new expression', + _a[49] = "Classes may not have a static property named 'prototype'", + _a[50] = 'Class constructor may not be a %0', + _a[51] = 'Duplicate constructor method in class', + _a[52] = 'Invalid increment/decrement operand', + _a[53] = 'Invalid use of `new` keyword on an increment/decrement expression', + _a[54] = '`=>` is an invalid assignment target', + _a[55] = 'Rest element may not have a trailing comma', + _a[56] = 'Missing initializer in %0 declaration', + _a[57] = "'for-%0' loop head declarations can not have an initializer", + _a[58] = 'Invalid left-hand side in for-%0 loop: Must have a single binding', + _a[59] = 'Invalid shorthand property initializer', + _a[60] = 'Property name __proto__ appears more than once in object literal', + _a[61] = 'Let is disallowed as a lexically bound name', + _a[62] = "Invalid use of '%0' inside new expression", + _a[63] = "Illegal 'use strict' directive in function with non-simple parameter list", + _a[64] = 'Identifier "let" disallowed as left-hand side expression in strict mode', + _a[65] = 'Illegal continue statement', + _a[66] = 'Illegal break statement', + _a[67] = 'Cannot have `let[...]` as a var name in strict mode', + _a[68] = 'Invalid destructuring assignment target', + _a[69] = 'Rest parameter may not have a default initializer', + _a[70] = 'The rest argument must the be last parameter', + _a[71] = 'Invalid rest argument', + _a[73] = 'In strict mode code, functions can only be declared at top level or inside a block', + _a[74] = 'In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement', + _a[75] = 'Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement', + _a[76] = "Class declaration can't appear in single-statement context", + _a[77] = 'Invalid left-hand side in for-%0', + _a[78] = 'Invalid assignment in for-%0', + _a[79] = 'for await (... of ...) is only valid in async functions and async generators', + _a[80] = 'The first token after the template expression should be a continuation of the template', + _a[82] = '`let` declaration not allowed here and `let` cannot be a regular var name in strict mode', + _a[81] = '`let \n [` is a restricted production at the start of a statement', + _a[83] = 'Catch clause requires exactly one parameter, not more (and no trailing comma)', + _a[84] = 'Catch clause parameter does not support default values', + _a[85] = 'Missing catch or finally after try', + _a[86] = 'More than one default clause in switch statement', + _a[87] = 'Illegal newline after throw', + _a[88] = 'Strict mode code may not include a with statement', + _a[89] = 'Illegal return statement', + _a[90] = 'The left hand side of the for-header binding declaration is not destructible', + _a[91] = 'new.target only allowed within functions', + _a[93] = "'#' not followed by identifier", + _a[99] = 'Invalid keyword', + _a[98] = "Can not use 'let' as a class name", + _a[97] = "'A lexical declaration can't define a 'let' binding", + _a[96] = 'Can not use `let` as variable name in strict mode', + _a[94] = "'%0' may not be used as an identifier in this context", + _a[95] = 'Await is only valid in async functions', + _a[100] = 'The %0 keyword can only be used with the module goal', + _a[101] = 'Unicode codepoint must not be greater than 0x10FFFF', + _a[102] = '%0 source must be string', + _a[103] = 'Only a identifier can be used to indicate alias', + _a[104] = "Only '*' or '{...}' can be imported after default", + _a[105] = 'Trailing decorator may be followed by method', + _a[106] = "Decorators can't be used with a constructor", + _a[108] = 'HTML comments are only allowed with web compatibility (Annex B)', + _a[109] = "The identifier 'let' must not be in expression position in strict mode", + _a[110] = 'Cannot assign to `eval` and `arguments` in strict mode', + _a[111] = "The left-hand side of a for-of loop may not start with 'let'", + _a[112] = 'Block body arrows can not be immediately invoked without a group', + _a[113] = 'Block body arrows can not be immediately accessed without a group', + _a[114] = 'Unexpected strict mode reserved word', + _a[115] = 'Unexpected eval or arguments in strict mode', + _a[116] = 'Decorators must not be followed by a semicolon', + _a[117] = 'Calling delete on expression not allowed in strict mode', + _a[118] = 'Pattern can not have a tail', + _a[120] = 'Can not have a `yield` expression on the left side of a ternary', + _a[121] = 'An arrow function can not have a postfix update operator', + _a[122] = 'Invalid object literal key character after generator star', + _a[123] = 'Private fields can not be deleted', + _a[125] = 'Classes may not have a field called constructor', + _a[124] = 'Classes may not have a private element named constructor', + _a[126] = 'A class field initializer may not contain arguments', + _a[127] = 'Generators can only be declared at the top level or inside a block', + _a[128] = 'Async methods are a restricted production and cannot have a newline following it', + _a[129] = 'Unexpected character after object literal property name', + _a[131] = 'Invalid key token', + _a[132] = "Label '%0' has already been declared", + _a[133] = 'continue statement must be nested within an iteration statement', + _a[134] = "Undefined label '%0'", + _a[135] = 'Trailing comma is disallowed inside import(...) arguments', + _a[136] = 'import() requires exactly one argument', + _a[137] = 'Cannot use new with import(...)', + _a[138] = '... is not allowed in import()', + _a[139] = "Expected '=>'", + _a[140] = "Duplicate binding '%0'", + _a[141] = "Cannot export a duplicate name '%0'", + _a[144] = 'Duplicate %0 for-binding', + _a[142] = "Exported binding '%0' needs to refer to a top-level declared variable", + _a[143] = 'Unexpected private field', + _a[147] = 'Numeric separators are not allowed at the end of numeric literals', + _a[146] = 'Only one underscore is allowed as numeric separator', + _a[148] = 'JSX value should be either an expression or a quoted JSX text', + _a[149] = 'Expected corresponding JSX closing tag for %0', + _a[150] = 'Adjacent JSX elements must be wrapped in an enclosing tag', + _a[151] = "JSX attributes must only be assigned a non-empty 'expression'", + _a[152] = "'%0' has already been declared", + _a[153] = "'%0' shadowed a catch clause binding", + _a[154] = 'Dot property must be an identifier', + _a[155] = 'Encountered invalid input after spread/rest argument', + _a[156] = 'Catch without try', + _a[157] = 'Finally without try', + _a[158] = 'Expected corresponding closing tag for JSX fragment', + _a[159] = 'Coalescing and logical operators used together in the same expression must be disambiguated with parentheses', + _a[160] = 'Invalid tagged template on optional chain', + _a[161] = 'Invalid optional chain from super property', + _a[162] = 'Invalid optional chain from new expression', + _a[163] = 'Cannot use "import.meta" outside a module', + _a[164] = 'Leading decorators must be attached to a class declaration', + _a); + var ParseError = (function (_super) { + __extends(ParseError, _super); + function ParseError(startindex, line, column, type) { + var params = []; + for (var _i = 4; _i < arguments.length; _i++) { + params[_i - 4] = arguments[_i]; + } + var _this = this; + var message = '[' + line + ':' + column + ']: ' + errorMessages[type].replace(/%(\d+)/g, function (_, i) { return params[i]; }); + _this = _super.call(this, "" + message) || this; + _this.index = startindex; + _this.line = line; + _this.column = column; + _this.description = message; + _this.loc = { + line: line, + column: column + }; + return _this; + } + return ParseError; + }(SyntaxError)); + function report(parser, type) { + var params = []; + for (var _i = 2; _i < arguments.length; _i++) { + params[_i - 2] = arguments[_i]; + } + throw new (ParseError.bind.apply(ParseError, __spreadArray([void 0, parser.index, parser.line, parser.column, type], params)))(); + } + function reportScopeError(scope) { + throw new ParseError(scope.index, scope.line, scope.column, scope.type, scope.params); + } + function reportMessageAt(index, line, column, type) { + var params = []; + for (var _i = 4; _i < arguments.length; _i++) { + params[_i - 4] = arguments[_i]; + } + throw new (ParseError.bind.apply(ParseError, __spreadArray([void 0, index, line, column, type], params)))(); + } + function reportScannerError(index, line, column, type) { + throw new ParseError(index, line, column, type); + } + + var unicodeLookup = (function (compressed, lookup) { + var result = new Uint32Array(104448); + var index = 0; + var subIndex = 0; + while (index < 3540) { + var inst = compressed[index++]; + if (inst < 0) { + subIndex -= inst; + } + else { + var code = compressed[index++]; + if (inst & 2) + code = lookup[code]; + if (inst & 1) { + result.fill(code, subIndex, subIndex += compressed[index++]); + } + else { + result[subIndex++] = code; + } + } + } + return result; + })([-1, 2, 24, 2, 25, 2, 5, -1, 0, 77595648, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 16, 2, 60, 2, 0, 0, 4294836735, 0, 3221225471, 0, 4294901942, 2, 61, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 17, 2, 0, 0, 4294961151, 3, 0, 2, 2, 19, 2, 0, 0, 608174079, 2, 0, 2, 131, 2, 6, 2, 56, -1, 2, 37, 0, 4294443263, 2, 1, 3, 0, 3, 0, 4294901711, 2, 39, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2967484831, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 2, 194, 2, 3, 0, 3825204735, 0, 123747807, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1080049119, 0, 458703, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 66, 0, 4284449919, 0, 851904, 2, 4, 2, 11, 0, 67076095, -1, 2, 67, 0, 1073741743, 0, 4093591391, -1, 0, 50331649, 0, 3265266687, 2, 32, 0, 4294844415, 0, 4278190047, 2, 18, 2, 129, -1, 3, 0, 2, 2, 21, 2, 0, 2, 9, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 10, 0, 261632, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 2088959, 2, 27, 2, 8, 0, 909311, 3, 0, 2, 0, 814743551, 2, 41, 0, 67057664, 3, 0, 2, 2, 40, 2, 0, 2, 28, 2, 0, 2, 29, 2, 7, 0, 268374015, 2, 26, 2, 49, 2, 0, 2, 76, 0, 134153215, -1, 2, 6, 2, 0, 2, 7, 0, 2684354559, 0, 67044351, 0, 3221160064, 0, 1, -1, 3, 0, 2, 2, 42, 0, 1046528, 3, 0, 3, 2, 8, 2, 0, 2, 51, 0, 4294960127, 2, 9, 2, 38, 2, 10, 0, 4294377472, 2, 11, 3, 0, 7, 0, 4227858431, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -1, 2, 124, 0, 1048577, 2, 82, 2, 13, -1, 2, 13, 0, 131042, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 1046559, 2, 0, 2, 14, 2, 0, 0, 2147516671, 2, 20, 3, 86, 2, 2, 0, -16, 2, 87, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 2, 121, 2, 0, 0, 3220242431, 3, 0, 3, 2, 19, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 2, 0, 0, 4351, 2, 0, 2, 8, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 22, 2, 8, 2, 18, 3, 0, 2, 0, 67076097, 2, 7, 2, 0, 2, 20, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 3774349439, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, 2, 23, 0, 1638399, 2, 172, 2, 105, 3, 0, 3, 2, 18, 2, 24, 2, 25, 2, 5, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -3, 2, 150, -4, 2, 18, 2, 0, 2, 35, 0, 1, 2, 0, 2, 62, 2, 28, 2, 11, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 21, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277137519, 0, 2269118463, -1, 3, 18, 2, -1, 2, 32, 2, 36, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 46, -10, 2, 0, 0, 203775, -2, 2, 18, 2, 43, 2, 35, -2, 2, 17, 2, 117, 2, 20, 3, 0, 2, 2, 36, 0, 2147549120, 2, 0, 2, 11, 2, 17, 2, 135, 2, 0, 2, 37, 2, 52, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 120, 0, 1090519039, -2, 2, 122, 2, 38, 2, 0, 0, 67045375, 2, 39, 0, 4226678271, 0, 3766565279, 0, 2039759, -4, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 40, 2, 41, -1, 2, 10, 2, 42, -6, 2, 0, 2, 11, -3, 3, 0, 2, 0, 2147484671, 2, 125, 0, 4190109695, 2, 50, -2, 2, 126, 0, 4244635647, 0, 27, 2, 0, 2, 7, 2, 43, 2, 0, 2, 63, -1, 2, 0, 2, 40, -8, 2, 54, 2, 44, 0, 67043329, 2, 127, 2, 45, 0, 8388351, -2, 2, 128, 0, 3028287487, 2, 46, 2, 130, 0, 33259519, 2, 41, -9, 2, 20, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, 2, 41, -2, 2, 17, 2, 49, 2, 0, 2, 20, 2, 50, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 196635, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 0, 1677656575, -166, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 28, -13, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 88, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -42, 0, 4194303871, 0, 2011, -6, 2, 0, 0, 1073684479, 0, 17407, -11, 2, 0, 2, 31, -40, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 42, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -105, 2, 24, -32, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -22381, 3, 0, 7, 2, 23, -6130, 3, 5, 2, -1, 0, 69207040, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 16, 2, 60, 2, 0, 2, 33, -1, 2, 17, 2, 61, -1, 2, 0, 2, 56, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 23, 2, 62, 3, 0, 2, 0, 131135, 2, 95, 0, 70256639, 0, 71303167, 0, 272, 2, 40, 2, 56, -1, 2, 37, 2, 30, -1, 2, 96, 2, 63, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 65, 2, 64, 0, 33554435, 2, 123, 2, 65, 2, 151, 0, 131075, 0, 3594373096, 0, 67094296, 2, 64, -1, 0, 4294828000, 0, 603979263, 2, 160, 0, 3, 0, 4294828001, 0, 602930687, 2, 183, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 66, 2, 36, -1, 2, 4, 0, 917503, 2, 36, -1, 2, 67, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 32, 2, 68, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 11, -1, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 253951, 3, 19, 2, 0, 122879, 2, 0, 2, 8, 0, 276824064, -2, 3, 0, 2, 2, 40, 2, 0, 0, 4294903295, 2, 0, 2, 29, 2, 7, -1, 2, 17, 2, 49, 2, 0, 2, 76, 2, 41, -1, 2, 20, 2, 0, 2, 27, -2, 0, 128, -2, 2, 77, 2, 8, 0, 4064, -1, 2, 119, 0, 4227907585, 2, 0, 2, 118, 2, 0, 2, 48, 2, 173, 2, 9, 2, 38, 2, 10, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -3, 2, 82, 2, 13, -3, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 817183, 2, 0, 2, 14, 2, 0, 0, 33023, 2, 20, 3, 86, 2, -17, 2, 87, 0, 524157950, 2, 4, 2, 0, 2, 88, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 0, 3072, 2, 0, 0, 2147516415, 2, 9, 3, 0, 2, 2, 23, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 0, 4294965179, 0, 7, 2, 0, 2, 8, 2, 91, 2, 8, -1, 0, 1761345536, 2, 95, 0, 4294901823, 2, 36, 2, 18, 2, 96, 2, 34, 2, 166, 0, 2080440287, 2, 0, 2, 33, 2, 143, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 7, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 2700607615, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, -3, 2, 105, 3, 0, 3, 2, 18, -1, 3, 5, 2, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -8, 2, 18, 2, 0, 2, 35, -1, 2, 0, 2, 62, 2, 28, 2, 29, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 17, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277075969, 2, 29, -1, 3, 18, 2, -1, 2, 32, 2, 117, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 48, -10, 2, 0, 0, 197631, -2, 2, 18, 2, 43, 2, 118, -2, 2, 17, 2, 117, 2, 20, 2, 119, 2, 51, -2, 2, 119, 2, 23, 2, 17, 2, 33, 2, 119, 2, 36, 0, 4294901904, 0, 4718591, 2, 119, 2, 34, 0, 335544350, -1, 2, 120, 2, 121, -2, 2, 122, 2, 38, 2, 7, -1, 2, 123, 2, 65, 0, 3758161920, 0, 3, -4, 2, 0, 2, 27, 0, 2147485568, 0, 3, 2, 0, 2, 23, 0, 176, -5, 2, 0, 2, 47, 2, 186, -1, 2, 0, 2, 23, 2, 197, -1, 2, 0, 0, 16779263, -2, 2, 11, -7, 2, 0, 2, 121, -3, 3, 0, 2, 2, 124, 2, 125, 0, 2147549183, 0, 2, -2, 2, 126, 2, 35, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, -1, 2, 0, 2, 40, -8, 2, 54, 2, 47, 0, 1, 2, 127, 2, 23, -3, 2, 128, 2, 35, 2, 129, 2, 130, 0, 16778239, -10, 2, 34, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, -3, 2, 17, 2, 131, 2, 0, 2, 23, 2, 48, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 67583, -1, 2, 103, -2, 0, 11, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 2, 135, -187, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 2, 143, -73, 2, 0, 0, 1065361407, 0, 16384, -11, 2, 0, 2, 121, -40, 3, 0, 6, 2, 117, -1, 3, 0, 2, 0, 2063, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -138, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -28517, 2, 0, 0, 1, -1, 2, 124, 2, 0, 0, 8193, -21, 2, 193, 0, 10255, 0, 4, -11, 2, 64, 2, 171, -1, 0, 71680, -1, 2, 161, 0, 4292900864, 0, 805306431, -5, 2, 150, -1, 2, 157, -1, 0, 6144, -2, 2, 127, -1, 2, 154, -1, 0, 2147532800, 2, 151, 2, 165, 2, 0, 2, 164, 0, 524032, 0, 4, -4, 2, 190, 0, 205128192, 0, 1333757536, 0, 2147483696, 0, 423953, 0, 747766272, 0, 2717763192, 0, 4286578751, 0, 278545, 2, 152, 0, 4294886464, 0, 33292336, 0, 417809, 2, 152, 0, 1327482464, 0, 4278190128, 0, 700594195, 0, 1006647527, 0, 4286497336, 0, 4160749631, 2, 153, 0, 469762560, 0, 4171219488, 0, 8323120, 2, 153, 0, 202375680, 0, 3214918176, 0, 4294508592, 2, 153, -1, 0, 983584, 0, 48, 0, 58720273, 0, 3489923072, 0, 10517376, 0, 4293066815, 0, 1, 0, 2013265920, 2, 177, 2, 0, 0, 2089, 0, 3221225552, 0, 201375904, 2, 0, -2, 0, 256, 0, 122880, 0, 16777216, 2, 150, 0, 4160757760, 2, 0, -6, 2, 167, -11, 0, 3263218176, -1, 0, 49664, 0, 2160197632, 0, 8388802, -1, 0, 12713984, -1, 2, 154, 2, 159, 2, 178, -2, 2, 162, -20, 0, 3758096385, -2, 2, 155, 0, 4292878336, 2, 90, 2, 169, 0, 4294057984, -2, 2, 163, 2, 156, 2, 175, -2, 2, 155, -1, 2, 182, -1, 2, 170, 2, 124, 0, 4026593280, 0, 14, 0, 4292919296, -1, 2, 158, 0, 939588608, -1, 0, 805306368, -1, 2, 124, 0, 1610612736, 2, 156, 2, 157, 2, 4, 2, 0, -2, 2, 158, 2, 159, -3, 0, 267386880, -1, 2, 160, 0, 7168, -1, 0, 65024, 2, 154, 2, 161, 2, 179, -7, 2, 168, -8, 2, 162, -1, 0, 1426112704, 2, 163, -1, 2, 164, 0, 271581216, 0, 2149777408, 2, 23, 2, 161, 2, 124, 0, 851967, 2, 180, -1, 2, 23, 2, 181, -4, 2, 158, -20, 2, 195, 2, 165, -56, 0, 3145728, 2, 185, -4, 2, 166, 2, 124, -4, 0, 32505856, -1, 2, 167, -1, 0, 2147385088, 2, 90, 1, 2155905152, 2, -3, 2, 103, 2, 0, 2, 168, -2, 2, 169, -6, 2, 170, 0, 4026597375, 0, 1, -1, 0, 1, -1, 2, 171, -3, 2, 117, 2, 64, -2, 2, 166, -2, 2, 176, 2, 124, -878, 2, 159, -36, 2, 172, -1, 2, 201, -10, 2, 188, -5, 2, 174, -6, 0, 4294965251, 2, 27, -1, 2, 173, -1, 2, 174, -2, 0, 4227874752, -3, 0, 2146435072, 2, 159, -2, 0, 1006649344, 2, 124, -1, 2, 90, 0, 201375744, -3, 0, 134217720, 2, 90, 0, 4286677377, 0, 32896, -1, 2, 158, -3, 2, 175, -349, 2, 176, 0, 1920, 2, 177, 3, 0, 264, -11, 2, 157, -2, 2, 178, 2, 0, 0, 520617856, 0, 2692743168, 0, 36, -3, 0, 524284, -11, 2, 23, -1, 2, 187, -1, 2, 184, 0, 3221291007, 2, 178, -1, 2, 202, 0, 2158720, -3, 2, 159, 0, 1, -4, 2, 124, 0, 3808625411, 0, 3489628288, 2, 200, 0, 1207959680, 0, 3221274624, 2, 0, -3, 2, 179, 0, 120, 0, 7340032, -2, 2, 180, 2, 4, 2, 23, 2, 163, 3, 0, 4, 2, 159, -1, 2, 181, 2, 177, -1, 0, 8176, 2, 182, 2, 179, 2, 183, -1, 0, 4290773232, 2, 0, -4, 2, 163, 2, 189, 0, 15728640, 2, 177, -1, 2, 161, -1, 0, 4294934512, 3, 0, 4, -9, 2, 90, 2, 170, 2, 184, 3, 0, 4, 0, 704, 0, 1849688064, 2, 185, -1, 2, 124, 0, 4294901887, 2, 0, 0, 130547712, 0, 1879048192, 2, 199, 3, 0, 2, -1, 2, 186, 2, 187, -1, 0, 17829776, 0, 2025848832, 0, 4261477888, -2, 2, 0, -1, 0, 4286580608, -1, 0, 29360128, 2, 192, 0, 16252928, 0, 3791388672, 2, 38, 3, 0, 2, -2, 2, 196, 2, 0, -1, 2, 103, -1, 0, 66584576, -1, 2, 191, 3, 0, 9, 2, 124, -1, 0, 4294755328, 3, 0, 2, -1, 2, 161, 2, 178, 3, 0, 2, 2, 23, 2, 188, 2, 90, -2, 0, 245760, 0, 2147418112, -1, 2, 150, 2, 203, 0, 4227923456, -1, 2, 164, 2, 161, 2, 90, -3, 0, 4292870145, 0, 262144, 2, 124, 3, 0, 2, 0, 1073758848, 2, 189, -1, 0, 4227921920, 2, 190, 0, 68289024, 0, 528402016, 0, 4292927536, 3, 0, 4, -2, 0, 268435456, 2, 91, -2, 2, 191, 3, 0, 5, -1, 2, 192, 2, 163, 2, 0, -2, 0, 4227923936, 2, 62, -1, 2, 155, 2, 95, 2, 0, 2, 154, 2, 158, 3, 0, 6, -1, 2, 177, 3, 0, 3, -2, 0, 2146959360, 0, 9440640, 0, 104857600, 0, 4227923840, 3, 0, 2, 0, 768, 2, 193, 2, 77, -2, 2, 161, -2, 2, 119, -1, 2, 155, 3, 0, 8, 0, 512, 0, 8388608, 2, 194, 2, 172, 2, 187, 0, 4286578944, 3, 0, 2, 0, 1152, 0, 1266679808, 2, 191, 0, 576, 0, 4261707776, 2, 95, 3, 0, 9, 2, 155, 3, 0, 5, 2, 16, -1, 0, 2147221504, -28, 2, 178, 3, 0, 3, -3, 0, 4292902912, -6, 2, 96, 3, 0, 85, -33, 0, 4294934528, 3, 0, 126, -18, 2, 195, 3, 0, 269, -17, 2, 155, 2, 124, 2, 198, 3, 0, 2, 2, 23, 0, 4290822144, -2, 0, 67174336, 0, 520093700, 2, 17, 3, 0, 21, -2, 2, 179, 3, 0, 3, -2, 0, 30720, -1, 0, 32512, 3, 0, 2, 0, 4294770656, -191, 2, 174, -38, 2, 170, 2, 0, 2, 196, 3, 0, 279, -8, 2, 124, 2, 0, 0, 4294508543, 0, 65295, -11, 2, 177, 3, 0, 72, -3, 0, 3758159872, 0, 201391616, 3, 0, 155, -7, 2, 170, -1, 0, 384, -1, 0, 133693440, -3, 2, 196, -2, 2, 26, 3, 0, 4, 2, 169, -2, 2, 90, 2, 155, 3, 0, 4, -2, 2, 164, -1, 2, 150, 0, 335552923, 2, 197, -1, 0, 538974272, 0, 2214592512, 0, 132000, -10, 0, 192, -8, 0, 12288, -21, 0, 134213632, 0, 4294901761, 3, 0, 42, 0, 100663424, 0, 4294965284, 3, 0, 6, -1, 0, 3221282816, 2, 198, 3, 0, 11, -1, 2, 199, 3, 0, 40, -6, 0, 4286578784, 2, 0, -2, 0, 1006694400, 3, 0, 24, 2, 35, -1, 2, 94, 3, 0, 2, 0, 1, 2, 163, 3, 0, 6, 2, 197, 0, 4110942569, 0, 1432950139, 0, 2701658217, 0, 4026532864, 0, 4026532881, 2, 0, 2, 45, 3, 0, 8, -1, 2, 158, -2, 2, 169, 0, 98304, 0, 65537, 2, 170, -5, 0, 4294950912, 2, 0, 2, 118, 0, 65528, 2, 177, 0, 4294770176, 2, 26, 3, 0, 4, -30, 2, 174, 0, 3758153728, -3, 2, 169, -2, 2, 155, 2, 188, 2, 158, -1, 2, 191, -1, 2, 161, 0, 4294754304, 3, 0, 2, -3, 0, 33554432, -2, 2, 200, -3, 2, 169, 0, 4175478784, 2, 201, 0, 4286643712, 0, 4286644216, 2, 0, -4, 2, 202, -1, 2, 165, 0, 4227923967, 3, 0, 32, -1334, 2, 163, 2, 0, -129, 2, 94, -6, 2, 163, -180, 2, 203, -233, 2, 4, 3, 0, 96, -16, 2, 163, 3, 0, 47, -154, 2, 165, 3, 0, 22381, -7, 2, 17, 3, 0, 6128], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 268435455, 2147483647, 1048575, 1073741823, 3892314111, 134217727, 1061158911, 536805376, 4294910143, 4160749567, 4294901759, 4294901760, 536870911, 262143, 8388607, 4294902783, 4294918143, 65535, 67043328, 2281701374, 4294967232, 2097151, 4294903807, 4194303, 255, 67108863, 4294967039, 511, 524287, 131071, 127, 4292870143, 4294902271, 4294549487, 33554431, 1023, 67047423, 4294901888, 4286578687, 4294770687, 67043583, 32767, 15, 2047999, 67043343, 16777215, 4294902000, 4294934527, 4294966783, 4294967279, 2047, 262083, 20511, 4290772991, 41943039, 493567, 4294959104, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 4294967264, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 2044, 4292870144, 4294966272, 4294967280, 8289918, 4294934399, 4294901775, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4294966591, 2445279231, 3670015, 3238002687, 31, 63, 4294967288, 4294705151, 4095, 3221208447, 4294549472, 2147483648, 4285526655, 4294966527, 4294705152, 4294966143, 64, 4294966719, 16383, 3774873592, 458752, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967103, 4160749565, 4087, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901763, 536870912, 2952790016, 202506752, 139264, 402653184, 4261412864, 4227922944, 49152, 61440, 3758096384, 117440512, 65280, 3233808384, 3221225472, 2097152, 4294965248, 32768, 57152, 67108864, 4293918720, 4290772992, 25165824, 57344, 4227915776, 4278190080, 4227907584, 65520, 4026531840, 4227858432, 4160749568, 3758129152, 4294836224, 63488, 1073741824, 4294967040, 4194304, 251658240, 196608, 4294963200, 64512, 417808, 4227923712, 12582912, 50331648, 65472, 4294967168, 4294966784, 16, 4294917120, 2080374784, 4096, 65408, 524288, 65532]); + + function advanceChar(parser) { + parser.column++; + return (parser.currentChar = parser.source.charCodeAt(++parser.index)); + } + function consumeMultiUnitCodePoint(parser, hi) { + if ((hi & 0xfc00) !== 55296) + return 0; + var lo = parser.source.charCodeAt(parser.index + 1); + if ((lo & 0xfc00) !== 0xdc00) + return 0; + hi = parser.currentChar = 65536 + ((hi & 0x3ff) << 10) + (lo & 0x3ff); + if (((unicodeLookup[(hi >>> 5) + 0] >>> hi) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(hi)); + } + parser.index++; + parser.column++; + return 1; + } + function consumeLineFeed(parser, state) { + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.flags |= 1; + if ((state & 4) === 0) { + parser.column = 0; + parser.line++; + } + } + function scanNewLine(parser) { + parser.flags |= 1; + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.column = 0; + parser.line++; + } + function isExoticECMAScriptWhitespace(ch) { + return (ch === 160 || + ch === 65279 || + ch === 133 || + ch === 5760 || + (ch >= 8192 && ch <= 8203) || + ch === 8239 || + ch === 8287 || + ch === 12288 || + ch === 8201 || + ch === 65519); + } + function fromCodePoint(codePoint) { + return codePoint <= 65535 + ? String.fromCharCode(codePoint) + : String.fromCharCode(codePoint >>> 10) + String.fromCharCode(codePoint & 0x3ff); + } + function toHex(code) { + return code < 65 ? code - 48 : (code - 65 + 10) & 0xf; + } + function convertTokenType(t) { + switch (t) { + case 134283266: + return 'NumericLiteral'; + case 134283267: + return 'StringLiteral'; + case 86021: + case 86022: + return 'BooleanLiteral'; + case 86023: + return 'NullLiteral'; + case 65540: + return 'RegularExpression'; + case 67174408: + case 67174409: + case 132: + return 'TemplateLiteral'; + default: + if ((t & 143360) === 143360) + return 'Identifier'; + if ((t & 4096) === 4096) + return 'Keyword'; + return 'Punctuator'; + } + } + + var CharTypes = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8 | 1024, + 0, + 0, + 8 | 2048, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8192, + 0, + 1 | 2, + 0, + 0, + 8192, + 0, + 0, + 0, + 256, + 0, + 256 | 32768, + 0, + 0, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 512 | 64, + 2 | 16 | 512 | 64, + 0, + 0, + 16384, + 0, + 0, + 0, + 0, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 0, + 1, + 0, + 0, + 1 | 2 | 4096, + 0, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 16384, + 0, + 0, + 0, + 0 + ]; + var isIdStart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ]; + var isIdPart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ]; + function isIdentifierStart(code) { + return code <= 0x7F + ? isIdStart[code] + : (unicodeLookup[(code >>> 5) + 34816] >>> code) & 31 & 1; + } + function isIdentifierPart(code) { + return code <= 0x7F + ? isIdPart[code] + : (unicodeLookup[(code >>> 5) + 0] >>> code) & 31 & 1 || (code === 8204 || code === 8205); + } + + var CommentTypes = ['SingleLine', 'MultiLine', 'HTMLOpen', 'HTMLClose', 'HashbangComment']; + function skipHashBang(parser) { + var source = parser.source; + if (parser.currentChar === 35 && source.charCodeAt(parser.index + 1) === 33) { + advanceChar(parser); + advanceChar(parser); + skipSingleLineComment(parser, source, 0, 4, parser.tokenPos, parser.linePos, parser.colPos); + } + } + function skipSingleHTMLComment(parser, source, state, context, type, start, line, column) { + if (context & 2048) + report(parser, 0); + return skipSingleLineComment(parser, source, state, type, start, line, column); + } + function skipSingleLineComment(parser, source, state, type, start, line, column) { + var index = parser.index; + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + while (parser.index < parser.end) { + if (CharTypes[parser.currentChar] & 8) { + var isCR = parser.currentChar === 13; + scanNewLine(parser); + if (isCR && parser.index < parser.end && parser.currentChar === 10) + parser.currentChar = source.charCodeAt(++parser.index); + break; + } + else if ((parser.currentChar ^ 8232) <= 1) { + scanNewLine(parser); + break; + } + advanceChar(parser); + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + } + if (parser.onComment) { + var loc = { + start: { + line: line, + column: column + }, + end: { + line: parser.linePos, + column: parser.colPos + } + }; + parser.onComment(CommentTypes[type & 0xff], source.slice(index, parser.tokenPos), start, parser.tokenPos, loc); + } + return state | 1; + } + function skipMultiLineComment(parser, source, state) { + var index = parser.index; + while (parser.index < parser.end) { + if (parser.currentChar < 0x2b) { + var skippedOneAsterisk = false; + while (parser.currentChar === 42) { + if (!skippedOneAsterisk) { + state &= ~4; + skippedOneAsterisk = true; + } + if (advanceChar(parser) === 47) { + advanceChar(parser); + if (parser.onComment) { + var loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onComment(CommentTypes[1 & 0xff], source.slice(index, parser.index - 2), index - 2, parser.index, loc); + } + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + return state; + } + } + if (skippedOneAsterisk) { + continue; + } + if (CharTypes[parser.currentChar] & 8) { + if (parser.currentChar === 13) { + state |= 1 | 4; + scanNewLine(parser); + } + else { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + } + else { + advanceChar(parser); + } + } + else if ((parser.currentChar ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + } + else { + state &= ~4; + advanceChar(parser); + } + } + report(parser, 16); + } + + function scanRegularExpression(parser, context) { + var bodyStart = parser.index; + var preparseState = 0; + loop: while (true) { + var ch = parser.currentChar; + advanceChar(parser); + if (preparseState & 1) { + preparseState &= ~1; + } + else { + switch (ch) { + case 47: + if (!preparseState) + break loop; + else + break; + case 92: + preparseState |= 1; + break; + case 91: + preparseState |= 2; + break; + case 93: + preparseState &= 1; + break; + case 13: + case 10: + case 8232: + case 8233: + report(parser, 32); + } + } + if (parser.index >= parser.source.length) { + return report(parser, 32); + } + } + var bodyEnd = parser.index - 1; + var mask = 0; + var char = parser.currentChar; + var flagStart = parser.index; + while (isIdentifierPart(char)) { + switch (char) { + case 103: + if (mask & 2) + report(parser, 34, 'g'); + mask |= 2; + break; + case 105: + if (mask & 1) + report(parser, 34, 'i'); + mask |= 1; + break; + case 109: + if (mask & 4) + report(parser, 34, 'm'); + mask |= 4; + break; + case 117: + if (mask & 16) + report(parser, 34, 'g'); + mask |= 16; + break; + case 121: + if (mask & 8) + report(parser, 34, 'y'); + mask |= 8; + break; + case 115: + if (mask & 12) + report(parser, 34, 's'); + mask |= 12; + break; + default: + report(parser, 33); + } + char = advanceChar(parser); + } + var flags = parser.source.slice(flagStart, parser.index); + var pattern = parser.source.slice(bodyStart, bodyEnd); + parser.tokenRegExp = { pattern: pattern, flags: flags }; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = validate(parser, pattern, flags); + return 65540; + } + function validate(parser, pattern, flags) { + try { + return new RegExp(pattern, flags); + } + catch (e) { + report(parser, 32); + } + } + + function scanString(parser, context, quote) { + var start = parser.index; + var ret = ''; + var char = advanceChar(parser); + var marker = parser.index; + while ((CharTypes[char] & 8) === 0) { + if (char === quote) { + ret += parser.source.slice(marker, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(start, parser.index); + parser.tokenValue = ret; + return 134283267; + } + if ((char & 8) === 8 && char === 92) { + ret += parser.source.slice(marker, parser.index); + char = advanceChar(parser); + if (char < 0x7f || char === 8232 || char === 8233) { + var code = parseEscape(parser, context, char); + if (code >= 0) + ret += fromCodePoint(code); + else + handleStringError(parser, code, 0); + } + else { + ret += fromCodePoint(char); + } + marker = parser.index + 1; + } + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + report(parser, 14); + } + function parseEscape(parser, context, first) { + switch (first) { + case 98: + return 8; + case 102: + return 12; + case 114: + return 13; + case 110: + return 10; + case 116: + return 9; + case 118: + return 11; + case 13: { + if (parser.index < parser.end) { + var nextChar = parser.source.charCodeAt(parser.index + 1); + if (nextChar === 10) { + parser.index = parser.index + 1; + parser.currentChar = nextChar; + } + } + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + return -1; + case 48: + case 49: + case 50: + case 51: { + var code = first - 48; + var index = parser.index + 1; + var column = parser.column + 1; + if (index < parser.end) { + var next = parser.source.charCodeAt(index); + if ((CharTypes[next] & 32) === 0) { + if ((code !== 0 || CharTypes[next] & 512) && context & 1024) + return -2; + } + else if (context & 1024) { + return -2; + } + else { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + if (index < parser.end) { + var next_1 = parser.source.charCodeAt(index); + if (CharTypes[next_1] & 32) { + parser.currentChar = next_1; + code = (code << 3) | (next_1 - 48); + index++; + column++; + } + } + parser.flags |= 64; + parser.index = index - 1; + parser.column = column - 1; + } + } + return code; + } + case 52: + case 53: + case 54: + case 55: { + if (context & 1024) + return -2; + var code = first - 48; + var index = parser.index + 1; + var column = parser.column + 1; + if (index < parser.end) { + var next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + code = (code << 3) | (next - 48); + parser.currentChar = next; + parser.index = index; + parser.column = column; + } + } + parser.flags |= 64; + return code; + } + case 120: { + var ch1 = advanceChar(parser); + if ((CharTypes[ch1] & 64) === 0) + return -4; + var hi = toHex(ch1); + var ch2 = advanceChar(parser); + if ((CharTypes[ch2] & 64) === 0) + return -4; + var lo = toHex(ch2); + return (hi << 4) | lo; + } + case 117: { + var ch = advanceChar(parser); + if (parser.currentChar === 123) { + var code = 0; + while ((CharTypes[advanceChar(parser)] & 64) !== 0) { + code = (code << 4) | toHex(parser.currentChar); + if (code > 1114111) + return -5; + } + if (parser.currentChar < 1 || parser.currentChar !== 125) { + return -4; + } + return code; + } + else { + if ((CharTypes[ch] & 64) === 0) + return -4; + var ch2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[ch2] & 64) === 0) + return -4; + var ch3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[ch3] & 64) === 0) + return -4; + var ch4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[ch4] & 64) === 0) + return -4; + parser.index += 3; + parser.column += 3; + parser.currentChar = parser.source.charCodeAt(parser.index); + return (toHex(ch) << 12) | (toHex(ch2) << 8) | (toHex(ch3) << 4) | toHex(ch4); + } + } + case 56: + case 57: + if ((context & 256) === 0) + return -3; + default: + return first; + } + } + function handleStringError(state, code, isTemplate) { + switch (code) { + case -1: + return; + case -2: + report(state, isTemplate ? 2 : 1); + case -3: + report(state, 13); + case -4: + report(state, 6); + case -5: + report(state, 101); + } + } + + function scanTemplate(parser, context) { + var start = parser.index; + var token = 67174409; + var ret = ''; + var char = advanceChar(parser); + while (char !== 96) { + if (char === 36 && parser.source.charCodeAt(parser.index + 1) === 123) { + advanceChar(parser); + token = 67174408; + break; + } + else if ((char & 8) === 8 && char === 92) { + char = advanceChar(parser); + if (char > 0x7e) { + ret += fromCodePoint(char); + } + else { + var code = parseEscape(parser, context | 1024, char); + if (code >= 0) { + ret += fromCodePoint(code); + } + else if (code !== -1 && context & 65536) { + ret = undefined; + char = scanBadTemplate(parser, char); + if (char < 0) + token = 67174408; + break; + } + else { + handleStringError(parser, code, 1); + } + } + } + else { + if (parser.index < parser.end && + char === 13 && + parser.source.charCodeAt(parser.index) === 10) { + ret += fromCodePoint(char); + parser.currentChar = parser.source.charCodeAt(++parser.index); + } + if (((char & 83) < 3 && char === 10) || (char ^ 8232) <= 1) { + parser.column = -1; + parser.line++; + } + ret += fromCodePoint(char); + } + if (parser.index >= parser.end) + report(parser, 15); + char = advanceChar(parser); + } + advanceChar(parser); + parser.tokenValue = ret; + parser.tokenRaw = parser.source.slice(start + 1, parser.index - (token === 67174409 ? 1 : 2)); + return token; + } + function scanBadTemplate(parser, ch) { + while (ch !== 96) { + switch (ch) { + case 36: { + var index = parser.index + 1; + if (index < parser.end && parser.source.charCodeAt(index) === 123) { + parser.index = index; + parser.column++; + return -ch; + } + break; + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + } + if (parser.index >= parser.end) + report(parser, 15); + ch = advanceChar(parser); + } + return ch; + } + function scanTemplateTail(parser, context) { + if (parser.index >= parser.end) + report(parser, 0); + parser.index--; + parser.column--; + return scanTemplate(parser, context); + } + + function scanNumber(parser, context, kind) { + var char = parser.currentChar; + var value = 0; + var digit = 9; + var atStart = kind & 64 ? 0 : 1; + var digits = 0; + var allowSeparator = 0; + if (kind & 64) { + value = '.' + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 110) + report(parser, 11); + } + else { + if (char === 48) { + char = advanceChar(parser); + if ((char | 32) === 120) { + kind = 8 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (64 | 4096)) { + if (char === 95) { + if (!allowSeparator) + report(parser, 146); + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 0x10 + toHex(char); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 19 : 147); + } + } + else if ((char | 32) === 111) { + kind = 4 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (32 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 8 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if ((char | 32) === 98) { + kind = 2 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (128 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 2 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if (CharTypes[char] & 32) { + if (context & 1024) + report(parser, 1); + kind = 1; + while (CharTypes[char] & 16) { + if (CharTypes[char] & 512) { + kind = 32; + atStart = 0; + break; + } + value = value * 8 + (char - 48); + char = advanceChar(parser); + } + } + else if (CharTypes[char] & 512) { + if (context & 1024) + report(parser, 1); + parser.flags |= 64; + kind = 32; + } + else if (char === 95) { + report(parser, 0); + } + } + if (kind & 48) { + if (atStart) { + while (digit >= 0 && CharTypes[char] & (16 | 4096)) { + if (char === 95) { + char = advanceChar(parser); + if (char === 95 || kind & 32) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + continue; + } + allowSeparator = 0; + value = 10 * value + (char - 48); + char = advanceChar(parser); + --digit; + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + if (digit >= 0 && !isIdentifierStart(char) && char !== 46) { + parser.tokenValue = value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + } + value += scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 46) { + if (advanceChar(parser) === 95) + report(parser, 0); + kind = 64; + value += '.' + scanDecimalDigitsOrSeparator(parser, parser.currentChar); + char = parser.currentChar; + } + } + } + var end = parser.index; + var isBigInt = 0; + if (char === 110 && kind & 128) { + isBigInt = 1; + char = advanceChar(parser); + } + else { + if ((char | 32) === 101) { + char = advanceChar(parser); + if (CharTypes[char] & 256) + char = advanceChar(parser); + var index = parser.index; + if ((CharTypes[char] & 16) < 1) + report(parser, 10); + value += parser.source.substring(end, index) + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + } + } + if ((parser.index < parser.end && CharTypes[char] & 16) || isIdentifierStart(char)) { + report(parser, 12); + } + if (isBigInt) { + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = BigInt(value); + return 134283389; + } + parser.tokenValue = + kind & (1 | 2 | 8 | 4) + ? value + : kind & 32 + ? parseFloat(parser.source.substring(parser.tokenPos, parser.index)) + : +value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + function scanDecimalDigitsOrSeparator(parser, char) { + var allowSeparator = 0; + var start = parser.index; + var ret = ''; + while (CharTypes[char] & (16 | 4096)) { + if (char === 95) { + var index = parser.index; + char = advanceChar(parser); + if (char === 95) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + ret += parser.source.substring(start, index); + start = parser.index; + continue; + } + allowSeparator = 0; + char = advanceChar(parser); + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + return ret + parser.source.substring(start, parser.index); + } + + var KeywordDescTable = [ + 'end of source', + 'identifier', 'number', 'string', 'regular expression', + 'false', 'true', 'null', + 'template continuation', 'template tail', + '=>', '(', '{', '.', '...', '}', ')', ';', ',', '[', ']', ':', '?', '\'', '"', '', + '++', '--', + '=', '<<=', '>>=', '>>>=', '**=', '+=', '-=', '*=', '/=', '%=', '^=', '|=', + '&=', '||=', '&&=', '??=', + 'typeof', 'delete', 'void', '!', '~', '+', '-', 'in', 'instanceof', '*', '%', '/', '**', '&&', + '||', '===', '!==', '==', '!=', '<=', '>=', '<', '>', '<<', '>>', '>>>', '&', '|', '^', + 'var', 'let', 'const', + 'break', 'case', 'catch', 'class', 'continue', 'debugger', 'default', 'do', 'else', 'export', + 'extends', 'finally', 'for', 'function', 'if', 'import', 'new', 'return', 'super', 'switch', + 'this', 'throw', 'try', 'while', 'with', + 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield', + 'as', 'async', 'await', 'constructor', 'get', 'set', 'from', 'of', + 'enum', 'eval', 'arguments', 'escaped keyword', 'escaped future reserved keyword', 'reserved if strict', '#', + 'BigIntLiteral', '??', '?.', 'WhiteSpace', 'Illegal', 'LineTerminator', 'PrivateField', + 'Template', '@', 'target', 'meta', 'LineFeed', 'Escaped', 'JSXText' + ]; + var descKeywordTable = Object.create(null, { + this: { value: 86113 }, + function: { value: 86106 }, + if: { value: 20571 }, + return: { value: 20574 }, + var: { value: 86090 }, + else: { value: 20565 }, + for: { value: 20569 }, + new: { value: 86109 }, + in: { value: 8738868 }, + typeof: { value: 16863277 }, + while: { value: 20580 }, + case: { value: 20558 }, + break: { value: 20557 }, + try: { value: 20579 }, + catch: { value: 20559 }, + delete: { value: 16863278 }, + throw: { value: 86114 }, + switch: { value: 86112 }, + continue: { value: 20561 }, + default: { value: 20563 }, + instanceof: { value: 8476725 }, + do: { value: 20564 }, + void: { value: 16863279 }, + finally: { value: 20568 }, + async: { value: 209007 }, + await: { value: 209008 }, + class: { value: 86096 }, + const: { value: 86092 }, + constructor: { value: 12401 }, + debugger: { value: 20562 }, + export: { value: 20566 }, + extends: { value: 20567 }, + false: { value: 86021 }, + from: { value: 12404 }, + get: { value: 12402 }, + implements: { value: 36966 }, + import: { value: 86108 }, + interface: { value: 36967 }, + let: { value: 241739 }, + null: { value: 86023 }, + of: { value: 274549 }, + package: { value: 36968 }, + private: { value: 36969 }, + protected: { value: 36970 }, + public: { value: 36971 }, + set: { value: 12403 }, + static: { value: 36972 }, + super: { value: 86111 }, + true: { value: 86022 }, + with: { value: 20581 }, + yield: { value: 241773 }, + enum: { value: 86134 }, + eval: { value: 537079927 }, + as: { value: 77934 }, + arguments: { value: 537079928 }, + target: { value: 143494 }, + meta: { value: 143495 }, + }); + + function scanIdentifier(parser, context, isValidAsKeyword) { + while (isIdPart[advanceChar(parser)]) { } + parser.tokenValue = parser.source.slice(parser.tokenPos, parser.index); + return parser.currentChar !== 92 && parser.currentChar < 0x7e + ? descKeywordTable[parser.tokenValue] || 208897 + : scanIdentifierSlowCase(parser, context, 0, isValidAsKeyword); + } + function scanUnicodeIdentifier(parser, context) { + var cookedChar = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(cookedChar)) + report(parser, 4); + parser.tokenValue = fromCodePoint(cookedChar); + return scanIdentifierSlowCase(parser, context, 1, CharTypes[cookedChar] & 4); + } + function scanIdentifierSlowCase(parser, context, hasEscape, isValidAsKeyword) { + var start = parser.index; + while (parser.index < parser.end) { + if (parser.currentChar === 92) { + parser.tokenValue += parser.source.slice(start, parser.index); + hasEscape = 1; + var code = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(code)) + report(parser, 4); + isValidAsKeyword = isValidAsKeyword && CharTypes[code] & 4; + parser.tokenValue += fromCodePoint(code); + start = parser.index; + } + else if (isIdentifierPart(parser.currentChar) || consumeMultiUnitCodePoint(parser, parser.currentChar)) { + advanceChar(parser); + } + else { + break; + } + } + if (parser.index <= parser.end) { + parser.tokenValue += parser.source.slice(start, parser.index); + } + var length = parser.tokenValue.length; + if (isValidAsKeyword && length >= 2 && length <= 11) { + var token = descKeywordTable[parser.tokenValue]; + if (token === void 0) + return 208897; + if (!hasEscape) + return token; + if (context & 1024) { + return token === 209008 && (context & (2048 | 4194304)) === 0 + ? token + : token === 36972 + ? 122 + : (token & 36864) === 36864 + ? 122 + : 121; + } + if (context & 1073741824 && + (context & 8192) === 0 && + (token & 20480) === 20480) + return token; + if (token === 241773) { + return context & 1073741824 + ? 143483 + : context & 2097152 + ? 121 + : token; + } + return token === 209007 && context & 1073741824 + ? 143483 + : (token & 36864) === 36864 + ? token + : token === 209008 && (context & 4194304) === 0 + ? token + : 121; + } + return 208897; + } + function scanPrivateIdentifier(parser) { + if (!isIdentifierStart(advanceChar(parser))) + report(parser, 93); + return 131; + } + function scanIdentifierUnicodeEscape(parser) { + if (parser.source.charCodeAt(parser.index + 1) !== 117) { + report(parser, 4); + } + parser.currentChar = parser.source.charCodeAt((parser.index += 2)); + return scanUnicodeEscape(parser); + } + function scanUnicodeEscape(parser) { + var codePoint = 0; + var char = parser.currentChar; + if (char === 123) { + var begin = parser.index - 2; + while (CharTypes[advanceChar(parser)] & 64) { + codePoint = (codePoint << 4) | toHex(parser.currentChar); + if (codePoint > 1114111) + reportScannerError(begin, parser.line, parser.index + 1, 101); + } + if (parser.currentChar !== 125) { + reportScannerError(begin, parser.line, parser.index - 1, 6); + } + advanceChar(parser); + return codePoint; + } + if ((CharTypes[char] & 64) === 0) + report(parser, 6); + var char2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[char2] & 64) === 0) + report(parser, 6); + var char3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[char3] & 64) === 0) + report(parser, 6); + var char4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[char4] & 64) === 0) + report(parser, 6); + codePoint = (toHex(char) << 12) | (toHex(char2) << 8) | (toHex(char3) << 4) | toHex(char4); + parser.currentChar = parser.source.charCodeAt((parser.index += 4)); + return codePoint; + } + + var TokenLookup = [ + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 136, + 128, + 128, + 130, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 16842800, + 134283267, + 131, + 208897, + 8457015, + 8455751, + 134283267, + 67174411, + 16, + 8457014, + 25233970, + 18, + 25233971, + 67108877, + 8457016, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 21, + 1074790417, + 8456258, + 1077936157, + 8456259, + 22, + 133, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 69271571, + 137, + 20, + 8455497, + 208897, + 132, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 208897, + 4096, + 208897, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 4096, + 4096, + 208897, + 4096, + 4096, + 208897, + 4096, + 4096, + 2162700, + 8455240, + 1074790415, + 16842801, + 129 + ]; + function nextToken(parser, context) { + parser.flags = (parser.flags | 1) ^ 1; + parser.startPos = parser.index; + parser.startColumn = parser.column; + parser.startLine = parser.line; + parser.token = scanSingleToken(parser, context, 0); + if (parser.onToken && parser.token !== 1048576) { + var loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onToken(convertTokenType(parser.token), parser.tokenPos, parser.index, loc); + } + } + function scanSingleToken(parser, context, state) { + var isStartOfLine = parser.index === 0; + var source = parser.source; + var startPos = parser.index; + var startLine = parser.line; + var startColumn = parser.column; + while (parser.index < parser.end) { + parser.tokenPos = parser.index; + parser.colPos = parser.column; + parser.linePos = parser.line; + var char = parser.currentChar; + if (char <= 0x7e) { + var token = TokenLookup[char]; + switch (token) { + case 67174411: + case 16: + case 2162700: + case 1074790415: + case 69271571: + case 20: + case 21: + case 1074790417: + case 18: + case 16842801: + case 133: + case 129: + advanceChar(parser); + return token; + case 208897: + return scanIdentifier(parser, context, 0); + case 4096: + return scanIdentifier(parser, context, 1); + case 134283266: + return scanNumber(parser, context, 16 | 128); + case 134283267: + return scanString(parser, context, char); + case 132: + return scanTemplate(parser, context); + case 137: + return scanUnicodeIdentifier(parser, context); + case 131: + return scanPrivateIdentifier(parser); + case 128: + advanceChar(parser); + break; + case 130: + state |= 1 | 4; + scanNewLine(parser); + break; + case 136: + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + break; + case 8456258: + var ch = advanceChar(parser); + if (parser.index < parser.end) { + if (ch === 60) { + if (parser.index < parser.end && advanceChar(parser) === 61) { + advanceChar(parser); + return 4194334; + } + return 8456516; + } + else if (ch === 61) { + advanceChar(parser); + return 8456000; + } + if (ch === 33) { + var index = parser.index + 1; + if (index + 1 < parser.end && + source.charCodeAt(index) === 45 && + source.charCodeAt(index + 1) == 45) { + parser.column += 3; + parser.currentChar = source.charCodeAt((parser.index += 3)); + state = skipSingleHTMLComment(parser, source, state, context, 2, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 8456258; + } + if (ch === 47) { + if ((context & 16) < 1) + return 8456258; + var index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (ch === 42 || ch === 47) + break; + } + advanceChar(parser); + return 25; + } + } + return 8456258; + case 1077936157: { + advanceChar(parser); + var ch_1 = parser.currentChar; + if (ch_1 === 61) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 8455996; + } + return 8455998; + } + if (ch_1 === 62) { + advanceChar(parser); + return 10; + } + return 1077936157; + } + case 16842800: + if (advanceChar(parser) !== 61) { + return 16842800; + } + if (advanceChar(parser) !== 61) { + return 8455999; + } + advanceChar(parser); + return 8455997; + case 8457015: + if (advanceChar(parser) !== 61) + return 8457015; + advanceChar(parser); + return 4194342; + case 8457014: { + advanceChar(parser); + if (parser.index >= parser.end) + return 8457014; + var ch_2 = parser.currentChar; + if (ch_2 === 61) { + advanceChar(parser); + return 4194340; + } + if (ch_2 !== 42) + return 8457014; + if (advanceChar(parser) !== 61) + return 8457273; + advanceChar(parser); + return 4194337; + } + case 8455497: + if (advanceChar(parser) !== 61) + return 8455497; + advanceChar(parser); + return 4194343; + case 25233970: { + advanceChar(parser); + var ch_3 = parser.currentChar; + if (ch_3 === 43) { + advanceChar(parser); + return 33619995; + } + if (ch_3 === 61) { + advanceChar(parser); + return 4194338; + } + return 25233970; + } + case 25233971: { + advanceChar(parser); + var ch_4 = parser.currentChar; + if (ch_4 === 45) { + advanceChar(parser); + if ((state & 1 || isStartOfLine) && parser.currentChar === 62) { + if ((context & 256) === 0) + report(parser, 108); + advanceChar(parser); + state = skipSingleHTMLComment(parser, source, state, context, 3, startPos, startLine, startColumn); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 33619996; + } + if (ch_4 === 61) { + advanceChar(parser); + return 4194339; + } + return 25233971; + } + case 8457016: { + advanceChar(parser); + if (parser.index < parser.end) { + var ch_5 = parser.currentChar; + if (ch_5 === 47) { + advanceChar(parser); + state = skipSingleLineComment(parser, source, state, 0, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (ch_5 === 42) { + advanceChar(parser); + state = skipMultiLineComment(parser, source, state); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (context & 32768) { + return scanRegularExpression(parser, context); + } + if (ch_5 === 61) { + advanceChar(parser); + return 4259877; + } + } + return 8457016; + } + case 67108877: + var next = advanceChar(parser); + if (next >= 48 && next <= 57) + return scanNumber(parser, context, 64 | 16); + if (next === 46) { + var index = parser.index + 1; + if (index < parser.end && source.charCodeAt(index) === 46) { + parser.column += 2; + parser.currentChar = source.charCodeAt((parser.index += 2)); + return 14; + } + } + return 67108877; + case 8455240: { + advanceChar(parser); + var ch_6 = parser.currentChar; + if (ch_6 === 124) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194346; + } + return 8979003; + } + if (ch_6 === 61) { + advanceChar(parser); + return 4194344; + } + return 8455240; + } + case 8456259: { + advanceChar(parser); + var ch_7 = parser.currentChar; + if (ch_7 === 61) { + advanceChar(parser); + return 8456001; + } + if (ch_7 !== 62) + return 8456259; + advanceChar(parser); + if (parser.index < parser.end) { + var ch_8 = parser.currentChar; + if (ch_8 === 62) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 4194336; + } + return 8456518; + } + if (ch_8 === 61) { + advanceChar(parser); + return 4194335; + } + } + return 8456517; + } + case 8455751: { + advanceChar(parser); + var ch_9 = parser.currentChar; + if (ch_9 === 38) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194347; + } + return 8979258; + } + if (ch_9 === 61) { + advanceChar(parser); + return 4194345; + } + return 8455751; + } + case 22: { + var ch_10 = advanceChar(parser); + if (ch_10 === 63) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194348; + } + return 276889982; + } + if (ch_10 === 46) { + var index = parser.index + 1; + if (index < parser.end) { + ch_10 = source.charCodeAt(index); + if (!(ch_10 >= 48 && ch_10 <= 57)) { + advanceChar(parser); + return 67108991; + } + } + } + return 22; + } + } + } + else { + if ((char ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + continue; + } + if ((char & 0xfc00) === 0xd800 || ((unicodeLookup[(char >>> 5) + 34816] >>> char) & 31 & 1) !== 0) { + if ((char & 0xfc00) === 0xdc00) { + char = ((char & 0x3ff) << 10) | (char & 0x3ff) | 0x10000; + if (((unicodeLookup[(char >>> 5) + 0] >>> char) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(char)); + } + parser.index++; + parser.currentChar = char; + } + parser.column++; + parser.tokenValue = ''; + return scanIdentifierSlowCase(parser, context, 0, 0); + } + if (isExoticECMAScriptWhitespace(char)) { + advanceChar(parser); + continue; + } + report(parser, 18, fromCodePoint(char)); + } + } + return 1048576; + } + + var entities = { + AElig: '\u00C6', + AMP: '\u0026', + Aacute: '\u00C1', + Abreve: '\u0102', + Acirc: '\u00C2', + Acy: '\u0410', + Afr: '\uD835\uDD04', + Agrave: '\u00C0', + Alpha: '\u0391', + Amacr: '\u0100', + And: '\u2A53', + Aogon: '\u0104', + Aopf: '\uD835\uDD38', + ApplyFunction: '\u2061', + Aring: '\u00C5', + Ascr: '\uD835\uDC9C', + Assign: '\u2254', + Atilde: '\u00C3', + Auml: '\u00C4', + Backslash: '\u2216', + Barv: '\u2AE7', + Barwed: '\u2306', + Bcy: '\u0411', + Because: '\u2235', + Bernoullis: '\u212C', + Beta: '\u0392', + Bfr: '\uD835\uDD05', + Bopf: '\uD835\uDD39', + Breve: '\u02D8', + Bscr: '\u212C', + Bumpeq: '\u224E', + CHcy: '\u0427', + COPY: '\u00A9', + Cacute: '\u0106', + Cap: '\u22D2', + CapitalDifferentialD: '\u2145', + Cayleys: '\u212D', + Ccaron: '\u010C', + Ccedil: '\u00C7', + Ccirc: '\u0108', + Cconint: '\u2230', + Cdot: '\u010A', + Cedilla: '\u00B8', + CenterDot: '\u00B7', + Cfr: '\u212D', + Chi: '\u03A7', + CircleDot: '\u2299', + CircleMinus: '\u2296', + CirclePlus: '\u2295', + CircleTimes: '\u2297', + ClockwiseContourIntegral: '\u2232', + CloseCurlyDoubleQuote: '\u201D', + CloseCurlyQuote: '\u2019', + Colon: '\u2237', + Colone: '\u2A74', + Congruent: '\u2261', + Conint: '\u222F', + ContourIntegral: '\u222E', + Copf: '\u2102', + Coproduct: '\u2210', + CounterClockwiseContourIntegral: '\u2233', + Cross: '\u2A2F', + Cscr: '\uD835\uDC9E', + Cup: '\u22D3', + CupCap: '\u224D', + DD: '\u2145', + DDotrahd: '\u2911', + DJcy: '\u0402', + DScy: '\u0405', + DZcy: '\u040F', + Dagger: '\u2021', + Darr: '\u21A1', + Dashv: '\u2AE4', + Dcaron: '\u010E', + Dcy: '\u0414', + Del: '\u2207', + Delta: '\u0394', + Dfr: '\uD835\uDD07', + DiacriticalAcute: '\u00B4', + DiacriticalDot: '\u02D9', + DiacriticalDoubleAcute: '\u02DD', + DiacriticalGrave: '\u0060', + DiacriticalTilde: '\u02DC', + Diamond: '\u22C4', + DifferentialD: '\u2146', + Dopf: '\uD835\uDD3B', + Dot: '\u00A8', + DotDot: '\u20DC', + DotEqual: '\u2250', + DoubleContourIntegral: '\u222F', + DoubleDot: '\u00A8', + DoubleDownArrow: '\u21D3', + DoubleLeftArrow: '\u21D0', + DoubleLeftRightArrow: '\u21D4', + DoubleLeftTee: '\u2AE4', + DoubleLongLeftArrow: '\u27F8', + DoubleLongLeftRightArrow: '\u27FA', + DoubleLongRightArrow: '\u27F9', + DoubleRightArrow: '\u21D2', + DoubleRightTee: '\u22A8', + DoubleUpArrow: '\u21D1', + DoubleUpDownArrow: '\u21D5', + DoubleVerticalBar: '\u2225', + DownArrow: '\u2193', + DownArrowBar: '\u2913', + DownArrowUpArrow: '\u21F5', + DownBreve: '\u0311', + DownLeftRightVector: '\u2950', + DownLeftTeeVector: '\u295E', + DownLeftVector: '\u21BD', + DownLeftVectorBar: '\u2956', + DownRightTeeVector: '\u295F', + DownRightVector: '\u21C1', + DownRightVectorBar: '\u2957', + DownTee: '\u22A4', + DownTeeArrow: '\u21A7', + Downarrow: '\u21D3', + Dscr: '\uD835\uDC9F', + Dstrok: '\u0110', + ENG: '\u014A', + ETH: '\u00D0', + Eacute: '\u00C9', + Ecaron: '\u011A', + Ecirc: '\u00CA', + Ecy: '\u042D', + Edot: '\u0116', + Efr: '\uD835\uDD08', + Egrave: '\u00C8', + Element: '\u2208', + Emacr: '\u0112', + EmptySmallSquare: '\u25FB', + EmptyVerySmallSquare: '\u25AB', + Eogon: '\u0118', + Eopf: '\uD835\uDD3C', + Epsilon: '\u0395', + Equal: '\u2A75', + EqualTilde: '\u2242', + Equilibrium: '\u21CC', + Escr: '\u2130', + Esim: '\u2A73', + Eta: '\u0397', + Euml: '\u00CB', + Exists: '\u2203', + ExponentialE: '\u2147', + Fcy: '\u0424', + Ffr: '\uD835\uDD09', + FilledSmallSquare: '\u25FC', + FilledVerySmallSquare: '\u25AA', + Fopf: '\uD835\uDD3D', + ForAll: '\u2200', + Fouriertrf: '\u2131', + Fscr: '\u2131', + GJcy: '\u0403', + GT: '\u003E', + Gamma: '\u0393', + Gammad: '\u03DC', + Gbreve: '\u011E', + Gcedil: '\u0122', + Gcirc: '\u011C', + Gcy: '\u0413', + Gdot: '\u0120', + Gfr: '\uD835\uDD0A', + Gg: '\u22D9', + Gopf: '\uD835\uDD3E', + GreaterEqual: '\u2265', + GreaterEqualLess: '\u22DB', + GreaterFullEqual: '\u2267', + GreaterGreater: '\u2AA2', + GreaterLess: '\u2277', + GreaterSlantEqual: '\u2A7E', + GreaterTilde: '\u2273', + Gscr: '\uD835\uDCA2', + Gt: '\u226B', + HARDcy: '\u042A', + Hacek: '\u02C7', + Hat: '\u005E', + Hcirc: '\u0124', + Hfr: '\u210C', + HilbertSpace: '\u210B', + Hopf: '\u210D', + HorizontalLine: '\u2500', + Hscr: '\u210B', + Hstrok: '\u0126', + HumpDownHump: '\u224E', + HumpEqual: '\u224F', + IEcy: '\u0415', + IJlig: '\u0132', + IOcy: '\u0401', + Iacute: '\u00CD', + Icirc: '\u00CE', + Icy: '\u0418', + Idot: '\u0130', + Ifr: '\u2111', + Igrave: '\u00CC', + Im: '\u2111', + Imacr: '\u012A', + ImaginaryI: '\u2148', + Implies: '\u21D2', + Int: '\u222C', + Integral: '\u222B', + Intersection: '\u22C2', + InvisibleComma: '\u2063', + InvisibleTimes: '\u2062', + Iogon: '\u012E', + Iopf: '\uD835\uDD40', + Iota: '\u0399', + Iscr: '\u2110', + Itilde: '\u0128', + Iukcy: '\u0406', + Iuml: '\u00CF', + Jcirc: '\u0134', + Jcy: '\u0419', + Jfr: '\uD835\uDD0D', + Jopf: '\uD835\uDD41', + Jscr: '\uD835\uDCA5', + Jsercy: '\u0408', + Jukcy: '\u0404', + KHcy: '\u0425', + KJcy: '\u040C', + Kappa: '\u039A', + Kcedil: '\u0136', + Kcy: '\u041A', + Kfr: '\uD835\uDD0E', + Kopf: '\uD835\uDD42', + Kscr: '\uD835\uDCA6', + LJcy: '\u0409', + LT: '\u003C', + Lacute: '\u0139', + Lambda: '\u039B', + Lang: '\u27EA', + Laplacetrf: '\u2112', + Larr: '\u219E', + Lcaron: '\u013D', + Lcedil: '\u013B', + Lcy: '\u041B', + LeftAngleBracket: '\u27E8', + LeftArrow: '\u2190', + LeftArrowBar: '\u21E4', + LeftArrowRightArrow: '\u21C6', + LeftCeiling: '\u2308', + LeftDoubleBracket: '\u27E6', + LeftDownTeeVector: '\u2961', + LeftDownVector: '\u21C3', + LeftDownVectorBar: '\u2959', + LeftFloor: '\u230A', + LeftRightArrow: '\u2194', + LeftRightVector: '\u294E', + LeftTee: '\u22A3', + LeftTeeArrow: '\u21A4', + LeftTeeVector: '\u295A', + LeftTriangle: '\u22B2', + LeftTriangleBar: '\u29CF', + LeftTriangleEqual: '\u22B4', + LeftUpDownVector: '\u2951', + LeftUpTeeVector: '\u2960', + LeftUpVector: '\u21BF', + LeftUpVectorBar: '\u2958', + LeftVector: '\u21BC', + LeftVectorBar: '\u2952', + Leftarrow: '\u21D0', + Leftrightarrow: '\u21D4', + LessEqualGreater: '\u22DA', + LessFullEqual: '\u2266', + LessGreater: '\u2276', + LessLess: '\u2AA1', + LessSlantEqual: '\u2A7D', + LessTilde: '\u2272', + Lfr: '\uD835\uDD0F', + Ll: '\u22D8', + Lleftarrow: '\u21DA', + Lmidot: '\u013F', + LongLeftArrow: '\u27F5', + LongLeftRightArrow: '\u27F7', + LongRightArrow: '\u27F6', + Longleftarrow: '\u27F8', + Longleftrightarrow: '\u27FA', + Longrightarrow: '\u27F9', + Lopf: '\uD835\uDD43', + LowerLeftArrow: '\u2199', + LowerRightArrow: '\u2198', + Lscr: '\u2112', + Lsh: '\u21B0', + Lstrok: '\u0141', + Lt: '\u226A', + Map: '\u2905', + Mcy: '\u041C', + MediumSpace: '\u205F', + Mellintrf: '\u2133', + Mfr: '\uD835\uDD10', + MinusPlus: '\u2213', + Mopf: '\uD835\uDD44', + Mscr: '\u2133', + Mu: '\u039C', + NJcy: '\u040A', + Nacute: '\u0143', + Ncaron: '\u0147', + Ncedil: '\u0145', + Ncy: '\u041D', + NegativeMediumSpace: '\u200B', + NegativeThickSpace: '\u200B', + NegativeThinSpace: '\u200B', + NegativeVeryThinSpace: '\u200B', + NestedGreaterGreater: '\u226B', + NestedLessLess: '\u226A', + NewLine: '\u000A', + Nfr: '\uD835\uDD11', + NoBreak: '\u2060', + NonBreakingSpace: '\u00A0', + Nopf: '\u2115', + Not: '\u2AEC', + NotCongruent: '\u2262', + NotCupCap: '\u226D', + NotDoubleVerticalBar: '\u2226', + NotElement: '\u2209', + NotEqual: '\u2260', + NotEqualTilde: '\u2242\u0338', + NotExists: '\u2204', + NotGreater: '\u226F', + NotGreaterEqual: '\u2271', + NotGreaterFullEqual: '\u2267\u0338', + NotGreaterGreater: '\u226B\u0338', + NotGreaterLess: '\u2279', + NotGreaterSlantEqual: '\u2A7E\u0338', + NotGreaterTilde: '\u2275', + NotHumpDownHump: '\u224E\u0338', + NotHumpEqual: '\u224F\u0338', + NotLeftTriangle: '\u22EA', + NotLeftTriangleBar: '\u29CF\u0338', + NotLeftTriangleEqual: '\u22EC', + NotLess: '\u226E', + NotLessEqual: '\u2270', + NotLessGreater: '\u2278', + NotLessLess: '\u226A\u0338', + NotLessSlantEqual: '\u2A7D\u0338', + NotLessTilde: '\u2274', + NotNestedGreaterGreater: '\u2AA2\u0338', + NotNestedLessLess: '\u2AA1\u0338', + NotPrecedes: '\u2280', + NotPrecedesEqual: '\u2AAF\u0338', + NotPrecedesSlantEqual: '\u22E0', + NotReverseElement: '\u220C', + NotRightTriangle: '\u22EB', + NotRightTriangleBar: '\u29D0\u0338', + NotRightTriangleEqual: '\u22ED', + NotSquareSubset: '\u228F\u0338', + NotSquareSubsetEqual: '\u22E2', + NotSquareSuperset: '\u2290\u0338', + NotSquareSupersetEqual: '\u22E3', + NotSubset: '\u2282\u20D2', + NotSubsetEqual: '\u2288', + NotSucceeds: '\u2281', + NotSucceedsEqual: '\u2AB0\u0338', + NotSucceedsSlantEqual: '\u22E1', + NotSucceedsTilde: '\u227F\u0338', + NotSuperset: '\u2283\u20D2', + NotSupersetEqual: '\u2289', + NotTilde: '\u2241', + NotTildeEqual: '\u2244', + NotTildeFullEqual: '\u2247', + NotTildeTilde: '\u2249', + NotVerticalBar: '\u2224', + Nscr: '\uD835\uDCA9', + Ntilde: '\u00D1', + Nu: '\u039D', + OElig: '\u0152', + Oacute: '\u00D3', + Ocirc: '\u00D4', + Ocy: '\u041E', + Odblac: '\u0150', + Ofr: '\uD835\uDD12', + Ograve: '\u00D2', + Omacr: '\u014C', + Omega: '\u03A9', + Omicron: '\u039F', + Oopf: '\uD835\uDD46', + OpenCurlyDoubleQuote: '\u201C', + OpenCurlyQuote: '\u2018', + Or: '\u2A54', + Oscr: '\uD835\uDCAA', + Oslash: '\u00D8', + Otilde: '\u00D5', + Otimes: '\u2A37', + Ouml: '\u00D6', + OverBar: '\u203E', + OverBrace: '\u23DE', + OverBracket: '\u23B4', + OverParenthesis: '\u23DC', + PartialD: '\u2202', + Pcy: '\u041F', + Pfr: '\uD835\uDD13', + Phi: '\u03A6', + Pi: '\u03A0', + PlusMinus: '\u00B1', + Poincareplane: '\u210C', + Popf: '\u2119', + Pr: '\u2ABB', + Precedes: '\u227A', + PrecedesEqual: '\u2AAF', + PrecedesSlantEqual: '\u227C', + PrecedesTilde: '\u227E', + Prime: '\u2033', + Product: '\u220F', + Proportion: '\u2237', + Proportional: '\u221D', + Pscr: '\uD835\uDCAB', + Psi: '\u03A8', + QUOT: '\u0022', + Qfr: '\uD835\uDD14', + Qopf: '\u211A', + Qscr: '\uD835\uDCAC', + RBarr: '\u2910', + REG: '\u00AE', + Racute: '\u0154', + Rang: '\u27EB', + Rarr: '\u21A0', + Rarrtl: '\u2916', + Rcaron: '\u0158', + Rcedil: '\u0156', + Rcy: '\u0420', + Re: '\u211C', + ReverseElement: '\u220B', + ReverseEquilibrium: '\u21CB', + ReverseUpEquilibrium: '\u296F', + Rfr: '\u211C', + Rho: '\u03A1', + RightAngleBracket: '\u27E9', + RightArrow: '\u2192', + RightArrowBar: '\u21E5', + RightArrowLeftArrow: '\u21C4', + RightCeiling: '\u2309', + RightDoubleBracket: '\u27E7', + RightDownTeeVector: '\u295D', + RightDownVector: '\u21C2', + RightDownVectorBar: '\u2955', + RightFloor: '\u230B', + RightTee: '\u22A2', + RightTeeArrow: '\u21A6', + RightTeeVector: '\u295B', + RightTriangle: '\u22B3', + RightTriangleBar: '\u29D0', + RightTriangleEqual: '\u22B5', + RightUpDownVector: '\u294F', + RightUpTeeVector: '\u295C', + RightUpVector: '\u21BE', + RightUpVectorBar: '\u2954', + RightVector: '\u21C0', + RightVectorBar: '\u2953', + Rightarrow: '\u21D2', + Ropf: '\u211D', + RoundImplies: '\u2970', + Rrightarrow: '\u21DB', + Rscr: '\u211B', + Rsh: '\u21B1', + RuleDelayed: '\u29F4', + SHCHcy: '\u0429', + SHcy: '\u0428', + SOFTcy: '\u042C', + Sacute: '\u015A', + Sc: '\u2ABC', + Scaron: '\u0160', + Scedil: '\u015E', + Scirc: '\u015C', + Scy: '\u0421', + Sfr: '\uD835\uDD16', + ShortDownArrow: '\u2193', + ShortLeftArrow: '\u2190', + ShortRightArrow: '\u2192', + ShortUpArrow: '\u2191', + Sigma: '\u03A3', + SmallCircle: '\u2218', + Sopf: '\uD835\uDD4A', + Sqrt: '\u221A', + Square: '\u25A1', + SquareIntersection: '\u2293', + SquareSubset: '\u228F', + SquareSubsetEqual: '\u2291', + SquareSuperset: '\u2290', + SquareSupersetEqual: '\u2292', + SquareUnion: '\u2294', + Sscr: '\uD835\uDCAE', + Star: '\u22C6', + Sub: '\u22D0', + Subset: '\u22D0', + SubsetEqual: '\u2286', + Succeeds: '\u227B', + SucceedsEqual: '\u2AB0', + SucceedsSlantEqual: '\u227D', + SucceedsTilde: '\u227F', + SuchThat: '\u220B', + Sum: '\u2211', + Sup: '\u22D1', + Superset: '\u2283', + SupersetEqual: '\u2287', + Supset: '\u22D1', + THORN: '\u00DE', + TRADE: '\u2122', + TSHcy: '\u040B', + TScy: '\u0426', + Tab: '\u0009', + Tau: '\u03A4', + Tcaron: '\u0164', + Tcedil: '\u0162', + Tcy: '\u0422', + Tfr: '\uD835\uDD17', + Therefore: '\u2234', + Theta: '\u0398', + ThickSpace: '\u205F\u200A', + ThinSpace: '\u2009', + Tilde: '\u223C', + TildeEqual: '\u2243', + TildeFullEqual: '\u2245', + TildeTilde: '\u2248', + Topf: '\uD835\uDD4B', + TripleDot: '\u20DB', + Tscr: '\uD835\uDCAF', + Tstrok: '\u0166', + Uacute: '\u00DA', + Uarr: '\u219F', + Uarrocir: '\u2949', + Ubrcy: '\u040E', + Ubreve: '\u016C', + Ucirc: '\u00DB', + Ucy: '\u0423', + Udblac: '\u0170', + Ufr: '\uD835\uDD18', + Ugrave: '\u00D9', + Umacr: '\u016A', + UnderBar: '\u005F', + UnderBrace: '\u23DF', + UnderBracket: '\u23B5', + UnderParenthesis: '\u23DD', + Union: '\u22C3', + UnionPlus: '\u228E', + Uogon: '\u0172', + Uopf: '\uD835\uDD4C', + UpArrow: '\u2191', + UpArrowBar: '\u2912', + UpArrowDownArrow: '\u21C5', + UpDownArrow: '\u2195', + UpEquilibrium: '\u296E', + UpTee: '\u22A5', + UpTeeArrow: '\u21A5', + Uparrow: '\u21D1', + Updownarrow: '\u21D5', + UpperLeftArrow: '\u2196', + UpperRightArrow: '\u2197', + Upsi: '\u03D2', + Upsilon: '\u03A5', + Uring: '\u016E', + Uscr: '\uD835\uDCB0', + Utilde: '\u0168', + Uuml: '\u00DC', + VDash: '\u22AB', + Vbar: '\u2AEB', + Vcy: '\u0412', + Vdash: '\u22A9', + Vdashl: '\u2AE6', + Vee: '\u22C1', + Verbar: '\u2016', + Vert: '\u2016', + VerticalBar: '\u2223', + VerticalLine: '\u007C', + VerticalSeparator: '\u2758', + VerticalTilde: '\u2240', + VeryThinSpace: '\u200A', + Vfr: '\uD835\uDD19', + Vopf: '\uD835\uDD4D', + Vscr: '\uD835\uDCB1', + Vvdash: '\u22AA', + Wcirc: '\u0174', + Wedge: '\u22C0', + Wfr: '\uD835\uDD1A', + Wopf: '\uD835\uDD4E', + Wscr: '\uD835\uDCB2', + Xfr: '\uD835\uDD1B', + Xi: '\u039E', + Xopf: '\uD835\uDD4F', + Xscr: '\uD835\uDCB3', + YAcy: '\u042F', + YIcy: '\u0407', + YUcy: '\u042E', + Yacute: '\u00DD', + Ycirc: '\u0176', + Ycy: '\u042B', + Yfr: '\uD835\uDD1C', + Yopf: '\uD835\uDD50', + Yscr: '\uD835\uDCB4', + Yuml: '\u0178', + ZHcy: '\u0416', + Zacute: '\u0179', + Zcaron: '\u017D', + Zcy: '\u0417', + Zdot: '\u017B', + ZeroWidthSpace: '\u200B', + Zeta: '\u0396', + Zfr: '\u2128', + Zopf: '\u2124', + Zscr: '\uD835\uDCB5', + aacute: '\u00E1', + abreve: '\u0103', + ac: '\u223E', + acE: '\u223E\u0333', + acd: '\u223F', + acirc: '\u00E2', + acute: '\u00B4', + acy: '\u0430', + aelig: '\u00E6', + af: '\u2061', + afr: '\uD835\uDD1E', + agrave: '\u00E0', + alefsym: '\u2135', + aleph: '\u2135', + alpha: '\u03B1', + amacr: '\u0101', + amalg: '\u2A3F', + amp: '\u0026', + and: '\u2227', + andand: '\u2A55', + andd: '\u2A5C', + andslope: '\u2A58', + andv: '\u2A5A', + ang: '\u2220', + ange: '\u29A4', + angle: '\u2220', + angmsd: '\u2221', + angmsdaa: '\u29A8', + angmsdab: '\u29A9', + angmsdac: '\u29AA', + angmsdad: '\u29AB', + angmsdae: '\u29AC', + angmsdaf: '\u29AD', + angmsdag: '\u29AE', + angmsdah: '\u29AF', + angrt: '\u221F', + angrtvb: '\u22BE', + angrtvbd: '\u299D', + angsph: '\u2222', + angst: '\u00C5', + angzarr: '\u237C', + aogon: '\u0105', + aopf: '\uD835\uDD52', + ap: '\u2248', + apE: '\u2A70', + apacir: '\u2A6F', + ape: '\u224A', + apid: '\u224B', + apos: '\u0027', + approx: '\u2248', + approxeq: '\u224A', + aring: '\u00E5', + ascr: '\uD835\uDCB6', + ast: '\u002A', + asymp: '\u2248', + asympeq: '\u224D', + atilde: '\u00E3', + auml: '\u00E4', + awconint: '\u2233', + awint: '\u2A11', + bNot: '\u2AED', + backcong: '\u224C', + backepsilon: '\u03F6', + backprime: '\u2035', + backsim: '\u223D', + backsimeq: '\u22CD', + barvee: '\u22BD', + barwed: '\u2305', + barwedge: '\u2305', + bbrk: '\u23B5', + bbrktbrk: '\u23B6', + bcong: '\u224C', + bcy: '\u0431', + bdquo: '\u201E', + becaus: '\u2235', + because: '\u2235', + bemptyv: '\u29B0', + bepsi: '\u03F6', + bernou: '\u212C', + beta: '\u03B2', + beth: '\u2136', + between: '\u226C', + bfr: '\uD835\uDD1F', + bigcap: '\u22C2', + bigcirc: '\u25EF', + bigcup: '\u22C3', + bigodot: '\u2A00', + bigoplus: '\u2A01', + bigotimes: '\u2A02', + bigsqcup: '\u2A06', + bigstar: '\u2605', + bigtriangledown: '\u25BD', + bigtriangleup: '\u25B3', + biguplus: '\u2A04', + bigvee: '\u22C1', + bigwedge: '\u22C0', + bkarow: '\u290D', + blacklozenge: '\u29EB', + blacksquare: '\u25AA', + blacktriangle: '\u25B4', + blacktriangledown: '\u25BE', + blacktriangleleft: '\u25C2', + blacktriangleright: '\u25B8', + blank: '\u2423', + blk12: '\u2592', + blk14: '\u2591', + blk34: '\u2593', + block: '\u2588', + bne: '\u003D\u20E5', + bnequiv: '\u2261\u20E5', + bnot: '\u2310', + bopf: '\uD835\uDD53', + bot: '\u22A5', + bottom: '\u22A5', + bowtie: '\u22C8', + boxDL: '\u2557', + boxDR: '\u2554', + boxDl: '\u2556', + boxDr: '\u2553', + boxH: '\u2550', + boxHD: '\u2566', + boxHU: '\u2569', + boxHd: '\u2564', + boxHu: '\u2567', + boxUL: '\u255D', + boxUR: '\u255A', + boxUl: '\u255C', + boxUr: '\u2559', + boxV: '\u2551', + boxVH: '\u256C', + boxVL: '\u2563', + boxVR: '\u2560', + boxVh: '\u256B', + boxVl: '\u2562', + boxVr: '\u255F', + boxbox: '\u29C9', + boxdL: '\u2555', + boxdR: '\u2552', + boxdl: '\u2510', + boxdr: '\u250C', + boxh: '\u2500', + boxhD: '\u2565', + boxhU: '\u2568', + boxhd: '\u252C', + boxhu: '\u2534', + boxminus: '\u229F', + boxplus: '\u229E', + boxtimes: '\u22A0', + boxuL: '\u255B', + boxuR: '\u2558', + boxul: '\u2518', + boxur: '\u2514', + boxv: '\u2502', + boxvH: '\u256A', + boxvL: '\u2561', + boxvR: '\u255E', + boxvh: '\u253C', + boxvl: '\u2524', + boxvr: '\u251C', + bprime: '\u2035', + breve: '\u02D8', + brvbar: '\u00A6', + bscr: '\uD835\uDCB7', + bsemi: '\u204F', + bsim: '\u223D', + bsime: '\u22CD', + bsol: '\u005C', + bsolb: '\u29C5', + bsolhsub: '\u27C8', + bull: '\u2022', + bullet: '\u2022', + bump: '\u224E', + bumpE: '\u2AAE', + bumpe: '\u224F', + bumpeq: '\u224F', + cacute: '\u0107', + cap: '\u2229', + capand: '\u2A44', + capbrcup: '\u2A49', + capcap: '\u2A4B', + capcup: '\u2A47', + capdot: '\u2A40', + caps: '\u2229\uFE00', + caret: '\u2041', + caron: '\u02C7', + ccaps: '\u2A4D', + ccaron: '\u010D', + ccedil: '\u00E7', + ccirc: '\u0109', + ccups: '\u2A4C', + ccupssm: '\u2A50', + cdot: '\u010B', + cedil: '\u00B8', + cemptyv: '\u29B2', + cent: '\u00A2', + centerdot: '\u00B7', + cfr: '\uD835\uDD20', + chcy: '\u0447', + check: '\u2713', + checkmark: '\u2713', + chi: '\u03C7', + cir: '\u25CB', + cirE: '\u29C3', + circ: '\u02C6', + circeq: '\u2257', + circlearrowleft: '\u21BA', + circlearrowright: '\u21BB', + circledR: '\u00AE', + circledS: '\u24C8', + circledast: '\u229B', + circledcirc: '\u229A', + circleddash: '\u229D', + cire: '\u2257', + cirfnint: '\u2A10', + cirmid: '\u2AEF', + cirscir: '\u29C2', + clubs: '\u2663', + clubsuit: '\u2663', + colon: '\u003A', + colone: '\u2254', + coloneq: '\u2254', + comma: '\u002C', + commat: '\u0040', + comp: '\u2201', + compfn: '\u2218', + complement: '\u2201', + complexes: '\u2102', + cong: '\u2245', + congdot: '\u2A6D', + conint: '\u222E', + copf: '\uD835\uDD54', + coprod: '\u2210', + copy: '\u00A9', + copysr: '\u2117', + crarr: '\u21B5', + cross: '\u2717', + cscr: '\uD835\uDCB8', + csub: '\u2ACF', + csube: '\u2AD1', + csup: '\u2AD0', + csupe: '\u2AD2', + ctdot: '\u22EF', + cudarrl: '\u2938', + cudarrr: '\u2935', + cuepr: '\u22DE', + cuesc: '\u22DF', + cularr: '\u21B6', + cularrp: '\u293D', + cup: '\u222A', + cupbrcap: '\u2A48', + cupcap: '\u2A46', + cupcup: '\u2A4A', + cupdot: '\u228D', + cupor: '\u2A45', + cups: '\u222A\uFE00', + curarr: '\u21B7', + curarrm: '\u293C', + curlyeqprec: '\u22DE', + curlyeqsucc: '\u22DF', + curlyvee: '\u22CE', + curlywedge: '\u22CF', + curren: '\u00A4', + curvearrowleft: '\u21B6', + curvearrowright: '\u21B7', + cuvee: '\u22CE', + cuwed: '\u22CF', + cwconint: '\u2232', + cwint: '\u2231', + cylcty: '\u232D', + dArr: '\u21D3', + dHar: '\u2965', + dagger: '\u2020', + daleth: '\u2138', + darr: '\u2193', + dash: '\u2010', + dashv: '\u22A3', + dbkarow: '\u290F', + dblac: '\u02DD', + dcaron: '\u010F', + dcy: '\u0434', + dd: '\u2146', + ddagger: '\u2021', + ddarr: '\u21CA', + ddotseq: '\u2A77', + deg: '\u00B0', + delta: '\u03B4', + demptyv: '\u29B1', + dfisht: '\u297F', + dfr: '\uD835\uDD21', + dharl: '\u21C3', + dharr: '\u21C2', + diam: '\u22C4', + diamond: '\u22C4', + diamondsuit: '\u2666', + diams: '\u2666', + die: '\u00A8', + digamma: '\u03DD', + disin: '\u22F2', + div: '\u00F7', + divide: '\u00F7', + divideontimes: '\u22C7', + divonx: '\u22C7', + djcy: '\u0452', + dlcorn: '\u231E', + dlcrop: '\u230D', + dollar: '\u0024', + dopf: '\uD835\uDD55', + dot: '\u02D9', + doteq: '\u2250', + doteqdot: '\u2251', + dotminus: '\u2238', + dotplus: '\u2214', + dotsquare: '\u22A1', + doublebarwedge: '\u2306', + downarrow: '\u2193', + downdownarrows: '\u21CA', + downharpoonleft: '\u21C3', + downharpoonright: '\u21C2', + drbkarow: '\u2910', + drcorn: '\u231F', + drcrop: '\u230C', + dscr: '\uD835\uDCB9', + dscy: '\u0455', + dsol: '\u29F6', + dstrok: '\u0111', + dtdot: '\u22F1', + dtri: '\u25BF', + dtrif: '\u25BE', + duarr: '\u21F5', + duhar: '\u296F', + dwangle: '\u29A6', + dzcy: '\u045F', + dzigrarr: '\u27FF', + eDDot: '\u2A77', + eDot: '\u2251', + eacute: '\u00E9', + easter: '\u2A6E', + ecaron: '\u011B', + ecir: '\u2256', + ecirc: '\u00EA', + ecolon: '\u2255', + ecy: '\u044D', + edot: '\u0117', + ee: '\u2147', + efDot: '\u2252', + efr: '\uD835\uDD22', + eg: '\u2A9A', + egrave: '\u00E8', + egs: '\u2A96', + egsdot: '\u2A98', + el: '\u2A99', + elinters: '\u23E7', + ell: '\u2113', + els: '\u2A95', + elsdot: '\u2A97', + emacr: '\u0113', + empty: '\u2205', + emptyset: '\u2205', + emptyv: '\u2205', + emsp13: '\u2004', + emsp14: '\u2005', + emsp: '\u2003', + eng: '\u014B', + ensp: '\u2002', + eogon: '\u0119', + eopf: '\uD835\uDD56', + epar: '\u22D5', + eparsl: '\u29E3', + eplus: '\u2A71', + epsi: '\u03B5', + epsilon: '\u03B5', + epsiv: '\u03F5', + eqcirc: '\u2256', + eqcolon: '\u2255', + eqsim: '\u2242', + eqslantgtr: '\u2A96', + eqslantless: '\u2A95', + equals: '\u003D', + equest: '\u225F', + equiv: '\u2261', + equivDD: '\u2A78', + eqvparsl: '\u29E5', + erDot: '\u2253', + erarr: '\u2971', + escr: '\u212F', + esdot: '\u2250', + esim: '\u2242', + eta: '\u03B7', + eth: '\u00F0', + euml: '\u00EB', + euro: '\u20AC', + excl: '\u0021', + exist: '\u2203', + expectation: '\u2130', + exponentiale: '\u2147', + fallingdotseq: '\u2252', + fcy: '\u0444', + female: '\u2640', + ffilig: '\uFB03', + fflig: '\uFB00', + ffllig: '\uFB04', + ffr: '\uD835\uDD23', + filig: '\uFB01', + fjlig: '\u0066\u006A', + flat: '\u266D', + fllig: '\uFB02', + fltns: '\u25B1', + fnof: '\u0192', + fopf: '\uD835\uDD57', + forall: '\u2200', + fork: '\u22D4', + forkv: '\u2AD9', + fpartint: '\u2A0D', + frac12: '\u00BD', + frac13: '\u2153', + frac14: '\u00BC', + frac15: '\u2155', + frac16: '\u2159', + frac18: '\u215B', + frac23: '\u2154', + frac25: '\u2156', + frac34: '\u00BE', + frac35: '\u2157', + frac38: '\u215C', + frac45: '\u2158', + frac56: '\u215A', + frac58: '\u215D', + frac78: '\u215E', + frasl: '\u2044', + frown: '\u2322', + fscr: '\uD835\uDCBB', + gE: '\u2267', + gEl: '\u2A8C', + gacute: '\u01F5', + gamma: '\u03B3', + gammad: '\u03DD', + gap: '\u2A86', + gbreve: '\u011F', + gcirc: '\u011D', + gcy: '\u0433', + gdot: '\u0121', + ge: '\u2265', + gel: '\u22DB', + geq: '\u2265', + geqq: '\u2267', + geqslant: '\u2A7E', + ges: '\u2A7E', + gescc: '\u2AA9', + gesdot: '\u2A80', + gesdoto: '\u2A82', + gesdotol: '\u2A84', + gesl: '\u22DB\uFE00', + gesles: '\u2A94', + gfr: '\uD835\uDD24', + gg: '\u226B', + ggg: '\u22D9', + gimel: '\u2137', + gjcy: '\u0453', + gl: '\u2277', + glE: '\u2A92', + gla: '\u2AA5', + glj: '\u2AA4', + gnE: '\u2269', + gnap: '\u2A8A', + gnapprox: '\u2A8A', + gne: '\u2A88', + gneq: '\u2A88', + gneqq: '\u2269', + gnsim: '\u22E7', + gopf: '\uD835\uDD58', + grave: '\u0060', + gscr: '\u210A', + gsim: '\u2273', + gsime: '\u2A8E', + gsiml: '\u2A90', + gt: '\u003E', + gtcc: '\u2AA7', + gtcir: '\u2A7A', + gtdot: '\u22D7', + gtlPar: '\u2995', + gtquest: '\u2A7C', + gtrapprox: '\u2A86', + gtrarr: '\u2978', + gtrdot: '\u22D7', + gtreqless: '\u22DB', + gtreqqless: '\u2A8C', + gtrless: '\u2277', + gtrsim: '\u2273', + gvertneqq: '\u2269\uFE00', + gvnE: '\u2269\uFE00', + hArr: '\u21D4', + hairsp: '\u200A', + half: '\u00BD', + hamilt: '\u210B', + hardcy: '\u044A', + harr: '\u2194', + harrcir: '\u2948', + harrw: '\u21AD', + hbar: '\u210F', + hcirc: '\u0125', + hearts: '\u2665', + heartsuit: '\u2665', + hellip: '\u2026', + hercon: '\u22B9', + hfr: '\uD835\uDD25', + hksearow: '\u2925', + hkswarow: '\u2926', + hoarr: '\u21FF', + homtht: '\u223B', + hookleftarrow: '\u21A9', + hookrightarrow: '\u21AA', + hopf: '\uD835\uDD59', + horbar: '\u2015', + hscr: '\uD835\uDCBD', + hslash: '\u210F', + hstrok: '\u0127', + hybull: '\u2043', + hyphen: '\u2010', + iacute: '\u00ED', + ic: '\u2063', + icirc: '\u00EE', + icy: '\u0438', + iecy: '\u0435', + iexcl: '\u00A1', + iff: '\u21D4', + ifr: '\uD835\uDD26', + igrave: '\u00EC', + ii: '\u2148', + iiiint: '\u2A0C', + iiint: '\u222D', + iinfin: '\u29DC', + iiota: '\u2129', + ijlig: '\u0133', + imacr: '\u012B', + image: '\u2111', + imagline: '\u2110', + imagpart: '\u2111', + imath: '\u0131', + imof: '\u22B7', + imped: '\u01B5', + in: '\u2208', + incare: '\u2105', + infin: '\u221E', + infintie: '\u29DD', + inodot: '\u0131', + int: '\u222B', + intcal: '\u22BA', + integers: '\u2124', + intercal: '\u22BA', + intlarhk: '\u2A17', + intprod: '\u2A3C', + iocy: '\u0451', + iogon: '\u012F', + iopf: '\uD835\uDD5A', + iota: '\u03B9', + iprod: '\u2A3C', + iquest: '\u00BF', + iscr: '\uD835\uDCBE', + isin: '\u2208', + isinE: '\u22F9', + isindot: '\u22F5', + isins: '\u22F4', + isinsv: '\u22F3', + isinv: '\u2208', + it: '\u2062', + itilde: '\u0129', + iukcy: '\u0456', + iuml: '\u00EF', + jcirc: '\u0135', + jcy: '\u0439', + jfr: '\uD835\uDD27', + jmath: '\u0237', + jopf: '\uD835\uDD5B', + jscr: '\uD835\uDCBF', + jsercy: '\u0458', + jukcy: '\u0454', + kappa: '\u03BA', + kappav: '\u03F0', + kcedil: '\u0137', + kcy: '\u043A', + kfr: '\uD835\uDD28', + kgreen: '\u0138', + khcy: '\u0445', + kjcy: '\u045C', + kopf: '\uD835\uDD5C', + kscr: '\uD835\uDCC0', + lAarr: '\u21DA', + lArr: '\u21D0', + lAtail: '\u291B', + lBarr: '\u290E', + lE: '\u2266', + lEg: '\u2A8B', + lHar: '\u2962', + lacute: '\u013A', + laemptyv: '\u29B4', + lagran: '\u2112', + lambda: '\u03BB', + lang: '\u27E8', + langd: '\u2991', + langle: '\u27E8', + lap: '\u2A85', + laquo: '\u00AB', + larr: '\u2190', + larrb: '\u21E4', + larrbfs: '\u291F', + larrfs: '\u291D', + larrhk: '\u21A9', + larrlp: '\u21AB', + larrpl: '\u2939', + larrsim: '\u2973', + larrtl: '\u21A2', + lat: '\u2AAB', + latail: '\u2919', + late: '\u2AAD', + lates: '\u2AAD\uFE00', + lbarr: '\u290C', + lbbrk: '\u2772', + lbrace: '\u007B', + lbrack: '\u005B', + lbrke: '\u298B', + lbrksld: '\u298F', + lbrkslu: '\u298D', + lcaron: '\u013E', + lcedil: '\u013C', + lceil: '\u2308', + lcub: '\u007B', + lcy: '\u043B', + ldca: '\u2936', + ldquo: '\u201C', + ldquor: '\u201E', + ldrdhar: '\u2967', + ldrushar: '\u294B', + ldsh: '\u21B2', + le: '\u2264', + leftarrow: '\u2190', + leftarrowtail: '\u21A2', + leftharpoondown: '\u21BD', + leftharpoonup: '\u21BC', + leftleftarrows: '\u21C7', + leftrightarrow: '\u2194', + leftrightarrows: '\u21C6', + leftrightharpoons: '\u21CB', + leftrightsquigarrow: '\u21AD', + leftthreetimes: '\u22CB', + leg: '\u22DA', + leq: '\u2264', + leqq: '\u2266', + leqslant: '\u2A7D', + les: '\u2A7D', + lescc: '\u2AA8', + lesdot: '\u2A7F', + lesdoto: '\u2A81', + lesdotor: '\u2A83', + lesg: '\u22DA\uFE00', + lesges: '\u2A93', + lessapprox: '\u2A85', + lessdot: '\u22D6', + lesseqgtr: '\u22DA', + lesseqqgtr: '\u2A8B', + lessgtr: '\u2276', + lesssim: '\u2272', + lfisht: '\u297C', + lfloor: '\u230A', + lfr: '\uD835\uDD29', + lg: '\u2276', + lgE: '\u2A91', + lhard: '\u21BD', + lharu: '\u21BC', + lharul: '\u296A', + lhblk: '\u2584', + ljcy: '\u0459', + ll: '\u226A', + llarr: '\u21C7', + llcorner: '\u231E', + llhard: '\u296B', + lltri: '\u25FA', + lmidot: '\u0140', + lmoust: '\u23B0', + lmoustache: '\u23B0', + lnE: '\u2268', + lnap: '\u2A89', + lnapprox: '\u2A89', + lne: '\u2A87', + lneq: '\u2A87', + lneqq: '\u2268', + lnsim: '\u22E6', + loang: '\u27EC', + loarr: '\u21FD', + lobrk: '\u27E6', + longleftarrow: '\u27F5', + longleftrightarrow: '\u27F7', + longmapsto: '\u27FC', + longrightarrow: '\u27F6', + looparrowleft: '\u21AB', + looparrowright: '\u21AC', + lopar: '\u2985', + lopf: '\uD835\uDD5D', + loplus: '\u2A2D', + lotimes: '\u2A34', + lowast: '\u2217', + lowbar: '\u005F', + loz: '\u25CA', + lozenge: '\u25CA', + lozf: '\u29EB', + lpar: '\u0028', + lparlt: '\u2993', + lrarr: '\u21C6', + lrcorner: '\u231F', + lrhar: '\u21CB', + lrhard: '\u296D', + lrm: '\u200E', + lrtri: '\u22BF', + lsaquo: '\u2039', + lscr: '\uD835\uDCC1', + lsh: '\u21B0', + lsim: '\u2272', + lsime: '\u2A8D', + lsimg: '\u2A8F', + lsqb: '\u005B', + lsquo: '\u2018', + lsquor: '\u201A', + lstrok: '\u0142', + lt: '\u003C', + ltcc: '\u2AA6', + ltcir: '\u2A79', + ltdot: '\u22D6', + lthree: '\u22CB', + ltimes: '\u22C9', + ltlarr: '\u2976', + ltquest: '\u2A7B', + ltrPar: '\u2996', + ltri: '\u25C3', + ltrie: '\u22B4', + ltrif: '\u25C2', + lurdshar: '\u294A', + luruhar: '\u2966', + lvertneqq: '\u2268\uFE00', + lvnE: '\u2268\uFE00', + mDDot: '\u223A', + macr: '\u00AF', + male: '\u2642', + malt: '\u2720', + maltese: '\u2720', + map: '\u21A6', + mapsto: '\u21A6', + mapstodown: '\u21A7', + mapstoleft: '\u21A4', + mapstoup: '\u21A5', + marker: '\u25AE', + mcomma: '\u2A29', + mcy: '\u043C', + mdash: '\u2014', + measuredangle: '\u2221', + mfr: '\uD835\uDD2A', + mho: '\u2127', + micro: '\u00B5', + mid: '\u2223', + midast: '\u002A', + midcir: '\u2AF0', + middot: '\u00B7', + minus: '\u2212', + minusb: '\u229F', + minusd: '\u2238', + minusdu: '\u2A2A', + mlcp: '\u2ADB', + mldr: '\u2026', + mnplus: '\u2213', + models: '\u22A7', + mopf: '\uD835\uDD5E', + mp: '\u2213', + mscr: '\uD835\uDCC2', + mstpos: '\u223E', + mu: '\u03BC', + multimap: '\u22B8', + mumap: '\u22B8', + nGg: '\u22D9\u0338', + nGt: '\u226B\u20D2', + nGtv: '\u226B\u0338', + nLeftarrow: '\u21CD', + nLeftrightarrow: '\u21CE', + nLl: '\u22D8\u0338', + nLt: '\u226A\u20D2', + nLtv: '\u226A\u0338', + nRightarrow: '\u21CF', + nVDash: '\u22AF', + nVdash: '\u22AE', + nabla: '\u2207', + nacute: '\u0144', + nang: '\u2220\u20D2', + nap: '\u2249', + napE: '\u2A70\u0338', + napid: '\u224B\u0338', + napos: '\u0149', + napprox: '\u2249', + natur: '\u266E', + natural: '\u266E', + naturals: '\u2115', + nbsp: '\u00A0', + nbump: '\u224E\u0338', + nbumpe: '\u224F\u0338', + ncap: '\u2A43', + ncaron: '\u0148', + ncedil: '\u0146', + ncong: '\u2247', + ncongdot: '\u2A6D\u0338', + ncup: '\u2A42', + ncy: '\u043D', + ndash: '\u2013', + ne: '\u2260', + neArr: '\u21D7', + nearhk: '\u2924', + nearr: '\u2197', + nearrow: '\u2197', + nedot: '\u2250\u0338', + nequiv: '\u2262', + nesear: '\u2928', + nesim: '\u2242\u0338', + nexist: '\u2204', + nexists: '\u2204', + nfr: '\uD835\uDD2B', + ngE: '\u2267\u0338', + nge: '\u2271', + ngeq: '\u2271', + ngeqq: '\u2267\u0338', + ngeqslant: '\u2A7E\u0338', + nges: '\u2A7E\u0338', + ngsim: '\u2275', + ngt: '\u226F', + ngtr: '\u226F', + nhArr: '\u21CE', + nharr: '\u21AE', + nhpar: '\u2AF2', + ni: '\u220B', + nis: '\u22FC', + nisd: '\u22FA', + niv: '\u220B', + njcy: '\u045A', + nlArr: '\u21CD', + nlE: '\u2266\u0338', + nlarr: '\u219A', + nldr: '\u2025', + nle: '\u2270', + nleftarrow: '\u219A', + nleftrightarrow: '\u21AE', + nleq: '\u2270', + nleqq: '\u2266\u0338', + nleqslant: '\u2A7D\u0338', + nles: '\u2A7D\u0338', + nless: '\u226E', + nlsim: '\u2274', + nlt: '\u226E', + nltri: '\u22EA', + nltrie: '\u22EC', + nmid: '\u2224', + nopf: '\uD835\uDD5F', + not: '\u00AC', + notin: '\u2209', + notinE: '\u22F9\u0338', + notindot: '\u22F5\u0338', + notinva: '\u2209', + notinvb: '\u22F7', + notinvc: '\u22F6', + notni: '\u220C', + notniva: '\u220C', + notnivb: '\u22FE', + notnivc: '\u22FD', + npar: '\u2226', + nparallel: '\u2226', + nparsl: '\u2AFD\u20E5', + npart: '\u2202\u0338', + npolint: '\u2A14', + npr: '\u2280', + nprcue: '\u22E0', + npre: '\u2AAF\u0338', + nprec: '\u2280', + npreceq: '\u2AAF\u0338', + nrArr: '\u21CF', + nrarr: '\u219B', + nrarrc: '\u2933\u0338', + nrarrw: '\u219D\u0338', + nrightarrow: '\u219B', + nrtri: '\u22EB', + nrtrie: '\u22ED', + nsc: '\u2281', + nsccue: '\u22E1', + nsce: '\u2AB0\u0338', + nscr: '\uD835\uDCC3', + nshortmid: '\u2224', + nshortparallel: '\u2226', + nsim: '\u2241', + nsime: '\u2244', + nsimeq: '\u2244', + nsmid: '\u2224', + nspar: '\u2226', + nsqsube: '\u22E2', + nsqsupe: '\u22E3', + nsub: '\u2284', + nsubE: '\u2AC5\u0338', + nsube: '\u2288', + nsubset: '\u2282\u20D2', + nsubseteq: '\u2288', + nsubseteqq: '\u2AC5\u0338', + nsucc: '\u2281', + nsucceq: '\u2AB0\u0338', + nsup: '\u2285', + nsupE: '\u2AC6\u0338', + nsupe: '\u2289', + nsupset: '\u2283\u20D2', + nsupseteq: '\u2289', + nsupseteqq: '\u2AC6\u0338', + ntgl: '\u2279', + ntilde: '\u00F1', + ntlg: '\u2278', + ntriangleleft: '\u22EA', + ntrianglelefteq: '\u22EC', + ntriangleright: '\u22EB', + ntrianglerighteq: '\u22ED', + nu: '\u03BD', + num: '\u0023', + numero: '\u2116', + numsp: '\u2007', + nvDash: '\u22AD', + nvHarr: '\u2904', + nvap: '\u224D\u20D2', + nvdash: '\u22AC', + nvge: '\u2265\u20D2', + nvgt: '\u003E\u20D2', + nvinfin: '\u29DE', + nvlArr: '\u2902', + nvle: '\u2264\u20D2', + nvlt: '\u003C\u20D2', + nvltrie: '\u22B4\u20D2', + nvrArr: '\u2903', + nvrtrie: '\u22B5\u20D2', + nvsim: '\u223C\u20D2', + nwArr: '\u21D6', + nwarhk: '\u2923', + nwarr: '\u2196', + nwarrow: '\u2196', + nwnear: '\u2927', + oS: '\u24C8', + oacute: '\u00F3', + oast: '\u229B', + ocir: '\u229A', + ocirc: '\u00F4', + ocy: '\u043E', + odash: '\u229D', + odblac: '\u0151', + odiv: '\u2A38', + odot: '\u2299', + odsold: '\u29BC', + oelig: '\u0153', + ofcir: '\u29BF', + ofr: '\uD835\uDD2C', + ogon: '\u02DB', + ograve: '\u00F2', + ogt: '\u29C1', + ohbar: '\u29B5', + ohm: '\u03A9', + oint: '\u222E', + olarr: '\u21BA', + olcir: '\u29BE', + olcross: '\u29BB', + oline: '\u203E', + olt: '\u29C0', + omacr: '\u014D', + omega: '\u03C9', + omicron: '\u03BF', + omid: '\u29B6', + ominus: '\u2296', + oopf: '\uD835\uDD60', + opar: '\u29B7', + operp: '\u29B9', + oplus: '\u2295', + or: '\u2228', + orarr: '\u21BB', + ord: '\u2A5D', + order: '\u2134', + orderof: '\u2134', + ordf: '\u00AA', + ordm: '\u00BA', + origof: '\u22B6', + oror: '\u2A56', + orslope: '\u2A57', + orv: '\u2A5B', + oscr: '\u2134', + oslash: '\u00F8', + osol: '\u2298', + otilde: '\u00F5', + otimes: '\u2297', + otimesas: '\u2A36', + ouml: '\u00F6', + ovbar: '\u233D', + par: '\u2225', + para: '\u00B6', + parallel: '\u2225', + parsim: '\u2AF3', + parsl: '\u2AFD', + part: '\u2202', + pcy: '\u043F', + percnt: '\u0025', + period: '\u002E', + permil: '\u2030', + perp: '\u22A5', + pertenk: '\u2031', + pfr: '\uD835\uDD2D', + phi: '\u03C6', + phiv: '\u03D5', + phmmat: '\u2133', + phone: '\u260E', + pi: '\u03C0', + pitchfork: '\u22D4', + piv: '\u03D6', + planck: '\u210F', + planckh: '\u210E', + plankv: '\u210F', + plus: '\u002B', + plusacir: '\u2A23', + plusb: '\u229E', + pluscir: '\u2A22', + plusdo: '\u2214', + plusdu: '\u2A25', + pluse: '\u2A72', + plusmn: '\u00B1', + plussim: '\u2A26', + plustwo: '\u2A27', + pm: '\u00B1', + pointint: '\u2A15', + popf: '\uD835\uDD61', + pound: '\u00A3', + pr: '\u227A', + prE: '\u2AB3', + prap: '\u2AB7', + prcue: '\u227C', + pre: '\u2AAF', + prec: '\u227A', + precapprox: '\u2AB7', + preccurlyeq: '\u227C', + preceq: '\u2AAF', + precnapprox: '\u2AB9', + precneqq: '\u2AB5', + precnsim: '\u22E8', + precsim: '\u227E', + prime: '\u2032', + primes: '\u2119', + prnE: '\u2AB5', + prnap: '\u2AB9', + prnsim: '\u22E8', + prod: '\u220F', + profalar: '\u232E', + profline: '\u2312', + profsurf: '\u2313', + prop: '\u221D', + propto: '\u221D', + prsim: '\u227E', + prurel: '\u22B0', + pscr: '\uD835\uDCC5', + psi: '\u03C8', + puncsp: '\u2008', + qfr: '\uD835\uDD2E', + qint: '\u2A0C', + qopf: '\uD835\uDD62', + qprime: '\u2057', + qscr: '\uD835\uDCC6', + quaternions: '\u210D', + quatint: '\u2A16', + quest: '\u003F', + questeq: '\u225F', + quot: '\u0022', + rAarr: '\u21DB', + rArr: '\u21D2', + rAtail: '\u291C', + rBarr: '\u290F', + rHar: '\u2964', + race: '\u223D\u0331', + racute: '\u0155', + radic: '\u221A', + raemptyv: '\u29B3', + rang: '\u27E9', + rangd: '\u2992', + range: '\u29A5', + rangle: '\u27E9', + raquo: '\u00BB', + rarr: '\u2192', + rarrap: '\u2975', + rarrb: '\u21E5', + rarrbfs: '\u2920', + rarrc: '\u2933', + rarrfs: '\u291E', + rarrhk: '\u21AA', + rarrlp: '\u21AC', + rarrpl: '\u2945', + rarrsim: '\u2974', + rarrtl: '\u21A3', + rarrw: '\u219D', + ratail: '\u291A', + ratio: '\u2236', + rationals: '\u211A', + rbarr: '\u290D', + rbbrk: '\u2773', + rbrace: '\u007D', + rbrack: '\u005D', + rbrke: '\u298C', + rbrksld: '\u298E', + rbrkslu: '\u2990', + rcaron: '\u0159', + rcedil: '\u0157', + rceil: '\u2309', + rcub: '\u007D', + rcy: '\u0440', + rdca: '\u2937', + rdldhar: '\u2969', + rdquo: '\u201D', + rdquor: '\u201D', + rdsh: '\u21B3', + real: '\u211C', + realine: '\u211B', + realpart: '\u211C', + reals: '\u211D', + rect: '\u25AD', + reg: '\u00AE', + rfisht: '\u297D', + rfloor: '\u230B', + rfr: '\uD835\uDD2F', + rhard: '\u21C1', + rharu: '\u21C0', + rharul: '\u296C', + rho: '\u03C1', + rhov: '\u03F1', + rightarrow: '\u2192', + rightarrowtail: '\u21A3', + rightharpoondown: '\u21C1', + rightharpoonup: '\u21C0', + rightleftarrows: '\u21C4', + rightleftharpoons: '\u21CC', + rightrightarrows: '\u21C9', + rightsquigarrow: '\u219D', + rightthreetimes: '\u22CC', + ring: '\u02DA', + risingdotseq: '\u2253', + rlarr: '\u21C4', + rlhar: '\u21CC', + rlm: '\u200F', + rmoust: '\u23B1', + rmoustache: '\u23B1', + rnmid: '\u2AEE', + roang: '\u27ED', + roarr: '\u21FE', + robrk: '\u27E7', + ropar: '\u2986', + ropf: '\uD835\uDD63', + roplus: '\u2A2E', + rotimes: '\u2A35', + rpar: '\u0029', + rpargt: '\u2994', + rppolint: '\u2A12', + rrarr: '\u21C9', + rsaquo: '\u203A', + rscr: '\uD835\uDCC7', + rsh: '\u21B1', + rsqb: '\u005D', + rsquo: '\u2019', + rsquor: '\u2019', + rthree: '\u22CC', + rtimes: '\u22CA', + rtri: '\u25B9', + rtrie: '\u22B5', + rtrif: '\u25B8', + rtriltri: '\u29CE', + ruluhar: '\u2968', + rx: '\u211E', + sacute: '\u015B', + sbquo: '\u201A', + sc: '\u227B', + scE: '\u2AB4', + scap: '\u2AB8', + scaron: '\u0161', + sccue: '\u227D', + sce: '\u2AB0', + scedil: '\u015F', + scirc: '\u015D', + scnE: '\u2AB6', + scnap: '\u2ABA', + scnsim: '\u22E9', + scpolint: '\u2A13', + scsim: '\u227F', + scy: '\u0441', + sdot: '\u22C5', + sdotb: '\u22A1', + sdote: '\u2A66', + seArr: '\u21D8', + searhk: '\u2925', + searr: '\u2198', + searrow: '\u2198', + sect: '\u00A7', + semi: '\u003B', + seswar: '\u2929', + setminus: '\u2216', + setmn: '\u2216', + sext: '\u2736', + sfr: '\uD835\uDD30', + sfrown: '\u2322', + sharp: '\u266F', + shchcy: '\u0449', + shcy: '\u0448', + shortmid: '\u2223', + shortparallel: '\u2225', + shy: '\u00AD', + sigma: '\u03C3', + sigmaf: '\u03C2', + sigmav: '\u03C2', + sim: '\u223C', + simdot: '\u2A6A', + sime: '\u2243', + simeq: '\u2243', + simg: '\u2A9E', + simgE: '\u2AA0', + siml: '\u2A9D', + simlE: '\u2A9F', + simne: '\u2246', + simplus: '\u2A24', + simrarr: '\u2972', + slarr: '\u2190', + smallsetminus: '\u2216', + smashp: '\u2A33', + smeparsl: '\u29E4', + smid: '\u2223', + smile: '\u2323', + smt: '\u2AAA', + smte: '\u2AAC', + smtes: '\u2AAC\uFE00', + softcy: '\u044C', + sol: '\u002F', + solb: '\u29C4', + solbar: '\u233F', + sopf: '\uD835\uDD64', + spades: '\u2660', + spadesuit: '\u2660', + spar: '\u2225', + sqcap: '\u2293', + sqcaps: '\u2293\uFE00', + sqcup: '\u2294', + sqcups: '\u2294\uFE00', + sqsub: '\u228F', + sqsube: '\u2291', + sqsubset: '\u228F', + sqsubseteq: '\u2291', + sqsup: '\u2290', + sqsupe: '\u2292', + sqsupset: '\u2290', + sqsupseteq: '\u2292', + squ: '\u25A1', + square: '\u25A1', + squarf: '\u25AA', + squf: '\u25AA', + srarr: '\u2192', + sscr: '\uD835\uDCC8', + ssetmn: '\u2216', + ssmile: '\u2323', + sstarf: '\u22C6', + star: '\u2606', + starf: '\u2605', + straightepsilon: '\u03F5', + straightphi: '\u03D5', + strns: '\u00AF', + sub: '\u2282', + subE: '\u2AC5', + subdot: '\u2ABD', + sube: '\u2286', + subedot: '\u2AC3', + submult: '\u2AC1', + subnE: '\u2ACB', + subne: '\u228A', + subplus: '\u2ABF', + subrarr: '\u2979', + subset: '\u2282', + subseteq: '\u2286', + subseteqq: '\u2AC5', + subsetneq: '\u228A', + subsetneqq: '\u2ACB', + subsim: '\u2AC7', + subsub: '\u2AD5', + subsup: '\u2AD3', + succ: '\u227B', + succapprox: '\u2AB8', + succcurlyeq: '\u227D', + succeq: '\u2AB0', + succnapprox: '\u2ABA', + succneqq: '\u2AB6', + succnsim: '\u22E9', + succsim: '\u227F', + sum: '\u2211', + sung: '\u266A', + sup1: '\u00B9', + sup2: '\u00B2', + sup3: '\u00B3', + sup: '\u2283', + supE: '\u2AC6', + supdot: '\u2ABE', + supdsub: '\u2AD8', + supe: '\u2287', + supedot: '\u2AC4', + suphsol: '\u27C9', + suphsub: '\u2AD7', + suplarr: '\u297B', + supmult: '\u2AC2', + supnE: '\u2ACC', + supne: '\u228B', + supplus: '\u2AC0', + supset: '\u2283', + supseteq: '\u2287', + supseteqq: '\u2AC6', + supsetneq: '\u228B', + supsetneqq: '\u2ACC', + supsim: '\u2AC8', + supsub: '\u2AD4', + supsup: '\u2AD6', + swArr: '\u21D9', + swarhk: '\u2926', + swarr: '\u2199', + swarrow: '\u2199', + swnwar: '\u292A', + szlig: '\u00DF', + target: '\u2316', + tau: '\u03C4', + tbrk: '\u23B4', + tcaron: '\u0165', + tcedil: '\u0163', + tcy: '\u0442', + tdot: '\u20DB', + telrec: '\u2315', + tfr: '\uD835\uDD31', + there4: '\u2234', + therefore: '\u2234', + theta: '\u03B8', + thetasym: '\u03D1', + thetav: '\u03D1', + thickapprox: '\u2248', + thicksim: '\u223C', + thinsp: '\u2009', + thkap: '\u2248', + thksim: '\u223C', + thorn: '\u00FE', + tilde: '\u02DC', + times: '\u00D7', + timesb: '\u22A0', + timesbar: '\u2A31', + timesd: '\u2A30', + tint: '\u222D', + toea: '\u2928', + top: '\u22A4', + topbot: '\u2336', + topcir: '\u2AF1', + topf: '\uD835\uDD65', + topfork: '\u2ADA', + tosa: '\u2929', + tprime: '\u2034', + trade: '\u2122', + triangle: '\u25B5', + triangledown: '\u25BF', + triangleleft: '\u25C3', + trianglelefteq: '\u22B4', + triangleq: '\u225C', + triangleright: '\u25B9', + trianglerighteq: '\u22B5', + tridot: '\u25EC', + trie: '\u225C', + triminus: '\u2A3A', + triplus: '\u2A39', + trisb: '\u29CD', + tritime: '\u2A3B', + trpezium: '\u23E2', + tscr: '\uD835\uDCC9', + tscy: '\u0446', + tshcy: '\u045B', + tstrok: '\u0167', + twixt: '\u226C', + twoheadleftarrow: '\u219E', + twoheadrightarrow: '\u21A0', + uArr: '\u21D1', + uHar: '\u2963', + uacute: '\u00FA', + uarr: '\u2191', + ubrcy: '\u045E', + ubreve: '\u016D', + ucirc: '\u00FB', + ucy: '\u0443', + udarr: '\u21C5', + udblac: '\u0171', + udhar: '\u296E', + ufisht: '\u297E', + ufr: '\uD835\uDD32', + ugrave: '\u00F9', + uharl: '\u21BF', + uharr: '\u21BE', + uhblk: '\u2580', + ulcorn: '\u231C', + ulcorner: '\u231C', + ulcrop: '\u230F', + ultri: '\u25F8', + umacr: '\u016B', + uml: '\u00A8', + uogon: '\u0173', + uopf: '\uD835\uDD66', + uparrow: '\u2191', + updownarrow: '\u2195', + upharpoonleft: '\u21BF', + upharpoonright: '\u21BE', + uplus: '\u228E', + upsi: '\u03C5', + upsih: '\u03D2', + upsilon: '\u03C5', + upuparrows: '\u21C8', + urcorn: '\u231D', + urcorner: '\u231D', + urcrop: '\u230E', + uring: '\u016F', + urtri: '\u25F9', + uscr: '\uD835\uDCCA', + utdot: '\u22F0', + utilde: '\u0169', + utri: '\u25B5', + utrif: '\u25B4', + uuarr: '\u21C8', + uuml: '\u00FC', + uwangle: '\u29A7', + vArr: '\u21D5', + vBar: '\u2AE8', + vBarv: '\u2AE9', + vDash: '\u22A8', + vangrt: '\u299C', + varepsilon: '\u03F5', + varkappa: '\u03F0', + varnothing: '\u2205', + varphi: '\u03D5', + varpi: '\u03D6', + varpropto: '\u221D', + varr: '\u2195', + varrho: '\u03F1', + varsigma: '\u03C2', + varsubsetneq: '\u228A\uFE00', + varsubsetneqq: '\u2ACB\uFE00', + varsupsetneq: '\u228B\uFE00', + varsupsetneqq: '\u2ACC\uFE00', + vartheta: '\u03D1', + vartriangleleft: '\u22B2', + vartriangleright: '\u22B3', + vcy: '\u0432', + vdash: '\u22A2', + vee: '\u2228', + veebar: '\u22BB', + veeeq: '\u225A', + vellip: '\u22EE', + verbar: '\u007C', + vert: '\u007C', + vfr: '\uD835\uDD33', + vltri: '\u22B2', + vnsub: '\u2282\u20D2', + vnsup: '\u2283\u20D2', + vopf: '\uD835\uDD67', + vprop: '\u221D', + vrtri: '\u22B3', + vscr: '\uD835\uDCCB', + vsubnE: '\u2ACB\uFE00', + vsubne: '\u228A\uFE00', + vsupnE: '\u2ACC\uFE00', + vsupne: '\u228B\uFE00', + vzigzag: '\u299A', + wcirc: '\u0175', + wedbar: '\u2A5F', + wedge: '\u2227', + wedgeq: '\u2259', + weierp: '\u2118', + wfr: '\uD835\uDD34', + wopf: '\uD835\uDD68', + wp: '\u2118', + wr: '\u2240', + wreath: '\u2240', + wscr: '\uD835\uDCCC', + xcap: '\u22C2', + xcirc: '\u25EF', + xcup: '\u22C3', + xdtri: '\u25BD', + xfr: '\uD835\uDD35', + xhArr: '\u27FA', + xharr: '\u27F7', + xi: '\u03BE', + xlArr: '\u27F8', + xlarr: '\u27F5', + xmap: '\u27FC', + xnis: '\u22FB', + xodot: '\u2A00', + xopf: '\uD835\uDD69', + xoplus: '\u2A01', + xotime: '\u2A02', + xrArr: '\u27F9', + xrarr: '\u27F6', + xscr: '\uD835\uDCCD', + xsqcup: '\u2A06', + xuplus: '\u2A04', + xutri: '\u25B3', + xvee: '\u22C1', + xwedge: '\u22C0', + yacute: '\u00FD', + yacy: '\u044F', + ycirc: '\u0177', + ycy: '\u044B', + yen: '\u00A5', + yfr: '\uD835\uDD36', + yicy: '\u0457', + yopf: '\uD835\uDD6A', + yscr: '\uD835\uDCCE', + yucy: '\u044E', + yuml: '\u00FF', + zacute: '\u017A', + zcaron: '\u017E', + zcy: '\u0437', + zdot: '\u017C', + zeetrf: '\u2128', + zeta: '\u03B6', + zfr: '\uD835\uDD37', + zhcy: '\u0436', + zigrarr: '\u21DD', + zopf: '\uD835\uDD6B', + zscr: '\uD835\uDCCF', + zwj: '\u200D', + zwnj: '\u200C' + }; + var decodeMap = { + '0': 65533, + '128': 8364, + '130': 8218, + '131': 402, + '132': 8222, + '133': 8230, + '134': 8224, + '135': 8225, + '136': 710, + '137': 8240, + '138': 352, + '139': 8249, + '140': 338, + '142': 381, + '145': 8216, + '146': 8217, + '147': 8220, + '148': 8221, + '149': 8226, + '150': 8211, + '151': 8212, + '152': 732, + '153': 8482, + '154': 353, + '155': 8250, + '156': 339, + '158': 382, + '159': 376 + }; + function decodeHTMLStrict(text) { + return text.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, function (key) { + if (key.charAt(1) === '#') { + var secondChar = key.charAt(2); + var codePoint = secondChar === 'X' || secondChar === 'x' + ? parseInt(key.slice(3), 16) + : parseInt(key.slice(2), 10); + return decodeCodePoint(codePoint); + } + return entities[key.slice(1, -1)] || key; + }); + } + function decodeCodePoint(codePoint) { + if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { + return '\uFFFD'; + } + if (codePoint in decodeMap) { + codePoint = decodeMap[codePoint]; + } + return String.fromCodePoint(codePoint); + } + + function scanJSXAttributeValue(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + parser.token = + CharTypes[parser.currentChar] & 8192 + ? scanJSXString(parser, context) + : scanSingleToken(parser, context, 0); + return parser.token; + } + function scanJSXString(parser, context) { + var quote = parser.currentChar; + var char = advanceChar(parser); + var start = parser.index; + while (char !== quote) { + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + if (char !== quote) + report(parser, 14); + parser.tokenValue = parser.source.slice(start, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283267; + } + function scanJSXToken(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + if (parser.index >= parser.end) + return (parser.token = 1048576); + var token = TokenLookup[parser.source.charCodeAt(parser.index)]; + switch (token) { + case 8456258: { + advanceChar(parser); + if (parser.currentChar === 47) { + advanceChar(parser); + parser.token = 25; + } + else { + parser.token = 8456258; + } + break; + } + case 2162700: { + advanceChar(parser); + parser.token = 2162700; + break; + } + default: { + var state = 0; + while (parser.index < parser.end) { + var type = CharTypes[parser.source.charCodeAt(parser.index)]; + if (type & 1024) { + state |= 1 | 4; + scanNewLine(parser); + } + else if (type & 2048) { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + else { + advanceChar(parser); + } + if (CharTypes[parser.currentChar] & 16384) + break; + } + var raw = parser.source.slice(parser.tokenPos, parser.index); + if (context & 512) + parser.tokenRaw = raw; + parser.tokenValue = decodeHTMLStrict(raw); + parser.token = 138; + } + } + return parser.token; + } + function scanJSXIdentifier(parser) { + if ((parser.token & 143360) === 143360) { + var index = parser.index; + var char = parser.currentChar; + while (CharTypes[char] & (32768 | 2)) { + char = advanceChar(parser); + } + parser.tokenValue += parser.source.slice(index, parser.index); + } + parser.token = 208897; + return parser.token; + } + + function matchOrInsertSemicolon(parser, context, specDeviation) { + if ((parser.flags & 1) === 0 && + (parser.token & 1048576) !== 1048576 && + !specDeviation) { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + consumeOpt(parser, context, 1074790417); + } + function isValidStrictMode(parser, index, tokenPos, tokenValue) { + if (index - tokenPos < 13 && tokenValue === 'use strict') { + if ((parser.token & 1048576) === 1048576 || parser.flags & 1) { + return 1; + } + } + return 0; + } + function optionalBit(parser, context, t) { + if (parser.token !== t) + return 0; + nextToken(parser, context); + return 1; + } + function consumeOpt(parser, context, t) { + if (parser.token !== t) + return false; + nextToken(parser, context); + return true; + } + function consume(parser, context, t) { + if (parser.token !== t) + report(parser, 23, KeywordDescTable[t & 255]); + nextToken(parser, context); + } + function reinterpretToPattern(state, node) { + switch (node.type) { + case 'ArrayExpression': + node.type = 'ArrayPattern'; + var elements = node.elements; + for (var i = 0, n = elements.length; i < n; ++i) { + var element = elements[i]; + if (element) + reinterpretToPattern(state, element); + } + return; + case 'ObjectExpression': + node.type = 'ObjectPattern'; + var properties = node.properties; + for (var i = 0, n = properties.length; i < n; ++i) { + reinterpretToPattern(state, properties[i]); + } + return; + case 'AssignmentExpression': + node.type = 'AssignmentPattern'; + if (node.operator !== '=') + report(state, 68); + delete node.operator; + reinterpretToPattern(state, node.left); + return; + case 'Property': + reinterpretToPattern(state, node.value); + return; + case 'SpreadElement': + node.type = 'RestElement'; + reinterpretToPattern(state, node.argument); + } + } + function validateBindingIdentifier(parser, context, kind, t, skipEvalArgCheck) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if (!skipEvalArgCheck && (t & 537079808) === 537079808) { + report(parser, 115); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (kind & (8 | 16) && t === 241739) { + report(parser, 97); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } + } + function validateFunctionName(parser, context, t) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if ((t & 537079808) === 537079808) { + report(parser, 115); + } + if (t === 122) { + report(parser, 92); + } + if (t === 121) { + report(parser, 92); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } + } + function isStrictReservedWord(parser, context, t) { + if (t === 209008) { + if (context & (4194304 | 2048)) + report(parser, 95); + parser.destructible |= 128; + } + if (t === 241773 && context & 2097152) + report(parser, 94, 'yield'); + return ((t & 20480) === 20480 || + (t & 36864) === 36864 || + t == 122); + } + function isPropertyWithPrivateFieldKey(expr) { + return !expr.property ? false : expr.property.type === 'PrivateIdentifier'; + } + function isValidLabel(parser, labels, name, isIterationStatement) { + while (labels) { + if (labels['$' + name]) { + if (isIterationStatement) + report(parser, 133); + return 1; + } + if (isIterationStatement && labels.loop) + isIterationStatement = 0; + labels = labels['$']; + } + return 0; + } + function validateAndDeclareLabel(parser, labels, name) { + var set = labels; + while (set) { + if (set['$' + name]) + report(parser, 132, name); + set = set['$']; + } + labels['$' + name] = 1; + } + function finishNode(parser, context, start, line, column, node) { + if (context & 2) { + node.start = start; + node.end = parser.startPos; + node.range = [start, parser.startPos]; + } + if (context & 4) { + node.loc = { + start: { + line: line, + column: column + }, + end: { + line: parser.startLine, + column: parser.startColumn + } + }; + if (parser.sourceFile) { + node.loc.source = parser.sourceFile; + } + } + return node; + } + function isEqualTagName(elementName) { + switch (elementName.type) { + case 'JSXIdentifier': + return elementName.name; + case 'JSXNamespacedName': + return elementName.namespace + ':' + elementName.name; + case 'JSXMemberExpression': + return isEqualTagName(elementName.object) + '.' + isEqualTagName(elementName.property); + } + } + function createArrowHeadParsingScope(parser, context, value) { + var scope = addChildScope(createScope(), 1024); + addBlockName(parser, context, scope, value, 1, 0); + return scope; + } + function recordScopeError(parser, type) { + var params = []; + for (var _i = 2; _i < arguments.length; _i++) { + params[_i - 2] = arguments[_i]; + } + var index = parser.index, line = parser.line, column = parser.column; + return { + type: type, + params: params, + index: index, + line: line, + column: column + }; + } + function createScope() { + return { + parent: void 0, + type: 2 + }; + } + function addChildScope(parent, type) { + return { + parent: parent, + type: type, + scopeError: void 0 + }; + } + function addVarOrBlock(parser, context, scope, name, kind, origin) { + if (kind & 4) { + addVarName(parser, context, scope, name, kind); + } + else { + addBlockName(parser, context, scope, name, kind, origin); + } + if (origin & 64) { + declareUnboundVariable(parser, name); + } + } + function addBlockName(parser, context, scope, name, kind, origin) { + var value = scope['#' + name]; + if (value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + else if (context & 256 && + value & 64 && + origin & 2) ; + else { + report(parser, 140, name); + } + } + if (scope.type & 128 && + (scope.parent['#' + name] && (scope.parent['#' + name] & 2) === 0)) { + report(parser, 140, name); + } + if (scope.type & 1024 && value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + } + if (scope.type & 64) { + if (scope.parent['#' + name] & 768) + report(parser, 153, name); + } + scope['#' + name] = kind; + } + function addVarName(parser, context, scope, name, kind) { + var currentScope = scope; + while (currentScope && (currentScope.type & 256) === 0) { + var value = currentScope['#' + name]; + if (value & 248) { + if (context & 256 && + (context & 1024) === 0 && + ((kind & 128 && value & 68) || + (value & 128 && kind & 68))) ; + else { + report(parser, 140, name); + } + } + if (currentScope === scope) { + if (value & 1 && kind & 1) { + currentScope.scopeError = recordScopeError(parser, 140, name); + } + } + if (value & (512 | 256)) { + if ((value & 512) === 0 || + (context & 256) === 0 || + context & 1024) { + report(parser, 140, name); + } + } + currentScope['#' + name] = kind; + currentScope = currentScope.parent; + } + } + function declareUnboundVariable(parser, name) { + if (parser.exportedNames !== void 0 && name !== '') { + if (parser.exportedNames['#' + name]) { + report(parser, 141, name); + } + parser.exportedNames['#' + name] = 1; + } + } + function addBindingToExports(parser, name) { + if (parser.exportedBindings !== void 0 && name !== '') { + parser.exportedBindings['#' + name] = 1; + } + } + function pushComment(context, array) { + return function (type, value, start, end, loc) { + var comment = { + type: type, + value: value + }; + if (context & 2) { + comment.start = start; + comment.end = end; + comment.range = [start, end]; + } + if (context & 4) { + comment.loc = loc; + } + array.push(comment); + }; + } + function pushToken(context, array) { + return function (token, start, end, loc) { + var tokens = { + token: token + }; + if (context & 2) { + tokens.start = start; + tokens.end = end; + tokens.range = [start, end]; + } + if (context & 4) { + tokens.loc = loc; + } + array.push(tokens); + }; + } + function isValidIdentifier(context, t) { + if (context & (1024 | 2097152)) { + if (context & 2048 && t === 209008) + return false; + if (context & 2097152 && t === 241773) + return false; + return (t & 143360) === 143360 || (t & 12288) === 12288; + } + return ((t & 143360) === 143360 || + (t & 12288) === 12288 || + (t & 36864) === 36864); + } + function classifyIdentifier(parser, context, t, isArrow) { + if ((t & 537079808) === 537079808) { + if (context & 1024) + report(parser, 115); + if (isArrow) + parser.flags |= 512; + } + if (!isValidIdentifier(context, t)) + report(parser, 0); + } + + function create(source, sourceFile, onComment, onToken) { + return { + source: source, + flags: 0, + index: 0, + line: 1, + column: 0, + startPos: 0, + end: source.length, + tokenPos: 0, + startColumn: 0, + colPos: 0, + linePos: 1, + startLine: 1, + sourceFile: sourceFile, + tokenValue: '', + token: 1048576, + tokenRaw: '', + tokenRegExp: void 0, + currentChar: source.charCodeAt(0), + exportedNames: [], + exportedBindings: [], + assignable: 1, + destructible: 0, + onComment: onComment, + onToken: onToken, + leadingDecorators: [] + }; + } + function parseSource(source, options, context) { + var sourceFile = ''; + var onComment; + var onToken; + if (options != null) { + if (options.module) + context |= 2048 | 1024; + if (options.next) + context |= 1; + if (options.loc) + context |= 4; + if (options.ranges) + context |= 2; + if (options.uniqueKeyInPattern) + context |= -2147483648; + if (options.lexical) + context |= 64; + if (options.webcompat) + context |= 256; + if (options.directives) + context |= 8 | 512; + if (options.globalReturn) + context |= 32; + if (options.raw) + context |= 512; + if (options.preserveParens) + context |= 128; + if (options.impliedStrict) + context |= 1024; + if (options.jsx) + context |= 16; + if (options.identifierPattern) + context |= 268435456; + if (options.specDeviation) + context |= 536870912; + if (options.source) + sourceFile = options.source; + if (options.onComment != null) { + onComment = Array.isArray(options.onComment) ? pushComment(context, options.onComment) : options.onComment; + } + if (options.onToken != null) { + onToken = Array.isArray(options.onToken) ? pushToken(context, options.onToken) : options.onToken; + } + } + var parser = create(source, sourceFile, onComment, onToken); + if (context & 1) + skipHashBang(parser); + var scope = context & 64 ? createScope() : void 0; + var body = []; + var sourceType = 'script'; + if (context & 2048) { + sourceType = 'module'; + body = parseModuleItemList(parser, context | 8192, scope); + if (scope) { + for (var key in parser.exportedBindings) { + if (key[0] === '#' && !scope[key]) + report(parser, 142, key.slice(1)); + } + } + } + else { + body = parseStatementList(parser, context | 8192, scope); + } + var node = { + type: 'Program', + sourceType: sourceType, + body: body + }; + if (context & 2) { + node.start = 0; + node.end = source.length; + node.range = [0, source.length]; + } + if (context & 4) { + node.loc = { + start: { line: 1, column: 0 }, + end: { line: parser.line, column: parser.column } + }; + if (parser.sourceFile) + node.loc.source = sourceFile; + } + return node; + } + function parseStatementList(parser, context, scope) { + nextToken(parser, context | 32768 | 1073741824); + var statements = []; + while (parser.token === 134283267) { + var index = parser.index, tokenPos = parser.tokenPos, tokenValue = parser.tokenValue, linePos = parser.linePos, colPos = parser.colPos, token = parser.token; + var expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) + context |= 1024; + statements.push(parseDirective(parser, context, expr, token, tokenPos, linePos, colPos)); + } + while (parser.token !== 1048576) { + statements.push(parseStatementListItem(parser, context, scope, 4, {})); + } + return statements; + } + function parseModuleItemList(parser, context, scope) { + nextToken(parser, context | 32768); + var statements = []; + if (context & 8) { + while (parser.token === 134283267) { + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos, token = parser.token; + statements.push(parseDirective(parser, context, parseLiteral(parser, context), token, tokenPos, linePos, colPos)); + } + } + while (parser.token !== 1048576) { + statements.push(parseModuleItem(parser, context, scope)); + } + return statements; + } + function parseModuleItem(parser, context, scope) { + parser.leadingDecorators = parseDecorators(parser, context); + var moduleItem; + switch (parser.token) { + case 20566: + moduleItem = parseExportDeclaration(parser, context, scope); + break; + case 86108: + moduleItem = parseImportDeclaration(parser, context, scope); + break; + default: + moduleItem = parseStatementListItem(parser, context, scope, 4, {}); + } + if (parser.leadingDecorators.length) { + report(parser, 164); + } + return moduleItem; + } + function parseStatementListItem(parser, context, scope, origin, labels) { + var start = parser.tokenPos; + var line = parser.linePos; + var column = parser.colPos; + switch (parser.token) { + case 86106: + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 0, start, line, column); + case 133: + case 86096: + return parseClassDeclaration(parser, context, scope, 0, start, line, column); + case 86092: + return parseLexicalDeclaration(parser, context, scope, 16, 0, start, line, column); + case 241739: + return parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column); + case 20566: + report(parser, 100, 'export'); + case 86108: + nextToken(parser, context); + switch (parser.token) { + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 100, 'import'); + } + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 1, start, line, column); + default: + return parseStatement(parser, context, scope, origin, labels, 1, start, line, column); + } + } + function parseStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + switch (parser.token) { + case 86090: + return parseVariableStatement(parser, context, scope, 0, start, line, column); + case 20574: + return parseReturnStatement(parser, context, start, line, column); + case 20571: + return parseIfStatement(parser, context, scope, labels, start, line, column); + case 20569: + return parseForStatement(parser, context, scope, labels, start, line, column); + case 20564: + return parseDoWhileStatement(parser, context, scope, labels, start, line, column); + case 20580: + return parseWhileStatement(parser, context, scope, labels, start, line, column); + case 86112: + return parseSwitchStatement(parser, context, scope, labels, start, line, column); + case 1074790417: + return parseEmptyStatement(parser, context, start, line, column); + case 2162700: + return parseBlock(parser, context, scope ? addChildScope(scope, 2) : scope, labels, start, line, column); + case 86114: + return parseThrowStatement(parser, context, start, line, column); + case 20557: + return parseBreakStatement(parser, context, labels, start, line, column); + case 20561: + return parseContinueStatement(parser, context, labels, start, line, column); + case 20579: + return parseTryStatement(parser, context, scope, labels, start, line, column); + case 20581: + return parseWithStatement(parser, context, scope, labels, start, line, column); + case 20562: + return parseDebuggerStatement(parser, context, start, line, column); + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 0, start, line, column); + case 20559: + report(parser, 156); + case 20568: + report(parser, 157); + case 86106: + report(parser, context & 1024 + ? 73 + : (context & 256) < 1 + ? 75 + : 74); + case 86096: + report(parser, 76); + default: + return parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column); + } + } + function parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + var tokenValue = parser.tokenValue, token = parser.token; + var expr; + switch (token) { + case 241739: + expr = parseIdentifier(parser, context, 0); + if (context & 1024) + report(parser, 82); + if (parser.token === 69271571) + report(parser, 81); + break; + default: + expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + if (token & 143360 && parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, allowFuncDecl, start, line, column); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseBlock(parser, context, scope, labels, start, line, column) { + var body = []; + consume(parser, context | 32768, 2162700); + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 2, { $: labels })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'BlockStatement', + body: body + }); + } + function parseReturnStatement(parser, context, start, line, column) { + if ((context & 32) < 1 && context & 8192) + report(parser, 89); + nextToken(parser, context | 32768); + var argument = parser.flags & 1 || parser.token & 1048576 + ? null + : parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.column); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ReturnStatement', + argument: argument + }); + } + function parseExpressionStatement(parser, context, expression, start, line, column) { + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression: expression + }); + } + function parseLabelledStatement(parser, context, scope, origin, labels, value, expr, token, allowFuncDecl, start, line, column) { + validateBindingIdentifier(parser, context, 0, token, 1); + validateAndDeclareLabel(parser, labels, value); + nextToken(parser, context | 32768); + var body = allowFuncDecl && + (context & 1024) < 1 && + context & 256 && + parser.token === 86106 + ? parseFunctionDeclaration(parser, context, addChildScope(scope, 2), origin, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseStatement(parser, context, scope, origin, labels, allowFuncDecl, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'LabeledStatement', + label: expr, + body: body + }); + } + function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + var token = parser.token, tokenValue = parser.tokenValue; + var expr = parseIdentifier(parser, context, 0); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, 1, start, line, column); + } + var asyncNewLine = parser.flags & 1; + if (!asyncNewLine) { + if (parser.token === 86106) { + if (!allowFuncDecl) + report(parser, 119); + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 1, start, line, column); + } + if ((parser.token & 143360) === 143360) { + expr = parseAsyncArrowAfterIdent(parser, context, 1, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + } + if (parser.token === 67174411) { + expr = parseAsyncArrowOrCallExpression(parser, context, expr, 1, 1, 0, asyncNewLine, start, line, column); + } + else { + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + expr = parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, 0, 1, 0, start, line, column); + } + parser.assignable = 1; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + parser.assignable = 1; + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseDirective(parser, context, expression, token, start, line, column) { + if (token !== 1074790417) { + parser.assignable = 2; + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + if (parser.token !== 1074790417) { + expression = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expression); + if (parser.token === 18) { + expression = parseSequenceExpression(parser, context, 0, start, line, column, expression); + } + } + matchOrInsertSemicolon(parser, context | 32768); + } + return context & 8 && expression.type === 'Literal' && typeof expression.value === 'string' + ? finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression: expression, + directive: expression.raw.slice(1, -1) + }) + : finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression: expression + }); + } + function parseEmptyStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'EmptyStatement' + }); + } + function parseThrowStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + if (parser.flags & 1) + report(parser, 87); + var argument = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ThrowStatement', + argument: argument + }); + } + function parseIfStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + parser.assignable = 1; + var test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.colPos); + consume(parser, context | 32768, 16); + var consequent = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + var alternate = null; + if (parser.token === 20565) { + nextToken(parser, context | 32768); + alternate = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + } + return finishNode(parser, context, start, line, column, { + type: 'IfStatement', + test: test, + consequent: consequent, + alternate: alternate + }); + } + function parseConsequentOrAlternative(parser, context, scope, labels, start, line, column) { + return context & 1024 || + (context & 256) < 1 || + parser.token !== 86106 + ? parseStatement(parser, context, scope, 0, { $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseFunctionDeclaration(parser, context, addChildScope(scope, 2), 0, 0, 0, 0, start, line, column); + } + function parseSwitchStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + var discriminant = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + consume(parser, context, 2162700); + var cases = []; + var seenDefault = 0; + if (scope) + scope = addChildScope(scope, 8); + while (parser.token !== 1074790415) { + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + var test_1 = null; + var consequent = []; + if (consumeOpt(parser, context | 32768, 20558)) { + test_1 = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + consume(parser, context | 32768, 20563); + if (seenDefault) + report(parser, 86); + seenDefault = 1; + } + consume(parser, context | 32768, 21); + while (parser.token !== 20558 && + parser.token !== 1074790415 && + parser.token !== 20563) { + consequent.push(parseStatementListItem(parser, context | 4096, scope, 2, { + $: labels + })); + } + cases.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'SwitchCase', + test: test_1, + consequent: consequent + })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'SwitchStatement', + discriminant: discriminant, + cases: cases + }); + } + function parseWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + var test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + var body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'WhileStatement', + test: test, + body: body + }); + } + function parseIterationStatementBody(parser, context, scope, labels) { + return parseStatement(parser, ((context | 134217728) ^ 134217728) | 131072, scope, 0, { loop: 1, $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + function parseContinueStatement(parser, context, labels, start, line, column) { + if ((context & 131072) < 1) + report(parser, 65); + nextToken(parser, context); + var label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + var tokenValue = parser.tokenValue; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 1)) + report(parser, 134, tokenValue); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ContinueStatement', + label: label + }); + } + function parseBreakStatement(parser, context, labels, start, line, column) { + nextToken(parser, context | 32768); + var label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + var tokenValue = parser.tokenValue; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 0)) + report(parser, 134, tokenValue); + } + else if ((context & (4096 | 131072)) < 1) { + report(parser, 66); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'BreakStatement', + label: label + }); + } + function parseWithStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + if (context & 1024) + report(parser, 88); + consume(parser, context | 32768, 67174411); + var object = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + var body = parseStatement(parser, context, scope, 2, labels, 0, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'WithStatement', + object: object, + body: body + }); + } + function parseDebuggerStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'DebuggerStatement' + }); + } + function parseTryStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + var firstScope = scope ? addChildScope(scope, 32) : void 0; + var block = parseBlock(parser, context, firstScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + var handler = consumeOpt(parser, context | 32768, 20559) + ? parseCatchBlock(parser, context, scope, labels, tokenPos, linePos, colPos) + : null; + var finalizer = null; + if (parser.token === 20568) { + nextToken(parser, context | 32768); + var finalizerScope = firstScope ? addChildScope(scope, 4) : void 0; + finalizer = parseBlock(parser, context, finalizerScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + } + if (!handler && !finalizer) { + report(parser, 85); + } + return finishNode(parser, context, start, line, column, { + type: 'TryStatement', + block: block, + handler: handler, + finalizer: finalizer + }); + } + function parseCatchBlock(parser, context, scope, labels, start, line, column) { + var param = null; + var additionalScope = scope; + if (consumeOpt(parser, context, 67174411)) { + if (scope) + scope = addChildScope(scope, 4); + param = parseBindingPattern(parser, context, scope, (parser.token & 2097152) === 2097152 + ? 256 + : 512, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 18) { + report(parser, 83); + } + else if (parser.token === 1077936157) { + report(parser, 84); + } + consume(parser, context | 32768, 16); + if (scope) + additionalScope = addChildScope(scope, 64); + } + var body = parseBlock(parser, context, additionalScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'CatchClause', + param: param, + body: body + }); + } + function parseDoWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + var body = parseIterationStatementBody(parser, context, scope, labels); + consume(parser, context, 20580); + consume(parser, context | 32768, 67174411); + var test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + consumeOpt(parser, context, 1074790417); + return finishNode(parser, context, start, line, column, { + type: 'DoWhileStatement', + body: body, + test: test + }); + } + function parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column) { + var token = parser.token, tokenValue = parser.tokenValue; + var expr = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + var declarations = parseVariableDeclarationList(parser, context, scope, 8, 0); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'let', + declarations: declarations + }); + } + parser.assignable = 1; + if (context & 1024) + report(parser, 82); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, {}, tokenValue, expr, token, 0, start, line, column); + } + if (parser.token === 10) { + var scope_1 = void 0; + if (context & 64) + scope_1 = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + expr = parseArrowFunctionExpression(parser, context, scope_1, [expr], 0, start, line, column); + } + else { + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + } + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseLexicalDeclaration(parser, context, scope, kind, origin, start, line, column) { + nextToken(parser, context); + var declarations = parseVariableDeclarationList(parser, context, scope, kind, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: kind & 8 ? 'let' : 'const', + declarations: declarations + }); + } + function parseVariableStatement(parser, context, scope, origin, start, line, column) { + nextToken(parser, context); + var declarations = parseVariableDeclarationList(parser, context, scope, 4, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'var', + declarations: declarations + }); + } + function parseVariableDeclarationList(parser, context, scope, kind, origin) { + var bindingCount = 1; + var list = [parseVariableDeclaration(parser, context, scope, kind, origin)]; + while (consumeOpt(parser, context, 18)) { + bindingCount++; + list.push(parseVariableDeclaration(parser, context, scope, kind, origin)); + } + if (bindingCount > 1 && origin & 32 && parser.token & 262144) { + report(parser, 58, KeywordDescTable[parser.token & 255]); + } + return list; + } + function parseVariableDeclaration(parser, context, scope, kind, origin) { + var token = parser.token, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + var init = null; + var id = parseBindingPattern(parser, context, scope, kind, origin, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + init = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (origin & 32 || (token & 2097152) < 1) { + if (parser.token === 274549 || + (parser.token === 8738868 && + (token & 2097152 || (kind & 4) < 1 || context & 1024))) { + reportMessageAt(tokenPos, parser.line, parser.index - 3, 57, parser.token === 274549 ? 'of' : 'in'); + } + } + } + else if ((kind & 16 || (token & 2097152) > 0) && + (parser.token & 262144) !== 262144) { + report(parser, 56, kind & 16 ? 'const' : 'destructuring'); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclarator', + id: id, + init: init + }); + } + function parseForStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + var forAwait = (context & 4194304) > 0 && consumeOpt(parser, context, 209008); + consume(parser, context | 32768, 67174411); + if (scope) + scope = addChildScope(scope, 1); + var test = null; + var update = null; + var destructible = 0; + var init = null; + var isVarDecl = parser.token === 86090 || parser.token === 241739 || parser.token === 86092; + var right; + var token = parser.token, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + if (isVarDecl) { + if (token === 241739) { + init = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + if (parser.token === 8738868) { + if (context & 1024) + report(parser, 64); + } + else { + init = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclaration', + kind: 'let', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 8, 32) + }); + } + parser.assignable = 1; + } + else if (context & 1024) { + report(parser, 64); + } + else { + isVarDecl = false; + parser.assignable = 1; + init = parseMemberOrUpdateExpression(parser, context, init, 0, 0, tokenPos, linePos, colPos); + if (parser.token === 274549) + report(parser, 111); + } + } + else { + nextToken(parser, context); + init = finishNode(parser, context, tokenPos, linePos, colPos, token === 86090 + ? { + type: 'VariableDeclaration', + kind: 'var', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 4, 32) + } + : { + type: 'VariableDeclaration', + kind: 'const', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 16, 32) + }); + parser.assignable = 1; + } + } + else if (token === 1074790417) { + if (forAwait) + report(parser, 79); + } + else if ((token & 2097152) === 2097152) { + init = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos); + destructible = parser.destructible; + if (context & 256 && destructible & 64) { + report(parser, 60); + } + parser.assignable = + destructible & 16 ? 2 : 1; + init = parseMemberOrUpdateExpression(parser, context | 134217728, init, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + init = parseLeftHandSideExpression(parser, context | 134217728, 1, 0, 1, tokenPos, linePos, colPos); + } + if ((parser.token & 262144) === 262144) { + if (parser.token === 274549) { + if (parser.assignable & 2) + report(parser, 77, forAwait ? 'await' : 'of'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + right = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + var body_1 = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForOfStatement', + left: init, + right: right, + body: body_1, + await: forAwait + }); + } + if (parser.assignable & 2) + report(parser, 77, 'in'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + if (forAwait) + report(parser, 79); + right = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + var body_2 = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForInStatement', + body: body_2, + left: init, + right: right + }); + } + if (forAwait) + report(parser, 79); + if (!isVarDecl) { + if (destructible & 8 && parser.token !== 1077936157) { + report(parser, 77, 'loop'); + } + init = parseAssignmentExpression(parser, context | 134217728, 0, 0, tokenPos, linePos, colPos, init); + } + if (parser.token === 18) + init = parseSequenceExpression(parser, context, 0, parser.tokenPos, parser.linePos, parser.colPos, init); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 1074790417) + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 16) + update = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + var body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForStatement', + init: init, + test: test, + update: update, + body: body + }); + } + function parseRestrictedIdentifier(parser, context, scope) { + if (!isValidIdentifier(context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) + report(parser, 115); + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 8, 0); + return parseIdentifier(parser, context, 0); + } + function parseImportDeclaration(parser, context, scope) { + var start = parser.tokenPos; + var line = parser.linePos; + var column = parser.colPos; + nextToken(parser, context); + var source = null; + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + var specifiers = []; + if (parser.token === 134283267) { + source = parseLiteral(parser, context); + } + else { + if (parser.token & 143360) { + var local = parseRestrictedIdentifier(parser, context, scope); + specifiers = [ + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportDefaultSpecifier', + local: local + }) + ]; + if (consumeOpt(parser, context, 18)) { + switch (parser.token) { + case 8457014: + specifiers.push(parseImportNamespaceSpecifier(parser, context, scope)); + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + default: + report(parser, 104); + } + } + } + else { + switch (parser.token) { + case 8457014: + specifiers = [parseImportNamespaceSpecifier(parser, context, scope)]; + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + source = parseModuleSpecifier(parser, context); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ImportDeclaration', + specifiers: specifiers, + source: source + }); + } + function parseImportNamespaceSpecifier(parser, context, scope) { + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + nextToken(parser, context); + consume(parser, context, 77934); + if ((parser.token & 134217728) === 134217728) { + reportMessageAt(tokenPos, parser.line, parser.index, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportNamespaceSpecifier', + local: parseRestrictedIdentifier(parser, context, scope) + }); + } + function parseModuleSpecifier(parser, context) { + consumeOpt(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Import'); + return parseLiteral(parser, context); + } + function parseImportSpecifierOrNamedImports(parser, context, scope, specifiers) { + nextToken(parser, context); + while (parser.token & 143360) { + var token = parser.token, tokenValue = parser.tokenValue, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + var imported = parseIdentifier(parser, context, 0); + var local = void 0; + if (consumeOpt(parser, context, 77934)) { + if ((parser.token & 134217728) === 134217728 || parser.token === 18) { + report(parser, 103); + } + else { + validateBindingIdentifier(parser, context, 16, parser.token, 0); + } + tokenValue = parser.tokenValue; + local = parseIdentifier(parser, context, 0); + } + else { + validateBindingIdentifier(parser, context, 16, token, 0); + local = imported; + } + if (scope) + addBlockName(parser, context, scope, tokenValue, 8, 0); + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportSpecifier', + local: local, + imported: imported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + return specifiers; + } + function parseImportMetaDeclaration(parser, context, start, line, column) { + var expr = parseImportMetaExpression(parser, context, finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: 'import' + }), start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseImportCallDeclaration(parser, context, start, line, column) { + var expr = parseImportExpression(parser, context, 0, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseExportDeclaration(parser, context, scope) { + var start = parser.tokenPos; + var line = parser.linePos; + var column = parser.colPos; + nextToken(parser, context | 32768); + var specifiers = []; + var declaration = null; + var source = null; + var key; + if (consumeOpt(parser, context | 32768, 20563)) { + switch (parser.token) { + case 86106: { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + } + case 133: + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 1, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + declaration = parseIdentifier(parser, context, 0); + var flags = parser.flags; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 1, tokenPos, linePos, colPos); + } + else { + if (parser.token === 67174411) { + declaration = parseAsyncArrowOrCallExpression(parser, context, declaration, 1, 1, 0, flags, tokenPos, linePos, colPos); + declaration = parseMemberOrUpdateExpression(parser, context, declaration, 0, 0, tokenPos, linePos, colPos); + declaration = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, declaration); + } + else if (parser.token & 143360) { + if (scope) + scope = createArrowHeadParsingScope(parser, context, parser.tokenValue); + declaration = parseIdentifier(parser, context, 0); + declaration = parseArrowFunctionExpression(parser, context, scope, [declaration], 1, tokenPos, linePos, colPos); + } + } + } + break; + default: + declaration = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + } + if (scope) + declareUnboundVariable(parser, 'default'); + return finishNode(parser, context, start, line, column, { + type: 'ExportDefaultDeclaration', + declaration: declaration + }); + } + switch (parser.token) { + case 8457014: { + nextToken(parser, context); + var exported = null; + var isNamedDeclaration = consumeOpt(parser, context, 77934); + if (isNamedDeclaration) { + if (scope) + declareUnboundVariable(parser, parser.tokenValue); + exported = parseIdentifier(parser, context, 0); + } + consume(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExportAllDeclaration', + source: source, + exported: exported + }); + } + case 2162700: { + nextToken(parser, context); + var tmpExportedNames = []; + var tmpExportedBindings = []; + while (parser.token & 143360) { + var tokenPos_1 = parser.tokenPos, tokenValue = parser.tokenValue, linePos_1 = parser.linePos, colPos_1 = parser.colPos; + var local = parseIdentifier(parser, context, 0); + var exported = void 0; + if (parser.token === 77934) { + nextToken(parser, context); + if ((parser.token & 134217728) === 134217728) { + report(parser, 103); + } + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(tokenValue); + } + exported = parseIdentifier(parser, context, 0); + } + else { + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(parser.tokenValue); + } + exported = local; + } + specifiers.push(finishNode(parser, context, tokenPos_1, linePos_1, colPos_1, { + type: 'ExportSpecifier', + local: local, + exported: exported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + if (consumeOpt(parser, context, 12404)) { + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + } + else if (scope) { + var i = 0; + var iMax = tmpExportedNames.length; + for (; i < iMax; i++) { + declareUnboundVariable(parser, tmpExportedNames[i]); + } + i = 0; + iMax = tmpExportedBindings.length; + for (; i < iMax; i++) { + addBindingToExports(parser, tmpExportedBindings[i]); + } + } + matchOrInsertSemicolon(parser, context | 32768); + break; + } + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 2, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86106: + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 241739: + declaration = parseLexicalDeclaration(parser, context, scope, 8, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86092: + declaration = parseLexicalDeclaration(parser, context, scope, 16, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86090: + declaration = parseVariableStatement(parser, context, scope, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + nextToken(parser, context); + if ((parser.flags & 1) < 1 && parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 1, tokenPos, linePos, colPos); + if (scope) { + key = declaration.id ? declaration.id.name : ''; + declareUnboundVariable(parser, key); + } + break; + } + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, start, line, column, { + type: 'ExportNamedDeclaration', + declaration: declaration, + specifiers: specifiers, + source: source + }); + } + function parseExpression(parser, context, canAssign, isPattern, inGroup, start, line, column) { + var expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, isPattern, inGroup, 1, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + return parseAssignmentExpression(parser, context, inGroup, 0, start, line, column, expr); + } + function parseSequenceExpression(parser, context, inGroup, start, line, column, expr) { + var expressions = [expr]; + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + return finishNode(parser, context, start, line, column, { + type: 'SequenceExpression', + expressions: expressions + }); + } + function parseExpressions(parser, context, inGroup, canAssign, start, line, column) { + var expr = parseExpression(parser, context, canAssign, 0, inGroup, start, line, column); + return parser.token === 18 + ? parseSequenceExpression(parser, context, inGroup, start, line, column, expr) + : expr; + } + function parseAssignmentExpression(parser, context, inGroup, isPattern, start, line, column, left) { + var token = parser.token; + if ((token & 4194304) === 4194304) { + if (parser.assignable & 2) + report(parser, 24); + if ((!isPattern && token === 1077936157 && left.type === 'ArrayExpression') || + left.type === 'ObjectExpression') { + reinterpretToPattern(parser, left); + } + nextToken(parser, context | 32768); + var right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left: left, + right: right + } + : { + type: 'AssignmentExpression', + left: left, + operator: KeywordDescTable[token & 255], + right: right + }); + } + if ((token & 8454144) === 8454144) { + left = parseBinaryExpression(parser, context, inGroup, start, line, column, 4, token, left); + } + if (consumeOpt(parser, context | 32768, 22)) { + left = parseConditionalExpression(parser, context, left, start, line, column); + } + return left; + } + function parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, start, line, column, left) { + var token = parser.token; + nextToken(parser, context | 32768); + var right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left: left, + right: right + } + : { + type: 'AssignmentExpression', + left: left, + operator: KeywordDescTable[token & 255], + right: right + }); + parser.assignable = 2; + return left; + } + function parseConditionalExpression(parser, context, test, start, line, column) { + var consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 21); + parser.assignable = 1; + var alternate = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ConditionalExpression', + test: test, + consequent: consequent, + alternate: alternate + }); + } + function parseBinaryExpression(parser, context, inGroup, start, line, column, minPrec, operator, left) { + var bit = -((context & 134217728) > 0) & 8738868; + var t; + var prec; + parser.assignable = 2; + while (parser.token & 8454144) { + t = parser.token; + prec = t & 3840; + if ((t & 524288 && operator & 268435456) || (operator & 524288 && t & 268435456)) { + report(parser, 159); + } + if (prec + ((t === 8457273) << 8) - ((bit === t) << 12) <= minPrec) + break; + nextToken(parser, context | 32768); + left = finishNode(parser, context, start, line, column, { + type: t & 524288 || t & 268435456 ? 'LogicalExpression' : 'BinaryExpression', + left: left, + right: parseBinaryExpression(parser, context, inGroup, parser.tokenPos, parser.linePos, parser.colPos, prec, t, parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos)), + operator: KeywordDescTable[t & 255] + }); + } + if (parser.token === 1077936157) + report(parser, 24); + return left; + } + function parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup) { + if (!isLHS) + report(parser, 0); + var unaryOperator = parser.token; + nextToken(parser, context | 32768); + var arg = parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + if (context & 1024 && unaryOperator === 16863278) { + if (arg.type === 'Identifier') { + report(parser, 117); + } + else if (isPropertyWithPrivateFieldKey(arg)) { + report(parser, 123); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UnaryExpression', + operator: KeywordDescTable[unaryOperator & 255], + argument: arg, + prefix: true + }); + } + function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column) { + var token = parser.token; + var expr = parseIdentifier(parser, context, isPattern); + var flags = parser.flags; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + return parseFunctionExpression(parser, context, 1, inGroup, start, line, column); + } + if ((parser.token & 143360) === 143360) { + if (!isLHS) + report(parser, 0); + return parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column); + } + } + if (!inNew && parser.token === 67174411) { + return parseAsyncArrowOrCallExpression(parser, context, expr, canAssign, 1, 0, flags, start, line, column); + } + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + if (inNew) + report(parser, 48); + return parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + return expr; + } + function parseYieldExpression(parser, context, inGroup, canAssign, start, line, column) { + if (inGroup) + parser.destructible |= 256; + if (context & 2097152) { + nextToken(parser, context | 32768); + if (context & 8388608) + report(parser, 30); + if (!canAssign) + report(parser, 24); + if (parser.token === 22) + report(parser, 120); + var argument = null; + var delegate = false; + if ((parser.flags & 1) < 1) { + delegate = consumeOpt(parser, context | 32768, 8457014); + if (parser.token & (12288 | 65536) || delegate) { + argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'YieldExpression', + argument: argument, + delegate: delegate + }); + } + if (context & 1024) + report(parser, 94, 'yield'); + return parseIdentifierOrArrow(parser, context, start, line, column); + } + function parseAwaitExpression(parser, context, inNew, inGroup, start, line, column) { + if (inGroup) + parser.destructible |= 128; + if (context & 4194304 || (context & 2048 && context & 8192)) { + if (inNew) + report(parser, 0); + if (context & 8388608) { + reportMessageAt(parser.index, parser.line, parser.index, 29); + } + nextToken(parser, context | 32768); + var argument = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'AwaitExpression', + argument: argument + }); + } + if (context & 2048) + report(parser, 95); + return parseIdentifierOrArrow(parser, context, start, line, column); + } + function parseFunctionBody(parser, context, scope, origin, firstRestricted, scopeError) { + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + consume(parser, context | 32768, 2162700); + var body = []; + var prevContext = context; + if (parser.token !== 1074790415) { + while (parser.token === 134283267) { + var index = parser.index, tokenPos_2 = parser.tokenPos, tokenValue = parser.tokenValue, token = parser.token; + var expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos_2, tokenValue)) { + context |= 1024; + if (parser.flags & 128) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 63); + } + if (parser.flags & 64) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 8); + } + } + body.push(parseDirective(parser, context, expr, token, tokenPos_2, parser.linePos, parser.colPos)); + } + if (context & 1024) { + if (firstRestricted) { + if ((firstRestricted & 537079808) === 537079808) { + report(parser, 115); + } + if ((firstRestricted & 36864) === 36864) { + report(parser, 38); + } + } + if (parser.flags & 512) + report(parser, 115); + if (parser.flags & 256) + report(parser, 114); + } + if (context & 64 && + scope && + scopeError !== void 0 && + (prevContext & 1024) < 1 && + (context & 8192) < 1) { + reportScopeError(scopeError); + } + } + parser.flags = + (parser.flags | 512 | 256 | 64) ^ + (512 | 256 | 64); + parser.destructible = (parser.destructible | 256) ^ 256; + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 4, {})); + } + consume(parser, origin & (16 | 8) ? context | 32768 : context, 1074790415); + parser.flags &= ~(128 | 64); + if (parser.token === 1077936157) + report(parser, 24); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'BlockStatement', + body: body + }); + } + function parseSuperExpression(parser, context, start, line, column) { + nextToken(parser, context); + switch (parser.token) { + case 67108991: + report(parser, 161); + case 67174411: { + if ((context & 524288) < 1) + report(parser, 26); + if (context & 16384) + report(parser, 143); + parser.assignable = 2; + break; + } + case 69271571: + case 67108877: { + if ((context & 262144) < 1) + report(parser, 27); + if (context & 16384) + report(parser, 143); + parser.assignable = 1; + break; + } + default: + report(parser, 28, 'super'); + } + return finishNode(parser, context, start, line, column, { type: 'Super' }); + } + function parseLeftHandSideExpression(parser, context, canAssign, inGroup, isLHS, start, line, column) { + var expression = parsePrimaryExpression(parser, context, 2, 0, canAssign, 0, inGroup, isLHS, start, line, column); + return parseMemberOrUpdateExpression(parser, context, expression, inGroup, 0, start, line, column); + } + function parseUpdateExpression(parser, context, expr, start, line, column) { + if (parser.assignable & 2) + report(parser, 52); + var token = parser.token; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: expr, + operator: KeywordDescTable[token & 255], + prefix: false + }); + } + function parseMemberOrUpdateExpression(parser, context, expr, inGroup, inChain, start, line, column) { + if ((parser.token & 33619968) === 33619968 && (parser.flags & 1) < 1) { + expr = parseUpdateExpression(parser, context, expr, start, line, column); + } + else if ((parser.token & 67108864) === 67108864) { + context = (context | 134217728 | 8192) ^ (134217728 | 8192); + switch (parser.token) { + case 67108877: { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + var property = parsePropertyOrPrivatePropertyName(parser, context); + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property: property + }); + break; + } + case 69271571: { + var restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + nextToken(parser, context | 32768); + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + var property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property: property + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67174411: { + if ((parser.flags & 1024) === 1024) { + parser.flags = (parser.flags | 1024) ^ 1024; + return expr; + } + var restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + var args = parseArguments(parser, context, inGroup); + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67108991: { + nextToken(parser, context); + parser.flags |= 2048; + parser.assignable = 2; + expr = parseOptionalChain(parser, context, expr, start, line, column); + break; + } + default: + if ((parser.flags & 2048) === 2048) { + report(parser, 160); + } + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 1, start, line, column); + } + if (inChain === 0 && (parser.flags & 2048) === 2048) { + parser.flags = (parser.flags | 2048) ^ 2048; + expr = finishNode(parser, context, start, line, column, { + type: 'ChainExpression', + expression: expr + }); + } + return expr; + } + function parseOptionalChain(parser, context, expr, start, line, column) { + var restoreHasOptionalChaining = false; + var node; + if (parser.token === 69271571 || parser.token === 67174411) { + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + } + if (parser.token === 69271571) { + nextToken(parser, context | 32768); + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + var property = parseExpressions(parser, context, 0, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + optional: true, + property: property + }); + } + else if (parser.token === 67174411) { + var args = parseArguments(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args, + optional: true + }); + } + else { + if ((parser.token & (143360 | 4096)) < 1) + report(parser, 154); + var property = parseIdentifier(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + optional: true, + property: property + }); + } + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + return node; + } + function parsePropertyOrPrivatePropertyName(parser, context) { + if ((parser.token & (143360 | 4096)) < 1 && parser.token !== 131) { + report(parser, 154); + } + return context & 1 && parser.token === 131 + ? parsePrivateIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + : parseIdentifier(parser, context, 0); + } + function parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column) { + if (inNew) + report(parser, 53); + if (!isLHS) + report(parser, 0); + var token = parser.token; + nextToken(parser, context | 32768); + var arg = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.assignable & 2) { + report(parser, 52); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: arg, + operator: KeywordDescTable[token & 255], + prefix: true + }); + } + function parsePrimaryExpression(parser, context, kind, inNew, canAssign, isPattern, inGroup, isLHS, start, line, column) { + if ((parser.token & 143360) === 143360) { + switch (parser.token) { + case 209008: + return parseAwaitExpression(parser, context, inNew, inGroup, start, line, column); + case 241773: + return parseYieldExpression(parser, context, inGroup, canAssign, start, line, column); + case 209007: + return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column); + } + var token = parser.token, tokenValue = parser.tokenValue; + var expr = parseIdentifier(parser, context | 65536, isPattern); + if (parser.token === 10) { + if (!isLHS) + report(parser, 0); + classifyIdentifier(parser, context, token, 1); + return parseArrowFromIdentifier(parser, context, tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + if (context & 16384 && token === 537079928) + report(parser, 126); + if (token === 241739) { + if (context & 1024) + report(parser, 109); + if (kind & (8 | 16)) + report(parser, 97); + } + parser.assignable = + context & 1024 && (token & 537079808) === 537079808 + ? 2 + : 1; + return expr; + } + if ((parser.token & 134217728) === 134217728) { + return parseLiteral(parser, context); + } + switch (parser.token) { + case 33619995: + case 33619996: + return parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column); + case 16863278: + case 16842800: + case 16842801: + case 25233970: + case 25233971: + case 16863277: + case 16863279: + return parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup); + case 86106: + return parseFunctionExpression(parser, context, 0, inGroup, start, line, column); + case 2162700: + return parseObjectLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 69271571: + return parseArrayLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 67174411: + return parseParenthesizedExpression(parser, context, canAssign, 1, 0, start, line, column); + case 86021: + case 86022: + case 86023: + return parseNullOrTrueOrFalseLiteral(parser, context, start, line, column); + case 86113: + return parseThisExpression(parser, context); + case 65540: + return parseRegExpLiteral(parser, context, start, line, column); + case 133: + case 86096: + return parseClassExpression(parser, context, inGroup, start, line, column); + case 86111: + return parseSuperExpression(parser, context, start, line, column); + case 67174409: + return parseTemplateLiteral(parser, context, start, line, column); + case 67174408: + return parseTemplate(parser, context); + case 86109: + return parseNewExpression(parser, context, inGroup, start, line, column); + case 134283389: + return parseBigIntLiteral(parser, context, start, line, column); + case 131: + return parsePrivateIdentifier(parser, context, start, line, column); + case 86108: + return parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column); + case 8456258: + if (context & 16) + return parseJSXRootElementOrFragment(parser, context, 1, start, line, column); + default: + if (isValidIdentifier(context, parser.token)) + return parseIdentifierOrArrow(parser, context, start, line, column); + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + function parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column) { + var expr = parseIdentifier(parser, context, 0); + if (parser.token === 67108877) { + return parseImportMetaExpression(parser, context, expr, start, line, column); + } + if (inNew) + report(parser, 137); + expr = parseImportExpression(parser, context, inGroup, start, line, column); + parser.assignable = 2; + return parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + } + function parseImportMetaExpression(parser, context, meta, start, line, column) { + if ((context & 2048) === 0) + report(parser, 163); + nextToken(parser, context); + if (parser.token !== 143495 && parser.tokenValue !== 'meta') + report(parser, 28, KeywordDescTable[parser.token & 255]); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta: meta, + property: parseIdentifier(parser, context, 0) + }); + } + function parseImportExpression(parser, context, inGroup, start, line, column) { + consume(parser, context | 32768, 67174411); + if (parser.token === 14) + report(parser, 138); + var source = parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + return finishNode(parser, context, start, line, column, { + type: 'ImportExpression', + source: source + }); + } + function parseBigIntLiteral(parser, context, start, line, column) { + var tokenRaw = parser.tokenRaw, tokenValue = parser.tokenValue; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1), + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1) + }); + } + function parseTemplateLiteral(parser, context, start, line, column) { + parser.assignable = 2; + var tokenValue = parser.tokenValue, tokenRaw = parser.tokenRaw, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + consume(parser, context, 67174409); + var quasis = [parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)]; + return finishNode(parser, context, start, line, column, { + type: 'TemplateLiteral', + expressions: [], + quasis: quasis + }); + } + function parseTemplate(parser, context) { + context = (context | 134217728) ^ 134217728; + var tokenValue = parser.tokenValue, tokenRaw = parser.tokenRaw, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + consume(parser, context | 32768, 67174408); + var quasis = [ + parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false) + ]; + var expressions = [parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)]; + if (parser.token !== 1074790415) + report(parser, 80); + while ((parser.token = scanTemplateTail(parser, context)) !== 67174409) { + var tokenValue_1 = parser.tokenValue, tokenRaw_1 = parser.tokenRaw, tokenPos_3 = parser.tokenPos, linePos_2 = parser.linePos, colPos_2 = parser.colPos; + consume(parser, context | 32768, 67174408); + quasis.push(parseTemplateElement(parser, context, tokenValue_1, tokenRaw_1, tokenPos_3, linePos_2, colPos_2, false)); + expressions.push(parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + if (parser.token !== 1074790415) + report(parser, 80); + } + { + var tokenValue_2 = parser.tokenValue, tokenRaw_2 = parser.tokenRaw, tokenPos_4 = parser.tokenPos, linePos_3 = parser.linePos, colPos_3 = parser.colPos; + consume(parser, context, 67174409); + quasis.push(parseTemplateElement(parser, context, tokenValue_2, tokenRaw_2, tokenPos_4, linePos_3, colPos_3, true)); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'TemplateLiteral', + expressions: expressions, + quasis: quasis + }); + } + function parseTemplateElement(parser, context, cooked, raw, start, line, col, tail) { + var node = finishNode(parser, context, start, line, col, { + type: 'TemplateElement', + value: { + cooked: cooked, + raw: raw + }, + tail: tail + }); + var tailSize = tail ? 1 : 2; + if (context & 2) { + node.start += 1; + node.range[0] += 1; + node.end -= tailSize; + node.range[1] -= tailSize; + } + if (context & 4) { + node.loc.start.column += 1; + node.loc.end.column -= tailSize; + } + return node; + } + function parseSpreadElement(parser, context, start, line, column) { + context = (context | 134217728) ^ 134217728; + consume(parser, context | 32768, 14); + var argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 1; + return finishNode(parser, context, start, line, column, { + type: 'SpreadElement', + argument: argument + }); + } + function parseArguments(parser, context, inGroup) { + nextToken(parser, context | 32768); + var args = []; + if (parser.token === 16) { + nextToken(parser, context); + return args; + } + while (parser.token !== 16) { + if (parser.token === 14) { + args.push(parseSpreadElement(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + else { + args.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + if (parser.token !== 18) + break; + nextToken(parser, context | 32768); + if (parser.token === 16) + break; + } + consume(parser, context, 16); + return args; + } + function parseIdentifier(parser, context, isPattern) { + var tokenValue = parser.tokenValue, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + nextToken(parser, context); + return finishNode(parser, context, tokenPos, linePos, colPos, context & 268435456 + ? { + type: 'Identifier', + name: tokenValue, + pattern: isPattern === 1 + } + : { + type: 'Identifier', + name: tokenValue + }); + } + function parseLiteral(parser, context) { + var tokenValue = parser.tokenValue, tokenRaw = parser.tokenRaw, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + if (parser.token === 134283389) { + return parseBigIntLiteral(parser, context, tokenPos, linePos, colPos); + } + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, context & 512 + ? { + type: 'Literal', + value: tokenValue, + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue + }); + } + function parseNullOrTrueOrFalseLiteral(parser, context, start, line, column) { + var raw = KeywordDescTable[parser.token & 255]; + var value = parser.token === 86023 ? null : raw === 'true'; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value: value, + raw: raw + } + : { + type: 'Literal', + value: value + }); + } + function parseThisExpression(parser, context) { + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ThisExpression' + }); + } + function parseFunctionDeclaration(parser, context, scope, origin, allowGen, flags, isAsync, start, line, column) { + nextToken(parser, context | 32768); + var isGenerator = allowGen ? optionalBit(parser, context, 8457014) : 0; + var id = null; + var firstRestricted; + var functionScope = scope ? createScope() : void 0; + if (parser.token === 67174411) { + if ((flags & 1) < 1) + report(parser, 37, 'Function'); + } + else { + var kind = origin & 4 && ((context & 8192) < 1 || (context & 2048) < 1) + ? 4 + : 64; + validateFunctionName(parser, context | ((context & 3072) << 11), parser.token); + if (scope) { + if (kind & 4) { + addVarName(parser, context, scope, parser.tokenValue, kind); + } + else { + addBlockName(parser, context, scope, parser.tokenValue, kind, origin); + } + functionScope = addChildScope(functionScope, 256); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, parser.tokenValue); + } + } + } + firstRestricted = parser.token; + if (parser.token & 143360) { + id = parseIdentifier(parser, context, 0); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + ((isAsync * 2 + isGenerator) << 21) | + (isGenerator ? 0 : 1073741824); + if (scope) + functionScope = addChildScope(functionScope, 512); + var params = parseFormalParametersOrFormalList(parser, context | 8388608, functionScope, 0, 1); + var body = parseFunctionBody(parser, (context | 8192 | 4096 | 131072) ^ + (8192 | 4096 | 131072), scope ? addChildScope(functionScope, 128) : functionScope, 8, firstRestricted, scope ? functionScope.scopeError : void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionDeclaration', + id: id, + params: params, + body: body, + async: isAsync === 1, + generator: isGenerator === 1 + }); + } + function parseFunctionExpression(parser, context, isAsync, inGroup, start, line, column) { + nextToken(parser, context | 32768); + var isGenerator = optionalBit(parser, context, 8457014); + var generatorAndAsyncFlags = (isAsync * 2 + isGenerator) << 21; + var id = null; + var firstRestricted; + var scope = context & 64 ? createScope() : void 0; + if ((parser.token & (143360 | 4096 | 36864)) > 0) { + validateFunctionName(parser, ((context | 0x1ec0000) ^ 0x1ec0000) | generatorAndAsyncFlags, parser.token); + if (scope) + scope = addChildScope(scope, 256); + firstRestricted = parser.token; + id = parseIdentifier(parser, context, 0); + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + generatorAndAsyncFlags | + (isGenerator ? 0 : 1073741824); + if (scope) + scope = addChildScope(scope, 512); + var params = parseFormalParametersOrFormalList(parser, context | 8388608, scope, inGroup, 1); + var body = parseFunctionBody(parser, context & ~(0x8001000 | 8192 | 4096 | 131072 | 16384), scope ? addChildScope(scope, 128) : scope, 0, firstRestricted, void 0); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + id: id, + params: params, + body: body, + async: isAsync === 1, + generator: isGenerator === 1 + }); + } + function parseArrayLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + var expr = parseArrayExpressionOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; + } + function parseArrayExpressionOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context | 32768); + var elements = []; + var destructible = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 20) { + if (consumeOpt(parser, context | 32768, 18)) { + elements.push(null); + } + else { + var left = void 0; + var token = parser.token, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos, tokenValue = parser.tokenValue; + if (token & 143360) { + left = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + if (parser.assignable & 2) + report(parser, 24); + nextToken(parser, context | 32768); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + var right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left: left, + right: right + } + : { + type: 'AssignmentExpression', + operator: '=', + left: left, + right: right + }); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else { + destructible |= + kind & 1 + ? 32 + : (kind & 2) < 1 + ? 16 + : 0; + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + if (parser.token !== 1077936157) + destructible |= 16; + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token & 2097152) { + left = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + parser.assignable = + parser.destructible & 16 + ? 2 + : 1; + if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 20, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos); + destructible |= parser.destructible; + if (parser.token !== 18 && parser.token !== 20) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + left = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + if ((kind & (2 | 1)) < 1 && token === 67174411) + destructible |= 16; + } + else if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === 67174411) { + destructible |= + parser.assignable & 1 && kind & (2 | 1) + ? 32 + : 16; + } + } + elements.push(left); + if (consumeOpt(parser, context | 32768, 18)) { + if (parser.token === 20) + break; + } + else + break; + } + } + consume(parser, context, 20); + var node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ArrayPattern' : 'ArrayExpression', + elements: elements + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; + } + function parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node) { + if (parser.token !== 1077936157) + report(parser, 24); + nextToken(parser, context | 32768); + if (destructible & 16) + report(parser, 24); + if (!isPattern) + reinterpretToPattern(parser, node); + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + var right = parseExpression(parser, context, 1, 1, inGroup, tokenPos, linePos, colPos); + parser.destructible = + ((destructible | 64 | 8) ^ + (8 | 64)) | + (parser.destructible & 128 ? 128 : 0) | + (parser.destructible & 256 ? 256 : 0); + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left: node, + right: right + } + : { + type: 'AssignmentExpression', + left: node, + operator: '=', + right: right + }); + } + function parseSpreadOrRestElement(parser, context, scope, closingToken, kind, origin, isAsync, inGroup, isPattern, start, line, column) { + nextToken(parser, context | 32768); + var argument = null; + var destructible = 0; + var token = parser.token, tokenValue = parser.tokenValue, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + if (token & (4096 | 143360)) { + parser.assignable = 1; + argument = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + token = parser.token; + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== closingToken) { + if (parser.assignable & 2 && parser.token === 1077936157) + report(parser, 68); + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === closingToken || token === 18) { + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + else { + destructible |= 32; + } + destructible |= parser.destructible & 128 ? 128 : 0; + } + else if (token === closingToken) { + report(parser, 39); + } + else if (token & 2097152) { + argument = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + token = parser.token; + if (token !== 1077936157 && token !== closingToken && token !== 18) { + if (parser.destructible & 8) + report(parser, 68); + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + destructible |= parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + else { + if ((parser.token & 8454144) === 8454144) { + argument = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, argument); + } + if (consumeOpt(parser, context | 32768, 22)) { + argument = parseConditionalExpression(parser, context, argument, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + else { + destructible |= + closingToken === 1074790415 && token !== 1077936157 + ? 16 + : parser.destructible; + } + } + else { + destructible |= 32; + argument = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + var token_1 = parser.token, tokenPos_5 = parser.tokenPos, linePos_4 = parser.linePos, colPos_4 = parser.colPos; + if (token_1 === 1077936157 && token_1 !== closingToken && token_1 !== 18) { + if (parser.assignable & 2) + report(parser, 24); + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos_5, linePos_4, colPos_4, argument); + destructible |= 16; + } + else { + if (token_1 === 18) { + destructible |= 16; + } + else if (token_1 !== closingToken) { + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos_5, linePos_4, colPos_4, argument); + } + destructible |= + parser.assignable & 1 ? 32 : 16; + } + parser.destructible = destructible; + if (parser.token !== closingToken && parser.token !== 18) + report(parser, 155); + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + if (parser.token !== closingToken) { + if (kind & 1) + destructible |= isAsync ? 16 : 32; + if (consumeOpt(parser, context | 32768, 1077936157)) { + if (destructible & 16) + report(parser, 24); + reinterpretToPattern(parser, argument); + var right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + argument = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left: argument, + right: right + } + : { + type: 'AssignmentExpression', + left: argument, + operator: '=', + right: right + }); + destructible = 16; + } + else { + destructible |= 16; + } + } + parser.destructible = destructible; + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + function parseMethodDefinition(parser, context, kind, inGroup, start, line, column) { + var modifierFlags = (kind & 64) < 1 ? 31981568 : 14680064; + context = + ((context | modifierFlags) ^ modifierFlags) | + ((kind & 88) << 18) | + 100925440; + var scope = context & 64 ? addChildScope(createScope(), 512) : void 0; + var params = parseMethodFormals(parser, context | 8388608, scope, kind, 1, inGroup); + if (scope) + scope = addChildScope(scope, 128); + var body = parseFunctionBody(parser, context & ~(0x8001000 | 8192), scope, 0, void 0, void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + params: params, + body: body, + async: (kind & 16) > 0, + generator: (kind & 8) > 0, + id: null + }); + } + function parseObjectLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + var expr = parseObjectLiteralOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; + } + function parseObjectLiteralOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context); + var properties = []; + var destructible = 0; + var prototypeCount = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 1074790415) { + var token = parser.token, tokenValue = parser.tokenValue, linePos = parser.linePos, colPos = parser.colPos, tokenPos = parser.tokenPos; + if (token === 14) { + properties.push(parseSpreadOrRestElement(parser, context, scope, 1074790415, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos)); + } + else { + var state = 0; + var key = null; + var value = void 0; + var t = parser.token; + if (parser.token & (143360 | 4096) || parser.token === 121) { + key = parseIdentifier(parser, context, 0); + if (parser.token === 18 || parser.token === 1074790415 || parser.token === 1077936157) { + state |= 4; + if (context & 1024 && (token & 537079808) === 537079808) { + destructible |= 16; + } + else { + validateBindingIdentifier(parser, context, kind, token, 0); + } + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + if (consumeOpt(parser, context | 32768, 1077936157)) { + destructible |= 8; + var right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + value = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: context & -2147483648 ? Object.assign({}, key) : key, + right: right + }); + } + else { + destructible |= + (token === 209008 ? 128 : 0) | + (token === 121 ? 16 : 0); + value = context & -2147483648 ? Object.assign({}, key) : key; + } + } + else if (consumeOpt(parser, context | 32768, 21)) { + var tokenPos_6 = parser.tokenPos, linePos_5 = parser.linePos, colPos_5 = parser.colPos; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + var tokenAfterColon = parser.token; + var valueAfterColon = parser.tokenValue; + destructible |= t === 121 ? 16 : 0; + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos_6, linePos_5, colPos_5); + var token_2 = parser.token; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos_6, linePos_5, colPos_5); + if (parser.token === 18 || parser.token === 1074790415) { + if (token_2 === 1077936157 || token_2 === 1074790415 || token_2 === 18) { + destructible |= parser.destructible & 128 ? 128 : 0; + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if ((parser.token & 4194304) === 4194304) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token_2 !== 1077936157) { + destructible |= 32; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos_6, linePos_5, colPos_5, value); + } + else { + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos_6, linePos_5, colPos_5, 4, token_2, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos_6, linePos_5, colPos_5); + } + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos_6, linePos_5, colPos_5) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos_6, linePos_5, colPos_5); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos_6, linePos_5, colPos_5); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos_6, linePos_5, colPos_5, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos_6, linePos_5, colPos_5, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos_6, linePos_5, colPos_5); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, tokenPos_6, linePos_5, colPos_5); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos_6, linePos_5, colPos_5); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos_6, linePos_5, colPos_5, value); + } + } + } + } + else if (parser.token === 69271571) { + destructible |= 16; + if (token === 209007) + state |= 16; + state |= + (token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1) | 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token & (143360 | 4096)) { + destructible |= 16; + if (token === 121) + report(parser, 92); + if (token === 209007) { + if (parser.flags & 1) + report(parser, 128); + state |= 16; + } + key = parseIdentifier(parser, context, 0); + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 67174411) { + destructible |= 16; + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 8457014) { + destructible |= 16; + if (token === 12402 || token === 12403) { + report(parser, 40); + } + else if (token === 143483) { + report(parser, 92); + } + nextToken(parser, context); + state |= + 8 | 1 | (token === 209007 ? 16 : 0); + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + state |= 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if ((parser.token & 134217728) === 134217728) { + if (token === 209007) + state |= 16; + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + destructible |= 16; + key = parseLiteral(parser, context); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 129); + } + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + if (parser.token === 21) { + consume(parser, context | 32768, 21); + var tokenPos_7 = parser.tokenPos, linePos_6 = parser.linePos, colPos_6 = parser.colPos; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos_7, linePos_6, colPos_6); + var token_3 = parser.token, valueAfterColon = parser.tokenValue; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos_7, linePos_6, colPos_6); + if (parser.token === 18 || parser.token === 1074790415) { + if (token_3 === 1077936157 || token_3 === 1074790415 || token_3 === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if (parser.token === 1077936157) { + if (parser.assignable & 2) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos_7, linePos_6, colPos_6, value); + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos_7, linePos_6, colPos_6, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos_7, linePos_6, colPos_6) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos_7, linePos_6, colPos_6); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if ((parser.destructible & 8) !== 8) { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos_7, linePos_6, colPos_6); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos_7, linePos_6, colPos_6, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos_7, linePos_6, colPos_6, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos_7, linePos_6, colPos_6); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos_7, linePos_6, colPos_6); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos_7, linePos_6, colPos_6); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos_7, linePos_6, colPos_6, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible = parser.assignable | 16; + } + else { + report(parser, 130); + } + } + else if (parser.token === 69271571) { + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.destructible & 256 ? 256 : 0; + state |= 2; + if (parser.token === 21) { + nextToken(parser, context | 32768); + var tokenPos_8 = parser.tokenPos, linePos_7 = parser.linePos, colPos_7 = parser.colPos, tokenValue_3 = parser.tokenValue, tokenAfterColon = parser.token; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos_8, linePos_7, colPos_7); + var token_4 = parser.token; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos_8, linePos_7, colPos_7); + if ((parser.token & 4194304) === 4194304) { + destructible |= + parser.assignable & 2 + ? 16 + : token_4 === 1077936157 + ? 0 + : 32; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos_8, linePos_7, colPos_7, value); + } + else if (parser.token === 18 || parser.token === 1074790415) { + if (token_4 === 1077936157 || token_4 === 1074790415 || token_4 === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, tokenValue_3, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos_8, linePos_7, colPos_7, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos_8, linePos_7, colPos_7) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos_8, linePos_7, colPos_7); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (destructible & 8) { + report(parser, 59); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos_8, linePos_7, colPos_7); + destructible = + parser.assignable & 2 ? destructible | 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos_8, linePos_7, colPos_7, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos_8, linePos_7, colPos_7, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos_8, linePos_7, colPos_7); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos_8, linePos_7, colPos_7); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos_8, linePos_7, colPos_7); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos_8, linePos_7, colPos_7, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, linePos, colPos); + destructible = 16; + } + else { + report(parser, 41); + } + } + else if (token === 8457014) { + consume(parser, context | 32768, 8457014); + state |= 8; + if (parser.token & 143360) { + var token_5 = parser.token, line_1 = parser.line, index = parser.index; + key = parseIdentifier(parser, context, 0); + state |= 1; + if (parser.token === 67174411) { + destructible |= 16; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + reportMessageAt(index, line_1, index, token_5 === 209007 + ? 43 + : token_5 === 12402 || parser.token === 12403 + ? 42 + : 44, KeywordDescTable[token_5 & 255]); + } + } + else if ((parser.token & 134217728) === 134217728) { + destructible |= 16; + key = parseLiteral(parser, context); + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + destructible |= 16; + state |= 2 | 1; + key = parseComputedPropertyName(parser, context, inGroup); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 122); + } + } + else { + report(parser, 28, KeywordDescTable[token & 255]); + } + destructible |= parser.destructible & 128 ? 128 : 0; + parser.destructible = destructible; + properties.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'Property', + key: key, + value: value, + kind: !(state & 768) ? 'init' : state & 512 ? 'set' : 'get', + computed: (state & 2) > 0, + method: (state & 1) > 0, + shorthand: (state & 4) > 0 + })); + } + destructible |= parser.destructible; + if (parser.token !== 18) + break; + nextToken(parser, context); + } + consume(parser, context, 1074790415); + if (prototypeCount > 1) + destructible |= 64; + var node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ObjectPattern' : 'ObjectExpression', + properties: properties + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; + } + function parseMethodFormals(parser, context, scope, kind, type, inGroup) { + consume(parser, context, 67174411); + var params = []; + parser.flags = (parser.flags | 128) ^ 128; + if (parser.token === 16) { + if (kind & 512) { + report(parser, 35, 'Setter', 'one', ''); + } + nextToken(parser, context); + return params; + } + if (kind & 256) { + report(parser, 35, 'Getter', 'no', 's'); + } + if (kind & 512 && parser.token === 14) { + report(parser, 36); + } + context = (context | 134217728) ^ 134217728; + var setterArgs = 0; + var isSimpleParameterList = 0; + while (parser.token !== 18) { + var left = null; + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, type, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) + report(parser, 47); + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + var right = parseExpression(parser, context, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: left, + right: right + }); + } + setterArgs++; + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (kind & 512 && setterArgs !== 1) { + report(parser, 35, 'Setter', 'one', ''); + } + if (scope && scope.scopeError !== void 0) + reportScopeError(scope.scopeError); + if (isSimpleParameterList) + parser.flags |= 128; + consume(parser, context, 16); + return params; + } + function parseComputedPropertyName(parser, context, inGroup) { + nextToken(parser, context | 32768); + var key = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 20); + return key; + } + function parseParenthesizedExpression(parser, context, canAssign, kind, origin, start, line, column) { + parser.flags = (parser.flags | 128) ^ 128; + var piStart = parser.tokenPos, plStart = parser.linePos, pcStart = parser.colPos; + nextToken(parser, context | 32768 | 1073741824); + var scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 0, start, line, column); + } + var destructible = 0; + parser.destructible &= ~(256 | 128); + var expr; + var expressions = []; + var isSequence = 0; + var isSimpleParameterList = 0; + var iStart = parser.tokenPos, lStart = parser.linePos, cStart = parser.colPos; + parser.assignable = 1; + while (parser.token !== 16) { + var token = parser.token, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 1, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808 || + (token & 36864) === 36864) { + isSimpleParameterList = 1; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if ((token & 2097152) === 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + parser.assignable = 2; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 0, 1, 0, tokenPos, linePos, colPos); + if (parser.destructible & 16) + report(parser, 71); + isSimpleParameterList = 1; + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + destructible |= 8; + break; + } + else { + destructible |= 16; + expr = parseExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (parser.token === 18) { + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + } + if (isSequence) { + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + } + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions: expressions + }); + } + consume(parser, context, 16); + parser.destructible = destructible; + return expr; + } + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (!consumeOpt(parser, context | 32768, 18)) + break; + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + if (parser.token === 16) { + destructible |= 8; + break; + } + } + if (isSequence) { + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions: expressions + }); + } + consume(parser, context, 16); + if (destructible & 16 && destructible & 8) + report(parser, 145); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 46); + if (context & (4194304 | 2048) && destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) { + report(parser, 30); + } + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, isSequence ? expressions : [expr], canAssign, 0, start, line, column); + } + else if (destructible & 8) { + report(parser, 139); + } + parser.destructible = ((parser.destructible | 256) ^ 256) | destructible; + return context & 128 + ? finishNode(parser, context, piStart, plStart, pcStart, { + type: 'ParenthesizedExpression', + expression: expr + }) + : expr; + } + function parseIdentifierOrArrow(parser, context, start, line, column) { + var tokenValue = parser.tokenValue; + var expr = parseIdentifier(parser, context, 0); + parser.assignable = 1; + if (parser.token === 10) { + var scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + return parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + return expr; + } + function parseArrowFromIdentifier(parser, context, value, expr, inNew, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + if (inNew) + report(parser, 48); + parser.flags &= ~128; + var scope = context & 64 ? createArrowHeadParsingScope(parser, context, value) : void 0; + return parseArrowFunctionExpression(parser, context, scope, [expr], isAsync, start, line, column); + } + function parseParenthesizedArrow(parser, context, scope, params, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + for (var i = 0; i < params.length; ++i) + reinterpretToPattern(parser, params[i]); + return parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column); + } + function parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column) { + if (parser.flags & 1) + report(parser, 45); + consume(parser, context | 32768, 10); + context = ((context | 15728640) ^ 15728640) | (isAsync << 22); + var expression = parser.token !== 2162700; + var body; + if (scope && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + if (expression) { + body = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + if (scope) + scope = addChildScope(scope, 128); + body = parseFunctionBody(parser, (context | 134221824 | 8192 | 16384) ^ + (134221824 | 8192 | 16384), scope, 16, void 0, void 0); + switch (parser.token) { + case 69271571: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + break; + case 67108877: + case 67174409: + case 22: + report(parser, 113); + case 67174411: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + parser.flags |= 1024; + break; + } + if ((parser.token & 8454144) === 8454144 && (parser.flags & 1) < 1) + report(parser, 28, KeywordDescTable[parser.token & 255]); + if ((parser.token & 33619968) === 33619968) + report(parser, 121); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ArrowFunctionExpression', + params: params, + body: body, + async: isAsync === 1, + expression: expression + }); + } + function parseFormalParametersOrFormalList(parser, context, scope, inGroup, kind) { + consume(parser, context, 67174411); + parser.flags = (parser.flags | 128) ^ 128; + var params = []; + if (consumeOpt(parser, context, 16)) + return params; + context = (context | 134217728) ^ 134217728; + var isSimpleParameterList = 0; + while (parser.token !== 18) { + var left = void 0; + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, kind, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) { + report(parser, 47); + } + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + var right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: left, + right: right + }); + } + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (isSimpleParameterList) + parser.flags |= 128; + if (scope && (isSimpleParameterList || context & 1024) && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + consume(parser, context, 16); + return params; + } + function parseMembeExpressionNoCall(parser, context, expr, inGroup, start, line, column) { + var token = parser.token; + if (token & 67108864) { + if (token === 67108877) { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + var property = parsePropertyOrPrivatePropertyName(parser, context); + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property: property + }), 0, start, line, column); + } + else if (token === 69271571) { + nextToken(parser, context | 32768); + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + var property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property: property + }), 0, start, line, column); + } + else if (token === 67174408 || token === 67174409) { + parser.assignable = 2; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }), 0, start, line, column); + } + } + return expr; + } + function parseNewExpression(parser, context, inGroup, start, line, column) { + var id = parseIdentifier(parser, context | 32768, 0); + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + if (consumeOpt(parser, context, 67108877)) { + if (context & 67108864 && parser.token === 143494) { + parser.assignable = 2; + return parseMetaProperty(parser, context, id, start, line, column); + } + report(parser, 91); + } + parser.assignable = 2; + if ((parser.token & 16842752) === 16842752) { + report(parser, 62, KeywordDescTable[parser.token & 255]); + } + var expr = parsePrimaryExpression(parser, context, 2, 1, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + context = (context | 134217728) ^ 134217728; + if (parser.token === 67108991) + report(parser, 162); + var callee = parseMembeExpressionNoCall(parser, context, expr, inGroup, tokenPos, linePos, colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'NewExpression', + callee: callee, + arguments: parser.token === 67174411 ? parseArguments(parser, context, inGroup) : [] + }); + } + function parseMetaProperty(parser, context, meta, start, line, column) { + var property = parseIdentifier(parser, context, 0); + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta: meta, + property: property + }); + } + function parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column) { + if (parser.token === 209008) + report(parser, 29); + if (context & (1024 | 2097152) && parser.token === 241773) { + report(parser, 30); + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context, 0), 0, canAssign, 1, start, line, column); + } + function parseAsyncArrowOrCallExpression(parser, context, callee, canAssign, kind, origin, flags, start, line, column) { + nextToken(parser, context | 32768); + var scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + if (parser.token === 10) { + if (flags & 1) + report(parser, 45); + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 1, start, line, column); + } + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: callee, + arguments: [] + }); + } + var destructible = 0; + var expr = null; + var isSimpleParameterList = 0; + parser.destructible = + (parser.destructible | 256 | 128) ^ + (256 | 128); + var params = []; + while (parser.token !== 16) { + var token = parser.token, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, kind, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808) { + parser.flags |= 512; + } + else if ((token & 36864) === 36864) { + parser.flags |= 256; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token & 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + expr = parseBinaryExpression(parser, context, 1, start, line, column, 4, token, expr); + } + if (consumeOpt(parser, context | 32768, 22)) { + expr = parseConditionalExpression(parser, context, expr, start, line, column); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 1, 1, 0, tokenPos, linePos, colPos); + destructible |= (parser.token === 16 ? 0 : 16) | parser.destructible; + isSimpleParameterList = 1; + } + else { + expr = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + destructible = parser.assignable; + params.push(expr); + while (consumeOpt(parser, context | 32768, 18)) { + params.push(parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos)); + } + destructible |= parser.assignable; + consume(parser, context, 16); + parser.destructible = destructible | 16; + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: callee, + arguments: params + }); + } + params.push(expr); + if (!consumeOpt(parser, context | 32768, 18)) + break; + } + consume(parser, context, 16); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 25); + if (parser.flags & 1 || flags & 1) + report(parser, 45); + if (destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) + report(parser, 30); + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, params, canAssign, 1, start, line, column); + } + else if (destructible & 8) { + report(parser, 59); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: callee, + arguments: params + }); + } + function parseRegExpLiteral(parser, context, start, line, column) { + var tokenRaw = parser.tokenRaw, tokenRegExp = parser.tokenRegExp, tokenValue = parser.tokenValue; + nextToken(parser, context); + parser.assignable = 2; + return context & 512 + ? finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp, + raw: tokenRaw + }) + : finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp + }); + } + function parseClassDeclaration(parser, context, scope, flags, start, line, column) { + var _a; + context = (context | 16777216 | 1024) ^ 16777216; + var decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + if (parser.leadingDecorators.length) { + (_a = parser.leadingDecorators).push.apply(_a, decorators); + decorators = parser.leadingDecorators; + parser.leadingDecorators = []; + } + nextToken(parser, context); + var id = null; + var superClass = null; + var tokenValue = parser.tokenValue; + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) { + report(parser, 114); + } + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + if (scope) { + addBlockName(parser, context, scope, tokenValue, 32, 0); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, tokenValue); + } + } + } + id = parseIdentifier(parser, context, 0); + } + else { + if ((flags & 1) < 1) + report(parser, 37, 'Class'); + } + var inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + var body = parseClassBody(parser, inheritedContext, context, scope, 2, 8, 0); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassDeclaration', + id: id, + superClass: superClass, + decorators: decorators, + body: body + } + : { + type: 'ClassDeclaration', + id: id, + superClass: superClass, + body: body + }); + } + function parseClassExpression(parser, context, inGroup, start, line, column) { + var id = null; + var superClass = null; + context = (context | 1024 | 16777216) ^ 16777216; + var decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + nextToken(parser, context); + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + id = parseIdentifier(parser, context, 0); + } + var inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, inGroup, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + var body = parseClassBody(parser, inheritedContext, context, void 0, 2, 0, inGroup); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassExpression', + id: id, + superClass: superClass, + decorators: decorators, + body: body + } + : { + type: 'ClassExpression', + id: id, + superClass: superClass, + body: body + }); + } + function parseDecorators(parser, context) { + var list = []; + if (context & 1) { + while (parser.token === 133) { + list.push(parseDecoratorList(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + } + return list; + } + function parseDecoratorList(parser, context, start, line, column) { + nextToken(parser, context | 32768); + var expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, start, line, column); + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + return finishNode(parser, context, start, line, column, { + type: 'Decorator', + expression: expression + }); + } + function parseClassBody(parser, context, inheritedContext, scope, kind, origin, inGroup) { + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + consume(parser, context | 32768, 2162700); + context = (context | 134217728) ^ 134217728; + parser.flags = (parser.flags | 32) ^ 32; + var body = []; + var decorators; + while (parser.token !== 1074790415) { + var length_1 = 0; + decorators = parseDecorators(parser, context); + length_1 = decorators.length; + if (length_1 > 0 && parser.tokenValue === 'constructor') { + report(parser, 106); + } + if (parser.token === 1074790415) + report(parser, 105); + if (consumeOpt(parser, context, 1074790417)) { + if (length_1 > 0) + report(parser, 116); + continue; + } + body.push(parseClassElementList(parser, context, scope, inheritedContext, kind, decorators, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + consume(parser, origin & 8 ? context | 32768 : context, 1074790415); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ClassBody', + body: body + }); + } + function parseClassElementList(parser, context, scope, inheritedContext, type, decorators, isStatic, inGroup, start, line, column) { + var kind = isStatic ? 32 : 0; + var key = null; + var token = parser.token, tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + if (token & (143360 | 36864)) { + key = parseIdentifier(parser, context, 0); + switch (token) { + case 36972: + if (!isStatic && parser.token !== 67174411) { + return parseClassElementList(parser, context, scope, inheritedContext, type, decorators, 1, inGroup, start, line, column); + } + break; + case 209007: + if (parser.token !== 67174411 && (parser.flags & 1) < 1) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 16 | (optionalBit(parser, context, 8457014) ? 8 : 0); + } + break; + case 12402: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 256; + } + break; + case 12403: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 512; + } + break; + } + } + else if (token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, inheritedContext, inGroup); + } + else if ((token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (token === 8457014) { + kind |= 8; + nextToken(parser, context); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + context = context | 16384; + } + else if (context & 1 && (parser.token & 1073741824) === 1073741824) { + kind |= 128; + context = context | 16384; + } + else if (token === 122) { + key = parseIdentifier(parser, context, 0); + if (parser.token !== 67174411) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + if (kind & (8 | 16 | 768)) { + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, context, 0); + } + else if (parser.token === 122) { + key = parseIdentifier(parser, context, 0); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + } + else + report(parser, 131); + } + if ((kind & 2) < 1) { + if (parser.tokenValue === 'constructor') { + if ((parser.token & 1073741824) === 1073741824) { + report(parser, 125); + } + else if ((kind & 32) < 1 && parser.token === 67174411) { + if (kind & (768 | 16 | 128 | 8)) { + report(parser, 50, 'accessor'); + } + else if ((context & 524288) < 1) { + if (parser.flags & 32) + report(parser, 51); + else + parser.flags |= 32; + } + } + kind |= 64; + } + else if ((kind & 4096) < 1 && + kind & (32 | 768 | 8 | 16) && + parser.tokenValue === 'prototype') { + report(parser, 49); + } + } + if (context & 1 && parser.token !== 67174411) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + var value = parseMethodDefinition(parser, context, kind, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key: key, + decorators: decorators, + value: value + } + : { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key: key, + value: value + }); + } + function parsePrivateIdentifier(parser, context, start, line, column) { + nextToken(parser, context); + var tokenValue = parser.tokenValue; + if (tokenValue === 'constructor') + report(parser, 124); + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'PrivateIdentifier', + name: tokenValue + }); + } + function parsePropertyDefinition(parser, context, key, state, decorators, start, line, column) { + var value = null; + if (state & 8) + report(parser, 0); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + if (parser.token === 537079928) + report(parser, 115); + value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 0, 1, tokenPos, linePos, colPos); + if ((parser.token & 1073741824) !== 1073741824) { + value = parseMemberOrUpdateExpression(parser, context | 16384, value, 0, 0, tokenPos, linePos, colPos); + value = parseAssignmentExpression(parser, context | 16384, 0, 0, tokenPos, linePos, colPos, value); + if (parser.token === 18) { + value = parseSequenceExpression(parser, context, 0, start, line, column, value); + } + } + } + return finishNode(parser, context, start, line, column, { + type: 'PropertyDefinition', + key: key, + value: value, + static: (state & 32) > 0, + computed: (state & 2) > 0, + decorators: decorators + }); + } + function parseBindingPattern(parser, context, scope, type, origin, start, line, column) { + if (parser.token & 143360) + return parseAndClassifyIdentifier(parser, context, scope, type, origin, start, line, column); + if ((parser.token & 2097152) !== 2097152) + report(parser, 28, KeywordDescTable[parser.token & 255]); + var left = parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column) + : parseObjectLiteralOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column); + if (parser.destructible & 16) + report(parser, 47); + if (parser.destructible & 32) + report(parser, 47); + return left; + } + function parseAndClassifyIdentifier(parser, context, scope, kind, origin, start, line, column) { + var tokenValue = parser.tokenValue, token = parser.token; + if (context & 1024) { + if ((token & 537079808) === 537079808) { + report(parser, 115); + } + else if ((token & 36864) === 36864) { + report(parser, 114); + } + } + if ((token & 20480) === 20480) { + report(parser, 99); + } + if (context & (2048 | 2097152) && token === 241773) { + report(parser, 30); + } + if (token === 241739) { + if (kind & (8 | 16)) + report(parser, 97); + } + if (context & (4194304 | 2048) && token === 209008) { + report(parser, 95); + } + nextToken(parser, context); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + return finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: tokenValue + }); + } + function parseJSXRootElementOrFragment(parser, context, inJSXChild, start, line, column) { + nextToken(parser, context); + if (parser.token === 8456259) { + return finishNode(parser, context, start, line, column, { + type: 'JSXFragment', + openingFragment: parseOpeningFragment(parser, context, start, line, column), + children: parseJSXChildren(parser, context), + closingFragment: parseJSXClosingFragment(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + var closingElement = null; + var children = []; + var openingElement = parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column); + if (!openingElement.selfClosing) { + children = parseJSXChildren(parser, context); + closingElement = parseJSXClosingElement(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos); + var close_1 = isEqualTagName(closingElement.name); + if (isEqualTagName(openingElement.name) !== close_1) + report(parser, 149, close_1); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXElement', + children: children, + openingElement: openingElement, + closingElement: closingElement + }); + } + function parseOpeningFragment(parser, context, start, line, column) { + scanJSXToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningFragment' + }); + } + function parseJSXClosingElement(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + var name = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + parser.token = scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingElement', + name: name + }); + } + function parseJSXClosingFragment(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + consume(parser, context, 8456259); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingFragment' + }); + } + function parseJSXChildren(parser, context) { + var children = []; + while (parser.token !== 25) { + parser.index = parser.tokenPos = parser.startPos; + parser.column = parser.colPos = parser.startColumn; + parser.line = parser.linePos = parser.startLine; + scanJSXToken(parser, context); + children.push(parseJSXChild(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return children; + } + function parseJSXChild(parser, context, start, line, column) { + if (parser.token === 138) + return parseJSXText(parser, context, start, line, column); + if (parser.token === 2162700) + return parseJSXExpressionContainer(parser, context, 0, 0, start, line, column); + if (parser.token === 8456258) + return parseJSXRootElementOrFragment(parser, context, 0, start, line, column); + report(parser, 0); + } + function parseJSXText(parser, context, start, line, column) { + scanJSXToken(parser, context); + var node = { + type: 'JSXText', + value: parser.tokenValue + }; + if (context & 512) { + node.raw = parser.tokenRaw; + } + return finishNode(parser, context, start, line, column, node); + } + function parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column) { + if ((parser.token & 143360) !== 143360 && (parser.token & 4096) !== 4096) + report(parser, 0); + var tagName = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + var attributes = parseJSXAttributes(parser, context); + var selfClosing = parser.token === 8457016; + if (parser.token === 8456259) { + scanJSXToken(parser, context); + } + else { + consume(parser, context, 8457016); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + scanJSXToken(parser, context); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningElement', + name: tagName, + attributes: attributes, + selfClosing: selfClosing + }); + } + function parseJSXElementName(parser, context, start, line, column) { + scanJSXIdentifier(parser); + var key = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) + return parseJSXNamespacedName(parser, context, key, start, line, column); + while (consumeOpt(parser, context, 67108877)) { + scanJSXIdentifier(parser); + key = parseJSXMemberExpression(parser, context, key, start, line, column); + } + return key; + } + function parseJSXMemberExpression(parser, context, object, start, line, column) { + var property = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXMemberExpression', + object: object, + property: property + }); + } + function parseJSXAttributes(parser, context) { + var attributes = []; + while (parser.token !== 8457016 && parser.token !== 8456259 && parser.token !== 1048576) { + attributes.push(parseJsxAttribute(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return attributes; + } + function parseJSXSpreadAttribute(parser, context, start, line, column) { + nextToken(parser, context); + consume(parser, context, 14); + var expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadAttribute', + argument: expression + }); + } + function parseJsxAttribute(parser, context, start, line, column) { + if (parser.token === 2162700) + return parseJSXSpreadAttribute(parser, context, start, line, column); + scanJSXIdentifier(parser); + var value = null; + var name = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) { + name = parseJSXNamespacedName(parser, context, name, start, line, column); + } + if (parser.token === 1077936157) { + var token = scanJSXAttributeValue(parser, context); + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + switch (token) { + case 134283267: + value = parseLiteral(parser, context); + break; + case 8456258: + value = parseJSXRootElementOrFragment(parser, context, 1, tokenPos, linePos, colPos); + break; + case 2162700: + value = parseJSXExpressionContainer(parser, context, 1, 1, tokenPos, linePos, colPos); + break; + default: + report(parser, 148); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXAttribute', + value: value, + name: name + }); + } + function parseJSXNamespacedName(parser, context, namespace, start, line, column) { + consume(parser, context, 21); + var name = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXNamespacedName', + namespace: namespace, + name: name + }); + } + function parseJSXExpressionContainer(parser, context, inJSXChild, isAttr, start, line, column) { + nextToken(parser, context); + var tokenPos = parser.tokenPos, linePos = parser.linePos, colPos = parser.colPos; + if (parser.token === 14) + return parseJSXSpreadChild(parser, context, tokenPos, linePos, colPos); + var expression = null; + if (parser.token === 1074790415) { + if (isAttr) + report(parser, 151); + expression = parseJSXEmptyExpression(parser, context, parser.startPos, parser.startLine, parser.startColumn); + } + else { + expression = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + } + if (inJSXChild) { + consume(parser, context, 1074790415); + } + else { + scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXExpressionContainer', + expression: expression + }); + } + function parseJSXSpreadChild(parser, context, start, line, column) { + consume(parser, context, 14); + var expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadChild', + expression: expression + }); + } + function parseJSXEmptyExpression(parser, context, start, line, column) { + parser.startPos = parser.tokenPos; + parser.startLine = parser.linePos; + parser.startColumn = parser.colPos; + return finishNode(parser, context, start, line, column, { + type: 'JSXEmptyExpression' + }); + } + function parseJSXIdentifier(parser, context, start, line, column) { + var tokenValue = parser.tokenValue; + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXIdentifier', + name: tokenValue + }); + } + + var estree = /*#__PURE__*/Object.freeze({ + __proto__: null + }); + + var version$1 = "4.2.0"; + + var version = version$1; + function parseScript(source, options) { + return parseSource(source, options, 0); + } + function parseModule(source, options) { + return parseSource(source, options, 1024 | 2048); + } + function parse(source, options) { + return parseSource(source, options, 0); + } + + exports.ESTree = estree; + exports.parse = parse; + exports.parseModule = parseModule; + exports.parseScript = parseScript; + exports.version = version; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/node_modules/meriyah/dist/meriyah.umd.es5.min.js b/node_modules/meriyah/dist/meriyah.umd.es5.min.js new file mode 100644 index 0000000..5155bf1 --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.umd.es5.min.js @@ -0,0 +1,15 @@ +!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).meriyah={})}(this,(function(e){"use strict"; +/*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */var r,t=function(e,r){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])})(e,r)};function n(e,r){for(var t=0,n=r.length,o=e.length;t>>5)]>>>r)&&s(e,18,m(r)),e.index++,e.column++,1)}function f(e,r){e.currentChar=e.source.charCodeAt(++e.index),e.flags|=1,0==(4&r)&&(e.column=0,e.line++)}function k(e){e.flags|=1,e.currentChar=e.source.charCodeAt(++e.index),e.column=0,e.line++}function g(e){return 160===e||65279===e||133===e||5760===e||e>=8192&&e<=8203||8239===e||8287===e||12288===e||8201===e||65519===e}function m(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(e>>>10)+String.fromCharCode(1023&e)}function b(e){return e<65?e-48:e-65+10&15}var h=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],v=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],P=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function y(e){return e<=127?v[e]:1&u[34816+(e>>>5)]>>>e}function x(e){return e<=127?P[e]:1&u[0+(e>>>5)]>>>e||8204===e||8205===e}var w=["SingleLine","MultiLine","HTMLOpen","HTMLClose","HashbangComment"];function q(e,r,t,n,o,a,i,l){return 2048&n&&s(e,0),C(e,r,t,o,a,i,l)}function C(e,r,t,n,o,a,s){var i=e.index;for(e.tokenPos=e.index,e.linePos=e.line,e.colPos=e.column;e.index=e.source.length)return s(e,32)}for(var a=e.index-1,i=0,l=e.currentChar,c=e.index;x(l);){switch(l){case 103:2&i&&s(e,34,"g"),i|=2;break;case 105:1&i&&s(e,34,"i"),i|=1;break;case 109:4&i&&s(e,34,"m"),i|=4;break;case 117:16&i&&s(e,34,"g"),i|=16;break;case 121:8&i&&s(e,34,"y"),i|=8;break;case 115:12&i&&s(e,34,"s"),i|=12;break;default:s(e,33)}l=d(e)}var u=e.source.slice(c,e.index),p=e.source.slice(t,a);return e.tokenRegExp={pattern:p,flags:u},512&r&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),e.tokenValue=function(e,r,t){try{return new RegExp(r,t)}catch(r){s(e,32)}}(e,p,u),65540}function S(e,r,t){for(var n=e.index,o="",a=d(e),i=e.index;0==(8&h[a]);){if(a===t)return o+=e.source.slice(i,e.index),d(e),512&r&&(e.tokenRaw=e.source.slice(n,e.index)),e.tokenValue=o,134283267;if(8==(8&a)&&92===a){if(o+=e.source.slice(i,e.index),(a=d(e))<127||8232===a||8233===a){var l=D(e,r,a);l>=0?o+=m(l):L(e,l,0)}else o+=m(a);i=e.index+1}e.index>=e.end&&s(e,14),a=d(e)}s(e,14)}function D(e,r,t){switch(t){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(e.index1114111)return-5;return e.currentChar<1||125!==e.currentChar?-4:o}if(0==(64&h[f]))return-4;p=e.source.charCodeAt(e.index+1);if(0==(64&h[p]))return-4;var k=e.source.charCodeAt(e.index+2);if(0==(64&h[k]))return-4;var g=e.source.charCodeAt(e.index+3);return 0==(64&h[g])?-4:(e.index+=3,e.column+=3,e.currentChar=e.source.charCodeAt(e.index),b(f)<<12|b(p)<<8|b(k)<<4|b(g));case 56:case 57:if(0==(256&r))return-3;default:return t}}function L(e,r,t){switch(r){case-1:return;case-2:s(e,t?2:1);case-3:s(e,13);case-4:s(e,6);case-5:s(e,101)}}function V(e,r){for(var t=e.index,n=67174409,o="",a=d(e);96!==a;){if(36===a&&123===e.source.charCodeAt(e.index+1)){d(e),n=67174408;break}if(8==(8&a)&&92===a)if((a=d(e))>126)o+=m(a);else{var i=D(e,1024|r,a);if(i>=0)o+=m(i);else{if(-1!==i&&65536&r){o=void 0,(a=T(e,a))<0&&(n=67174408);break}L(e,i,1)}}else e.index=e.end&&s(e,15),a=d(e)}return d(e),e.tokenValue=o,e.tokenRaw=e.source.slice(t+1,e.index-(67174409===n?1:2)),n}function T(e,r){for(;96!==r;){switch(r){case 36:var t=e.index+1;if(t=e.end&&s(e,15),r=d(e)}return r}function R(e,r){return e.index>=e.end&&s(e,0),e.index--,e.column--,V(e,r)}function N(e,r,t){var n=e.currentChar,o=0,a=9,i=64&t?0:1,l=0,u=0;if(64&t)o="."+I(e,n),110===(n=e.currentChar)&&s(e,11);else{if(48===n)if(120==(32|(n=d(e)))){for(t=136,n=d(e);4160&h[n];)95!==n?(u=1,o=16*o+b(n),l++,n=d(e)):(u||s(e,146),u=0,n=d(e));(l<1||!u)&&s(e,l<1?19:147)}else if(111==(32|n)){for(t=132,n=d(e);4128&h[n];)95!==n?(u=1,o=8*o+(n-48),l++,n=d(e)):(u||s(e,146),u=0,n=d(e));(l<1||!u)&&s(e,l<1?0:147)}else if(98==(32|n)){for(t=130,n=d(e);4224&h[n];)95!==n?(u=1,o=2*o+(n-48),l++,n=d(e)):(u||s(e,146),u=0,n=d(e));(l<1||!u)&&s(e,l<1?0:147)}else if(32&h[n])for(1024&r&&s(e,1),t=1;16&h[n];){if(512&h[n]){t=32,i=0;break}o=8*o+(n-48),n=d(e)}else 512&h[n]?(1024&r&&s(e,1),e.flags|=64,t=32):95===n&&s(e,0);if(48&t){if(i){for(;a>=0&&4112&h[n];)95!==n?(u=0,o=10*o+(n-48),n=d(e),--a):((95===(n=d(e))||32&t)&&c(e.index,e.line,e.index+1,146),u=1);if(u&&c(e.index,e.line,e.index+1,147),a>=0&&!y(n)&&46!==n)return e.tokenValue=o,512&r&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),134283266}o+=I(e,n),46===(n=e.currentChar)&&(95===d(e)&&s(e,0),t=64,o+="."+I(e,e.currentChar),n=e.currentChar)}}var p=e.index,f=0;if(110===n&&128&t)f=1,n=d(e);else if(101==(32|n)){n=d(e),256&h[n]&&(n=d(e));var k=e.index;(16&h[n])<1&&s(e,10),o+=e.source.substring(p,k)+I(e,n),n=e.currentChar}return(e.index","(","{",".","...","}",")",";",",","[","]",":","?","'",'"',"","++","--","=","<<=",">>=",">>>=","**=","+=","-=","*=","/=","%=","^=","|=","&=","||=","&&=","??=","typeof","delete","void","!","~","+","-","in","instanceof","*","%","/","**","&&","||","===","!==","==","!=","<=",">=","<",">","<<",">>",">>>","&","|","^","var","let","const","break","case","catch","class","continue","debugger","default","do","else","export","extends","finally","for","function","if","import","new","return","super","switch","this","throw","try","while","with","implements","interface","package","private","protected","public","static","yield","as","async","await","constructor","get","set","from","of","enum","eval","arguments","escaped keyword","escaped future reserved keyword","reserved if strict","#","BigIntLiteral","??","?.","WhiteSpace","Illegal","LineTerminator","PrivateField","Template","@","target","meta","LineFeed","Escaped","JSXText"],B=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function O(e,r,t){for(;P[d(e)];);return e.tokenValue=e.source.slice(e.tokenPos,e.index),92!==e.currentChar&&e.currentChar<126?B[e.tokenValue]||208897:G(e,r,0,t)}function j(e,r){var t=H(e);return x(t)||s(e,4),e.tokenValue=m(t),G(e,r,1,4&h[t])}function G(e,r,t,n){for(var o=e.index;e.index=2&&i<=11){var l=B[e.tokenValue];return void 0===l?208897:t?1024&r?209008===l&&0==(4196352&r)?l:36972===l||36864==(36864&l)?122:121:1073741824&r&&0==(8192&r)&&20480==(20480&l)?l:241773===l?1073741824&r?143483:2097152&r?121:l:209007===l&&1073741824&r?143483:36864==(36864&l)||209008===l&&0==(4194304&r)?l:121:l}return 208897}function F(e){return y(d(e))||s(e,93),131}function H(e){return 117!==e.source.charCodeAt(e.index+1)&&s(e,4),e.currentChar=e.source.charCodeAt(e.index+=2),function(e){var r=0,t=e.currentChar;if(123===t){for(var n=e.index-2;64&h[d(e)];)(r=r<<4|b(e.currentChar))>1114111&&c(n,e.line,e.index+1,101);return 125!==e.currentChar&&c(n,e.line,e.index-1,6),d(e),r}0==(64&h[t])&&s(e,6);var o=e.source.charCodeAt(e.index+1);0==(64&h[o])&&s(e,6);var a=e.source.charCodeAt(e.index+2);0==(64&h[a])&&s(e,6);var i=e.source.charCodeAt(e.index+3);0==(64&h[i])&&s(e,6);return r=b(t)<<12|b(o)<<8|b(a)<<4|b(i),e.currentChar=e.source.charCodeAt(e.index+=4),r}(e)}var J=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function M(e,r){if(e.flags=1^(1|e.flags),e.startPos=e.index,e.startColumn=e.column,e.startLine=e.line,e.token=z(e,r,0),e.onToken&&1048576!==e.token){var t={start:{line:e.linePos,column:e.colPos},end:{line:e.line,column:e.column}};e.onToken(function(e){switch(e){case 134283266:return"NumericLiteral";case 134283267:return"StringLiteral";case 86021:case 86022:return"BooleanLiteral";case 86023:return"NullLiteral";case 65540:return"RegularExpression";case 67174408:case 67174409:case 132:return"TemplateLiteral";default:return 143360==(143360&e)?"Identifier":4096==(4096&e)?"Keyword":"Punctuator"}}(e.token),e.tokenPos,e.index,t)}}function z(e,r,t){for(var n=0===e.index,o=e.source,a=e.index,i=e.line,l=e.column;e.index=e.end)return 8457014;var v=e.currentChar;return 61===v?(d(e),4194340):42!==v?8457014:61!==d(e)?8457273:(d(e),4194337);case 8455497:return 61!==d(e)?8455497:(d(e),4194343);case 25233970:d(e);var P=e.currentChar;return 43===P?(d(e),33619995):61===P?(d(e),4194338):25233970;case 25233971:d(e);var y=e.currentChar;if(45===y){if(d(e),(1&t||n)&&62===e.currentChar){0==(256&r)&&s(e,108),d(e),t=q(e,o,t,r,3,a,i,l),a=e.tokenPos,i=e.linePos,l=e.colPos;continue}return 33619996}return 61===y?(d(e),4194339):25233971;case 8457016:if(d(e),e.index=48&&w<=57)return N(e,r,80);if(46===w)if((I=e.index+1)=48&&U<=57))return d(e),67108991;return 22}}else{if((8232^c)<=1){t=-5&t|1,k(e);continue}if(55296==(64512&c)||0!=(1&u[34816+(c>>>5)]>>>c))return 56320==(64512&c)&&(0==(1&u[0+((c=(1023&c)<<10|1023&c|65536)>>>5)]>>>c)&&s(e,18,m(c)),e.index++,e.currentChar=c),e.column++,e.tokenValue="",G(e,r,0,0);if(g(c)){d(e);continue}s(e,18,m(c))}}return 1048576}var X={AElig:"Æ",AMP:"&",Aacute:"Á",Abreve:"Ă",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atilde:"Ã",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ETH:"Ð",Eacute:"É",Ecaron:"Ě",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"Í",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"â",acute:"´",acy:"а",aelig:"æ",af:"⁡",afr:"𝔞",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"ð",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"í",ic:"⁣",icirc:"î",icy:"и",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"ó",oast:"⊛",ocir:"⊚",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"ø",osol:"⊘",otilde:"õ",otimes:"⊗",otimesas:"⨶",ouml:"ö",ovbar:"⌽",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"þ",tilde:"˜",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"},_={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function Y(e){return e.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g,(function(e){if("#"===e.charAt(1)){var r=e.charAt(2);return function(e){if(e>=55296&&e<=57343||e>1114111)return"�";e in _&&(e=_[e]);return String.fromCodePoint(e)}("X"===r||"x"===r?parseInt(e.slice(3),16):parseInt(e.slice(2),10))}return X[e.slice(1,-1)]||e}))}function $(e,r){return e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.token=8192&h[e.currentChar]?function(e,r){var t=e.currentChar,n=d(e),o=e.index;for(;n!==t;)e.index>=e.end&&s(e,14),n=d(e);n!==t&&s(e,14);e.tokenValue=e.source.slice(o,e.index),d(e),512&r&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index));return 134283267}(e,r):z(e,r,0),e.token}function Z(e,r){if(e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.index>=e.end)return e.token=1048576;switch(J[e.source.charCodeAt(e.index)]){case 8456258:d(e),47===e.currentChar?(d(e),e.token=25):e.token=8456258;break;case 2162700:d(e),e.token=2162700;break;default:for(var t=0;e.index0&&re(e,r,209008);te(e,32768|r,67174411),t&&(t=pe(t,1));var c,u=null,d=null,p=0,f=null,k=86090===e.token||241739===e.token||86092===e.token,g=e.token,m=e.tokenPos,b=e.linePos,h=e.colPos;k?241739===g?(f=sr(e,r,0),2240512&e.token?(8738868===e.token?1024&r&&s(e,64):f=le(e,r,m,b,h,{type:"VariableDeclaration",kind:"let",declarations:Re(e,134217728|r,t,8,32)}),e.assignable=1):1024&r?s(e,64):(k=!1,e.assignable=1,f=$e(e,r,f,0,0,m,b,h),274549===e.token&&s(e,111))):(M(e,r),f=le(e,r,m,b,h,86090===g?{type:"VariableDeclaration",kind:"var",declarations:Re(e,134217728|r,t,4,32)}:{type:"VariableDeclaration",kind:"const",declarations:Re(e,134217728|r,t,16,32)}),e.assignable=1):1074790417===g?l&&s(e,79):2097152==(2097152&g)?(f=2162700===g?kr(e,r,void 0,1,0,0,2,32,m,b,h):ur(e,r,void 0,1,0,0,2,32,m,b,h),p=e.destructible,256&r&&64&p&&s(e,60),e.assignable=16&p?2:1,f=$e(e,134217728|r,f,0,0,e.tokenPos,e.linePos,e.colPos)):f=Ye(e,134217728|r,1,0,1,m,b,h);if(262144==(262144&e.token)){return 274549===e.token?(2&e.assignable&&s(e,77,l?"await":"of"),ne(e,f),M(e,32768|r),c=Ge(e,r,1,0,0,e.tokenPos,e.linePos,e.colPos),te(e,32768|r,16),le(e,r,o,a,i,{type:"ForOfStatement",left:f,right:c,body:Le(e,r,t,n),await:l})):(2&e.assignable&&s(e,77,"in"),ne(e,f),M(e,32768|r),l&&s(e,79),c=He(e,r,0,1,e.tokenPos,e.linePos,e.colPos),te(e,32768|r,16),le(e,r,o,a,i,{type:"ForInStatement",body:Le(e,r,t,n),left:f,right:c}))}l&&s(e,79);k||(8&p&&1077936157!==e.token&&s(e,77,"loop"),f=Je(e,134217728|r,0,0,m,b,h,f));18===e.token&&(f=Fe(e,r,0,e.tokenPos,e.linePos,e.colPos,f));te(e,32768|r,1074790417),1074790417!==e.token&&(u=He(e,r,0,1,e.tokenPos,e.linePos,e.colPos));te(e,32768|r,1074790417),16!==e.token&&(d=He(e,r,0,1,e.tokenPos,e.linePos,e.colPos));te(e,32768|r,16);var v=Le(e,r,t,n);return le(e,r,o,a,i,{type:"ForStatement",init:f,test:u,update:d,body:v})}(e,r,t,o,i,l,c);case 20564:return function(e,r,t,n,o,a,s){M(e,32768|r);var i=Le(e,r,t,n);te(e,r,20580),te(e,32768|r,67174411);var l=He(e,r,0,1,e.tokenPos,e.linePos,e.colPos);return te(e,32768|r,16),re(e,r,1074790417),le(e,r,o,a,s,{type:"DoWhileStatement",body:i,test:l})}(e,r,t,o,i,l,c);case 20580:return function(e,r,t,n,o,a,s){M(e,r),te(e,32768|r,67174411);var i=He(e,r,0,1,e.tokenPos,e.linePos,e.colPos);te(e,32768|r,16);var l=Le(e,r,t,n);return le(e,r,o,a,s,{type:"WhileStatement",test:i,body:l})}(e,r,t,o,i,l,c);case 86112:return function(e,r,t,n,o,a,i){M(e,r),te(e,32768|r,67174411);var l=He(e,r,0,1,e.tokenPos,e.linePos,e.colPos);te(e,r,16),te(e,r,2162700);var c=[],u=0;t&&(t=pe(t,8));for(;1074790415!==e.token;){var d=e.tokenPos,p=e.linePos,f=e.colPos,k=null,g=[];for(re(e,32768|r,20558)?k=He(e,r,0,1,e.tokenPos,e.linePos,e.colPos):(te(e,32768|r,20563),u&&s(e,86),u=1),te(e,32768|r,21);20558!==e.token&&1074790415!==e.token&&20563!==e.token;)g.push(xe(e,4096|r,t,2,{$:n}));c.push(le(e,r,d,p,f,{type:"SwitchCase",test:k,consequent:g}))}return te(e,32768|r,1074790415),le(e,r,o,a,i,{type:"SwitchStatement",discriminant:l,cases:c})}(e,r,t,o,i,l,c);case 1074790417:return function(e,r,t,n,o){return M(e,32768|r),le(e,r,t,n,o,{type:"EmptyStatement"})}(e,r,i,l,c);case 2162700:return qe(e,r,t?pe(t,2):t,o,i,l,c);case 86114:return function(e,r,t,n,o){M(e,32768|r),1&e.flags&&s(e,87);var a=He(e,r,0,1,e.tokenPos,e.linePos,e.colPos);return K(e,32768|r),le(e,r,t,n,o,{type:"ThrowStatement",argument:a})}(e,r,i,l,c);case 20557:return function(e,r,t,n,o,a){M(e,32768|r);var i=null;if((1&e.flags)<1&&143360&e.token){var l=e.tokenValue;i=sr(e,32768|r,0),ie(e,t,l,0)||s(e,134,l)}else(135168&r)<1&&s(e,66);return K(e,32768|r),le(e,r,n,o,a,{type:"BreakStatement",label:i})}(e,r,o,i,l,c);case 20561:return function(e,r,t,n,o,a){(131072&r)<1&&s(e,65);M(e,r);var i=null;if((1&e.flags)<1&&143360&e.token){var l=e.tokenValue;i=sr(e,32768|r,0),ie(e,t,l,1)||s(e,134,l)}return K(e,32768|r),le(e,r,n,o,a,{type:"ContinueStatement",label:i})}(e,r,o,i,l,c);case 20579:return function(e,r,t,n,o,a,i){M(e,32768|r);var l=t?pe(t,32):void 0,c=qe(e,r,l,{$:n},e.tokenPos,e.linePos,e.colPos),u=e.tokenPos,d=e.linePos,p=e.colPos,f=re(e,32768|r,20559)?function(e,r,t,n,o,a,i){var l=null,c=t;re(e,r,67174411)&&(t&&(t=pe(t,4)),l=Vr(e,r,t,2097152==(2097152&e.token)?256:512,0,e.tokenPos,e.linePos,e.colPos),18===e.token?s(e,83):1077936157===e.token&&s(e,84),te(e,32768|r,16),t&&(c=pe(t,64)));var u=qe(e,r,c,{$:n},e.tokenPos,e.linePos,e.colPos);return le(e,r,o,a,i,{type:"CatchClause",param:l,body:u})}(e,r,t,n,u,d,p):null,k=null;if(20568===e.token){M(e,32768|r),k=qe(e,r,l?pe(t,4):void 0,{$:n},e.tokenPos,e.linePos,e.colPos)}f||k||s(e,85);return le(e,r,o,a,i,{type:"TryStatement",block:c,handler:f,finalizer:k})}(e,r,t,o,i,l,c);case 20581:return function(e,r,t,n,o,a,i){M(e,r),1024&r&&s(e,88);te(e,32768|r,67174411);var l=He(e,r,0,1,e.tokenPos,e.linePos,e.colPos);te(e,32768|r,16);var c=we(e,r,t,2,n,0,e.tokenPos,e.linePos,e.colPos);return le(e,r,o,a,i,{type:"WithStatement",object:l,body:c})}(e,r,t,o,i,l,c);case 20562:return function(e,r,t,n,o){return M(e,32768|r),K(e,32768|r),le(e,r,t,n,o,{type:"DebuggerStatement"})}(e,r,i,l,c);case 209007:return Ae(e,r,t,n,o,0,i,l,c);case 20559:s(e,156);case 20568:s(e,157);case 86106:s(e,1024&r?73:(256&r)<1?75:74);case 86096:s(e,76);default:return function(e,r,t,n,o,a,i,l,c){var u,d=e.tokenValue,p=e.token;switch(p){case 241739:u=sr(e,r,0),1024&r&&s(e,82),69271571===e.token&&s(e,81);break;default:u=We(e,r,2,0,1,0,0,1,e.tokenPos,e.linePos,e.colPos)}if(143360&p&&21===e.token)return Ee(e,r,t,n,o,d,u,p,a,i,l,c);u=$e(e,r,u,0,0,i,l,c),u=Je(e,r,0,0,i,l,c,u),18===e.token&&(u=Fe(e,r,0,i,l,c,u));return Ce(e,r,u,i,l,c)}(e,r,t,n,o,a,i,l,c)}}function qe(e,r,t,n,o,a,s){var i=[];for(te(e,32768|r,2162700);1074790415!==e.token;)i.push(xe(e,r,t,2,{$:n}));return te(e,32768|r,1074790415),le(e,r,o,a,s,{type:"BlockStatement",body:i})}function Ce(e,r,t,n,o,a){return K(e,32768|r),le(e,r,n,o,a,{type:"ExpressionStatement",expression:t})}function Ee(e,r,t,n,o,a,i,l,c,u,d,p){return oe(e,r,0,l,1),function(e,r,t){for(var n=r;n;)n["$"+t]&&s(e,132,t),n=n.$;r["$"+t]=1}(e,o,a),M(e,32768|r),le(e,r,u,d,p,{type:"LabeledStatement",label:i,body:c&&(1024&r)<1&&256&r&&86106===e.token?lr(e,r,pe(t,2),n,0,0,0,e.tokenPos,e.linePos,e.colPos):we(e,r,t,n,o,c,e.tokenPos,e.linePos,e.colPos)})}function Ae(e,r,t,n,o,a,i,l,c){var u=e.token,d=e.tokenValue,p=sr(e,r,0);if(21===e.token)return Ee(e,r,t,n,o,d,p,u,1,i,l,c);var f=1&e.flags;if(!f){if(86106===e.token)return a||s(e,119),lr(e,r,t,n,1,0,1,i,l,c);if(143360==(143360&e.token))return p=xr(e,r,1,i,l,c),18===e.token&&(p=Fe(e,r,0,i,l,c,p)),Ce(e,r,p,i,l,c)}return 67174411===e.token?p=wr(e,r,p,1,1,0,f,i,l,c):(10===e.token&&(ve(e,r,u,1),p=br(e,r,e.tokenValue,p,0,1,0,i,l,c)),e.assignable=1),p=$e(e,r,p,0,0,i,l,c),18===e.token&&(p=Fe(e,r,0,i,l,c,p)),p=Je(e,r,0,0,i,l,c,p),e.assignable=1,Ce(e,r,p,i,l,c)}function Se(e,r,t,n,o,a,s){return 1074790417!==n&&(e.assignable=2,t=$e(e,r,t,0,0,o,a,s),1074790417!==e.token&&(t=Je(e,r,0,0,o,a,s,t),18===e.token&&(t=Fe(e,r,0,o,a,s,t))),K(e,32768|r)),8&r&&"Literal"===t.type&&"string"==typeof t.value?le(e,r,o,a,s,{type:"ExpressionStatement",expression:t,directive:t.raw.slice(1,-1)}):le(e,r,o,a,s,{type:"ExpressionStatement",expression:t})}function De(e,r,t,n,o,a,s){return 1024&r||(256&r)<1||86106!==e.token?we(e,r,t,0,{$:n},0,e.tokenPos,e.linePos,e.colPos):lr(e,r,pe(t,2),0,0,0,0,o,a,s)}function Le(e,r,t,n){return we(e,134217728^(134217728|r)|131072,t,0,{loop:1,$:n},0,e.tokenPos,e.linePos,e.colPos)}function Ve(e,r,t,n,o,a,s,i){M(e,r);var l=Re(e,r,t,n,o);return K(e,32768|r),le(e,r,a,s,i,{type:"VariableDeclaration",kind:8&n?"let":"const",declarations:l})}function Te(e,r,t,n,o,a,s){M(e,r);var i=Re(e,r,t,4,n);return K(e,32768|r),le(e,r,o,a,s,{type:"VariableDeclaration",kind:"var",declarations:i})}function Re(e,r,t,n,o){for(var a=1,i=[Ne(e,r,t,n,o)];re(e,r,18);)a++,i.push(Ne(e,r,t,n,o));return a>1&&32&o&&262144&e.token&&s(e,58,U[255&e.token]),i}function Ne(e,r,t,n,o){var a=e.token,i=e.tokenPos,c=e.linePos,u=e.colPos,d=null,p=Vr(e,r,t,n,o,i,c,u);return 1077936157===e.token?(M(e,32768|r),d=Ge(e,r,1,0,0,e.tokenPos,e.linePos,e.colPos),(32&o||(2097152&a)<1)&&(274549===e.token||8738868===e.token&&(2097152&a||(4&n)<1||1024&r))&&l(i,e.line,e.index-3,57,274549===e.token?"of":"in")):(16&n||(2097152&a)>0)&&262144!=(262144&e.token)&&s(e,56,16&n?"const":"destructuring"),le(e,r,i,c,u,{type:"VariableDeclarator",id:p,init:d})}function Ie(e,r,t){return he(r,e.token)||s(e,114),537079808==(537079808&e.token)&&s(e,115),t&&ke(e,r,t,e.tokenValue,8,0),sr(e,r,0)}function Ue(e,r,t){var n=e.tokenPos,o=e.linePos,a=e.colPos;return M(e,r),te(e,r,77934),134217728==(134217728&e.token)&&l(n,e.line,e.index,28,U[255&e.token]),le(e,r,n,o,a,{type:"ImportNamespaceSpecifier",local:Ie(e,r,t)})}function Be(e,r,t,n){for(M(e,r);143360&e.token;){var o=e.token,a=e.tokenValue,i=e.tokenPos,l=e.linePos,c=e.colPos,u=sr(e,r,0),d=void 0;re(e,r,77934)?(134217728==(134217728&e.token)||18===e.token?s(e,103):oe(e,r,16,e.token,0),a=e.tokenValue,d=sr(e,r,0)):(oe(e,r,16,o,0),d=u),t&&ke(e,r,t,a,8,0),n.push(le(e,r,i,l,c,{type:"ImportSpecifier",local:d,imported:u})),1074790415!==e.token&&te(e,r,18)}return te(e,r,1074790415),n}function Oe(e,r,t,n,o){var a=Ke(e,r,le(e,r,t,n,o,{type:"Identifier",name:"import"}),t,n,o);return Ce(e,r,a=Je(e,r,0,0,t,n,o,a=$e(e,r,a,0,0,t,n,o)),t,n,o)}function je(e,r,t,n,o){var a=Qe(e,r,0,t,n,o);return Ce(e,r,a=$e(e,r,a,0,0,t,n,o),t,n,o)}function Ge(e,r,t,n,o,a,s,i){var l=We(e,r,2,0,t,n,o,1,a,s,i);return Je(e,r,o,0,a,s,i,l=$e(e,r,l,o,0,a,s,i))}function Fe(e,r,t,n,o,a,s){for(var i=[s];re(e,32768|r,18);)i.push(Ge(e,r,1,0,t,e.tokenPos,e.linePos,e.colPos));return le(e,r,n,o,a,{type:"SequenceExpression",expressions:i})}function He(e,r,t,n,o,a,s){var i=Ge(e,r,n,0,t,o,a,s);return 18===e.token?Fe(e,r,t,o,a,s,i):i}function Je(e,r,t,n,o,a,i,l){var c=e.token;if(4194304==(4194304&c)){2&e.assignable&&s(e,24),(!n&&1077936157===c&&"ArrayExpression"===l.type||"ObjectExpression"===l.type)&&ne(e,l),M(e,32768|r);var u=Ge(e,r,1,1,t,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,le(e,r,o,a,i,n?{type:"AssignmentPattern",left:l,right:u}:{type:"AssignmentExpression",left:l,operator:U[255&c],right:u})}return 8454144==(8454144&c)&&(l=Xe(e,r,t,o,a,i,4,c,l)),re(e,32768|r,22)&&(l=ze(e,r,l,o,a,i)),l}function Me(e,r,t,n,o,a,s,i){var l=e.token;M(e,32768|r);var c=Ge(e,r,1,1,t,e.tokenPos,e.linePos,e.colPos);return i=le(e,r,o,a,s,n?{type:"AssignmentPattern",left:i,right:c}:{type:"AssignmentExpression",left:i,operator:U[255&l],right:c}),e.assignable=2,i}function ze(e,r,t,n,o,a){var s=Ge(e,134217728^(134217728|r),1,0,0,e.tokenPos,e.linePos,e.colPos);te(e,32768|r,21),e.assignable=1;var i=Ge(e,r,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,le(e,r,n,o,a,{type:"ConditionalExpression",test:t,consequent:s,alternate:i})}function Xe(e,r,t,n,o,a,i,l,c){var u,d,p=8738868&-((134217728&r)>0);for(e.assignable=2;8454144&e.token&&(d=3840&(u=e.token),(524288&u&&268435456&l||524288&l&&268435456&u)&&s(e,159),!(d+((8457273===u)<<8)-((p===u)<<12)<=i));)M(e,32768|r),c=le(e,r,n,o,a,{type:524288&u||268435456&u?"LogicalExpression":"BinaryExpression",left:c,right:Xe(e,r,t,e.tokenPos,e.linePos,e.colPos,d,u,Ye(e,r,0,t,1,e.tokenPos,e.linePos,e.colPos)),operator:U[255&u]});return 1077936157===e.token&&s(e,24),c}function _e(e,r,t,n,o,a){var c=e.tokenPos,u=e.linePos,d=e.colPos;te(e,32768|r,2162700);var p=[],f=r;if(1074790415!==e.token){for(;134283267===e.token;){var k=e.index,g=e.tokenPos,m=e.tokenValue,b=e.token,h=ir(e,r);Q(e,k,g,m)&&(r|=1024,128&e.flags&&l(e.index,e.line,e.tokenPos,63),64&e.flags&&l(e.index,e.line,e.tokenPos,8)),p.push(Se(e,r,h,b,g,e.linePos,e.colPos))}1024&r&&(o&&(537079808==(537079808&o)&&s(e,115),36864==(36864&o)&&s(e,38)),512&e.flags&&s(e,115),256&e.flags&&s(e,114)),64&r&&t&&void 0!==a&&(1024&f)<1&&(8192&r)<1&&i(a)}for(e.flags=832^(832|e.flags),e.destructible=256^(256|e.destructible);1074790415!==e.token;)p.push(xe(e,r,t,4,{}));return te(e,24&n?32768|r:r,1074790415),e.flags&=-193,1077936157===e.token&&s(e,24),le(e,r,c,u,d,{type:"BlockStatement",body:p})}function Ye(e,r,t,n,o,a,s,i){return $e(e,r,We(e,r,2,0,t,0,n,o,a,s,i),n,0,a,s,i)}function $e(e,r,t,n,o,a,i,l){if(33619968==(33619968&e.token)&&(1&e.flags)<1)t=function(e,r,t,n,o,a){2&e.assignable&&s(e,52);var i=e.token;return M(e,r),e.assignable=2,le(e,r,n,o,a,{type:"UpdateExpression",argument:t,operator:U[255&i],prefix:!1})}(e,r,t,a,i,l);else if(67108864==(67108864&e.token)){switch(r=134225920^(134225920|r),e.token){case 67108877:M(e,1073741824|r),e.assignable=1,t=le(e,r,a,i,l,{type:"MemberExpression",object:t,computed:!1,property:u=Ze(e,r)});break;case 69271571:var c=!1;2048==(2048&e.flags)&&(c=!0,e.flags=2048^(2048|e.flags)),M(e,32768|r);var u=He(e,r,n,1,e.tokenPos,e.linePos,e.colPos);te(e,r,20),e.assignable=1,t=le(e,r,a,i,l,{type:"MemberExpression",object:t,computed:!0,property:u}),c&&(e.flags|=2048);break;case 67174411:if(1024==(1024&e.flags))return e.flags=1024^(1024|e.flags),t;c=!1;2048==(2048&e.flags)&&(c=!0,e.flags=2048^(2048|e.flags));var d=ar(e,r,n);e.assignable=2,t=le(e,r,a,i,l,{type:"CallExpression",callee:t,arguments:d}),c&&(e.flags|=2048);break;case 67108991:M(e,r),e.flags|=2048,e.assignable=2,t=function(e,r,t,n,o,a){var i,l=!1;69271571!==e.token&&67174411!==e.token||2048==(2048&e.flags)&&(l=!0,e.flags=2048^(2048|e.flags));if(69271571===e.token){M(e,32768|r);var c=He(e,r,0,1,e.tokenPos,e.linePos,e.colPos);te(e,r,20),e.assignable=2,i=le(e,r,n,o,a,{type:"MemberExpression",object:t,computed:!0,optional:!0,property:c})}else if(67174411===e.token){var u=ar(e,r,0);e.assignable=2,i=le(e,r,n,o,a,{type:"CallExpression",callee:t,arguments:u,optional:!0})}else{(143360&e.token)<1&&s(e,154);c=sr(e,r,0);e.assignable=2,i=le(e,r,n,o,a,{type:"MemberExpression",object:t,computed:!1,optional:!0,property:c})}l&&(e.flags|=2048);return i}(e,r,t,a,i,l);break;default:2048==(2048&e.flags)&&s(e,160),e.assignable=2,t=le(e,r,a,i,l,{type:"TaggedTemplateExpression",tag:t,quasi:67174408===e.token?tr(e,65536|r):rr(e,r,e.tokenPos,e.linePos,e.colPos)})}t=$e(e,r,t,0,1,a,i,l)}return 0===o&&2048==(2048&e.flags)&&(e.flags=2048^(2048|e.flags),t=le(e,r,a,i,l,{type:"ChainExpression",expression:t})),t}function Ze(e,r){return(143360&e.token)<1&&131!==e.token&&s(e,154),1&r&&131===e.token?Dr(e,r,e.tokenPos,e.linePos,e.colPos):sr(e,r,0)}function We(e,r,t,n,o,a,i,c,u,d,p){if(143360==(143360&e.token)){switch(e.token){case 209008:return function(e,r,t,n,o,a,i){if(n&&(e.destructible|=128),4194304&r||2048&r&&8192&r){t&&s(e,0),8388608&r&&l(e.index,e.line,e.index,29),M(e,32768|r);var c=Ye(e,r,0,0,1,e.tokenPos,e.linePos,e.colPos);return 8457273===e.token&&s(e,31),e.assignable=2,le(e,r,o,a,i,{type:"AwaitExpression",argument:c})}return 2048&r&&s(e,95),mr(e,r,o,a,i)}(e,r,n,i,u,d,p);case 241773:return function(e,r,t,n,o,a,i){if(t&&(e.destructible|=256),2097152&r){M(e,32768|r),8388608&r&&s(e,30),n||s(e,24),22===e.token&&s(e,120);var l=null,c=!1;return(1&e.flags)<1&&(c=re(e,32768|r,8457014),(77824&e.token||c)&&(l=Ge(e,r,1,0,0,e.tokenPos,e.linePos,e.colPos))),e.assignable=2,le(e,r,o,a,i,{type:"YieldExpression",argument:l,delegate:c})}return 1024&r&&s(e,94,"yield"),mr(e,r,o,a,i)}(e,r,i,o,u,d,p);case 209007:return function(e,r,t,n,o,a,i,l,c,u){var d=e.token,p=sr(e,r,a),f=e.flags;if((1&f)<1){if(86106===e.token)return cr(e,r,1,t,l,c,u);if(143360==(143360&e.token))return n||s(e,0),xr(e,r,o,l,c,u)}return i||67174411!==e.token?10===e.token?(ve(e,r,d,1),i&&s(e,48),br(e,r,e.tokenValue,p,i,o,0,l,c,u)):p:wr(e,r,p,o,1,0,f,l,c,u)}(e,r,i,c,o,a,n,u,d,p)}var f=e.token,k=e.tokenValue,g=sr(e,65536|r,a);return 10===e.token?(c||s(e,0),ve(e,r,f,1),br(e,r,k,g,n,o,0,u,d,p)):(16384&r&&537079928===f&&s(e,126),241739===f&&(1024&r&&s(e,109),24&t&&s(e,97)),e.assignable=1024&r&&537079808==(537079808&f)?2:1,g)}if(134217728==(134217728&e.token))return ir(e,r);switch(e.token){case 33619995:case 33619996:return function(e,r,t,n,o,a,i){t&&s(e,53),n||s(e,0);var l=e.token;M(e,32768|r);var c=Ye(e,r,0,0,1,e.tokenPos,e.linePos,e.colPos);return 2&e.assignable&&s(e,52),e.assignable=2,le(e,r,o,a,i,{type:"UpdateExpression",argument:c,operator:U[255&l],prefix:!0})}(e,r,n,c,u,d,p);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return function(e,r,t,n,o,a,i){t||s(e,0);var l=e.token;M(e,32768|r);var c,u=Ye(e,r,0,i,1,e.tokenPos,e.linePos,e.colPos);return 8457273===e.token&&s(e,31),1024&r&&16863278===l&&("Identifier"===u.type?s(e,117):(c=u).property&&"PrivateIdentifier"===c.property.type&&s(e,123)),e.assignable=2,le(e,r,n,o,a,{type:"UnaryExpression",operator:U[255&l],argument:u,prefix:!0})}(e,r,c,u,d,p,i);case 86106:return cr(e,r,0,i,u,d,p);case 2162700:return function(e,r,t,n,o,a,i){var l=kr(e,r,void 0,t,n,0,2,0,o,a,i);256&r&&64&e.destructible&&s(e,60);8&e.destructible&&s(e,59);return l}(e,r,o?0:1,i,u,d,p);case 69271571:return function(e,r,t,n,o,a,i){var l=ur(e,r,void 0,t,n,0,2,0,o,a,i);256&r&&64&e.destructible&&s(e,60);8&e.destructible&&s(e,59);return l}(e,r,o?0:1,i,u,d,p);case 67174411:return function(e,r,t,n,o,a,i,l){e.flags=128^(128|e.flags);var c=e.tokenPos,u=e.linePos,d=e.colPos;M(e,1073774592|r);var p=64&r?pe({parent:void 0,type:2},1024):void 0;if(re(e,r=134217728^(134217728|r),16))return hr(e,r,p,[],t,0,a,i,l);var f,k=0;e.destructible&=-385;var g=[],m=0,b=0,h=e.tokenPos,v=e.linePos,P=e.colPos;e.assignable=1;for(;16!==e.token;){var y=e.token,x=e.tokenPos,w=e.linePos,q=e.colPos;if(143360&y)p&&ke(e,r,p,e.tokenValue,1,0),f=We(e,r,n,0,1,0,1,1,x,w,q),16===e.token||18===e.token?2&e.assignable?(k|=16,b=1):537079808!=(537079808&y)&&36864!=(36864&y)||(b=1):(1077936157===e.token?b=1:k|=16,f=$e(e,r,f,1,0,x,w,q),16!==e.token&&18!==e.token&&(f=Je(e,r,1,0,x,w,q,f)));else{if(2097152!=(2097152&y)){if(14===y){f=pr(e,r,p,16,n,o,0,1,0,x,w,q),16&e.destructible&&s(e,71),b=1,!m||16!==e.token&&18!==e.token||g.push(f),k|=8;break}if(k|=16,f=Ge(e,r,1,0,1,x,w,q),!m||16!==e.token&&18!==e.token||g.push(f),18===e.token&&(m||(m=1,g=[f])),m){for(;re(e,32768|r,18);)g.push(Ge(e,r,1,0,1,e.tokenPos,e.linePos,e.colPos));e.assignable=2,f=le(e,r,h,v,P,{type:"SequenceExpression",expressions:g})}return te(e,r,16),e.destructible=k,f}f=2162700===y?kr(e,1073741824|r,p,0,1,0,n,o,x,w,q):ur(e,1073741824|r,p,0,1,0,n,o,x,w,q),k|=e.destructible,b=1,e.assignable=2,16!==e.token&&18!==e.token&&(8&k&&s(e,118),f=$e(e,r,f,0,0,x,w,q),k|=16,16!==e.token&&18!==e.token&&(f=Je(e,r,0,0,x,w,q,f)))}if(!m||16!==e.token&&18!==e.token||g.push(f),!re(e,32768|r,18))break;if(m||(m=1,g=[f]),16===e.token){k|=8;break}}m&&(e.assignable=2,f=le(e,r,h,v,P,{type:"SequenceExpression",expressions:g}));te(e,r,16),16&k&&8&k&&s(e,145);if(k|=256&e.destructible?256:0|128&e.destructible?128:0,10===e.token)return 48&k&&s(e,46),4196352&r&&128&k&&s(e,29),2098176&r&&256&k&&s(e,30),b&&(e.flags|=128),hr(e,r,p,m?g:[f],t,0,a,i,l);8&k&&s(e,139);return e.destructible=256^(256|e.destructible)|k,128&r?le(e,r,c,u,d,{type:"ParenthesizedExpression",expression:f}):f}(e,r,o,1,0,u,d,p);case 86021:case 86022:case 86023:return function(e,r,t,n,o){var a=U[255&e.token],s=86023===e.token?null:"true"===a;return M(e,r),e.assignable=2,le(e,r,t,n,o,512&r?{type:"Literal",value:s,raw:a}:{type:"Literal",value:s})}(e,r,u,d,p);case 86113:return function(e,r){var t=e.tokenPos,n=e.linePos,o=e.colPos;return M(e,r),e.assignable=2,le(e,r,t,n,o,{type:"ThisExpression"})}(e,r);case 65540:return function(e,r,t,n,o){var a=e.tokenRaw,s=e.tokenRegExp,i=e.tokenValue;return M(e,r),e.assignable=2,le(e,r,t,n,o,512&r?{type:"Literal",value:i,regex:s,raw:a}:{type:"Literal",value:i,regex:s})}(e,r,u,d,p);case 133:case 86096:return function(e,r,t,n,o,a){var i=null,l=null,c=Cr(e,r=16777216^(16778240|r));c.length&&(n=e.tokenPos,o=e.linePos,a=e.colPos);M(e,r),4096&e.token&&20567!==e.token&&(se(e,r,e.token)&&s(e,114),537079808==(537079808&e.token)&&s(e,115),i=sr(e,r,0));var u=r;re(e,32768|r,20567)?(l=Ye(e,r,0,t,0,e.tokenPos,e.linePos,e.colPos),u|=524288):u=524288^(524288|u);var d=Ar(e,u,r,void 0,2,0,t);return e.assignable=2,le(e,r,n,o,a,1&r?{type:"ClassExpression",id:i,superClass:l,decorators:c,body:d}:{type:"ClassExpression",id:i,superClass:l,body:d})}(e,r,i,u,d,p);case 86111:return function(e,r,t,n,o){switch(M(e,r),e.token){case 67108991:s(e,161);case 67174411:(524288&r)<1&&s(e,26),16384&r&&s(e,143),e.assignable=2;break;case 69271571:case 67108877:(262144&r)<1&&s(e,27),16384&r&&s(e,143),e.assignable=1;break;default:s(e,28,"super")}return le(e,r,t,n,o,{type:"Super"})}(e,r,u,d,p);case 67174409:return rr(e,r,u,d,p);case 67174408:return tr(e,r);case 86109:return function(e,r,t,n,o,a){var i=sr(e,32768|r,0),l=e.tokenPos,c=e.linePos,u=e.colPos;if(re(e,r,67108877)){if(67108864&r&&143494===e.token)return e.assignable=2,function(e,r,t,n,o,a){var s=sr(e,r,0);return le(e,r,n,o,a,{type:"MetaProperty",meta:t,property:s})}(e,r,i,n,o,a);s(e,91)}e.assignable=2,16842752==(16842752&e.token)&&s(e,62,U[255&e.token]);var d=We(e,r,2,1,0,0,t,1,l,c,u);r=134217728^(134217728|r),67108991===e.token&&s(e,162);var p=yr(e,r,d,t,l,c,u);return e.assignable=2,le(e,r,n,o,a,{type:"NewExpression",callee:p,arguments:67174411===e.token?ar(e,r,t):[]})}(e,r,i,u,d,p);case 134283389:return er(e,r,u,d,p);case 131:return Dr(e,r,u,d,p);case 86108:return function(e,r,t,n,o,a,i){var l=sr(e,r,0);if(67108877===e.token)return Ke(e,r,l,o,a,i);t&&s(e,137);return l=Qe(e,r,n,o,a,i),e.assignable=2,$e(e,r,l,n,0,o,a,i)}(e,r,n,i,u,d,p);case 8456258:if(16&r)return Rr(e,r,1,u,d,p);default:if(he(r,e.token))return mr(e,r,u,d,p);s(e,28,U[255&e.token])}}function Ke(e,r,t,n,o,a){return 0==(2048&r)&&s(e,163),M(e,r),143495!==e.token&&"meta"!==e.tokenValue&&s(e,28,U[255&e.token]),e.assignable=2,le(e,r,n,o,a,{type:"MetaProperty",meta:t,property:sr(e,r,0)})}function Qe(e,r,t,n,o,a){te(e,32768|r,67174411),14===e.token&&s(e,138);var i=Ge(e,r,1,0,t,e.tokenPos,e.linePos,e.colPos);return te(e,r,16),le(e,r,n,o,a,{type:"ImportExpression",source:i})}function er(e,r,t,n,o){var a=e.tokenRaw,s=e.tokenValue;return M(e,r),e.assignable=2,le(e,r,t,n,o,512&r?{type:"Literal",value:s,bigint:a.slice(0,-1),raw:a}:{type:"Literal",value:s,bigint:a.slice(0,-1)})}function rr(e,r,t,n,o){e.assignable=2;var a=e.tokenValue,s=e.tokenRaw,i=e.tokenPos,l=e.linePos,c=e.colPos;return te(e,r,67174409),le(e,r,t,n,o,{type:"TemplateLiteral",expressions:[],quasis:[nr(e,r,a,s,i,l,c,!0)]})}function tr(e,r){r=134217728^(134217728|r);var t=e.tokenValue,n=e.tokenRaw,o=e.tokenPos,a=e.linePos,i=e.colPos;te(e,32768|r,67174408);var l=[nr(e,r,t,n,o,a,i,!1)],c=[He(e,r,0,1,e.tokenPos,e.linePos,e.colPos)];for(1074790415!==e.token&&s(e,80);67174409!==(e.token=R(e,r));){var u=e.tokenValue,d=e.tokenRaw,p=e.tokenPos,f=e.linePos,k=e.colPos;te(e,32768|r,67174408),l.push(nr(e,r,u,d,p,f,k,!1)),c.push(He(e,r,0,1,e.tokenPos,e.linePos,e.colPos)),1074790415!==e.token&&s(e,80)}var g=e.tokenValue,m=e.tokenRaw,b=e.tokenPos,h=e.linePos,v=e.colPos;return te(e,r,67174409),l.push(nr(e,r,g,m,b,h,v,!0)),le(e,r,o,a,i,{type:"TemplateLiteral",expressions:c,quasis:l})}function nr(e,r,t,n,o,a,s,i){var l=le(e,r,o,a,s,{type:"TemplateElement",value:{cooked:t,raw:n},tail:i}),c=i?1:2;return 2&r&&(l.start+=1,l.range[0]+=1,l.end-=c,l.range[1]-=c),4&r&&(l.loc.start.column+=1,l.loc.end.column-=c),l}function or(e,r,t,n,o){te(e,32768|(r=134217728^(134217728|r)),14);var a=Ge(e,r,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=1,le(e,r,t,n,o,{type:"SpreadElement",argument:a})}function ar(e,r,t){M(e,32768|r);var n=[];if(16===e.token)return M(e,r),n;for(;16!==e.token&&(14===e.token?n.push(or(e,r,e.tokenPos,e.linePos,e.colPos)):n.push(Ge(e,r,1,0,t,e.tokenPos,e.linePos,e.colPos)),18===e.token)&&(M(e,32768|r),16!==e.token););return te(e,r,16),n}function sr(e,r,t){var n=e.tokenValue,o=e.tokenPos,a=e.linePos,s=e.colPos;return M(e,r),le(e,r,o,a,s,268435456&r?{type:"Identifier",name:n,pattern:1===t}:{type:"Identifier",name:n})}function ir(e,r){var t=e.tokenValue,n=e.tokenRaw,o=e.tokenPos,a=e.linePos,s=e.colPos;return 134283389===e.token?er(e,r,o,a,s):(M(e,r),e.assignable=2,le(e,r,o,a,s,512&r?{type:"Literal",value:t,raw:n}:{type:"Literal",value:t}))}function lr(e,r,t,n,o,a,i,l,c,u){M(e,32768|r);var d,p=o?ee(e,r,8457014):0,f=null,k=t?{parent:void 0,type:2}:void 0;if(67174411===e.token)(1&a)<1&&s(e,37,"Function");else{var g=4&n&&((8192&r)<1||(2048&r)<1)?4:64;ae(e,r|(3072&r)<<11,e.token),t&&(4&g?ge(e,r,t,e.tokenValue,g):ke(e,r,t,e.tokenValue,g,n),k=pe(k,256),a&&2&a&&me(e,e.tokenValue)),d=e.token,143360&e.token?f=sr(e,r,0):s(e,28,U[255&e.token])}return r=32243712^(32243712|r)|67108864|2*i+p<<21|(p?0:1073741824),t&&(k=pe(k,512)),le(e,r,l,c,u,{type:"FunctionDeclaration",id:f,params:Pr(e,8388608|r,k,0,1),body:_e(e,143360^(143360|r),t?pe(k,128):k,8,d,t?k.scopeError:void 0),async:1===i,generator:1===p})}function cr(e,r,t,n,o,a,s){M(e,32768|r);var i,l=ee(e,r,8457014),c=2*t+l<<21,u=null,d=64&r?{parent:void 0,type:2}:void 0;(176128&e.token)>0&&(ae(e,32243712^(32243712|r)|c,e.token),d&&(d=pe(d,256)),i=e.token,u=sr(e,r,0)),r=32243712^(32243712|r)|67108864|c|(l?0:1073741824),d&&(d=pe(d,512));var p=Pr(e,8388608|r,d,n,1),f=_e(e,-134377473&r,d?pe(d,128):d,0,i,void 0);return e.assignable=2,le(e,r,o,a,s,{type:"FunctionExpression",id:u,params:p,body:f,async:1===t,generator:1===l})}function ur(e,r,t,n,o,a,i,l,c,u,d){M(e,32768|r);var p=[],f=0;for(r=134217728^(134217728|r);20!==e.token;)if(re(e,32768|r,18))p.push(null);else{var k=void 0,g=e.token,m=e.tokenPos,b=e.linePos,h=e.colPos,v=e.tokenValue;if(143360&g)if(k=We(e,r,i,0,1,0,o,1,m,b,h),1077936157===e.token){2&e.assignable&&s(e,24),M(e,32768|r),t&&fe(e,r,t,v,i,l);var P=Ge(e,r,1,1,o,e.tokenPos,e.linePos,e.colPos);k=le(e,r,m,b,h,a?{type:"AssignmentPattern",left:k,right:P}:{type:"AssignmentExpression",operator:"=",left:k,right:P}),f|=256&e.destructible?256:0|128&e.destructible?128:0}else 18===e.token||20===e.token?(2&e.assignable?f|=16:t&&fe(e,r,t,v,i,l),f|=256&e.destructible?256:0|128&e.destructible?128:0):(f|=1&i?32:(2&i)<1?16:0,k=$e(e,r,k,o,0,m,b,h),18!==e.token&&20!==e.token?(1077936157!==e.token&&(f|=16),k=Je(e,r,o,a,m,b,h,k)):1077936157!==e.token&&(f|=2&e.assignable?16:32));else 2097152&g?(k=2162700===e.token?kr(e,r,t,0,o,a,i,l,m,b,h):ur(e,r,t,0,o,a,i,l,m,b,h),f|=e.destructible,e.assignable=16&e.destructible?2:1,18===e.token||20===e.token?2&e.assignable&&(f|=16):8&e.destructible?s(e,68):(k=$e(e,r,k,o,0,m,b,h),f=2&e.assignable?16:0,18!==e.token&&20!==e.token?k=Je(e,r,o,a,m,b,h,k):1077936157!==e.token&&(f|=2&e.assignable?16:32))):14===g?(k=pr(e,r,t,20,i,l,0,o,a,m,b,h),f|=e.destructible,18!==e.token&&20!==e.token&&s(e,28,U[255&e.token])):(k=Ye(e,r,1,0,1,m,b,h),18!==e.token&&20!==e.token?(k=Je(e,r,o,a,m,b,h,k),(3&i)<1&&67174411===g&&(f|=16)):2&e.assignable?f|=16:67174411===g&&(f|=1&e.assignable&&3&i?32:16));if(p.push(k),!re(e,32768|r,18))break;if(20===e.token)break}te(e,r,20);var y=le(e,r,c,u,d,{type:a?"ArrayPattern":"ArrayExpression",elements:p});return!n&&4194304&e.token?dr(e,r,f,o,a,c,u,d,y):(e.destructible=f,y)}function dr(e,r,t,n,o,a,i,l,c){1077936157!==e.token&&s(e,24),M(e,32768|r),16&t&&s(e,24),o||ne(e,c);var u=Ge(e,r,1,1,n,e.tokenPos,e.linePos,e.colPos);return e.destructible=72^(72|t)|(128&e.destructible?128:0)|(256&e.destructible?256:0),le(e,r,a,i,l,o?{type:"AssignmentPattern",left:c,right:u}:{type:"AssignmentExpression",left:c,operator:"=",right:u})}function pr(e,r,t,n,o,a,i,l,c,u,d,p){M(e,32768|r);var f=null,k=0,g=e.token,m=e.tokenValue,b=e.tokenPos,h=e.linePos,v=e.colPos;if(143360&g)e.assignable=1,f=We(e,r,o,0,1,0,l,1,b,h,v),g=e.token,f=$e(e,r,f,l,0,b,h,v),18!==e.token&&e.token!==n&&(2&e.assignable&&1077936157===e.token&&s(e,68),k|=16,f=Je(e,r,l,c,b,h,v,f)),2&e.assignable?k|=16:g===n||18===g?t&&fe(e,r,t,m,o,a):k|=32,k|=128&e.destructible?128:0;else if(g===n)s(e,39);else{if(!(2097152&g)){k|=32,f=Ye(e,r,1,l,1,e.tokenPos,e.linePos,e.colPos);var P=e.token,y=e.tokenPos,x=e.linePos,w=e.colPos;return 1077936157===P&&P!==n&&18!==P?(2&e.assignable&&s(e,24),f=Je(e,r,l,c,y,x,w,f),k|=16):(18===P?k|=16:P!==n&&(f=Je(e,r,l,c,y,x,w,f)),k|=1&e.assignable?32:16),e.destructible=k,e.token!==n&&18!==e.token&&s(e,155),le(e,r,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}f=2162700===e.token?kr(e,r,t,1,l,c,o,a,b,h,v):ur(e,r,t,1,l,c,o,a,b,h,v),1077936157!==(g=e.token)&&g!==n&&18!==g?(8&e.destructible&&s(e,68),f=$e(e,r,f,l,0,b,h,v),k|=2&e.assignable?16:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),f=Je(e,r,l,c,b,h,v,f)):(8454144==(8454144&e.token)&&(f=Xe(e,r,1,b,h,v,4,g,f)),re(e,32768|r,22)&&(f=ze(e,r,f,b,h,v)),k|=2&e.assignable?16:32)):k|=1074790415===n&&1077936157!==g?16:e.destructible}if(e.token!==n)if(1&o&&(k|=i?16:32),re(e,32768|r,1077936157)){16&k&&s(e,24),ne(e,f);var q=Ge(e,r,1,1,l,e.tokenPos,e.linePos,e.colPos);f=le(e,r,b,h,v,c?{type:"AssignmentPattern",left:f,right:q}:{type:"AssignmentExpression",left:f,operator:"=",right:q}),k=16}else k|=16;return e.destructible=k,le(e,r,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}function fr(e,r,t,n,o,a,l){var c=(64&t)<1?31981568:14680064,u=64&(r=(r|c)^c|(88&t)<<18|100925440)?pe({parent:void 0,type:2},512):void 0,d=function(e,r,t,n,o,a){te(e,r,67174411);var l=[];if(e.flags=128^(128|e.flags),16===e.token)return 512&n&&s(e,35,"Setter","one",""),M(e,r),l;256&n&&s(e,35,"Getter","no","s");512&n&&14===e.token&&s(e,36);r=134217728^(134217728|r);var c=0,u=0;for(;18!==e.token;){var d=null,p=e.tokenPos,f=e.linePos,k=e.colPos;if(143360&e.token?((1024&r)<1&&(36864==(36864&e.token)&&(e.flags|=256),537079808==(537079808&e.token)&&(e.flags|=512)),d=Tr(e,r,t,1|n,0,p,f,k)):(2162700===e.token?d=kr(e,r,t,1,a,1,o,0,p,f,k):69271571===e.token?d=ur(e,r,t,1,a,1,o,0,p,f,k):14===e.token&&(d=pr(e,r,t,16,o,0,0,a,1,p,f,k)),u=1,48&e.destructible&&s(e,47)),1077936157===e.token)M(e,32768|r),u=1,d=le(e,r,p,f,k,{type:"AssignmentPattern",left:d,right:Ge(e,r,1,1,0,e.tokenPos,e.linePos,e.colPos)});if(c++,l.push(d),!re(e,r,18))break;if(16===e.token)break}512&n&&1!==c&&s(e,35,"Setter","one","");t&&void 0!==t.scopeError&&i(t.scopeError);u&&(e.flags|=128);return te(e,r,16),l}(e,8388608|r,u,t,1,n);return u&&(u=pe(u,128)),le(e,r,o,a,l,{type:"FunctionExpression",params:d,body:_e(e,-134230017&r,u,0,void 0,void 0),async:(16&t)>0,generator:(8&t)>0,id:null})}function kr(e,r,t,n,o,a,i,c,u,d,p){M(e,r);var f=[],k=0,g=0;for(r=134217728^(134217728|r);1074790415!==e.token;){var m=e.token,b=e.tokenValue,h=e.linePos,v=e.colPos,P=e.tokenPos;if(14===m)f.push(pr(e,r,t,1074790415,i,c,0,o,a,P,h,v));else{var y=0,x=null,w=void 0,q=e.token;if(143360&e.token||121===e.token)if(x=sr(e,r,0),18===e.token||1074790415===e.token||1077936157===e.token)if(y|=4,1024&r&&537079808==(537079808&m)?k|=16:oe(e,r,i,m,0),t&&fe(e,r,t,b,i,c),re(e,32768|r,1077936157)){k|=8;var C=Ge(e,r,1,1,o,e.tokenPos,e.linePos,e.colPos);k|=256&e.destructible?256:0|128&e.destructible?128:0,w=le(e,r,P,h,v,{type:"AssignmentPattern",left:-2147483648&r?Object.assign({},x):x,right:C})}else k|=(209008===m?128:0)|(121===m?16:0),w=-2147483648&r?Object.assign({},x):x;else if(re(e,32768|r,21)){var E=e.tokenPos,A=e.linePos,S=e.colPos;if("__proto__"===b&&g++,143360&e.token){var D=e.token,L=e.tokenValue;k|=121===q?16:0,w=We(e,r,i,0,1,0,o,1,E,A,S);var V=e.token;w=$e(e,r,w,o,0,E,A,S),18===e.token||1074790415===e.token?1077936157===V||1074790415===V||18===V?(k|=128&e.destructible?128:0,2&e.assignable?k|=16:t&&143360==(143360&D)&&fe(e,r,t,L,i,c)):k|=1&e.assignable?32:16:4194304==(4194304&e.token)?(2&e.assignable?k|=16:1077936157!==V?k|=32:t&&fe(e,r,t,L,i,c),w=Je(e,r,o,a,E,A,S,w)):(k|=16,8454144==(8454144&e.token)&&(w=Xe(e,r,1,E,A,S,4,V,w)),re(e,32768|r,22)&&(w=ze(e,r,w,E,A,S)))}else 2097152==(2097152&e.token)?(w=69271571===e.token?ur(e,r,t,0,o,a,i,c,E,A,S):kr(e,r,t,0,o,a,i,c,E,A,S),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&e.destructible?s(e,68):(w=$e(e,r,w,o,0,E,A,S),k=2&e.assignable?16:0,4194304==(4194304&e.token)?w=Me(e,r,o,a,E,A,S,w):(8454144==(8454144&e.token)&&(w=Xe(e,r,1,E,A,S,4,m,w)),re(e,32768|r,22)&&(w=ze(e,r,w,E,A,S)),k|=2&e.assignable?16:32))):(w=Ye(e,r,1,o,1,E,A,S),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(w=$e(e,r,w,o,0,E,A,S),k=2&e.assignable?16:0,18!==e.token&&1074790415!==m&&(1077936157!==e.token&&(k|=16),w=Je(e,r,o,a,E,A,S,w))))}else 69271571===e.token?(k|=16,209007===m&&(y|=16),y|=2|(12402===m?256:12403===m?512:1),x=gr(e,r,o),k|=e.assignable,w=fr(e,r,y,o,e.tokenPos,e.linePos,e.colPos)):143360&e.token?(k|=16,121===m&&s(e,92),209007===m&&(1&e.flags&&s(e,128),y|=16),x=sr(e,r,0),w=fr(e,r,y|=12402===m?256:12403===m?512:1,o,e.tokenPos,e.linePos,e.colPos)):67174411===e.token?(k|=16,w=fr(e,r,y|=1,o,e.tokenPos,e.linePos,e.colPos)):8457014===e.token?(k|=16,12402===m||12403===m?s(e,40):143483===m&&s(e,92),M(e,r),y|=9|(209007===m?16:0),143360&e.token?x=sr(e,r,0):134217728==(134217728&e.token)?x=ir(e,r):69271571===e.token?(y|=2,x=gr(e,r,o),k|=e.assignable):s(e,28,U[255&e.token]),w=fr(e,r,y,o,e.tokenPos,e.linePos,e.colPos)):134217728==(134217728&e.token)?(209007===m&&(y|=16),y|=12402===m?256:12403===m?512:1,k|=16,x=ir(e,r),w=fr(e,r,y,o,e.tokenPos,e.linePos,e.colPos)):s(e,129);else if(134217728==(134217728&e.token))if(x=ir(e,r),21===e.token){te(e,32768|r,21);var T=e.tokenPos,R=e.linePos,N=e.colPos;if("__proto__"===b&&g++,143360&e.token){w=We(e,r,i,0,1,0,o,1,T,R,N);var I=e.token;L=e.tokenValue;w=$e(e,r,w,o,0,T,R,N),18===e.token||1074790415===e.token?1077936157===I||1074790415===I||18===I?2&e.assignable?k|=16:t&&fe(e,r,t,L,i,c):k|=1&e.assignable?32:16:1077936157===e.token?(2&e.assignable&&(k|=16),w=Je(e,r,o,a,T,R,N,w)):(k|=16,w=Je(e,r,o,a,T,R,N,w))}else 2097152==(2097152&e.token)?(w=69271571===e.token?ur(e,r,t,0,o,a,i,c,T,R,N):kr(e,r,t,0,o,a,i,c,T,R,N),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8!=(8&e.destructible)&&(w=$e(e,r,w,o,0,T,R,N),k=2&e.assignable?16:0,4194304==(4194304&e.token)?w=Me(e,r,o,a,T,R,N,w):(8454144==(8454144&e.token)&&(w=Xe(e,r,1,T,R,N,4,m,w)),re(e,32768|r,22)&&(w=ze(e,r,w,T,R,N)),k|=2&e.assignable?16:32))):(w=Ye(e,r,1,0,1,T,R,N),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(w=$e(e,r,w,o,0,T,R,N),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),w=Je(e,r,o,a,T,R,N,w))))}else 67174411===e.token?(w=fr(e,r,y|=1,o,e.tokenPos,e.linePos,e.colPos),k=16|e.assignable):s(e,130);else if(69271571===e.token)if(x=gr(e,r,o),k|=256&e.destructible?256:0,y|=2,21===e.token){M(e,32768|r);var B=e.tokenPos,O=e.linePos,j=e.colPos,G=e.tokenValue;D=e.token;if(143360&e.token){w=We(e,r,i,0,1,0,o,1,B,O,j);var F=e.token;w=$e(e,r,w,o,0,B,O,j),4194304==(4194304&e.token)?(k|=2&e.assignable?16:1077936157===F?0:32,w=Me(e,r,o,a,B,O,j,w)):18===e.token||1074790415===e.token?1077936157===F||1074790415===F||18===F?2&e.assignable?k|=16:t&&143360==(143360&D)&&fe(e,r,t,G,i,c):k|=1&e.assignable?32:16:(k|=16,w=Je(e,r,o,a,B,O,j,w))}else 2097152==(2097152&e.token)?(w=69271571===e.token?ur(e,r,t,0,o,a,i,c,B,O,j):kr(e,r,t,0,o,a,i,c,B,O,j),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&k?s(e,59):(w=$e(e,r,w,o,0,B,O,j),k=2&e.assignable?16|k:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),w=Me(e,r,o,a,B,O,j,w)):(8454144==(8454144&e.token)&&(w=Xe(e,r,1,B,O,j,4,m,w)),re(e,32768|r,22)&&(w=ze(e,r,w,B,O,j)),k|=2&e.assignable?16:32))):(w=Ye(e,r,1,0,1,B,O,j),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(w=$e(e,r,w,o,0,B,O,j),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),w=Je(e,r,o,a,B,O,j,w))))}else 67174411===e.token?(w=fr(e,r,y|=1,o,e.tokenPos,h,v),k=16):s(e,41);else if(8457014===m)if(te(e,32768|r,8457014),y|=8,143360&e.token){var H=e.token,J=e.line,z=e.index;x=sr(e,r,0),y|=1,67174411===e.token?(k|=16,w=fr(e,r,y,o,e.tokenPos,e.linePos,e.colPos)):l(z,J,z,209007===H?43:12402===H||12403===e.token?42:44,U[255&H])}else 134217728==(134217728&e.token)?(k|=16,x=ir(e,r),w=fr(e,r,y|=1,o,P,h,v)):69271571===e.token?(k|=16,y|=3,x=gr(e,r,o),w=fr(e,r,y,o,e.tokenPos,e.linePos,e.colPos)):s(e,122);else s(e,28,U[255&m]);k|=128&e.destructible?128:0,e.destructible=k,f.push(le(e,r,P,h,v,{type:"Property",key:x,value:w,kind:768&y?512&y?"set":"get":"init",computed:(2&y)>0,method:(1&y)>0,shorthand:(4&y)>0}))}if(k|=e.destructible,18!==e.token)break;M(e,r)}te(e,r,1074790415),g>1&&(k|=64);var X=le(e,r,u,d,p,{type:a?"ObjectPattern":"ObjectExpression",properties:f});return!n&&4194304&e.token?dr(e,r,k,o,a,u,d,p,X):(e.destructible=k,X)}function gr(e,r,t){M(e,32768|r);var n=Ge(e,134217728^(134217728|r),1,0,t,e.tokenPos,e.linePos,e.colPos);return te(e,r,20),n}function mr(e,r,t,n,o){var a=e.tokenValue,s=sr(e,r,0);if(e.assignable=1,10===e.token){var i=void 0;return 64&r&&(i=ue(e,r,a)),e.flags=128^(128|e.flags),vr(e,r,i,[s],0,t,n,o)}return s}function br(e,r,t,n,o,a,i,l,c,u){return a||s(e,54),o&&s(e,48),e.flags&=-129,vr(e,r,64&r?ue(e,r,t):void 0,[n],i,l,c,u)}function hr(e,r,t,n,o,a,i,l,c){o||s(e,54);for(var u=0;u0&&"constructor"===e.tokenValue&&s(e,106),1074790415===e.token&&s(e,105),re(e,r,1074790417)?f>0&&s(e,116):p.push(Sr(e,r,n,t,o,d,0,i,e.tokenPos,e.linePos,e.colPos))}return te(e,8&a?32768|r:r,1074790415),le(e,r,l,c,u,{type:"ClassBody",body:p})}function Sr(e,r,t,n,o,a,i,l,c,u,d){var p=i?32:0,f=null,k=e.token,g=e.tokenPos,m=e.linePos,b=e.colPos;if(176128&k)switch(f=sr(e,r,0),k){case 36972:if(!i&&67174411!==e.token)return Sr(e,r,t,n,o,a,1,l,c,u,d);break;case 209007:if(67174411!==e.token&&(1&e.flags)<1){if(1&r&&1073741824==(1073741824&e.token))return Lr(e,r,f,p,a,g,m,b);p|=16|(ee(e,r,8457014)?8:0)}break;case 12402:if(67174411!==e.token){if(1&r&&1073741824==(1073741824&e.token))return Lr(e,r,f,p,a,g,m,b);p|=256}break;case 12403:if(67174411!==e.token){if(1&r&&1073741824==(1073741824&e.token))return Lr(e,r,f,p,a,g,m,b);p|=512}}else 69271571===k?(p|=2,f=gr(e,n,l)):134217728==(134217728&k)?f=ir(e,r):8457014===k?(p|=8,M(e,r)):1&r&&131===e.token?(p|=4096,f=Dr(e,r,g,m,b),r|=16384):1&r&&1073741824==(1073741824&e.token)?(p|=128,r|=16384):122===k?(f=sr(e,r,0),67174411!==e.token&&s(e,28,U[255&e.token])):s(e,28,U[255&e.token]);if(792&p&&(143360&e.token?f=sr(e,r,0):134217728==(134217728&e.token)?f=ir(e,r):69271571===e.token?(p|=2,f=gr(e,r,0)):122===e.token?f=sr(e,r,0):1&r&&131===e.token?(p|=4096,f=Dr(e,r,g,m,b)):s(e,131)),(2&p)<1&&("constructor"===e.tokenValue?(1073741824==(1073741824&e.token)?s(e,125):(32&p)<1&&67174411===e.token&&(920&p?s(e,50,"accessor"):(524288&r)<1&&(32&e.flags?s(e,51):e.flags|=32)),p|=64):(4096&p)<1&&824&p&&"prototype"===e.tokenValue&&s(e,49)),1&r&&67174411!==e.token)return Lr(e,r,f,p,a,g,m,b);var h=fr(e,r,p,l,e.tokenPos,e.linePos,e.colPos);return le(e,r,c,u,d,1&r?{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,decorators:a,value:h}:{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,value:h})}function Dr(e,r,t,n,o){M(e,r);var a=e.tokenValue;return"constructor"===a&&s(e,124),M(e,r),le(e,r,t,n,o,{type:"PrivateIdentifier",name:a})}function Lr(e,r,t,n,o,a,i,l){var c=null;if(8&n&&s(e,0),1077936157===e.token){M(e,32768|r);var u=e.tokenPos,d=e.linePos,p=e.colPos;537079928===e.token&&s(e,115),c=We(e,16384|r,2,0,1,0,0,1,u,d,p),1073741824!=(1073741824&e.token)&&(c=Je(e,16384|r,0,0,u,d,p,c=$e(e,16384|r,c,0,0,u,d,p)),18===e.token&&(c=Fe(e,r,0,a,i,l,c)))}return le(e,r,a,i,l,{type:"PropertyDefinition",key:t,value:c,static:(32&n)>0,computed:(2&n)>0,decorators:o})}function Vr(e,r,t,n,o,a,i,l){if(143360&e.token)return Tr(e,r,t,n,o,a,i,l);2097152!=(2097152&e.token)&&s(e,28,U[255&e.token]);var c=69271571===e.token?ur(e,r,t,1,0,1,n,o,a,i,l):kr(e,r,t,1,0,1,n,o,a,i,l);return 16&e.destructible&&s(e,47),32&e.destructible&&s(e,47),c}function Tr(e,r,t,n,o,a,i,l){var c=e.tokenValue,u=e.token;return 1024&r&&(537079808==(537079808&u)?s(e,115):36864==(36864&u)&&s(e,114)),20480==(20480&u)&&s(e,99),2099200&r&&241773===u&&s(e,30),241739===u&&24&n&&s(e,97),4196352&r&&209008===u&&s(e,95),M(e,r),t&&fe(e,r,t,c,n,o),le(e,r,a,i,l,{type:"Identifier",name:c})}function Rr(e,r,t,n,o,a){if(M(e,r),8456259===e.token)return le(e,r,n,o,a,{type:"JSXFragment",openingFragment:Nr(e,r,n,o,a),children:Ur(e,r),closingFragment:Ir(e,r,t,e.tokenPos,e.linePos,e.colPos)});var i=null,l=[],c=function(e,r,t,n,o,a){143360!=(143360&e.token)&&4096!=(4096&e.token)&&s(e,0);var i=Or(e,r,e.tokenPos,e.linePos,e.colPos),l=function(e,r){var t=[];for(;8457016!==e.token&&8456259!==e.token&&1048576!==e.token;)t.push(Gr(e,r,e.tokenPos,e.linePos,e.colPos));return t}(e,r),c=8457016===e.token;8456259===e.token?Z(e,r):(te(e,r,8457016),t?te(e,r,8456259):Z(e,r));return le(e,r,n,o,a,{type:"JSXOpeningElement",name:i,attributes:l,selfClosing:c})}(e,r,t,n,o,a);if(!c.selfClosing){l=Ur(e,r);var u=ce((i=function(e,r,t,n,o,a){te(e,r,25);var s=Or(e,r,e.tokenPos,e.linePos,e.colPos);t?te(e,r,8456259):e.token=Z(e,r);return le(e,r,n,o,a,{type:"JSXClosingElement",name:s})}(e,r,t,e.tokenPos,e.linePos,e.colPos)).name);ce(c.name)!==u&&s(e,149,u)}return le(e,r,n,o,a,{type:"JSXElement",children:l,openingElement:c,closingElement:i})}function Nr(e,r,t,n,o){return Z(e,r),le(e,r,t,n,o,{type:"JSXOpeningFragment"})}function Ir(e,r,t,n,o,a){return te(e,r,25),te(e,r,8456259),le(e,r,n,o,a,{type:"JSXClosingFragment"})}function Ur(e,r){for(var t=[];25!==e.token;)e.index=e.tokenPos=e.startPos,e.column=e.colPos=e.startColumn,e.line=e.linePos=e.startLine,Z(e,r),t.push(Br(e,r,e.tokenPos,e.linePos,e.colPos));return t}function Br(e,r,t,n,o){return 138===e.token?function(e,r,t,n,o){Z(e,r);var a={type:"JSXText",value:e.tokenValue};512&r&&(a.raw=e.tokenRaw);return le(e,r,t,n,o,a)}(e,r,t,n,o):2162700===e.token?Hr(e,r,0,0,t,n,o):8456258===e.token?Rr(e,r,0,t,n,o):void s(e,0)}function Or(e,r,t,n,o){W(e);var a=Jr(e,r,t,n,o);if(21===e.token)return Fr(e,r,a,t,n,o);for(;re(e,r,67108877);)W(e),a=jr(e,r,a,t,n,o);return a}function jr(e,r,t,n,o,a){return le(e,r,n,o,a,{type:"JSXMemberExpression",object:t,property:Jr(e,r,e.tokenPos,e.linePos,e.colPos)})}function Gr(e,r,t,n,o){if(2162700===e.token)return function(e,r,t,n,o){M(e,r),te(e,r,14);var a=Ge(e,r,1,0,0,e.tokenPos,e.linePos,e.colPos);return te(e,r,1074790415),le(e,r,t,n,o,{type:"JSXSpreadAttribute",argument:a})}(e,r,t,n,o);W(e);var a=null,i=Jr(e,r,t,n,o);if(21===e.token&&(i=Fr(e,r,i,t,n,o)),1077936157===e.token){var l=$(e,r),c=e.tokenPos,u=e.linePos,d=e.colPos;switch(l){case 134283267:a=ir(e,r);break;case 8456258:a=Rr(e,r,1,c,u,d);break;case 2162700:a=Hr(e,r,1,1,c,u,d);break;default:s(e,148)}}return le(e,r,t,n,o,{type:"JSXAttribute",value:a,name:i})}function Fr(e,r,t,n,o,a){return te(e,r,21),le(e,r,n,o,a,{type:"JSXNamespacedName",namespace:t,name:Jr(e,r,e.tokenPos,e.linePos,e.colPos)})}function Hr(e,r,t,n,o,a,i){M(e,r);var l=e.tokenPos,c=e.linePos,u=e.colPos;if(14===e.token)return function(e,r,t,n,o){te(e,r,14);var a=Ge(e,r,1,0,0,e.tokenPos,e.linePos,e.colPos);return te(e,r,1074790415),le(e,r,t,n,o,{type:"JSXSpreadChild",expression:a})}(e,r,l,c,u);var d=null;return 1074790415===e.token?(n&&s(e,151),d=function(e,r,t,n,o){return e.startPos=e.tokenPos,e.startLine=e.linePos,e.startColumn=e.colPos,le(e,r,t,n,o,{type:"JSXEmptyExpression"})}(e,r,e.startPos,e.startLine,e.startColumn)):d=Ge(e,r,1,0,0,l,c,u),t?te(e,r,1074790415):Z(e,r),le(e,r,o,a,i,{type:"JSXExpressionContainer",expression:d})}function Jr(e,r,t,n,o){var a=e.tokenValue;return M(e,r),le(e,r,t,n,o,{type:"JSXIdentifier",name:a})}var Mr=Object.freeze({__proto__:null});e.ESTree=Mr,e.parse=function(e,r){return Pe(e,r,0)},e.parseModule=function(e,r){return Pe(e,r,3072)},e.parseScript=function(e,r){return Pe(e,r,0)},e.version="4.2.0",Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/node_modules/meriyah/dist/meriyah.umd.js b/node_modules/meriyah/dist/meriyah.umd.js new file mode 100644 index 0000000..16469ba --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.umd.js @@ -0,0 +1,8796 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.meriyah = {})); +}(this, (function (exports) { 'use strict'; + + const errorMessages = { + [0]: 'Unexpected token', + [28]: "Unexpected token: '%0'", + [1]: 'Octal escape sequences are not allowed in strict mode', + [2]: 'Octal escape sequences are not allowed in template strings', + [3]: 'Unexpected token `#`', + [4]: 'Illegal Unicode escape sequence', + [5]: 'Invalid code point %0', + [6]: 'Invalid hexadecimal escape sequence', + [8]: 'Octal literals are not allowed in strict mode', + [7]: 'Decimal integer literals with a leading zero are forbidden in strict mode', + [9]: 'Expected number in radix %0', + [145]: 'Invalid left-hand side assignment to a destructible right-hand side', + [10]: 'Non-number found after exponent indicator', + [11]: 'Invalid BigIntLiteral', + [12]: 'No identifiers allowed directly after numeric literal', + [13]: 'Escapes \\8 or \\9 are not syntactically valid escapes', + [14]: 'Unterminated string literal', + [15]: 'Unterminated template literal', + [16]: 'Multiline comment was not closed properly', + [17]: 'The identifier contained dynamic unicode escape that was not closed', + [18]: "Illegal character '%0'", + [19]: 'Missing hexadecimal digits', + [20]: 'Invalid implicit octal', + [21]: 'Invalid line break in string literal', + [22]: 'Only unicode escapes are legal in identifier names', + [23]: "Expected '%0'", + [24]: 'Invalid left-hand side in assignment', + [25]: 'Invalid left-hand side in async arrow', + [26]: 'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass', + [27]: 'Member access on super must be in a method', + [29]: 'Await expression not allowed in formal parameter', + [30]: 'Yield expression not allowed in formal parameter', + [92]: "Unexpected token: 'escaped keyword'", + [31]: 'Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses', + [119]: 'Async functions can only be declared at the top level or inside a block', + [32]: 'Unterminated regular expression', + [33]: 'Unexpected regular expression flag', + [34]: "Duplicate regular expression flag '%0'", + [35]: '%0 functions must have exactly %1 argument%2', + [36]: 'Setter function argument must not be a rest parameter', + [37]: '%0 declaration must have a name in this context', + [38]: 'Function name may not contain any reserved words or be eval or arguments in strict mode', + [39]: 'The rest operator is missing an argument', + [40]: 'A getter cannot be a generator', + [41]: 'A computed property name must be followed by a colon or paren', + [130]: 'Object literal keys that are strings or numbers must be a method or have a colon', + [43]: 'Found `* async x(){}` but this should be `async * x(){}`', + [42]: 'Getters and setters can not be generators', + [44]: "'%0' can not be generator method", + [45]: "No line break is allowed after '=>'", + [46]: 'The left-hand side of the arrow can only be destructed through assignment', + [47]: 'The binding declaration is not destructible', + [48]: 'Async arrow can not be followed by new expression', + [49]: "Classes may not have a static property named 'prototype'", + [50]: 'Class constructor may not be a %0', + [51]: 'Duplicate constructor method in class', + [52]: 'Invalid increment/decrement operand', + [53]: 'Invalid use of `new` keyword on an increment/decrement expression', + [54]: '`=>` is an invalid assignment target', + [55]: 'Rest element may not have a trailing comma', + [56]: 'Missing initializer in %0 declaration', + [57]: "'for-%0' loop head declarations can not have an initializer", + [58]: 'Invalid left-hand side in for-%0 loop: Must have a single binding', + [59]: 'Invalid shorthand property initializer', + [60]: 'Property name __proto__ appears more than once in object literal', + [61]: 'Let is disallowed as a lexically bound name', + [62]: "Invalid use of '%0' inside new expression", + [63]: "Illegal 'use strict' directive in function with non-simple parameter list", + [64]: 'Identifier "let" disallowed as left-hand side expression in strict mode', + [65]: 'Illegal continue statement', + [66]: 'Illegal break statement', + [67]: 'Cannot have `let[...]` as a var name in strict mode', + [68]: 'Invalid destructuring assignment target', + [69]: 'Rest parameter may not have a default initializer', + [70]: 'The rest argument must the be last parameter', + [71]: 'Invalid rest argument', + [73]: 'In strict mode code, functions can only be declared at top level or inside a block', + [74]: 'In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement', + [75]: 'Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement', + [76]: "Class declaration can't appear in single-statement context", + [77]: 'Invalid left-hand side in for-%0', + [78]: 'Invalid assignment in for-%0', + [79]: 'for await (... of ...) is only valid in async functions and async generators', + [80]: 'The first token after the template expression should be a continuation of the template', + [82]: '`let` declaration not allowed here and `let` cannot be a regular var name in strict mode', + [81]: '`let \n [` is a restricted production at the start of a statement', + [83]: 'Catch clause requires exactly one parameter, not more (and no trailing comma)', + [84]: 'Catch clause parameter does not support default values', + [85]: 'Missing catch or finally after try', + [86]: 'More than one default clause in switch statement', + [87]: 'Illegal newline after throw', + [88]: 'Strict mode code may not include a with statement', + [89]: 'Illegal return statement', + [90]: 'The left hand side of the for-header binding declaration is not destructible', + [91]: 'new.target only allowed within functions', + [93]: "'#' not followed by identifier", + [99]: 'Invalid keyword', + [98]: "Can not use 'let' as a class name", + [97]: "'A lexical declaration can't define a 'let' binding", + [96]: 'Can not use `let` as variable name in strict mode', + [94]: "'%0' may not be used as an identifier in this context", + [95]: 'Await is only valid in async functions', + [100]: 'The %0 keyword can only be used with the module goal', + [101]: 'Unicode codepoint must not be greater than 0x10FFFF', + [102]: '%0 source must be string', + [103]: 'Only a identifier can be used to indicate alias', + [104]: "Only '*' or '{...}' can be imported after default", + [105]: 'Trailing decorator may be followed by method', + [106]: "Decorators can't be used with a constructor", + [108]: 'HTML comments are only allowed with web compatibility (Annex B)', + [109]: "The identifier 'let' must not be in expression position in strict mode", + [110]: 'Cannot assign to `eval` and `arguments` in strict mode', + [111]: "The left-hand side of a for-of loop may not start with 'let'", + [112]: 'Block body arrows can not be immediately invoked without a group', + [113]: 'Block body arrows can not be immediately accessed without a group', + [114]: 'Unexpected strict mode reserved word', + [115]: 'Unexpected eval or arguments in strict mode', + [116]: 'Decorators must not be followed by a semicolon', + [117]: 'Calling delete on expression not allowed in strict mode', + [118]: 'Pattern can not have a tail', + [120]: 'Can not have a `yield` expression on the left side of a ternary', + [121]: 'An arrow function can not have a postfix update operator', + [122]: 'Invalid object literal key character after generator star', + [123]: 'Private fields can not be deleted', + [125]: 'Classes may not have a field called constructor', + [124]: 'Classes may not have a private element named constructor', + [126]: 'A class field initializer may not contain arguments', + [127]: 'Generators can only be declared at the top level or inside a block', + [128]: 'Async methods are a restricted production and cannot have a newline following it', + [129]: 'Unexpected character after object literal property name', + [131]: 'Invalid key token', + [132]: "Label '%0' has already been declared", + [133]: 'continue statement must be nested within an iteration statement', + [134]: "Undefined label '%0'", + [135]: 'Trailing comma is disallowed inside import(...) arguments', + [136]: 'import() requires exactly one argument', + [137]: 'Cannot use new with import(...)', + [138]: '... is not allowed in import()', + [139]: "Expected '=>'", + [140]: "Duplicate binding '%0'", + [141]: "Cannot export a duplicate name '%0'", + [144]: 'Duplicate %0 for-binding', + [142]: "Exported binding '%0' needs to refer to a top-level declared variable", + [143]: 'Unexpected private field', + [147]: 'Numeric separators are not allowed at the end of numeric literals', + [146]: 'Only one underscore is allowed as numeric separator', + [148]: 'JSX value should be either an expression or a quoted JSX text', + [149]: 'Expected corresponding JSX closing tag for %0', + [150]: 'Adjacent JSX elements must be wrapped in an enclosing tag', + [151]: "JSX attributes must only be assigned a non-empty 'expression'", + [152]: "'%0' has already been declared", + [153]: "'%0' shadowed a catch clause binding", + [154]: 'Dot property must be an identifier', + [155]: 'Encountered invalid input after spread/rest argument', + [156]: 'Catch without try', + [157]: 'Finally without try', + [158]: 'Expected corresponding closing tag for JSX fragment', + [159]: 'Coalescing and logical operators used together in the same expression must be disambiguated with parentheses', + [160]: 'Invalid tagged template on optional chain', + [161]: 'Invalid optional chain from super property', + [162]: 'Invalid optional chain from new expression', + [163]: 'Cannot use "import.meta" outside a module', + [164]: 'Leading decorators must be attached to a class declaration' + }; + class ParseError extends SyntaxError { + constructor(startindex, line, column, type, ...params) { + const message = '[' + line + ':' + column + ']: ' + errorMessages[type].replace(/%(\d+)/g, (_, i) => params[i]); + super(`${message}`); + this.index = startindex; + this.line = line; + this.column = column; + this.description = message; + this.loc = { + line, + column + }; + } + } + function report(parser, type, ...params) { + throw new ParseError(parser.index, parser.line, parser.column, type, ...params); + } + function reportScopeError(scope) { + throw new ParseError(scope.index, scope.line, scope.column, scope.type, scope.params); + } + function reportMessageAt(index, line, column, type, ...params) { + throw new ParseError(index, line, column, type, ...params); + } + function reportScannerError(index, line, column, type) { + throw new ParseError(index, line, column, type); + } + + const unicodeLookup = ((compressed, lookup) => { + const result = new Uint32Array(104448); + let index = 0; + let subIndex = 0; + while (index < 3540) { + const inst = compressed[index++]; + if (inst < 0) { + subIndex -= inst; + } + else { + let code = compressed[index++]; + if (inst & 2) + code = lookup[code]; + if (inst & 1) { + result.fill(code, subIndex, subIndex += compressed[index++]); + } + else { + result[subIndex++] = code; + } + } + } + return result; + })([-1, 2, 24, 2, 25, 2, 5, -1, 0, 77595648, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, 3, 0, 3, 0, 3168796671, 0, 4294956992, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966523, 3, 0, 4, 2, 16, 2, 60, 2, 0, 0, 4294836735, 0, 3221225471, 0, 4294901942, 2, 61, 0, 134152192, 3, 0, 2, 0, 4294951935, 3, 0, 2, 0, 2683305983, 0, 2684354047, 2, 17, 2, 0, 0, 4294961151, 3, 0, 2, 2, 19, 2, 0, 0, 608174079, 2, 0, 2, 131, 2, 6, 2, 56, -1, 2, 37, 0, 4294443263, 2, 1, 3, 0, 3, 0, 4294901711, 2, 39, 0, 4089839103, 0, 2961209759, 0, 1342439375, 0, 4294543342, 0, 3547201023, 0, 1577204103, 0, 4194240, 0, 4294688750, 2, 2, 0, 80831, 0, 4261478351, 0, 4294549486, 2, 2, 0, 2967484831, 0, 196559, 0, 3594373100, 0, 3288319768, 0, 8469959, 2, 194, 2, 3, 0, 3825204735, 0, 123747807, 0, 65487, 0, 4294828015, 0, 4092591615, 0, 1080049119, 0, 458703, 2, 3, 2, 0, 0, 2163244511, 0, 4227923919, 0, 4236247022, 2, 66, 0, 4284449919, 0, 851904, 2, 4, 2, 11, 0, 67076095, -1, 2, 67, 0, 1073741743, 0, 4093591391, -1, 0, 50331649, 0, 3265266687, 2, 32, 0, 4294844415, 0, 4278190047, 2, 18, 2, 129, -1, 3, 0, 2, 2, 21, 2, 0, 2, 9, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 10, 0, 261632, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 2088959, 2, 27, 2, 8, 0, 909311, 3, 0, 2, 0, 814743551, 2, 41, 0, 67057664, 3, 0, 2, 2, 40, 2, 0, 2, 28, 2, 0, 2, 29, 2, 7, 0, 268374015, 2, 26, 2, 49, 2, 0, 2, 76, 0, 134153215, -1, 2, 6, 2, 0, 2, 7, 0, 2684354559, 0, 67044351, 0, 3221160064, 0, 1, -1, 3, 0, 2, 2, 42, 0, 1046528, 3, 0, 3, 2, 8, 2, 0, 2, 51, 0, 4294960127, 2, 9, 2, 38, 2, 10, 0, 4294377472, 2, 11, 3, 0, 7, 0, 4227858431, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -1, 2, 124, 0, 1048577, 2, 82, 2, 13, -1, 2, 13, 0, 131042, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 1046559, 2, 0, 2, 14, 2, 0, 0, 2147516671, 2, 20, 3, 86, 2, 2, 0, -16, 2, 87, 0, 524222462, 2, 4, 2, 0, 0, 4269801471, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 2, 121, 2, 0, 0, 3220242431, 3, 0, 3, 2, 19, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 2, 0, 0, 4351, 2, 0, 2, 8, 3, 0, 2, 0, 67043391, 0, 3909091327, 2, 0, 2, 22, 2, 8, 2, 18, 3, 0, 2, 0, 67076097, 2, 7, 2, 0, 2, 20, 0, 67059711, 0, 4236247039, 3, 0, 2, 0, 939524103, 0, 8191999, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 67057663, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 3774349439, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, 2, 23, 0, 1638399, 2, 172, 2, 105, 3, 0, 3, 2, 18, 2, 24, 2, 25, 2, 5, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -3, 2, 150, -4, 2, 18, 2, 0, 2, 35, 0, 1, 2, 0, 2, 62, 2, 28, 2, 11, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 21, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277137519, 0, 2269118463, -1, 3, 18, 2, -1, 2, 32, 2, 36, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 46, -10, 2, 0, 0, 203775, -2, 2, 18, 2, 43, 2, 35, -2, 2, 17, 2, 117, 2, 20, 3, 0, 2, 2, 36, 0, 2147549120, 2, 0, 2, 11, 2, 17, 2, 135, 2, 0, 2, 37, 2, 52, 0, 5242879, 3, 0, 2, 0, 402644511, -1, 2, 120, 0, 1090519039, -2, 2, 122, 2, 38, 2, 0, 0, 67045375, 2, 39, 0, 4226678271, 0, 3766565279, 0, 2039759, -4, 3, 0, 2, 0, 3288270847, 0, 3, 3, 0, 2, 0, 67043519, -5, 2, 0, 0, 4282384383, 0, 1056964609, -1, 3, 0, 2, 0, 67043345, -1, 2, 0, 2, 40, 2, 41, -1, 2, 10, 2, 42, -6, 2, 0, 2, 11, -3, 3, 0, 2, 0, 2147484671, 2, 125, 0, 4190109695, 2, 50, -2, 2, 126, 0, 4244635647, 0, 27, 2, 0, 2, 7, 2, 43, 2, 0, 2, 63, -1, 2, 0, 2, 40, -8, 2, 54, 2, 44, 0, 67043329, 2, 127, 2, 45, 0, 8388351, -2, 2, 128, 0, 3028287487, 2, 46, 2, 130, 0, 33259519, 2, 41, -9, 2, 20, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, 2, 41, -2, 2, 17, 2, 49, 2, 0, 2, 20, 2, 50, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 4294936575, 2, 0, 0, 4294934783, -2, 0, 196635, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 0, 1677656575, -166, 0, 4161266656, 0, 4071, 0, 15360, -4, 0, 28, -13, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 0, 4294954999, 2, 0, -16, 2, 0, 2, 88, 2, 0, 0, 2105343, 0, 4160749584, 0, 65534, -42, 0, 4194303871, 0, 2011, -6, 2, 0, 0, 1073684479, 0, 17407, -11, 2, 0, 2, 31, -40, 3, 0, 6, 0, 8323103, -1, 3, 0, 2, 2, 42, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -105, 2, 24, -32, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -22381, 3, 0, 7, 2, 23, -6130, 3, 5, 2, -1, 0, 69207040, 3, 44, 2, 3, 0, 14, 2, 57, 2, 58, -3, 0, 3168731136, 0, 4294956864, 2, 1, 2, 0, 2, 59, 3, 0, 4, 0, 4294966275, 3, 0, 4, 2, 16, 2, 60, 2, 0, 2, 33, -1, 2, 17, 2, 61, -1, 2, 0, 2, 56, 0, 4294885376, 3, 0, 2, 0, 3145727, 0, 2617294944, 0, 4294770688, 2, 23, 2, 62, 3, 0, 2, 0, 131135, 2, 95, 0, 70256639, 0, 71303167, 0, 272, 2, 40, 2, 56, -1, 2, 37, 2, 30, -1, 2, 96, 2, 63, 0, 4278255616, 0, 4294836227, 0, 4294549473, 0, 600178175, 0, 2952806400, 0, 268632067, 0, 4294543328, 0, 57540095, 0, 1577058304, 0, 1835008, 0, 4294688736, 2, 65, 2, 64, 0, 33554435, 2, 123, 2, 65, 2, 151, 0, 131075, 0, 3594373096, 0, 67094296, 2, 64, -1, 0, 4294828000, 0, 603979263, 2, 160, 0, 3, 0, 4294828001, 0, 602930687, 2, 183, 0, 393219, 0, 4294828016, 0, 671088639, 0, 2154840064, 0, 4227858435, 0, 4236247008, 2, 66, 2, 36, -1, 2, 4, 0, 917503, 2, 36, -1, 2, 67, 0, 537788335, 0, 4026531935, -1, 0, 1, -1, 2, 32, 2, 68, 0, 7936, -3, 2, 0, 0, 2147485695, 0, 1010761728, 0, 4292984930, 0, 16387, 2, 0, 2, 14, 2, 15, 3, 0, 10, 2, 69, 2, 0, 2, 70, 2, 71, 2, 72, 2, 0, 2, 73, 2, 0, 2, 11, -1, 2, 23, 3, 0, 2, 2, 12, 2, 4, 3, 0, 18, 2, 74, 2, 5, 3, 0, 2, 2, 75, 0, 253951, 3, 19, 2, 0, 122879, 2, 0, 2, 8, 0, 276824064, -2, 3, 0, 2, 2, 40, 2, 0, 0, 4294903295, 2, 0, 2, 29, 2, 7, -1, 2, 17, 2, 49, 2, 0, 2, 76, 2, 41, -1, 2, 20, 2, 0, 2, 27, -2, 0, 128, -2, 2, 77, 2, 8, 0, 4064, -1, 2, 119, 0, 4227907585, 2, 0, 2, 118, 2, 0, 2, 48, 2, 173, 2, 9, 2, 38, 2, 10, -1, 0, 74440192, 3, 0, 6, -2, 3, 0, 8, 2, 12, 2, 0, 2, 78, 2, 9, 2, 0, 2, 79, 2, 80, 2, 81, -3, 2, 82, 2, 13, -3, 2, 83, 2, 84, 2, 85, 2, 0, 2, 33, -83, 2, 0, 2, 53, 2, 7, 3, 0, 4, 0, 817183, 2, 0, 2, 14, 2, 0, 0, 33023, 2, 20, 3, 86, 2, -17, 2, 87, 0, 524157950, 2, 4, 2, 0, 2, 88, 2, 4, 2, 0, 2, 15, 2, 77, 2, 16, 3, 0, 2, 2, 47, 2, 0, -1, 2, 17, -16, 3, 0, 206, -2, 3, 0, 655, 2, 18, 3, 0, 36, 2, 68, -1, 2, 17, 2, 9, 3, 0, 8, 2, 89, 0, 3072, 2, 0, 0, 2147516415, 2, 9, 3, 0, 2, 2, 23, 2, 90, 2, 91, 3, 0, 2, 2, 92, 2, 0, 2, 93, 2, 94, 0, 4294965179, 0, 7, 2, 0, 2, 8, 2, 91, 2, 8, -1, 0, 1761345536, 2, 95, 0, 4294901823, 2, 36, 2, 18, 2, 96, 2, 34, 2, 166, 0, 2080440287, 2, 0, 2, 33, 2, 143, 0, 3296722943, 2, 0, 0, 1046675455, 0, 939524101, 0, 1837055, 2, 97, 2, 98, 2, 15, 2, 21, 3, 0, 3, 0, 7, 3, 0, 349, 2, 99, 2, 100, 2, 6, -264, 3, 0, 11, 2, 22, 3, 0, 2, 2, 31, -1, 0, 2700607615, 2, 101, 2, 102, 3, 0, 2, 2, 19, 2, 103, 3, 0, 10, 2, 9, 2, 17, 2, 0, 2, 45, 2, 0, 2, 30, 2, 104, -3, 2, 105, 3, 0, 3, 2, 18, -1, 3, 5, 2, 2, 26, 2, 0, 2, 7, 2, 106, -1, 2, 107, 2, 108, 2, 109, -1, 3, 0, 3, 2, 11, -2, 2, 0, 2, 27, -8, 2, 18, 2, 0, 2, 35, -1, 2, 0, 2, 62, 2, 28, 2, 29, 2, 9, 2, 0, 2, 110, -1, 3, 0, 4, 2, 9, 2, 17, 2, 111, 2, 6, 2, 0, 2, 112, 2, 0, 2, 48, -4, 3, 0, 9, 2, 20, 2, 29, 2, 30, -4, 2, 113, 2, 114, 2, 29, 2, 20, 2, 7, -2, 2, 115, 2, 29, 2, 31, -2, 2, 0, 2, 116, -2, 0, 4277075969, 2, 29, -1, 3, 18, 2, -1, 2, 32, 2, 117, 2, 0, 3, 29, 2, 2, 34, 2, 19, -3, 3, 0, 2, 2, 33, -1, 2, 0, 2, 34, 2, 0, 2, 34, 2, 0, 2, 48, -10, 2, 0, 0, 197631, -2, 2, 18, 2, 43, 2, 118, -2, 2, 17, 2, 117, 2, 20, 2, 119, 2, 51, -2, 2, 119, 2, 23, 2, 17, 2, 33, 2, 119, 2, 36, 0, 4294901904, 0, 4718591, 2, 119, 2, 34, 0, 335544350, -1, 2, 120, 2, 121, -2, 2, 122, 2, 38, 2, 7, -1, 2, 123, 2, 65, 0, 3758161920, 0, 3, -4, 2, 0, 2, 27, 0, 2147485568, 0, 3, 2, 0, 2, 23, 0, 176, -5, 2, 0, 2, 47, 2, 186, -1, 2, 0, 2, 23, 2, 197, -1, 2, 0, 0, 16779263, -2, 2, 11, -7, 2, 0, 2, 121, -3, 3, 0, 2, 2, 124, 2, 125, 0, 2147549183, 0, 2, -2, 2, 126, 2, 35, 0, 10, 0, 4294965249, 0, 67633151, 0, 4026597376, 2, 0, 0, 536871935, -1, 2, 0, 2, 40, -8, 2, 54, 2, 47, 0, 1, 2, 127, 2, 23, -3, 2, 128, 2, 35, 2, 129, 2, 130, 0, 16778239, -10, 2, 34, -5, 2, 64, -2, 3, 0, 28, 2, 31, -3, 3, 0, 3, 2, 47, 3, 0, 6, 2, 48, -85, 3, 0, 33, 2, 47, -126, 3, 0, 18, 2, 36, -269, 3, 0, 17, 2, 40, 2, 7, -3, 2, 17, 2, 131, 2, 0, 2, 23, 2, 48, 2, 132, 2, 23, -21, 3, 0, 2, -4, 3, 0, 2, 0, 67583, -1, 2, 103, -2, 0, 11, 3, 0, 191, 2, 51, 3, 0, 38, 2, 29, -1, 2, 33, -279, 3, 0, 8, 2, 7, -1, 2, 133, 2, 52, 3, 0, 11, 2, 6, -72, 3, 0, 3, 2, 134, 2, 135, -187, 3, 0, 2, 2, 37, 2, 0, 2, 136, 2, 137, 2, 55, 2, 0, 2, 138, 2, 139, 2, 140, 3, 0, 10, 2, 141, 2, 142, 2, 15, 3, 37, 2, 3, 53, 2, 3, 54, 2, 2, 143, -73, 2, 0, 0, 1065361407, 0, 16384, -11, 2, 0, 2, 121, -40, 3, 0, 6, 2, 117, -1, 3, 0, 2, 0, 2063, -37, 2, 55, 2, 144, 2, 145, 2, 146, 2, 147, 2, 148, -138, 3, 0, 1334, 2, 9, -1, 3, 0, 129, 2, 27, 3, 0, 6, 2, 9, 3, 0, 180, 2, 149, 3, 0, 233, 0, 1, -96, 3, 0, 16, 2, 9, -47, 3, 0, 154, 2, 56, -28517, 2, 0, 0, 1, -1, 2, 124, 2, 0, 0, 8193, -21, 2, 193, 0, 10255, 0, 4, -11, 2, 64, 2, 171, -1, 0, 71680, -1, 2, 161, 0, 4292900864, 0, 805306431, -5, 2, 150, -1, 2, 157, -1, 0, 6144, -2, 2, 127, -1, 2, 154, -1, 0, 2147532800, 2, 151, 2, 165, 2, 0, 2, 164, 0, 524032, 0, 4, -4, 2, 190, 0, 205128192, 0, 1333757536, 0, 2147483696, 0, 423953, 0, 747766272, 0, 2717763192, 0, 4286578751, 0, 278545, 2, 152, 0, 4294886464, 0, 33292336, 0, 417809, 2, 152, 0, 1327482464, 0, 4278190128, 0, 700594195, 0, 1006647527, 0, 4286497336, 0, 4160749631, 2, 153, 0, 469762560, 0, 4171219488, 0, 8323120, 2, 153, 0, 202375680, 0, 3214918176, 0, 4294508592, 2, 153, -1, 0, 983584, 0, 48, 0, 58720273, 0, 3489923072, 0, 10517376, 0, 4293066815, 0, 1, 0, 2013265920, 2, 177, 2, 0, 0, 2089, 0, 3221225552, 0, 201375904, 2, 0, -2, 0, 256, 0, 122880, 0, 16777216, 2, 150, 0, 4160757760, 2, 0, -6, 2, 167, -11, 0, 3263218176, -1, 0, 49664, 0, 2160197632, 0, 8388802, -1, 0, 12713984, -1, 2, 154, 2, 159, 2, 178, -2, 2, 162, -20, 0, 3758096385, -2, 2, 155, 0, 4292878336, 2, 90, 2, 169, 0, 4294057984, -2, 2, 163, 2, 156, 2, 175, -2, 2, 155, -1, 2, 182, -1, 2, 170, 2, 124, 0, 4026593280, 0, 14, 0, 4292919296, -1, 2, 158, 0, 939588608, -1, 0, 805306368, -1, 2, 124, 0, 1610612736, 2, 156, 2, 157, 2, 4, 2, 0, -2, 2, 158, 2, 159, -3, 0, 267386880, -1, 2, 160, 0, 7168, -1, 0, 65024, 2, 154, 2, 161, 2, 179, -7, 2, 168, -8, 2, 162, -1, 0, 1426112704, 2, 163, -1, 2, 164, 0, 271581216, 0, 2149777408, 2, 23, 2, 161, 2, 124, 0, 851967, 2, 180, -1, 2, 23, 2, 181, -4, 2, 158, -20, 2, 195, 2, 165, -56, 0, 3145728, 2, 185, -4, 2, 166, 2, 124, -4, 0, 32505856, -1, 2, 167, -1, 0, 2147385088, 2, 90, 1, 2155905152, 2, -3, 2, 103, 2, 0, 2, 168, -2, 2, 169, -6, 2, 170, 0, 4026597375, 0, 1, -1, 0, 1, -1, 2, 171, -3, 2, 117, 2, 64, -2, 2, 166, -2, 2, 176, 2, 124, -878, 2, 159, -36, 2, 172, -1, 2, 201, -10, 2, 188, -5, 2, 174, -6, 0, 4294965251, 2, 27, -1, 2, 173, -1, 2, 174, -2, 0, 4227874752, -3, 0, 2146435072, 2, 159, -2, 0, 1006649344, 2, 124, -1, 2, 90, 0, 201375744, -3, 0, 134217720, 2, 90, 0, 4286677377, 0, 32896, -1, 2, 158, -3, 2, 175, -349, 2, 176, 0, 1920, 2, 177, 3, 0, 264, -11, 2, 157, -2, 2, 178, 2, 0, 0, 520617856, 0, 2692743168, 0, 36, -3, 0, 524284, -11, 2, 23, -1, 2, 187, -1, 2, 184, 0, 3221291007, 2, 178, -1, 2, 202, 0, 2158720, -3, 2, 159, 0, 1, -4, 2, 124, 0, 3808625411, 0, 3489628288, 2, 200, 0, 1207959680, 0, 3221274624, 2, 0, -3, 2, 179, 0, 120, 0, 7340032, -2, 2, 180, 2, 4, 2, 23, 2, 163, 3, 0, 4, 2, 159, -1, 2, 181, 2, 177, -1, 0, 8176, 2, 182, 2, 179, 2, 183, -1, 0, 4290773232, 2, 0, -4, 2, 163, 2, 189, 0, 15728640, 2, 177, -1, 2, 161, -1, 0, 4294934512, 3, 0, 4, -9, 2, 90, 2, 170, 2, 184, 3, 0, 4, 0, 704, 0, 1849688064, 2, 185, -1, 2, 124, 0, 4294901887, 2, 0, 0, 130547712, 0, 1879048192, 2, 199, 3, 0, 2, -1, 2, 186, 2, 187, -1, 0, 17829776, 0, 2025848832, 0, 4261477888, -2, 2, 0, -1, 0, 4286580608, -1, 0, 29360128, 2, 192, 0, 16252928, 0, 3791388672, 2, 38, 3, 0, 2, -2, 2, 196, 2, 0, -1, 2, 103, -1, 0, 66584576, -1, 2, 191, 3, 0, 9, 2, 124, -1, 0, 4294755328, 3, 0, 2, -1, 2, 161, 2, 178, 3, 0, 2, 2, 23, 2, 188, 2, 90, -2, 0, 245760, 0, 2147418112, -1, 2, 150, 2, 203, 0, 4227923456, -1, 2, 164, 2, 161, 2, 90, -3, 0, 4292870145, 0, 262144, 2, 124, 3, 0, 2, 0, 1073758848, 2, 189, -1, 0, 4227921920, 2, 190, 0, 68289024, 0, 528402016, 0, 4292927536, 3, 0, 4, -2, 0, 268435456, 2, 91, -2, 2, 191, 3, 0, 5, -1, 2, 192, 2, 163, 2, 0, -2, 0, 4227923936, 2, 62, -1, 2, 155, 2, 95, 2, 0, 2, 154, 2, 158, 3, 0, 6, -1, 2, 177, 3, 0, 3, -2, 0, 2146959360, 0, 9440640, 0, 104857600, 0, 4227923840, 3, 0, 2, 0, 768, 2, 193, 2, 77, -2, 2, 161, -2, 2, 119, -1, 2, 155, 3, 0, 8, 0, 512, 0, 8388608, 2, 194, 2, 172, 2, 187, 0, 4286578944, 3, 0, 2, 0, 1152, 0, 1266679808, 2, 191, 0, 576, 0, 4261707776, 2, 95, 3, 0, 9, 2, 155, 3, 0, 5, 2, 16, -1, 0, 2147221504, -28, 2, 178, 3, 0, 3, -3, 0, 4292902912, -6, 2, 96, 3, 0, 85, -33, 0, 4294934528, 3, 0, 126, -18, 2, 195, 3, 0, 269, -17, 2, 155, 2, 124, 2, 198, 3, 0, 2, 2, 23, 0, 4290822144, -2, 0, 67174336, 0, 520093700, 2, 17, 3, 0, 21, -2, 2, 179, 3, 0, 3, -2, 0, 30720, -1, 0, 32512, 3, 0, 2, 0, 4294770656, -191, 2, 174, -38, 2, 170, 2, 0, 2, 196, 3, 0, 279, -8, 2, 124, 2, 0, 0, 4294508543, 0, 65295, -11, 2, 177, 3, 0, 72, -3, 0, 3758159872, 0, 201391616, 3, 0, 155, -7, 2, 170, -1, 0, 384, -1, 0, 133693440, -3, 2, 196, -2, 2, 26, 3, 0, 4, 2, 169, -2, 2, 90, 2, 155, 3, 0, 4, -2, 2, 164, -1, 2, 150, 0, 335552923, 2, 197, -1, 0, 538974272, 0, 2214592512, 0, 132000, -10, 0, 192, -8, 0, 12288, -21, 0, 134213632, 0, 4294901761, 3, 0, 42, 0, 100663424, 0, 4294965284, 3, 0, 6, -1, 0, 3221282816, 2, 198, 3, 0, 11, -1, 2, 199, 3, 0, 40, -6, 0, 4286578784, 2, 0, -2, 0, 1006694400, 3, 0, 24, 2, 35, -1, 2, 94, 3, 0, 2, 0, 1, 2, 163, 3, 0, 6, 2, 197, 0, 4110942569, 0, 1432950139, 0, 2701658217, 0, 4026532864, 0, 4026532881, 2, 0, 2, 45, 3, 0, 8, -1, 2, 158, -2, 2, 169, 0, 98304, 0, 65537, 2, 170, -5, 0, 4294950912, 2, 0, 2, 118, 0, 65528, 2, 177, 0, 4294770176, 2, 26, 3, 0, 4, -30, 2, 174, 0, 3758153728, -3, 2, 169, -2, 2, 155, 2, 188, 2, 158, -1, 2, 191, -1, 2, 161, 0, 4294754304, 3, 0, 2, -3, 0, 33554432, -2, 2, 200, -3, 2, 169, 0, 4175478784, 2, 201, 0, 4286643712, 0, 4286644216, 2, 0, -4, 2, 202, -1, 2, 165, 0, 4227923967, 3, 0, 32, -1334, 2, 163, 2, 0, -129, 2, 94, -6, 2, 163, -180, 2, 203, -233, 2, 4, 3, 0, 96, -16, 2, 163, 3, 0, 47, -154, 2, 165, 3, 0, 22381, -7, 2, 17, 3, 0, 6128], [4294967295, 4294967291, 4092460543, 4294828031, 4294967294, 134217726, 268435455, 2147483647, 1048575, 1073741823, 3892314111, 134217727, 1061158911, 536805376, 4294910143, 4160749567, 4294901759, 4294901760, 536870911, 262143, 8388607, 4294902783, 4294918143, 65535, 67043328, 2281701374, 4294967232, 2097151, 4294903807, 4194303, 255, 67108863, 4294967039, 511, 524287, 131071, 127, 4292870143, 4294902271, 4294549487, 33554431, 1023, 67047423, 4294901888, 4286578687, 4294770687, 67043583, 32767, 15, 2047999, 67043343, 16777215, 4294902000, 4294934527, 4294966783, 4294967279, 2047, 262083, 20511, 4290772991, 41943039, 493567, 4294959104, 603979775, 65536, 602799615, 805044223, 4294965206, 8191, 1031749119, 4294917631, 2134769663, 4286578493, 4282253311, 4294942719, 33540095, 4294905855, 4294967264, 2868854591, 1608515583, 265232348, 534519807, 2147614720, 1060109444, 4093640016, 17376, 2139062143, 224, 4169138175, 4294909951, 4286578688, 4294967292, 4294965759, 2044, 4292870144, 4294966272, 4294967280, 8289918, 4294934399, 4294901775, 4294965375, 1602223615, 4294967259, 4294443008, 268369920, 4292804608, 486341884, 4294963199, 3087007615, 1073692671, 4128527, 4279238655, 4294902015, 4294966591, 2445279231, 3670015, 3238002687, 31, 63, 4294967288, 4294705151, 4095, 3221208447, 4294549472, 2147483648, 4285526655, 4294966527, 4294705152, 4294966143, 64, 4294966719, 16383, 3774873592, 458752, 536807423, 67043839, 3758096383, 3959414372, 3755993023, 2080374783, 4294835295, 4294967103, 4160749565, 4087, 184024726, 2862017156, 1593309078, 268434431, 268434414, 4294901763, 536870912, 2952790016, 202506752, 139264, 402653184, 4261412864, 4227922944, 49152, 61440, 3758096384, 117440512, 65280, 3233808384, 3221225472, 2097152, 4294965248, 32768, 57152, 67108864, 4293918720, 4290772992, 25165824, 57344, 4227915776, 4278190080, 4227907584, 65520, 4026531840, 4227858432, 4160749568, 3758129152, 4294836224, 63488, 1073741824, 4294967040, 4194304, 251658240, 196608, 4294963200, 64512, 417808, 4227923712, 12582912, 50331648, 65472, 4294967168, 4294966784, 16, 4294917120, 2080374784, 4096, 65408, 524288, 65532]); + + function advanceChar(parser) { + parser.column++; + return (parser.currentChar = parser.source.charCodeAt(++parser.index)); + } + function consumeMultiUnitCodePoint(parser, hi) { + if ((hi & 0xfc00) !== 55296) + return 0; + const lo = parser.source.charCodeAt(parser.index + 1); + if ((lo & 0xfc00) !== 0xdc00) + return 0; + hi = parser.currentChar = 65536 + ((hi & 0x3ff) << 10) + (lo & 0x3ff); + if (((unicodeLookup[(hi >>> 5) + 0] >>> hi) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(hi)); + } + parser.index++; + parser.column++; + return 1; + } + function consumeLineFeed(parser, state) { + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.flags |= 1; + if ((state & 4) === 0) { + parser.column = 0; + parser.line++; + } + } + function scanNewLine(parser) { + parser.flags |= 1; + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.column = 0; + parser.line++; + } + function isExoticECMAScriptWhitespace(ch) { + return (ch === 160 || + ch === 65279 || + ch === 133 || + ch === 5760 || + (ch >= 8192 && ch <= 8203) || + ch === 8239 || + ch === 8287 || + ch === 12288 || + ch === 8201 || + ch === 65519); + } + function fromCodePoint(codePoint) { + return codePoint <= 65535 + ? String.fromCharCode(codePoint) + : String.fromCharCode(codePoint >>> 10) + String.fromCharCode(codePoint & 0x3ff); + } + function toHex(code) { + return code < 65 ? code - 48 : (code - 65 + 10) & 0xf; + } + function convertTokenType(t) { + switch (t) { + case 134283266: + return 'NumericLiteral'; + case 134283267: + return 'StringLiteral'; + case 86021: + case 86022: + return 'BooleanLiteral'; + case 86023: + return 'NullLiteral'; + case 65540: + return 'RegularExpression'; + case 67174408: + case 67174409: + case 132: + return 'TemplateLiteral'; + default: + if ((t & 143360) === 143360) + return 'Identifier'; + if ((t & 4096) === 4096) + return 'Keyword'; + return 'Punctuator'; + } + } + + const CharTypes = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8 | 1024, + 0, + 0, + 8 | 2048, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8192, + 0, + 1 | 2, + 0, + 0, + 8192, + 0, + 0, + 0, + 256, + 0, + 256 | 32768, + 0, + 0, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 128 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 32 | 64, + 2 | 16 | 512 | 64, + 2 | 16 | 512 | 64, + 0, + 0, + 16384, + 0, + 0, + 0, + 0, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2 | 64, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 1 | 2, + 0, + 1, + 0, + 0, + 1 | 2 | 4096, + 0, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4 | 64, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 1 | 2 | 4, + 16384, + 0, + 0, + 0, + 0 + ]; + const isIdStart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ]; + const isIdPart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 + ]; + function isIdentifierStart(code) { + return code <= 0x7F + ? isIdStart[code] + : (unicodeLookup[(code >>> 5) + 34816] >>> code) & 31 & 1; + } + function isIdentifierPart(code) { + return code <= 0x7F + ? isIdPart[code] + : (unicodeLookup[(code >>> 5) + 0] >>> code) & 31 & 1 || (code === 8204 || code === 8205); + } + + const CommentTypes = ['SingleLine', 'MultiLine', 'HTMLOpen', 'HTMLClose', 'HashbangComment']; + function skipHashBang(parser) { + const source = parser.source; + if (parser.currentChar === 35 && source.charCodeAt(parser.index + 1) === 33) { + advanceChar(parser); + advanceChar(parser); + skipSingleLineComment(parser, source, 0, 4, parser.tokenPos, parser.linePos, parser.colPos); + } + } + function skipSingleHTMLComment(parser, source, state, context, type, start, line, column) { + if (context & 2048) + report(parser, 0); + return skipSingleLineComment(parser, source, state, type, start, line, column); + } + function skipSingleLineComment(parser, source, state, type, start, line, column) { + const { index } = parser; + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + while (parser.index < parser.end) { + if (CharTypes[parser.currentChar] & 8) { + const isCR = parser.currentChar === 13; + scanNewLine(parser); + if (isCR && parser.index < parser.end && parser.currentChar === 10) + parser.currentChar = source.charCodeAt(++parser.index); + break; + } + else if ((parser.currentChar ^ 8232) <= 1) { + scanNewLine(parser); + break; + } + advanceChar(parser); + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + } + if (parser.onComment) { + const loc = { + start: { + line, + column + }, + end: { + line: parser.linePos, + column: parser.colPos + } + }; + parser.onComment(CommentTypes[type & 0xff], source.slice(index, parser.tokenPos), start, parser.tokenPos, loc); + } + return state | 1; + } + function skipMultiLineComment(parser, source, state) { + const { index } = parser; + while (parser.index < parser.end) { + if (parser.currentChar < 0x2b) { + let skippedOneAsterisk = false; + while (parser.currentChar === 42) { + if (!skippedOneAsterisk) { + state &= ~4; + skippedOneAsterisk = true; + } + if (advanceChar(parser) === 47) { + advanceChar(parser); + if (parser.onComment) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onComment(CommentTypes[1 & 0xff], source.slice(index, parser.index - 2), index - 2, parser.index, loc); + } + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + return state; + } + } + if (skippedOneAsterisk) { + continue; + } + if (CharTypes[parser.currentChar] & 8) { + if (parser.currentChar === 13) { + state |= 1 | 4; + scanNewLine(parser); + } + else { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + } + else { + advanceChar(parser); + } + } + else if ((parser.currentChar ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + } + else { + state &= ~4; + advanceChar(parser); + } + } + report(parser, 16); + } + + function scanRegularExpression(parser, context) { + const bodyStart = parser.index; + let preparseState = 0; + loop: while (true) { + const ch = parser.currentChar; + advanceChar(parser); + if (preparseState & 1) { + preparseState &= ~1; + } + else { + switch (ch) { + case 47: + if (!preparseState) + break loop; + else + break; + case 92: + preparseState |= 1; + break; + case 91: + preparseState |= 2; + break; + case 93: + preparseState &= 1; + break; + case 13: + case 10: + case 8232: + case 8233: + report(parser, 32); + } + } + if (parser.index >= parser.source.length) { + return report(parser, 32); + } + } + const bodyEnd = parser.index - 1; + let mask = 0; + let char = parser.currentChar; + const { index: flagStart } = parser; + while (isIdentifierPart(char)) { + switch (char) { + case 103: + if (mask & 2) + report(parser, 34, 'g'); + mask |= 2; + break; + case 105: + if (mask & 1) + report(parser, 34, 'i'); + mask |= 1; + break; + case 109: + if (mask & 4) + report(parser, 34, 'm'); + mask |= 4; + break; + case 117: + if (mask & 16) + report(parser, 34, 'g'); + mask |= 16; + break; + case 121: + if (mask & 8) + report(parser, 34, 'y'); + mask |= 8; + break; + case 115: + if (mask & 12) + report(parser, 34, 's'); + mask |= 12; + break; + default: + report(parser, 33); + } + char = advanceChar(parser); + } + const flags = parser.source.slice(flagStart, parser.index); + const pattern = parser.source.slice(bodyStart, bodyEnd); + parser.tokenRegExp = { pattern, flags }; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = validate(parser, pattern, flags); + return 65540; + } + function validate(parser, pattern, flags) { + try { + return new RegExp(pattern, flags); + } + catch (e) { + report(parser, 32); + } + } + + function scanString(parser, context, quote) { + const { index: start } = parser; + let ret = ''; + let char = advanceChar(parser); + let marker = parser.index; + while ((CharTypes[char] & 8) === 0) { + if (char === quote) { + ret += parser.source.slice(marker, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(start, parser.index); + parser.tokenValue = ret; + return 134283267; + } + if ((char & 8) === 8 && char === 92) { + ret += parser.source.slice(marker, parser.index); + char = advanceChar(parser); + if (char < 0x7f || char === 8232 || char === 8233) { + const code = parseEscape(parser, context, char); + if (code >= 0) + ret += fromCodePoint(code); + else + handleStringError(parser, code, 0); + } + else { + ret += fromCodePoint(char); + } + marker = parser.index + 1; + } + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + report(parser, 14); + } + function parseEscape(parser, context, first) { + switch (first) { + case 98: + return 8; + case 102: + return 12; + case 114: + return 13; + case 110: + return 10; + case 116: + return 9; + case 118: + return 11; + case 13: { + if (parser.index < parser.end) { + const nextChar = parser.source.charCodeAt(parser.index + 1); + if (nextChar === 10) { + parser.index = parser.index + 1; + parser.currentChar = nextChar; + } + } + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + return -1; + case 48: + case 49: + case 50: + case 51: { + let code = first - 48; + let index = parser.index + 1; + let column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if ((CharTypes[next] & 32) === 0) { + if ((code !== 0 || CharTypes[next] & 512) && context & 1024) + return -2; + } + else if (context & 1024) { + return -2; + } + else { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + parser.currentChar = next; + code = (code << 3) | (next - 48); + index++; + column++; + } + } + parser.flags |= 64; + parser.index = index - 1; + parser.column = column - 1; + } + } + return code; + } + case 52: + case 53: + case 54: + case 55: { + if (context & 1024) + return -2; + let code = first - 48; + const index = parser.index + 1; + const column = parser.column + 1; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + if (CharTypes[next] & 32) { + code = (code << 3) | (next - 48); + parser.currentChar = next; + parser.index = index; + parser.column = column; + } + } + parser.flags |= 64; + return code; + } + case 120: { + const ch1 = advanceChar(parser); + if ((CharTypes[ch1] & 64) === 0) + return -4; + const hi = toHex(ch1); + const ch2 = advanceChar(parser); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const lo = toHex(ch2); + return (hi << 4) | lo; + } + case 117: { + const ch = advanceChar(parser); + if (parser.currentChar === 123) { + let code = 0; + while ((CharTypes[advanceChar(parser)] & 64) !== 0) { + code = (code << 4) | toHex(parser.currentChar); + if (code > 1114111) + return -5; + } + if (parser.currentChar < 1 || parser.currentChar !== 125) { + return -4; + } + return code; + } + else { + if ((CharTypes[ch] & 64) === 0) + return -4; + const ch2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[ch2] & 64) === 0) + return -4; + const ch3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[ch3] & 64) === 0) + return -4; + const ch4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[ch4] & 64) === 0) + return -4; + parser.index += 3; + parser.column += 3; + parser.currentChar = parser.source.charCodeAt(parser.index); + return (toHex(ch) << 12) | (toHex(ch2) << 8) | (toHex(ch3) << 4) | toHex(ch4); + } + } + case 56: + case 57: + if ((context & 256) === 0) + return -3; + default: + return first; + } + } + function handleStringError(state, code, isTemplate) { + switch (code) { + case -1: + return; + case -2: + report(state, isTemplate ? 2 : 1); + case -3: + report(state, 13); + case -4: + report(state, 6); + case -5: + report(state, 101); + } + } + + function scanTemplate(parser, context) { + const { index: start } = parser; + let token = 67174409; + let ret = ''; + let char = advanceChar(parser); + while (char !== 96) { + if (char === 36 && parser.source.charCodeAt(parser.index + 1) === 123) { + advanceChar(parser); + token = 67174408; + break; + } + else if ((char & 8) === 8 && char === 92) { + char = advanceChar(parser); + if (char > 0x7e) { + ret += fromCodePoint(char); + } + else { + const code = parseEscape(parser, context | 1024, char); + if (code >= 0) { + ret += fromCodePoint(code); + } + else if (code !== -1 && context & 65536) { + ret = undefined; + char = scanBadTemplate(parser, char); + if (char < 0) + token = 67174408; + break; + } + else { + handleStringError(parser, code, 1); + } + } + } + else { + if (parser.index < parser.end && + char === 13 && + parser.source.charCodeAt(parser.index) === 10) { + ret += fromCodePoint(char); + parser.currentChar = parser.source.charCodeAt(++parser.index); + } + if (((char & 83) < 3 && char === 10) || (char ^ 8232) <= 1) { + parser.column = -1; + parser.line++; + } + ret += fromCodePoint(char); + } + if (parser.index >= parser.end) + report(parser, 15); + char = advanceChar(parser); + } + advanceChar(parser); + parser.tokenValue = ret; + parser.tokenRaw = parser.source.slice(start + 1, parser.index - (token === 67174409 ? 1 : 2)); + return token; + } + function scanBadTemplate(parser, ch) { + while (ch !== 96) { + switch (ch) { + case 36: { + const index = parser.index + 1; + if (index < parser.end && parser.source.charCodeAt(index) === 123) { + parser.index = index; + parser.column++; + return -ch; + } + break; + } + case 10: + case 8232: + case 8233: + parser.column = -1; + parser.line++; + } + if (parser.index >= parser.end) + report(parser, 15); + ch = advanceChar(parser); + } + return ch; + } + function scanTemplateTail(parser, context) { + if (parser.index >= parser.end) + report(parser, 0); + parser.index--; + parser.column--; + return scanTemplate(parser, context); + } + + function scanNumber(parser, context, kind) { + let char = parser.currentChar; + let value = 0; + let digit = 9; + let atStart = kind & 64 ? 0 : 1; + let digits = 0; + let allowSeparator = 0; + if (kind & 64) { + value = '.' + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 110) + report(parser, 11); + } + else { + if (char === 48) { + char = advanceChar(parser); + if ((char | 32) === 120) { + kind = 8 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (64 | 4096)) { + if (char === 95) { + if (!allowSeparator) + report(parser, 146); + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 0x10 + toHex(char); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 19 : 147); + } + } + else if ((char | 32) === 111) { + kind = 4 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (32 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 8 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if ((char | 32) === 98) { + kind = 2 | 128; + char = advanceChar(parser); + while (CharTypes[char] & (128 | 4096)) { + if (char === 95) { + if (!allowSeparator) { + report(parser, 146); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 2 + (char - 48); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? 0 : 147); + } + } + else if (CharTypes[char] & 32) { + if (context & 1024) + report(parser, 1); + kind = 1; + while (CharTypes[char] & 16) { + if (CharTypes[char] & 512) { + kind = 32; + atStart = 0; + break; + } + value = value * 8 + (char - 48); + char = advanceChar(parser); + } + } + else if (CharTypes[char] & 512) { + if (context & 1024) + report(parser, 1); + parser.flags |= 64; + kind = 32; + } + else if (char === 95) { + report(parser, 0); + } + } + if (kind & 48) { + if (atStart) { + while (digit >= 0 && CharTypes[char] & (16 | 4096)) { + if (char === 95) { + char = advanceChar(parser); + if (char === 95 || kind & 32) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + continue; + } + allowSeparator = 0; + value = 10 * value + (char - 48); + char = advanceChar(parser); + --digit; + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + if (digit >= 0 && !isIdentifierStart(char) && char !== 46) { + parser.tokenValue = value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + } + value += scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + if (char === 46) { + if (advanceChar(parser) === 95) + report(parser, 0); + kind = 64; + value += '.' + scanDecimalDigitsOrSeparator(parser, parser.currentChar); + char = parser.currentChar; + } + } + } + const end = parser.index; + let isBigInt = 0; + if (char === 110 && kind & 128) { + isBigInt = 1; + char = advanceChar(parser); + } + else { + if ((char | 32) === 101) { + char = advanceChar(parser); + if (CharTypes[char] & 256) + char = advanceChar(parser); + const { index } = parser; + if ((CharTypes[char] & 16) < 1) + report(parser, 10); + value += parser.source.substring(end, index) + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + } + } + if ((parser.index < parser.end && CharTypes[char] & 16) || isIdentifierStart(char)) { + report(parser, 12); + } + if (isBigInt) { + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = BigInt(value); + return 134283389; + } + parser.tokenValue = + kind & (1 | 2 | 8 | 4) + ? value + : kind & 32 + ? parseFloat(parser.source.substring(parser.tokenPos, parser.index)) + : +value; + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283266; + } + function scanDecimalDigitsOrSeparator(parser, char) { + let allowSeparator = 0; + let start = parser.index; + let ret = ''; + while (CharTypes[char] & (16 | 4096)) { + if (char === 95) { + const { index } = parser; + char = advanceChar(parser); + if (char === 95) { + reportScannerError(parser.index, parser.line, parser.index + 1, 146); + } + allowSeparator = 1; + ret += parser.source.substring(start, index); + start = parser.index; + continue; + } + allowSeparator = 0; + char = advanceChar(parser); + } + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1, 147); + } + return ret + parser.source.substring(start, parser.index); + } + + const KeywordDescTable = [ + 'end of source', + 'identifier', 'number', 'string', 'regular expression', + 'false', 'true', 'null', + 'template continuation', 'template tail', + '=>', '(', '{', '.', '...', '}', ')', ';', ',', '[', ']', ':', '?', '\'', '"', '', + '++', '--', + '=', '<<=', '>>=', '>>>=', '**=', '+=', '-=', '*=', '/=', '%=', '^=', '|=', + '&=', '||=', '&&=', '??=', + 'typeof', 'delete', 'void', '!', '~', '+', '-', 'in', 'instanceof', '*', '%', '/', '**', '&&', + '||', '===', '!==', '==', '!=', '<=', '>=', '<', '>', '<<', '>>', '>>>', '&', '|', '^', + 'var', 'let', 'const', + 'break', 'case', 'catch', 'class', 'continue', 'debugger', 'default', 'do', 'else', 'export', + 'extends', 'finally', 'for', 'function', 'if', 'import', 'new', 'return', 'super', 'switch', + 'this', 'throw', 'try', 'while', 'with', + 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield', + 'as', 'async', 'await', 'constructor', 'get', 'set', 'from', 'of', + 'enum', 'eval', 'arguments', 'escaped keyword', 'escaped future reserved keyword', 'reserved if strict', '#', + 'BigIntLiteral', '??', '?.', 'WhiteSpace', 'Illegal', 'LineTerminator', 'PrivateField', + 'Template', '@', 'target', 'meta', 'LineFeed', 'Escaped', 'JSXText' + ]; + const descKeywordTable = Object.create(null, { + this: { value: 86113 }, + function: { value: 86106 }, + if: { value: 20571 }, + return: { value: 20574 }, + var: { value: 86090 }, + else: { value: 20565 }, + for: { value: 20569 }, + new: { value: 86109 }, + in: { value: 8738868 }, + typeof: { value: 16863277 }, + while: { value: 20580 }, + case: { value: 20558 }, + break: { value: 20557 }, + try: { value: 20579 }, + catch: { value: 20559 }, + delete: { value: 16863278 }, + throw: { value: 86114 }, + switch: { value: 86112 }, + continue: { value: 20561 }, + default: { value: 20563 }, + instanceof: { value: 8476725 }, + do: { value: 20564 }, + void: { value: 16863279 }, + finally: { value: 20568 }, + async: { value: 209007 }, + await: { value: 209008 }, + class: { value: 86096 }, + const: { value: 86092 }, + constructor: { value: 12401 }, + debugger: { value: 20562 }, + export: { value: 20566 }, + extends: { value: 20567 }, + false: { value: 86021 }, + from: { value: 12404 }, + get: { value: 12402 }, + implements: { value: 36966 }, + import: { value: 86108 }, + interface: { value: 36967 }, + let: { value: 241739 }, + null: { value: 86023 }, + of: { value: 274549 }, + package: { value: 36968 }, + private: { value: 36969 }, + protected: { value: 36970 }, + public: { value: 36971 }, + set: { value: 12403 }, + static: { value: 36972 }, + super: { value: 86111 }, + true: { value: 86022 }, + with: { value: 20581 }, + yield: { value: 241773 }, + enum: { value: 86134 }, + eval: { value: 537079927 }, + as: { value: 77934 }, + arguments: { value: 537079928 }, + target: { value: 143494 }, + meta: { value: 143495 }, + }); + + function scanIdentifier(parser, context, isValidAsKeyword) { + while (isIdPart[advanceChar(parser)]) { } + parser.tokenValue = parser.source.slice(parser.tokenPos, parser.index); + return parser.currentChar !== 92 && parser.currentChar < 0x7e + ? descKeywordTable[parser.tokenValue] || 208897 + : scanIdentifierSlowCase(parser, context, 0, isValidAsKeyword); + } + function scanUnicodeIdentifier(parser, context) { + const cookedChar = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(cookedChar)) + report(parser, 4); + parser.tokenValue = fromCodePoint(cookedChar); + return scanIdentifierSlowCase(parser, context, 1, CharTypes[cookedChar] & 4); + } + function scanIdentifierSlowCase(parser, context, hasEscape, isValidAsKeyword) { + let start = parser.index; + while (parser.index < parser.end) { + if (parser.currentChar === 92) { + parser.tokenValue += parser.source.slice(start, parser.index); + hasEscape = 1; + const code = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(code)) + report(parser, 4); + isValidAsKeyword = isValidAsKeyword && CharTypes[code] & 4; + parser.tokenValue += fromCodePoint(code); + start = parser.index; + } + else if (isIdentifierPart(parser.currentChar) || consumeMultiUnitCodePoint(parser, parser.currentChar)) { + advanceChar(parser); + } + else { + break; + } + } + if (parser.index <= parser.end) { + parser.tokenValue += parser.source.slice(start, parser.index); + } + const length = parser.tokenValue.length; + if (isValidAsKeyword && length >= 2 && length <= 11) { + const token = descKeywordTable[parser.tokenValue]; + if (token === void 0) + return 208897; + if (!hasEscape) + return token; + if (context & 1024) { + return token === 209008 && (context & (2048 | 4194304)) === 0 + ? token + : token === 36972 + ? 122 + : (token & 36864) === 36864 + ? 122 + : 121; + } + if (context & 1073741824 && + (context & 8192) === 0 && + (token & 20480) === 20480) + return token; + if (token === 241773) { + return context & 1073741824 + ? 143483 + : context & 2097152 + ? 121 + : token; + } + return token === 209007 && context & 1073741824 + ? 143483 + : (token & 36864) === 36864 + ? token + : token === 209008 && (context & 4194304) === 0 + ? token + : 121; + } + return 208897; + } + function scanPrivateIdentifier(parser) { + if (!isIdentifierStart(advanceChar(parser))) + report(parser, 93); + return 131; + } + function scanIdentifierUnicodeEscape(parser) { + if (parser.source.charCodeAt(parser.index + 1) !== 117) { + report(parser, 4); + } + parser.currentChar = parser.source.charCodeAt((parser.index += 2)); + return scanUnicodeEscape(parser); + } + function scanUnicodeEscape(parser) { + let codePoint = 0; + const char = parser.currentChar; + if (char === 123) { + const begin = parser.index - 2; + while (CharTypes[advanceChar(parser)] & 64) { + codePoint = (codePoint << 4) | toHex(parser.currentChar); + if (codePoint > 1114111) + reportScannerError(begin, parser.line, parser.index + 1, 101); + } + if (parser.currentChar !== 125) { + reportScannerError(begin, parser.line, parser.index - 1, 6); + } + advanceChar(parser); + return codePoint; + } + if ((CharTypes[char] & 64) === 0) + report(parser, 6); + const char2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[char2] & 64) === 0) + report(parser, 6); + const char3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[char3] & 64) === 0) + report(parser, 6); + const char4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[char4] & 64) === 0) + report(parser, 6); + codePoint = (toHex(char) << 12) | (toHex(char2) << 8) | (toHex(char3) << 4) | toHex(char4); + parser.currentChar = parser.source.charCodeAt((parser.index += 4)); + return codePoint; + } + + const TokenLookup = [ + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 136, + 128, + 128, + 130, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 129, + 128, + 16842800, + 134283267, + 131, + 208897, + 8457015, + 8455751, + 134283267, + 67174411, + 16, + 8457014, + 25233970, + 18, + 25233971, + 67108877, + 8457016, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 134283266, + 21, + 1074790417, + 8456258, + 1077936157, + 8456259, + 22, + 133, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 208897, + 69271571, + 137, + 20, + 8455497, + 208897, + 132, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 4096, + 208897, + 4096, + 208897, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 208897, + 4096, + 4096, + 4096, + 208897, + 4096, + 4096, + 208897, + 4096, + 4096, + 2162700, + 8455240, + 1074790415, + 16842801, + 129 + ]; + function nextToken(parser, context) { + parser.flags = (parser.flags | 1) ^ 1; + parser.startPos = parser.index; + parser.startColumn = parser.column; + parser.startLine = parser.line; + parser.token = scanSingleToken(parser, context, 0); + if (parser.onToken && parser.token !== 1048576) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onToken(convertTokenType(parser.token), parser.tokenPos, parser.index, loc); + } + } + function scanSingleToken(parser, context, state) { + const isStartOfLine = parser.index === 0; + const source = parser.source; + let startPos = parser.index; + let startLine = parser.line; + let startColumn = parser.column; + while (parser.index < parser.end) { + parser.tokenPos = parser.index; + parser.colPos = parser.column; + parser.linePos = parser.line; + let char = parser.currentChar; + if (char <= 0x7e) { + const token = TokenLookup[char]; + switch (token) { + case 67174411: + case 16: + case 2162700: + case 1074790415: + case 69271571: + case 20: + case 21: + case 1074790417: + case 18: + case 16842801: + case 133: + case 129: + advanceChar(parser); + return token; + case 208897: + return scanIdentifier(parser, context, 0); + case 4096: + return scanIdentifier(parser, context, 1); + case 134283266: + return scanNumber(parser, context, 16 | 128); + case 134283267: + return scanString(parser, context, char); + case 132: + return scanTemplate(parser, context); + case 137: + return scanUnicodeIdentifier(parser, context); + case 131: + return scanPrivateIdentifier(parser); + case 128: + advanceChar(parser); + break; + case 130: + state |= 1 | 4; + scanNewLine(parser); + break; + case 136: + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + break; + case 8456258: + let ch = advanceChar(parser); + if (parser.index < parser.end) { + if (ch === 60) { + if (parser.index < parser.end && advanceChar(parser) === 61) { + advanceChar(parser); + return 4194334; + } + return 8456516; + } + else if (ch === 61) { + advanceChar(parser); + return 8456000; + } + if (ch === 33) { + const index = parser.index + 1; + if (index + 1 < parser.end && + source.charCodeAt(index) === 45 && + source.charCodeAt(index + 1) == 45) { + parser.column += 3; + parser.currentChar = source.charCodeAt((parser.index += 3)); + state = skipSingleHTMLComment(parser, source, state, context, 2, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 8456258; + } + if (ch === 47) { + if ((context & 16) < 1) + return 8456258; + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (ch === 42 || ch === 47) + break; + } + advanceChar(parser); + return 25; + } + } + return 8456258; + case 1077936157: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 8455996; + } + return 8455998; + } + if (ch === 62) { + advanceChar(parser); + return 10; + } + return 1077936157; + } + case 16842800: + if (advanceChar(parser) !== 61) { + return 16842800; + } + if (advanceChar(parser) !== 61) { + return 8455999; + } + advanceChar(parser); + return 8455997; + case 8457015: + if (advanceChar(parser) !== 61) + return 8457015; + advanceChar(parser); + return 4194342; + case 8457014: { + advanceChar(parser); + if (parser.index >= parser.end) + return 8457014; + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 4194340; + } + if (ch !== 42) + return 8457014; + if (advanceChar(parser) !== 61) + return 8457273; + advanceChar(parser); + return 4194337; + } + case 8455497: + if (advanceChar(parser) !== 61) + return 8455497; + advanceChar(parser); + return 4194343; + case 25233970: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 43) { + advanceChar(parser); + return 33619995; + } + if (ch === 61) { + advanceChar(parser); + return 4194338; + } + return 25233970; + } + case 25233971: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 45) { + advanceChar(parser); + if ((state & 1 || isStartOfLine) && parser.currentChar === 62) { + if ((context & 256) === 0) + report(parser, 108); + advanceChar(parser); + state = skipSingleHTMLComment(parser, source, state, context, 3, startPos, startLine, startColumn); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + return 33619996; + } + if (ch === 61) { + advanceChar(parser); + return 4194339; + } + return 25233971; + } + case 8457016: { + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 47) { + advanceChar(parser); + state = skipSingleLineComment(parser, source, state, 0, parser.tokenPos, parser.linePos, parser.colPos); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (ch === 42) { + advanceChar(parser); + state = skipMultiLineComment(parser, source, state); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (context & 32768) { + return scanRegularExpression(parser, context); + } + if (ch === 61) { + advanceChar(parser); + return 4259877; + } + } + return 8457016; + } + case 67108877: + const next = advanceChar(parser); + if (next >= 48 && next <= 57) + return scanNumber(parser, context, 64 | 16); + if (next === 46) { + const index = parser.index + 1; + if (index < parser.end && source.charCodeAt(index) === 46) { + parser.column += 2; + parser.currentChar = source.charCodeAt((parser.index += 2)); + return 14; + } + } + return 67108877; + case 8455240: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 124) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194346; + } + return 8979003; + } + if (ch === 61) { + advanceChar(parser); + return 4194344; + } + return 8455240; + } + case 8456259: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 61) { + advanceChar(parser); + return 8456001; + } + if (ch !== 62) + return 8456259; + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === 62) { + if (advanceChar(parser) === 61) { + advanceChar(parser); + return 4194336; + } + return 8456518; + } + if (ch === 61) { + advanceChar(parser); + return 4194335; + } + } + return 8456517; + } + case 8455751: { + advanceChar(parser); + const ch = parser.currentChar; + if (ch === 38) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194347; + } + return 8979258; + } + if (ch === 61) { + advanceChar(parser); + return 4194345; + } + return 8455751; + } + case 22: { + let ch = advanceChar(parser); + if (ch === 63) { + advanceChar(parser); + if (parser.currentChar === 61) { + advanceChar(parser); + return 4194348; + } + return 276889982; + } + if (ch === 46) { + const index = parser.index + 1; + if (index < parser.end) { + ch = source.charCodeAt(index); + if (!(ch >= 48 && ch <= 57)) { + advanceChar(parser); + return 67108991; + } + } + } + return 22; + } + } + } + else { + if ((char ^ 8232) <= 1) { + state = (state & ~4) | 1; + scanNewLine(parser); + continue; + } + if ((char & 0xfc00) === 0xd800 || ((unicodeLookup[(char >>> 5) + 34816] >>> char) & 31 & 1) !== 0) { + if ((char & 0xfc00) === 0xdc00) { + char = ((char & 0x3ff) << 10) | (char & 0x3ff) | 0x10000; + if (((unicodeLookup[(char >>> 5) + 0] >>> char) & 31 & 1) === 0) { + report(parser, 18, fromCodePoint(char)); + } + parser.index++; + parser.currentChar = char; + } + parser.column++; + parser.tokenValue = ''; + return scanIdentifierSlowCase(parser, context, 0, 0); + } + if (isExoticECMAScriptWhitespace(char)) { + advanceChar(parser); + continue; + } + report(parser, 18, fromCodePoint(char)); + } + } + return 1048576; + } + + const entities = { + AElig: '\u00C6', + AMP: '\u0026', + Aacute: '\u00C1', + Abreve: '\u0102', + Acirc: '\u00C2', + Acy: '\u0410', + Afr: '\uD835\uDD04', + Agrave: '\u00C0', + Alpha: '\u0391', + Amacr: '\u0100', + And: '\u2A53', + Aogon: '\u0104', + Aopf: '\uD835\uDD38', + ApplyFunction: '\u2061', + Aring: '\u00C5', + Ascr: '\uD835\uDC9C', + Assign: '\u2254', + Atilde: '\u00C3', + Auml: '\u00C4', + Backslash: '\u2216', + Barv: '\u2AE7', + Barwed: '\u2306', + Bcy: '\u0411', + Because: '\u2235', + Bernoullis: '\u212C', + Beta: '\u0392', + Bfr: '\uD835\uDD05', + Bopf: '\uD835\uDD39', + Breve: '\u02D8', + Bscr: '\u212C', + Bumpeq: '\u224E', + CHcy: '\u0427', + COPY: '\u00A9', + Cacute: '\u0106', + Cap: '\u22D2', + CapitalDifferentialD: '\u2145', + Cayleys: '\u212D', + Ccaron: '\u010C', + Ccedil: '\u00C7', + Ccirc: '\u0108', + Cconint: '\u2230', + Cdot: '\u010A', + Cedilla: '\u00B8', + CenterDot: '\u00B7', + Cfr: '\u212D', + Chi: '\u03A7', + CircleDot: '\u2299', + CircleMinus: '\u2296', + CirclePlus: '\u2295', + CircleTimes: '\u2297', + ClockwiseContourIntegral: '\u2232', + CloseCurlyDoubleQuote: '\u201D', + CloseCurlyQuote: '\u2019', + Colon: '\u2237', + Colone: '\u2A74', + Congruent: '\u2261', + Conint: '\u222F', + ContourIntegral: '\u222E', + Copf: '\u2102', + Coproduct: '\u2210', + CounterClockwiseContourIntegral: '\u2233', + Cross: '\u2A2F', + Cscr: '\uD835\uDC9E', + Cup: '\u22D3', + CupCap: '\u224D', + DD: '\u2145', + DDotrahd: '\u2911', + DJcy: '\u0402', + DScy: '\u0405', + DZcy: '\u040F', + Dagger: '\u2021', + Darr: '\u21A1', + Dashv: '\u2AE4', + Dcaron: '\u010E', + Dcy: '\u0414', + Del: '\u2207', + Delta: '\u0394', + Dfr: '\uD835\uDD07', + DiacriticalAcute: '\u00B4', + DiacriticalDot: '\u02D9', + DiacriticalDoubleAcute: '\u02DD', + DiacriticalGrave: '\u0060', + DiacriticalTilde: '\u02DC', + Diamond: '\u22C4', + DifferentialD: '\u2146', + Dopf: '\uD835\uDD3B', + Dot: '\u00A8', + DotDot: '\u20DC', + DotEqual: '\u2250', + DoubleContourIntegral: '\u222F', + DoubleDot: '\u00A8', + DoubleDownArrow: '\u21D3', + DoubleLeftArrow: '\u21D0', + DoubleLeftRightArrow: '\u21D4', + DoubleLeftTee: '\u2AE4', + DoubleLongLeftArrow: '\u27F8', + DoubleLongLeftRightArrow: '\u27FA', + DoubleLongRightArrow: '\u27F9', + DoubleRightArrow: '\u21D2', + DoubleRightTee: '\u22A8', + DoubleUpArrow: '\u21D1', + DoubleUpDownArrow: '\u21D5', + DoubleVerticalBar: '\u2225', + DownArrow: '\u2193', + DownArrowBar: '\u2913', + DownArrowUpArrow: '\u21F5', + DownBreve: '\u0311', + DownLeftRightVector: '\u2950', + DownLeftTeeVector: '\u295E', + DownLeftVector: '\u21BD', + DownLeftVectorBar: '\u2956', + DownRightTeeVector: '\u295F', + DownRightVector: '\u21C1', + DownRightVectorBar: '\u2957', + DownTee: '\u22A4', + DownTeeArrow: '\u21A7', + Downarrow: '\u21D3', + Dscr: '\uD835\uDC9F', + Dstrok: '\u0110', + ENG: '\u014A', + ETH: '\u00D0', + Eacute: '\u00C9', + Ecaron: '\u011A', + Ecirc: '\u00CA', + Ecy: '\u042D', + Edot: '\u0116', + Efr: '\uD835\uDD08', + Egrave: '\u00C8', + Element: '\u2208', + Emacr: '\u0112', + EmptySmallSquare: '\u25FB', + EmptyVerySmallSquare: '\u25AB', + Eogon: '\u0118', + Eopf: '\uD835\uDD3C', + Epsilon: '\u0395', + Equal: '\u2A75', + EqualTilde: '\u2242', + Equilibrium: '\u21CC', + Escr: '\u2130', + Esim: '\u2A73', + Eta: '\u0397', + Euml: '\u00CB', + Exists: '\u2203', + ExponentialE: '\u2147', + Fcy: '\u0424', + Ffr: '\uD835\uDD09', + FilledSmallSquare: '\u25FC', + FilledVerySmallSquare: '\u25AA', + Fopf: '\uD835\uDD3D', + ForAll: '\u2200', + Fouriertrf: '\u2131', + Fscr: '\u2131', + GJcy: '\u0403', + GT: '\u003E', + Gamma: '\u0393', + Gammad: '\u03DC', + Gbreve: '\u011E', + Gcedil: '\u0122', + Gcirc: '\u011C', + Gcy: '\u0413', + Gdot: '\u0120', + Gfr: '\uD835\uDD0A', + Gg: '\u22D9', + Gopf: '\uD835\uDD3E', + GreaterEqual: '\u2265', + GreaterEqualLess: '\u22DB', + GreaterFullEqual: '\u2267', + GreaterGreater: '\u2AA2', + GreaterLess: '\u2277', + GreaterSlantEqual: '\u2A7E', + GreaterTilde: '\u2273', + Gscr: '\uD835\uDCA2', + Gt: '\u226B', + HARDcy: '\u042A', + Hacek: '\u02C7', + Hat: '\u005E', + Hcirc: '\u0124', + Hfr: '\u210C', + HilbertSpace: '\u210B', + Hopf: '\u210D', + HorizontalLine: '\u2500', + Hscr: '\u210B', + Hstrok: '\u0126', + HumpDownHump: '\u224E', + HumpEqual: '\u224F', + IEcy: '\u0415', + IJlig: '\u0132', + IOcy: '\u0401', + Iacute: '\u00CD', + Icirc: '\u00CE', + Icy: '\u0418', + Idot: '\u0130', + Ifr: '\u2111', + Igrave: '\u00CC', + Im: '\u2111', + Imacr: '\u012A', + ImaginaryI: '\u2148', + Implies: '\u21D2', + Int: '\u222C', + Integral: '\u222B', + Intersection: '\u22C2', + InvisibleComma: '\u2063', + InvisibleTimes: '\u2062', + Iogon: '\u012E', + Iopf: '\uD835\uDD40', + Iota: '\u0399', + Iscr: '\u2110', + Itilde: '\u0128', + Iukcy: '\u0406', + Iuml: '\u00CF', + Jcirc: '\u0134', + Jcy: '\u0419', + Jfr: '\uD835\uDD0D', + Jopf: '\uD835\uDD41', + Jscr: '\uD835\uDCA5', + Jsercy: '\u0408', + Jukcy: '\u0404', + KHcy: '\u0425', + KJcy: '\u040C', + Kappa: '\u039A', + Kcedil: '\u0136', + Kcy: '\u041A', + Kfr: '\uD835\uDD0E', + Kopf: '\uD835\uDD42', + Kscr: '\uD835\uDCA6', + LJcy: '\u0409', + LT: '\u003C', + Lacute: '\u0139', + Lambda: '\u039B', + Lang: '\u27EA', + Laplacetrf: '\u2112', + Larr: '\u219E', + Lcaron: '\u013D', + Lcedil: '\u013B', + Lcy: '\u041B', + LeftAngleBracket: '\u27E8', + LeftArrow: '\u2190', + LeftArrowBar: '\u21E4', + LeftArrowRightArrow: '\u21C6', + LeftCeiling: '\u2308', + LeftDoubleBracket: '\u27E6', + LeftDownTeeVector: '\u2961', + LeftDownVector: '\u21C3', + LeftDownVectorBar: '\u2959', + LeftFloor: '\u230A', + LeftRightArrow: '\u2194', + LeftRightVector: '\u294E', + LeftTee: '\u22A3', + LeftTeeArrow: '\u21A4', + LeftTeeVector: '\u295A', + LeftTriangle: '\u22B2', + LeftTriangleBar: '\u29CF', + LeftTriangleEqual: '\u22B4', + LeftUpDownVector: '\u2951', + LeftUpTeeVector: '\u2960', + LeftUpVector: '\u21BF', + LeftUpVectorBar: '\u2958', + LeftVector: '\u21BC', + LeftVectorBar: '\u2952', + Leftarrow: '\u21D0', + Leftrightarrow: '\u21D4', + LessEqualGreater: '\u22DA', + LessFullEqual: '\u2266', + LessGreater: '\u2276', + LessLess: '\u2AA1', + LessSlantEqual: '\u2A7D', + LessTilde: '\u2272', + Lfr: '\uD835\uDD0F', + Ll: '\u22D8', + Lleftarrow: '\u21DA', + Lmidot: '\u013F', + LongLeftArrow: '\u27F5', + LongLeftRightArrow: '\u27F7', + LongRightArrow: '\u27F6', + Longleftarrow: '\u27F8', + Longleftrightarrow: '\u27FA', + Longrightarrow: '\u27F9', + Lopf: '\uD835\uDD43', + LowerLeftArrow: '\u2199', + LowerRightArrow: '\u2198', + Lscr: '\u2112', + Lsh: '\u21B0', + Lstrok: '\u0141', + Lt: '\u226A', + Map: '\u2905', + Mcy: '\u041C', + MediumSpace: '\u205F', + Mellintrf: '\u2133', + Mfr: '\uD835\uDD10', + MinusPlus: '\u2213', + Mopf: '\uD835\uDD44', + Mscr: '\u2133', + Mu: '\u039C', + NJcy: '\u040A', + Nacute: '\u0143', + Ncaron: '\u0147', + Ncedil: '\u0145', + Ncy: '\u041D', + NegativeMediumSpace: '\u200B', + NegativeThickSpace: '\u200B', + NegativeThinSpace: '\u200B', + NegativeVeryThinSpace: '\u200B', + NestedGreaterGreater: '\u226B', + NestedLessLess: '\u226A', + NewLine: '\u000A', + Nfr: '\uD835\uDD11', + NoBreak: '\u2060', + NonBreakingSpace: '\u00A0', + Nopf: '\u2115', + Not: '\u2AEC', + NotCongruent: '\u2262', + NotCupCap: '\u226D', + NotDoubleVerticalBar: '\u2226', + NotElement: '\u2209', + NotEqual: '\u2260', + NotEqualTilde: '\u2242\u0338', + NotExists: '\u2204', + NotGreater: '\u226F', + NotGreaterEqual: '\u2271', + NotGreaterFullEqual: '\u2267\u0338', + NotGreaterGreater: '\u226B\u0338', + NotGreaterLess: '\u2279', + NotGreaterSlantEqual: '\u2A7E\u0338', + NotGreaterTilde: '\u2275', + NotHumpDownHump: '\u224E\u0338', + NotHumpEqual: '\u224F\u0338', + NotLeftTriangle: '\u22EA', + NotLeftTriangleBar: '\u29CF\u0338', + NotLeftTriangleEqual: '\u22EC', + NotLess: '\u226E', + NotLessEqual: '\u2270', + NotLessGreater: '\u2278', + NotLessLess: '\u226A\u0338', + NotLessSlantEqual: '\u2A7D\u0338', + NotLessTilde: '\u2274', + NotNestedGreaterGreater: '\u2AA2\u0338', + NotNestedLessLess: '\u2AA1\u0338', + NotPrecedes: '\u2280', + NotPrecedesEqual: '\u2AAF\u0338', + NotPrecedesSlantEqual: '\u22E0', + NotReverseElement: '\u220C', + NotRightTriangle: '\u22EB', + NotRightTriangleBar: '\u29D0\u0338', + NotRightTriangleEqual: '\u22ED', + NotSquareSubset: '\u228F\u0338', + NotSquareSubsetEqual: '\u22E2', + NotSquareSuperset: '\u2290\u0338', + NotSquareSupersetEqual: '\u22E3', + NotSubset: '\u2282\u20D2', + NotSubsetEqual: '\u2288', + NotSucceeds: '\u2281', + NotSucceedsEqual: '\u2AB0\u0338', + NotSucceedsSlantEqual: '\u22E1', + NotSucceedsTilde: '\u227F\u0338', + NotSuperset: '\u2283\u20D2', + NotSupersetEqual: '\u2289', + NotTilde: '\u2241', + NotTildeEqual: '\u2244', + NotTildeFullEqual: '\u2247', + NotTildeTilde: '\u2249', + NotVerticalBar: '\u2224', + Nscr: '\uD835\uDCA9', + Ntilde: '\u00D1', + Nu: '\u039D', + OElig: '\u0152', + Oacute: '\u00D3', + Ocirc: '\u00D4', + Ocy: '\u041E', + Odblac: '\u0150', + Ofr: '\uD835\uDD12', + Ograve: '\u00D2', + Omacr: '\u014C', + Omega: '\u03A9', + Omicron: '\u039F', + Oopf: '\uD835\uDD46', + OpenCurlyDoubleQuote: '\u201C', + OpenCurlyQuote: '\u2018', + Or: '\u2A54', + Oscr: '\uD835\uDCAA', + Oslash: '\u00D8', + Otilde: '\u00D5', + Otimes: '\u2A37', + Ouml: '\u00D6', + OverBar: '\u203E', + OverBrace: '\u23DE', + OverBracket: '\u23B4', + OverParenthesis: '\u23DC', + PartialD: '\u2202', + Pcy: '\u041F', + Pfr: '\uD835\uDD13', + Phi: '\u03A6', + Pi: '\u03A0', + PlusMinus: '\u00B1', + Poincareplane: '\u210C', + Popf: '\u2119', + Pr: '\u2ABB', + Precedes: '\u227A', + PrecedesEqual: '\u2AAF', + PrecedesSlantEqual: '\u227C', + PrecedesTilde: '\u227E', + Prime: '\u2033', + Product: '\u220F', + Proportion: '\u2237', + Proportional: '\u221D', + Pscr: '\uD835\uDCAB', + Psi: '\u03A8', + QUOT: '\u0022', + Qfr: '\uD835\uDD14', + Qopf: '\u211A', + Qscr: '\uD835\uDCAC', + RBarr: '\u2910', + REG: '\u00AE', + Racute: '\u0154', + Rang: '\u27EB', + Rarr: '\u21A0', + Rarrtl: '\u2916', + Rcaron: '\u0158', + Rcedil: '\u0156', + Rcy: '\u0420', + Re: '\u211C', + ReverseElement: '\u220B', + ReverseEquilibrium: '\u21CB', + ReverseUpEquilibrium: '\u296F', + Rfr: '\u211C', + Rho: '\u03A1', + RightAngleBracket: '\u27E9', + RightArrow: '\u2192', + RightArrowBar: '\u21E5', + RightArrowLeftArrow: '\u21C4', + RightCeiling: '\u2309', + RightDoubleBracket: '\u27E7', + RightDownTeeVector: '\u295D', + RightDownVector: '\u21C2', + RightDownVectorBar: '\u2955', + RightFloor: '\u230B', + RightTee: '\u22A2', + RightTeeArrow: '\u21A6', + RightTeeVector: '\u295B', + RightTriangle: '\u22B3', + RightTriangleBar: '\u29D0', + RightTriangleEqual: '\u22B5', + RightUpDownVector: '\u294F', + RightUpTeeVector: '\u295C', + RightUpVector: '\u21BE', + RightUpVectorBar: '\u2954', + RightVector: '\u21C0', + RightVectorBar: '\u2953', + Rightarrow: '\u21D2', + Ropf: '\u211D', + RoundImplies: '\u2970', + Rrightarrow: '\u21DB', + Rscr: '\u211B', + Rsh: '\u21B1', + RuleDelayed: '\u29F4', + SHCHcy: '\u0429', + SHcy: '\u0428', + SOFTcy: '\u042C', + Sacute: '\u015A', + Sc: '\u2ABC', + Scaron: '\u0160', + Scedil: '\u015E', + Scirc: '\u015C', + Scy: '\u0421', + Sfr: '\uD835\uDD16', + ShortDownArrow: '\u2193', + ShortLeftArrow: '\u2190', + ShortRightArrow: '\u2192', + ShortUpArrow: '\u2191', + Sigma: '\u03A3', + SmallCircle: '\u2218', + Sopf: '\uD835\uDD4A', + Sqrt: '\u221A', + Square: '\u25A1', + SquareIntersection: '\u2293', + SquareSubset: '\u228F', + SquareSubsetEqual: '\u2291', + SquareSuperset: '\u2290', + SquareSupersetEqual: '\u2292', + SquareUnion: '\u2294', + Sscr: '\uD835\uDCAE', + Star: '\u22C6', + Sub: '\u22D0', + Subset: '\u22D0', + SubsetEqual: '\u2286', + Succeeds: '\u227B', + SucceedsEqual: '\u2AB0', + SucceedsSlantEqual: '\u227D', + SucceedsTilde: '\u227F', + SuchThat: '\u220B', + Sum: '\u2211', + Sup: '\u22D1', + Superset: '\u2283', + SupersetEqual: '\u2287', + Supset: '\u22D1', + THORN: '\u00DE', + TRADE: '\u2122', + TSHcy: '\u040B', + TScy: '\u0426', + Tab: '\u0009', + Tau: '\u03A4', + Tcaron: '\u0164', + Tcedil: '\u0162', + Tcy: '\u0422', + Tfr: '\uD835\uDD17', + Therefore: '\u2234', + Theta: '\u0398', + ThickSpace: '\u205F\u200A', + ThinSpace: '\u2009', + Tilde: '\u223C', + TildeEqual: '\u2243', + TildeFullEqual: '\u2245', + TildeTilde: '\u2248', + Topf: '\uD835\uDD4B', + TripleDot: '\u20DB', + Tscr: '\uD835\uDCAF', + Tstrok: '\u0166', + Uacute: '\u00DA', + Uarr: '\u219F', + Uarrocir: '\u2949', + Ubrcy: '\u040E', + Ubreve: '\u016C', + Ucirc: '\u00DB', + Ucy: '\u0423', + Udblac: '\u0170', + Ufr: '\uD835\uDD18', + Ugrave: '\u00D9', + Umacr: '\u016A', + UnderBar: '\u005F', + UnderBrace: '\u23DF', + UnderBracket: '\u23B5', + UnderParenthesis: '\u23DD', + Union: '\u22C3', + UnionPlus: '\u228E', + Uogon: '\u0172', + Uopf: '\uD835\uDD4C', + UpArrow: '\u2191', + UpArrowBar: '\u2912', + UpArrowDownArrow: '\u21C5', + UpDownArrow: '\u2195', + UpEquilibrium: '\u296E', + UpTee: '\u22A5', + UpTeeArrow: '\u21A5', + Uparrow: '\u21D1', + Updownarrow: '\u21D5', + UpperLeftArrow: '\u2196', + UpperRightArrow: '\u2197', + Upsi: '\u03D2', + Upsilon: '\u03A5', + Uring: '\u016E', + Uscr: '\uD835\uDCB0', + Utilde: '\u0168', + Uuml: '\u00DC', + VDash: '\u22AB', + Vbar: '\u2AEB', + Vcy: '\u0412', + Vdash: '\u22A9', + Vdashl: '\u2AE6', + Vee: '\u22C1', + Verbar: '\u2016', + Vert: '\u2016', + VerticalBar: '\u2223', + VerticalLine: '\u007C', + VerticalSeparator: '\u2758', + VerticalTilde: '\u2240', + VeryThinSpace: '\u200A', + Vfr: '\uD835\uDD19', + Vopf: '\uD835\uDD4D', + Vscr: '\uD835\uDCB1', + Vvdash: '\u22AA', + Wcirc: '\u0174', + Wedge: '\u22C0', + Wfr: '\uD835\uDD1A', + Wopf: '\uD835\uDD4E', + Wscr: '\uD835\uDCB2', + Xfr: '\uD835\uDD1B', + Xi: '\u039E', + Xopf: '\uD835\uDD4F', + Xscr: '\uD835\uDCB3', + YAcy: '\u042F', + YIcy: '\u0407', + YUcy: '\u042E', + Yacute: '\u00DD', + Ycirc: '\u0176', + Ycy: '\u042B', + Yfr: '\uD835\uDD1C', + Yopf: '\uD835\uDD50', + Yscr: '\uD835\uDCB4', + Yuml: '\u0178', + ZHcy: '\u0416', + Zacute: '\u0179', + Zcaron: '\u017D', + Zcy: '\u0417', + Zdot: '\u017B', + ZeroWidthSpace: '\u200B', + Zeta: '\u0396', + Zfr: '\u2128', + Zopf: '\u2124', + Zscr: '\uD835\uDCB5', + aacute: '\u00E1', + abreve: '\u0103', + ac: '\u223E', + acE: '\u223E\u0333', + acd: '\u223F', + acirc: '\u00E2', + acute: '\u00B4', + acy: '\u0430', + aelig: '\u00E6', + af: '\u2061', + afr: '\uD835\uDD1E', + agrave: '\u00E0', + alefsym: '\u2135', + aleph: '\u2135', + alpha: '\u03B1', + amacr: '\u0101', + amalg: '\u2A3F', + amp: '\u0026', + and: '\u2227', + andand: '\u2A55', + andd: '\u2A5C', + andslope: '\u2A58', + andv: '\u2A5A', + ang: '\u2220', + ange: '\u29A4', + angle: '\u2220', + angmsd: '\u2221', + angmsdaa: '\u29A8', + angmsdab: '\u29A9', + angmsdac: '\u29AA', + angmsdad: '\u29AB', + angmsdae: '\u29AC', + angmsdaf: '\u29AD', + angmsdag: '\u29AE', + angmsdah: '\u29AF', + angrt: '\u221F', + angrtvb: '\u22BE', + angrtvbd: '\u299D', + angsph: '\u2222', + angst: '\u00C5', + angzarr: '\u237C', + aogon: '\u0105', + aopf: '\uD835\uDD52', + ap: '\u2248', + apE: '\u2A70', + apacir: '\u2A6F', + ape: '\u224A', + apid: '\u224B', + apos: '\u0027', + approx: '\u2248', + approxeq: '\u224A', + aring: '\u00E5', + ascr: '\uD835\uDCB6', + ast: '\u002A', + asymp: '\u2248', + asympeq: '\u224D', + atilde: '\u00E3', + auml: '\u00E4', + awconint: '\u2233', + awint: '\u2A11', + bNot: '\u2AED', + backcong: '\u224C', + backepsilon: '\u03F6', + backprime: '\u2035', + backsim: '\u223D', + backsimeq: '\u22CD', + barvee: '\u22BD', + barwed: '\u2305', + barwedge: '\u2305', + bbrk: '\u23B5', + bbrktbrk: '\u23B6', + bcong: '\u224C', + bcy: '\u0431', + bdquo: '\u201E', + becaus: '\u2235', + because: '\u2235', + bemptyv: '\u29B0', + bepsi: '\u03F6', + bernou: '\u212C', + beta: '\u03B2', + beth: '\u2136', + between: '\u226C', + bfr: '\uD835\uDD1F', + bigcap: '\u22C2', + bigcirc: '\u25EF', + bigcup: '\u22C3', + bigodot: '\u2A00', + bigoplus: '\u2A01', + bigotimes: '\u2A02', + bigsqcup: '\u2A06', + bigstar: '\u2605', + bigtriangledown: '\u25BD', + bigtriangleup: '\u25B3', + biguplus: '\u2A04', + bigvee: '\u22C1', + bigwedge: '\u22C0', + bkarow: '\u290D', + blacklozenge: '\u29EB', + blacksquare: '\u25AA', + blacktriangle: '\u25B4', + blacktriangledown: '\u25BE', + blacktriangleleft: '\u25C2', + blacktriangleright: '\u25B8', + blank: '\u2423', + blk12: '\u2592', + blk14: '\u2591', + blk34: '\u2593', + block: '\u2588', + bne: '\u003D\u20E5', + bnequiv: '\u2261\u20E5', + bnot: '\u2310', + bopf: '\uD835\uDD53', + bot: '\u22A5', + bottom: '\u22A5', + bowtie: '\u22C8', + boxDL: '\u2557', + boxDR: '\u2554', + boxDl: '\u2556', + boxDr: '\u2553', + boxH: '\u2550', + boxHD: '\u2566', + boxHU: '\u2569', + boxHd: '\u2564', + boxHu: '\u2567', + boxUL: '\u255D', + boxUR: '\u255A', + boxUl: '\u255C', + boxUr: '\u2559', + boxV: '\u2551', + boxVH: '\u256C', + boxVL: '\u2563', + boxVR: '\u2560', + boxVh: '\u256B', + boxVl: '\u2562', + boxVr: '\u255F', + boxbox: '\u29C9', + boxdL: '\u2555', + boxdR: '\u2552', + boxdl: '\u2510', + boxdr: '\u250C', + boxh: '\u2500', + boxhD: '\u2565', + boxhU: '\u2568', + boxhd: '\u252C', + boxhu: '\u2534', + boxminus: '\u229F', + boxplus: '\u229E', + boxtimes: '\u22A0', + boxuL: '\u255B', + boxuR: '\u2558', + boxul: '\u2518', + boxur: '\u2514', + boxv: '\u2502', + boxvH: '\u256A', + boxvL: '\u2561', + boxvR: '\u255E', + boxvh: '\u253C', + boxvl: '\u2524', + boxvr: '\u251C', + bprime: '\u2035', + breve: '\u02D8', + brvbar: '\u00A6', + bscr: '\uD835\uDCB7', + bsemi: '\u204F', + bsim: '\u223D', + bsime: '\u22CD', + bsol: '\u005C', + bsolb: '\u29C5', + bsolhsub: '\u27C8', + bull: '\u2022', + bullet: '\u2022', + bump: '\u224E', + bumpE: '\u2AAE', + bumpe: '\u224F', + bumpeq: '\u224F', + cacute: '\u0107', + cap: '\u2229', + capand: '\u2A44', + capbrcup: '\u2A49', + capcap: '\u2A4B', + capcup: '\u2A47', + capdot: '\u2A40', + caps: '\u2229\uFE00', + caret: '\u2041', + caron: '\u02C7', + ccaps: '\u2A4D', + ccaron: '\u010D', + ccedil: '\u00E7', + ccirc: '\u0109', + ccups: '\u2A4C', + ccupssm: '\u2A50', + cdot: '\u010B', + cedil: '\u00B8', + cemptyv: '\u29B2', + cent: '\u00A2', + centerdot: '\u00B7', + cfr: '\uD835\uDD20', + chcy: '\u0447', + check: '\u2713', + checkmark: '\u2713', + chi: '\u03C7', + cir: '\u25CB', + cirE: '\u29C3', + circ: '\u02C6', + circeq: '\u2257', + circlearrowleft: '\u21BA', + circlearrowright: '\u21BB', + circledR: '\u00AE', + circledS: '\u24C8', + circledast: '\u229B', + circledcirc: '\u229A', + circleddash: '\u229D', + cire: '\u2257', + cirfnint: '\u2A10', + cirmid: '\u2AEF', + cirscir: '\u29C2', + clubs: '\u2663', + clubsuit: '\u2663', + colon: '\u003A', + colone: '\u2254', + coloneq: '\u2254', + comma: '\u002C', + commat: '\u0040', + comp: '\u2201', + compfn: '\u2218', + complement: '\u2201', + complexes: '\u2102', + cong: '\u2245', + congdot: '\u2A6D', + conint: '\u222E', + copf: '\uD835\uDD54', + coprod: '\u2210', + copy: '\u00A9', + copysr: '\u2117', + crarr: '\u21B5', + cross: '\u2717', + cscr: '\uD835\uDCB8', + csub: '\u2ACF', + csube: '\u2AD1', + csup: '\u2AD0', + csupe: '\u2AD2', + ctdot: '\u22EF', + cudarrl: '\u2938', + cudarrr: '\u2935', + cuepr: '\u22DE', + cuesc: '\u22DF', + cularr: '\u21B6', + cularrp: '\u293D', + cup: '\u222A', + cupbrcap: '\u2A48', + cupcap: '\u2A46', + cupcup: '\u2A4A', + cupdot: '\u228D', + cupor: '\u2A45', + cups: '\u222A\uFE00', + curarr: '\u21B7', + curarrm: '\u293C', + curlyeqprec: '\u22DE', + curlyeqsucc: '\u22DF', + curlyvee: '\u22CE', + curlywedge: '\u22CF', + curren: '\u00A4', + curvearrowleft: '\u21B6', + curvearrowright: '\u21B7', + cuvee: '\u22CE', + cuwed: '\u22CF', + cwconint: '\u2232', + cwint: '\u2231', + cylcty: '\u232D', + dArr: '\u21D3', + dHar: '\u2965', + dagger: '\u2020', + daleth: '\u2138', + darr: '\u2193', + dash: '\u2010', + dashv: '\u22A3', + dbkarow: '\u290F', + dblac: '\u02DD', + dcaron: '\u010F', + dcy: '\u0434', + dd: '\u2146', + ddagger: '\u2021', + ddarr: '\u21CA', + ddotseq: '\u2A77', + deg: '\u00B0', + delta: '\u03B4', + demptyv: '\u29B1', + dfisht: '\u297F', + dfr: '\uD835\uDD21', + dharl: '\u21C3', + dharr: '\u21C2', + diam: '\u22C4', + diamond: '\u22C4', + diamondsuit: '\u2666', + diams: '\u2666', + die: '\u00A8', + digamma: '\u03DD', + disin: '\u22F2', + div: '\u00F7', + divide: '\u00F7', + divideontimes: '\u22C7', + divonx: '\u22C7', + djcy: '\u0452', + dlcorn: '\u231E', + dlcrop: '\u230D', + dollar: '\u0024', + dopf: '\uD835\uDD55', + dot: '\u02D9', + doteq: '\u2250', + doteqdot: '\u2251', + dotminus: '\u2238', + dotplus: '\u2214', + dotsquare: '\u22A1', + doublebarwedge: '\u2306', + downarrow: '\u2193', + downdownarrows: '\u21CA', + downharpoonleft: '\u21C3', + downharpoonright: '\u21C2', + drbkarow: '\u2910', + drcorn: '\u231F', + drcrop: '\u230C', + dscr: '\uD835\uDCB9', + dscy: '\u0455', + dsol: '\u29F6', + dstrok: '\u0111', + dtdot: '\u22F1', + dtri: '\u25BF', + dtrif: '\u25BE', + duarr: '\u21F5', + duhar: '\u296F', + dwangle: '\u29A6', + dzcy: '\u045F', + dzigrarr: '\u27FF', + eDDot: '\u2A77', + eDot: '\u2251', + eacute: '\u00E9', + easter: '\u2A6E', + ecaron: '\u011B', + ecir: '\u2256', + ecirc: '\u00EA', + ecolon: '\u2255', + ecy: '\u044D', + edot: '\u0117', + ee: '\u2147', + efDot: '\u2252', + efr: '\uD835\uDD22', + eg: '\u2A9A', + egrave: '\u00E8', + egs: '\u2A96', + egsdot: '\u2A98', + el: '\u2A99', + elinters: '\u23E7', + ell: '\u2113', + els: '\u2A95', + elsdot: '\u2A97', + emacr: '\u0113', + empty: '\u2205', + emptyset: '\u2205', + emptyv: '\u2205', + emsp13: '\u2004', + emsp14: '\u2005', + emsp: '\u2003', + eng: '\u014B', + ensp: '\u2002', + eogon: '\u0119', + eopf: '\uD835\uDD56', + epar: '\u22D5', + eparsl: '\u29E3', + eplus: '\u2A71', + epsi: '\u03B5', + epsilon: '\u03B5', + epsiv: '\u03F5', + eqcirc: '\u2256', + eqcolon: '\u2255', + eqsim: '\u2242', + eqslantgtr: '\u2A96', + eqslantless: '\u2A95', + equals: '\u003D', + equest: '\u225F', + equiv: '\u2261', + equivDD: '\u2A78', + eqvparsl: '\u29E5', + erDot: '\u2253', + erarr: '\u2971', + escr: '\u212F', + esdot: '\u2250', + esim: '\u2242', + eta: '\u03B7', + eth: '\u00F0', + euml: '\u00EB', + euro: '\u20AC', + excl: '\u0021', + exist: '\u2203', + expectation: '\u2130', + exponentiale: '\u2147', + fallingdotseq: '\u2252', + fcy: '\u0444', + female: '\u2640', + ffilig: '\uFB03', + fflig: '\uFB00', + ffllig: '\uFB04', + ffr: '\uD835\uDD23', + filig: '\uFB01', + fjlig: '\u0066\u006A', + flat: '\u266D', + fllig: '\uFB02', + fltns: '\u25B1', + fnof: '\u0192', + fopf: '\uD835\uDD57', + forall: '\u2200', + fork: '\u22D4', + forkv: '\u2AD9', + fpartint: '\u2A0D', + frac12: '\u00BD', + frac13: '\u2153', + frac14: '\u00BC', + frac15: '\u2155', + frac16: '\u2159', + frac18: '\u215B', + frac23: '\u2154', + frac25: '\u2156', + frac34: '\u00BE', + frac35: '\u2157', + frac38: '\u215C', + frac45: '\u2158', + frac56: '\u215A', + frac58: '\u215D', + frac78: '\u215E', + frasl: '\u2044', + frown: '\u2322', + fscr: '\uD835\uDCBB', + gE: '\u2267', + gEl: '\u2A8C', + gacute: '\u01F5', + gamma: '\u03B3', + gammad: '\u03DD', + gap: '\u2A86', + gbreve: '\u011F', + gcirc: '\u011D', + gcy: '\u0433', + gdot: '\u0121', + ge: '\u2265', + gel: '\u22DB', + geq: '\u2265', + geqq: '\u2267', + geqslant: '\u2A7E', + ges: '\u2A7E', + gescc: '\u2AA9', + gesdot: '\u2A80', + gesdoto: '\u2A82', + gesdotol: '\u2A84', + gesl: '\u22DB\uFE00', + gesles: '\u2A94', + gfr: '\uD835\uDD24', + gg: '\u226B', + ggg: '\u22D9', + gimel: '\u2137', + gjcy: '\u0453', + gl: '\u2277', + glE: '\u2A92', + gla: '\u2AA5', + glj: '\u2AA4', + gnE: '\u2269', + gnap: '\u2A8A', + gnapprox: '\u2A8A', + gne: '\u2A88', + gneq: '\u2A88', + gneqq: '\u2269', + gnsim: '\u22E7', + gopf: '\uD835\uDD58', + grave: '\u0060', + gscr: '\u210A', + gsim: '\u2273', + gsime: '\u2A8E', + gsiml: '\u2A90', + gt: '\u003E', + gtcc: '\u2AA7', + gtcir: '\u2A7A', + gtdot: '\u22D7', + gtlPar: '\u2995', + gtquest: '\u2A7C', + gtrapprox: '\u2A86', + gtrarr: '\u2978', + gtrdot: '\u22D7', + gtreqless: '\u22DB', + gtreqqless: '\u2A8C', + gtrless: '\u2277', + gtrsim: '\u2273', + gvertneqq: '\u2269\uFE00', + gvnE: '\u2269\uFE00', + hArr: '\u21D4', + hairsp: '\u200A', + half: '\u00BD', + hamilt: '\u210B', + hardcy: '\u044A', + harr: '\u2194', + harrcir: '\u2948', + harrw: '\u21AD', + hbar: '\u210F', + hcirc: '\u0125', + hearts: '\u2665', + heartsuit: '\u2665', + hellip: '\u2026', + hercon: '\u22B9', + hfr: '\uD835\uDD25', + hksearow: '\u2925', + hkswarow: '\u2926', + hoarr: '\u21FF', + homtht: '\u223B', + hookleftarrow: '\u21A9', + hookrightarrow: '\u21AA', + hopf: '\uD835\uDD59', + horbar: '\u2015', + hscr: '\uD835\uDCBD', + hslash: '\u210F', + hstrok: '\u0127', + hybull: '\u2043', + hyphen: '\u2010', + iacute: '\u00ED', + ic: '\u2063', + icirc: '\u00EE', + icy: '\u0438', + iecy: '\u0435', + iexcl: '\u00A1', + iff: '\u21D4', + ifr: '\uD835\uDD26', + igrave: '\u00EC', + ii: '\u2148', + iiiint: '\u2A0C', + iiint: '\u222D', + iinfin: '\u29DC', + iiota: '\u2129', + ijlig: '\u0133', + imacr: '\u012B', + image: '\u2111', + imagline: '\u2110', + imagpart: '\u2111', + imath: '\u0131', + imof: '\u22B7', + imped: '\u01B5', + in: '\u2208', + incare: '\u2105', + infin: '\u221E', + infintie: '\u29DD', + inodot: '\u0131', + int: '\u222B', + intcal: '\u22BA', + integers: '\u2124', + intercal: '\u22BA', + intlarhk: '\u2A17', + intprod: '\u2A3C', + iocy: '\u0451', + iogon: '\u012F', + iopf: '\uD835\uDD5A', + iota: '\u03B9', + iprod: '\u2A3C', + iquest: '\u00BF', + iscr: '\uD835\uDCBE', + isin: '\u2208', + isinE: '\u22F9', + isindot: '\u22F5', + isins: '\u22F4', + isinsv: '\u22F3', + isinv: '\u2208', + it: '\u2062', + itilde: '\u0129', + iukcy: '\u0456', + iuml: '\u00EF', + jcirc: '\u0135', + jcy: '\u0439', + jfr: '\uD835\uDD27', + jmath: '\u0237', + jopf: '\uD835\uDD5B', + jscr: '\uD835\uDCBF', + jsercy: '\u0458', + jukcy: '\u0454', + kappa: '\u03BA', + kappav: '\u03F0', + kcedil: '\u0137', + kcy: '\u043A', + kfr: '\uD835\uDD28', + kgreen: '\u0138', + khcy: '\u0445', + kjcy: '\u045C', + kopf: '\uD835\uDD5C', + kscr: '\uD835\uDCC0', + lAarr: '\u21DA', + lArr: '\u21D0', + lAtail: '\u291B', + lBarr: '\u290E', + lE: '\u2266', + lEg: '\u2A8B', + lHar: '\u2962', + lacute: '\u013A', + laemptyv: '\u29B4', + lagran: '\u2112', + lambda: '\u03BB', + lang: '\u27E8', + langd: '\u2991', + langle: '\u27E8', + lap: '\u2A85', + laquo: '\u00AB', + larr: '\u2190', + larrb: '\u21E4', + larrbfs: '\u291F', + larrfs: '\u291D', + larrhk: '\u21A9', + larrlp: '\u21AB', + larrpl: '\u2939', + larrsim: '\u2973', + larrtl: '\u21A2', + lat: '\u2AAB', + latail: '\u2919', + late: '\u2AAD', + lates: '\u2AAD\uFE00', + lbarr: '\u290C', + lbbrk: '\u2772', + lbrace: '\u007B', + lbrack: '\u005B', + lbrke: '\u298B', + lbrksld: '\u298F', + lbrkslu: '\u298D', + lcaron: '\u013E', + lcedil: '\u013C', + lceil: '\u2308', + lcub: '\u007B', + lcy: '\u043B', + ldca: '\u2936', + ldquo: '\u201C', + ldquor: '\u201E', + ldrdhar: '\u2967', + ldrushar: '\u294B', + ldsh: '\u21B2', + le: '\u2264', + leftarrow: '\u2190', + leftarrowtail: '\u21A2', + leftharpoondown: '\u21BD', + leftharpoonup: '\u21BC', + leftleftarrows: '\u21C7', + leftrightarrow: '\u2194', + leftrightarrows: '\u21C6', + leftrightharpoons: '\u21CB', + leftrightsquigarrow: '\u21AD', + leftthreetimes: '\u22CB', + leg: '\u22DA', + leq: '\u2264', + leqq: '\u2266', + leqslant: '\u2A7D', + les: '\u2A7D', + lescc: '\u2AA8', + lesdot: '\u2A7F', + lesdoto: '\u2A81', + lesdotor: '\u2A83', + lesg: '\u22DA\uFE00', + lesges: '\u2A93', + lessapprox: '\u2A85', + lessdot: '\u22D6', + lesseqgtr: '\u22DA', + lesseqqgtr: '\u2A8B', + lessgtr: '\u2276', + lesssim: '\u2272', + lfisht: '\u297C', + lfloor: '\u230A', + lfr: '\uD835\uDD29', + lg: '\u2276', + lgE: '\u2A91', + lhard: '\u21BD', + lharu: '\u21BC', + lharul: '\u296A', + lhblk: '\u2584', + ljcy: '\u0459', + ll: '\u226A', + llarr: '\u21C7', + llcorner: '\u231E', + llhard: '\u296B', + lltri: '\u25FA', + lmidot: '\u0140', + lmoust: '\u23B0', + lmoustache: '\u23B0', + lnE: '\u2268', + lnap: '\u2A89', + lnapprox: '\u2A89', + lne: '\u2A87', + lneq: '\u2A87', + lneqq: '\u2268', + lnsim: '\u22E6', + loang: '\u27EC', + loarr: '\u21FD', + lobrk: '\u27E6', + longleftarrow: '\u27F5', + longleftrightarrow: '\u27F7', + longmapsto: '\u27FC', + longrightarrow: '\u27F6', + looparrowleft: '\u21AB', + looparrowright: '\u21AC', + lopar: '\u2985', + lopf: '\uD835\uDD5D', + loplus: '\u2A2D', + lotimes: '\u2A34', + lowast: '\u2217', + lowbar: '\u005F', + loz: '\u25CA', + lozenge: '\u25CA', + lozf: '\u29EB', + lpar: '\u0028', + lparlt: '\u2993', + lrarr: '\u21C6', + lrcorner: '\u231F', + lrhar: '\u21CB', + lrhard: '\u296D', + lrm: '\u200E', + lrtri: '\u22BF', + lsaquo: '\u2039', + lscr: '\uD835\uDCC1', + lsh: '\u21B0', + lsim: '\u2272', + lsime: '\u2A8D', + lsimg: '\u2A8F', + lsqb: '\u005B', + lsquo: '\u2018', + lsquor: '\u201A', + lstrok: '\u0142', + lt: '\u003C', + ltcc: '\u2AA6', + ltcir: '\u2A79', + ltdot: '\u22D6', + lthree: '\u22CB', + ltimes: '\u22C9', + ltlarr: '\u2976', + ltquest: '\u2A7B', + ltrPar: '\u2996', + ltri: '\u25C3', + ltrie: '\u22B4', + ltrif: '\u25C2', + lurdshar: '\u294A', + luruhar: '\u2966', + lvertneqq: '\u2268\uFE00', + lvnE: '\u2268\uFE00', + mDDot: '\u223A', + macr: '\u00AF', + male: '\u2642', + malt: '\u2720', + maltese: '\u2720', + map: '\u21A6', + mapsto: '\u21A6', + mapstodown: '\u21A7', + mapstoleft: '\u21A4', + mapstoup: '\u21A5', + marker: '\u25AE', + mcomma: '\u2A29', + mcy: '\u043C', + mdash: '\u2014', + measuredangle: '\u2221', + mfr: '\uD835\uDD2A', + mho: '\u2127', + micro: '\u00B5', + mid: '\u2223', + midast: '\u002A', + midcir: '\u2AF0', + middot: '\u00B7', + minus: '\u2212', + minusb: '\u229F', + minusd: '\u2238', + minusdu: '\u2A2A', + mlcp: '\u2ADB', + mldr: '\u2026', + mnplus: '\u2213', + models: '\u22A7', + mopf: '\uD835\uDD5E', + mp: '\u2213', + mscr: '\uD835\uDCC2', + mstpos: '\u223E', + mu: '\u03BC', + multimap: '\u22B8', + mumap: '\u22B8', + nGg: '\u22D9\u0338', + nGt: '\u226B\u20D2', + nGtv: '\u226B\u0338', + nLeftarrow: '\u21CD', + nLeftrightarrow: '\u21CE', + nLl: '\u22D8\u0338', + nLt: '\u226A\u20D2', + nLtv: '\u226A\u0338', + nRightarrow: '\u21CF', + nVDash: '\u22AF', + nVdash: '\u22AE', + nabla: '\u2207', + nacute: '\u0144', + nang: '\u2220\u20D2', + nap: '\u2249', + napE: '\u2A70\u0338', + napid: '\u224B\u0338', + napos: '\u0149', + napprox: '\u2249', + natur: '\u266E', + natural: '\u266E', + naturals: '\u2115', + nbsp: '\u00A0', + nbump: '\u224E\u0338', + nbumpe: '\u224F\u0338', + ncap: '\u2A43', + ncaron: '\u0148', + ncedil: '\u0146', + ncong: '\u2247', + ncongdot: '\u2A6D\u0338', + ncup: '\u2A42', + ncy: '\u043D', + ndash: '\u2013', + ne: '\u2260', + neArr: '\u21D7', + nearhk: '\u2924', + nearr: '\u2197', + nearrow: '\u2197', + nedot: '\u2250\u0338', + nequiv: '\u2262', + nesear: '\u2928', + nesim: '\u2242\u0338', + nexist: '\u2204', + nexists: '\u2204', + nfr: '\uD835\uDD2B', + ngE: '\u2267\u0338', + nge: '\u2271', + ngeq: '\u2271', + ngeqq: '\u2267\u0338', + ngeqslant: '\u2A7E\u0338', + nges: '\u2A7E\u0338', + ngsim: '\u2275', + ngt: '\u226F', + ngtr: '\u226F', + nhArr: '\u21CE', + nharr: '\u21AE', + nhpar: '\u2AF2', + ni: '\u220B', + nis: '\u22FC', + nisd: '\u22FA', + niv: '\u220B', + njcy: '\u045A', + nlArr: '\u21CD', + nlE: '\u2266\u0338', + nlarr: '\u219A', + nldr: '\u2025', + nle: '\u2270', + nleftarrow: '\u219A', + nleftrightarrow: '\u21AE', + nleq: '\u2270', + nleqq: '\u2266\u0338', + nleqslant: '\u2A7D\u0338', + nles: '\u2A7D\u0338', + nless: '\u226E', + nlsim: '\u2274', + nlt: '\u226E', + nltri: '\u22EA', + nltrie: '\u22EC', + nmid: '\u2224', + nopf: '\uD835\uDD5F', + not: '\u00AC', + notin: '\u2209', + notinE: '\u22F9\u0338', + notindot: '\u22F5\u0338', + notinva: '\u2209', + notinvb: '\u22F7', + notinvc: '\u22F6', + notni: '\u220C', + notniva: '\u220C', + notnivb: '\u22FE', + notnivc: '\u22FD', + npar: '\u2226', + nparallel: '\u2226', + nparsl: '\u2AFD\u20E5', + npart: '\u2202\u0338', + npolint: '\u2A14', + npr: '\u2280', + nprcue: '\u22E0', + npre: '\u2AAF\u0338', + nprec: '\u2280', + npreceq: '\u2AAF\u0338', + nrArr: '\u21CF', + nrarr: '\u219B', + nrarrc: '\u2933\u0338', + nrarrw: '\u219D\u0338', + nrightarrow: '\u219B', + nrtri: '\u22EB', + nrtrie: '\u22ED', + nsc: '\u2281', + nsccue: '\u22E1', + nsce: '\u2AB0\u0338', + nscr: '\uD835\uDCC3', + nshortmid: '\u2224', + nshortparallel: '\u2226', + nsim: '\u2241', + nsime: '\u2244', + nsimeq: '\u2244', + nsmid: '\u2224', + nspar: '\u2226', + nsqsube: '\u22E2', + nsqsupe: '\u22E3', + nsub: '\u2284', + nsubE: '\u2AC5\u0338', + nsube: '\u2288', + nsubset: '\u2282\u20D2', + nsubseteq: '\u2288', + nsubseteqq: '\u2AC5\u0338', + nsucc: '\u2281', + nsucceq: '\u2AB0\u0338', + nsup: '\u2285', + nsupE: '\u2AC6\u0338', + nsupe: '\u2289', + nsupset: '\u2283\u20D2', + nsupseteq: '\u2289', + nsupseteqq: '\u2AC6\u0338', + ntgl: '\u2279', + ntilde: '\u00F1', + ntlg: '\u2278', + ntriangleleft: '\u22EA', + ntrianglelefteq: '\u22EC', + ntriangleright: '\u22EB', + ntrianglerighteq: '\u22ED', + nu: '\u03BD', + num: '\u0023', + numero: '\u2116', + numsp: '\u2007', + nvDash: '\u22AD', + nvHarr: '\u2904', + nvap: '\u224D\u20D2', + nvdash: '\u22AC', + nvge: '\u2265\u20D2', + nvgt: '\u003E\u20D2', + nvinfin: '\u29DE', + nvlArr: '\u2902', + nvle: '\u2264\u20D2', + nvlt: '\u003C\u20D2', + nvltrie: '\u22B4\u20D2', + nvrArr: '\u2903', + nvrtrie: '\u22B5\u20D2', + nvsim: '\u223C\u20D2', + nwArr: '\u21D6', + nwarhk: '\u2923', + nwarr: '\u2196', + nwarrow: '\u2196', + nwnear: '\u2927', + oS: '\u24C8', + oacute: '\u00F3', + oast: '\u229B', + ocir: '\u229A', + ocirc: '\u00F4', + ocy: '\u043E', + odash: '\u229D', + odblac: '\u0151', + odiv: '\u2A38', + odot: '\u2299', + odsold: '\u29BC', + oelig: '\u0153', + ofcir: '\u29BF', + ofr: '\uD835\uDD2C', + ogon: '\u02DB', + ograve: '\u00F2', + ogt: '\u29C1', + ohbar: '\u29B5', + ohm: '\u03A9', + oint: '\u222E', + olarr: '\u21BA', + olcir: '\u29BE', + olcross: '\u29BB', + oline: '\u203E', + olt: '\u29C0', + omacr: '\u014D', + omega: '\u03C9', + omicron: '\u03BF', + omid: '\u29B6', + ominus: '\u2296', + oopf: '\uD835\uDD60', + opar: '\u29B7', + operp: '\u29B9', + oplus: '\u2295', + or: '\u2228', + orarr: '\u21BB', + ord: '\u2A5D', + order: '\u2134', + orderof: '\u2134', + ordf: '\u00AA', + ordm: '\u00BA', + origof: '\u22B6', + oror: '\u2A56', + orslope: '\u2A57', + orv: '\u2A5B', + oscr: '\u2134', + oslash: '\u00F8', + osol: '\u2298', + otilde: '\u00F5', + otimes: '\u2297', + otimesas: '\u2A36', + ouml: '\u00F6', + ovbar: '\u233D', + par: '\u2225', + para: '\u00B6', + parallel: '\u2225', + parsim: '\u2AF3', + parsl: '\u2AFD', + part: '\u2202', + pcy: '\u043F', + percnt: '\u0025', + period: '\u002E', + permil: '\u2030', + perp: '\u22A5', + pertenk: '\u2031', + pfr: '\uD835\uDD2D', + phi: '\u03C6', + phiv: '\u03D5', + phmmat: '\u2133', + phone: '\u260E', + pi: '\u03C0', + pitchfork: '\u22D4', + piv: '\u03D6', + planck: '\u210F', + planckh: '\u210E', + plankv: '\u210F', + plus: '\u002B', + plusacir: '\u2A23', + plusb: '\u229E', + pluscir: '\u2A22', + plusdo: '\u2214', + plusdu: '\u2A25', + pluse: '\u2A72', + plusmn: '\u00B1', + plussim: '\u2A26', + plustwo: '\u2A27', + pm: '\u00B1', + pointint: '\u2A15', + popf: '\uD835\uDD61', + pound: '\u00A3', + pr: '\u227A', + prE: '\u2AB3', + prap: '\u2AB7', + prcue: '\u227C', + pre: '\u2AAF', + prec: '\u227A', + precapprox: '\u2AB7', + preccurlyeq: '\u227C', + preceq: '\u2AAF', + precnapprox: '\u2AB9', + precneqq: '\u2AB5', + precnsim: '\u22E8', + precsim: '\u227E', + prime: '\u2032', + primes: '\u2119', + prnE: '\u2AB5', + prnap: '\u2AB9', + prnsim: '\u22E8', + prod: '\u220F', + profalar: '\u232E', + profline: '\u2312', + profsurf: '\u2313', + prop: '\u221D', + propto: '\u221D', + prsim: '\u227E', + prurel: '\u22B0', + pscr: '\uD835\uDCC5', + psi: '\u03C8', + puncsp: '\u2008', + qfr: '\uD835\uDD2E', + qint: '\u2A0C', + qopf: '\uD835\uDD62', + qprime: '\u2057', + qscr: '\uD835\uDCC6', + quaternions: '\u210D', + quatint: '\u2A16', + quest: '\u003F', + questeq: '\u225F', + quot: '\u0022', + rAarr: '\u21DB', + rArr: '\u21D2', + rAtail: '\u291C', + rBarr: '\u290F', + rHar: '\u2964', + race: '\u223D\u0331', + racute: '\u0155', + radic: '\u221A', + raemptyv: '\u29B3', + rang: '\u27E9', + rangd: '\u2992', + range: '\u29A5', + rangle: '\u27E9', + raquo: '\u00BB', + rarr: '\u2192', + rarrap: '\u2975', + rarrb: '\u21E5', + rarrbfs: '\u2920', + rarrc: '\u2933', + rarrfs: '\u291E', + rarrhk: '\u21AA', + rarrlp: '\u21AC', + rarrpl: '\u2945', + rarrsim: '\u2974', + rarrtl: '\u21A3', + rarrw: '\u219D', + ratail: '\u291A', + ratio: '\u2236', + rationals: '\u211A', + rbarr: '\u290D', + rbbrk: '\u2773', + rbrace: '\u007D', + rbrack: '\u005D', + rbrke: '\u298C', + rbrksld: '\u298E', + rbrkslu: '\u2990', + rcaron: '\u0159', + rcedil: '\u0157', + rceil: '\u2309', + rcub: '\u007D', + rcy: '\u0440', + rdca: '\u2937', + rdldhar: '\u2969', + rdquo: '\u201D', + rdquor: '\u201D', + rdsh: '\u21B3', + real: '\u211C', + realine: '\u211B', + realpart: '\u211C', + reals: '\u211D', + rect: '\u25AD', + reg: '\u00AE', + rfisht: '\u297D', + rfloor: '\u230B', + rfr: '\uD835\uDD2F', + rhard: '\u21C1', + rharu: '\u21C0', + rharul: '\u296C', + rho: '\u03C1', + rhov: '\u03F1', + rightarrow: '\u2192', + rightarrowtail: '\u21A3', + rightharpoondown: '\u21C1', + rightharpoonup: '\u21C0', + rightleftarrows: '\u21C4', + rightleftharpoons: '\u21CC', + rightrightarrows: '\u21C9', + rightsquigarrow: '\u219D', + rightthreetimes: '\u22CC', + ring: '\u02DA', + risingdotseq: '\u2253', + rlarr: '\u21C4', + rlhar: '\u21CC', + rlm: '\u200F', + rmoust: '\u23B1', + rmoustache: '\u23B1', + rnmid: '\u2AEE', + roang: '\u27ED', + roarr: '\u21FE', + robrk: '\u27E7', + ropar: '\u2986', + ropf: '\uD835\uDD63', + roplus: '\u2A2E', + rotimes: '\u2A35', + rpar: '\u0029', + rpargt: '\u2994', + rppolint: '\u2A12', + rrarr: '\u21C9', + rsaquo: '\u203A', + rscr: '\uD835\uDCC7', + rsh: '\u21B1', + rsqb: '\u005D', + rsquo: '\u2019', + rsquor: '\u2019', + rthree: '\u22CC', + rtimes: '\u22CA', + rtri: '\u25B9', + rtrie: '\u22B5', + rtrif: '\u25B8', + rtriltri: '\u29CE', + ruluhar: '\u2968', + rx: '\u211E', + sacute: '\u015B', + sbquo: '\u201A', + sc: '\u227B', + scE: '\u2AB4', + scap: '\u2AB8', + scaron: '\u0161', + sccue: '\u227D', + sce: '\u2AB0', + scedil: '\u015F', + scirc: '\u015D', + scnE: '\u2AB6', + scnap: '\u2ABA', + scnsim: '\u22E9', + scpolint: '\u2A13', + scsim: '\u227F', + scy: '\u0441', + sdot: '\u22C5', + sdotb: '\u22A1', + sdote: '\u2A66', + seArr: '\u21D8', + searhk: '\u2925', + searr: '\u2198', + searrow: '\u2198', + sect: '\u00A7', + semi: '\u003B', + seswar: '\u2929', + setminus: '\u2216', + setmn: '\u2216', + sext: '\u2736', + sfr: '\uD835\uDD30', + sfrown: '\u2322', + sharp: '\u266F', + shchcy: '\u0449', + shcy: '\u0448', + shortmid: '\u2223', + shortparallel: '\u2225', + shy: '\u00AD', + sigma: '\u03C3', + sigmaf: '\u03C2', + sigmav: '\u03C2', + sim: '\u223C', + simdot: '\u2A6A', + sime: '\u2243', + simeq: '\u2243', + simg: '\u2A9E', + simgE: '\u2AA0', + siml: '\u2A9D', + simlE: '\u2A9F', + simne: '\u2246', + simplus: '\u2A24', + simrarr: '\u2972', + slarr: '\u2190', + smallsetminus: '\u2216', + smashp: '\u2A33', + smeparsl: '\u29E4', + smid: '\u2223', + smile: '\u2323', + smt: '\u2AAA', + smte: '\u2AAC', + smtes: '\u2AAC\uFE00', + softcy: '\u044C', + sol: '\u002F', + solb: '\u29C4', + solbar: '\u233F', + sopf: '\uD835\uDD64', + spades: '\u2660', + spadesuit: '\u2660', + spar: '\u2225', + sqcap: '\u2293', + sqcaps: '\u2293\uFE00', + sqcup: '\u2294', + sqcups: '\u2294\uFE00', + sqsub: '\u228F', + sqsube: '\u2291', + sqsubset: '\u228F', + sqsubseteq: '\u2291', + sqsup: '\u2290', + sqsupe: '\u2292', + sqsupset: '\u2290', + sqsupseteq: '\u2292', + squ: '\u25A1', + square: '\u25A1', + squarf: '\u25AA', + squf: '\u25AA', + srarr: '\u2192', + sscr: '\uD835\uDCC8', + ssetmn: '\u2216', + ssmile: '\u2323', + sstarf: '\u22C6', + star: '\u2606', + starf: '\u2605', + straightepsilon: '\u03F5', + straightphi: '\u03D5', + strns: '\u00AF', + sub: '\u2282', + subE: '\u2AC5', + subdot: '\u2ABD', + sube: '\u2286', + subedot: '\u2AC3', + submult: '\u2AC1', + subnE: '\u2ACB', + subne: '\u228A', + subplus: '\u2ABF', + subrarr: '\u2979', + subset: '\u2282', + subseteq: '\u2286', + subseteqq: '\u2AC5', + subsetneq: '\u228A', + subsetneqq: '\u2ACB', + subsim: '\u2AC7', + subsub: '\u2AD5', + subsup: '\u2AD3', + succ: '\u227B', + succapprox: '\u2AB8', + succcurlyeq: '\u227D', + succeq: '\u2AB0', + succnapprox: '\u2ABA', + succneqq: '\u2AB6', + succnsim: '\u22E9', + succsim: '\u227F', + sum: '\u2211', + sung: '\u266A', + sup1: '\u00B9', + sup2: '\u00B2', + sup3: '\u00B3', + sup: '\u2283', + supE: '\u2AC6', + supdot: '\u2ABE', + supdsub: '\u2AD8', + supe: '\u2287', + supedot: '\u2AC4', + suphsol: '\u27C9', + suphsub: '\u2AD7', + suplarr: '\u297B', + supmult: '\u2AC2', + supnE: '\u2ACC', + supne: '\u228B', + supplus: '\u2AC0', + supset: '\u2283', + supseteq: '\u2287', + supseteqq: '\u2AC6', + supsetneq: '\u228B', + supsetneqq: '\u2ACC', + supsim: '\u2AC8', + supsub: '\u2AD4', + supsup: '\u2AD6', + swArr: '\u21D9', + swarhk: '\u2926', + swarr: '\u2199', + swarrow: '\u2199', + swnwar: '\u292A', + szlig: '\u00DF', + target: '\u2316', + tau: '\u03C4', + tbrk: '\u23B4', + tcaron: '\u0165', + tcedil: '\u0163', + tcy: '\u0442', + tdot: '\u20DB', + telrec: '\u2315', + tfr: '\uD835\uDD31', + there4: '\u2234', + therefore: '\u2234', + theta: '\u03B8', + thetasym: '\u03D1', + thetav: '\u03D1', + thickapprox: '\u2248', + thicksim: '\u223C', + thinsp: '\u2009', + thkap: '\u2248', + thksim: '\u223C', + thorn: '\u00FE', + tilde: '\u02DC', + times: '\u00D7', + timesb: '\u22A0', + timesbar: '\u2A31', + timesd: '\u2A30', + tint: '\u222D', + toea: '\u2928', + top: '\u22A4', + topbot: '\u2336', + topcir: '\u2AF1', + topf: '\uD835\uDD65', + topfork: '\u2ADA', + tosa: '\u2929', + tprime: '\u2034', + trade: '\u2122', + triangle: '\u25B5', + triangledown: '\u25BF', + triangleleft: '\u25C3', + trianglelefteq: '\u22B4', + triangleq: '\u225C', + triangleright: '\u25B9', + trianglerighteq: '\u22B5', + tridot: '\u25EC', + trie: '\u225C', + triminus: '\u2A3A', + triplus: '\u2A39', + trisb: '\u29CD', + tritime: '\u2A3B', + trpezium: '\u23E2', + tscr: '\uD835\uDCC9', + tscy: '\u0446', + tshcy: '\u045B', + tstrok: '\u0167', + twixt: '\u226C', + twoheadleftarrow: '\u219E', + twoheadrightarrow: '\u21A0', + uArr: '\u21D1', + uHar: '\u2963', + uacute: '\u00FA', + uarr: '\u2191', + ubrcy: '\u045E', + ubreve: '\u016D', + ucirc: '\u00FB', + ucy: '\u0443', + udarr: '\u21C5', + udblac: '\u0171', + udhar: '\u296E', + ufisht: '\u297E', + ufr: '\uD835\uDD32', + ugrave: '\u00F9', + uharl: '\u21BF', + uharr: '\u21BE', + uhblk: '\u2580', + ulcorn: '\u231C', + ulcorner: '\u231C', + ulcrop: '\u230F', + ultri: '\u25F8', + umacr: '\u016B', + uml: '\u00A8', + uogon: '\u0173', + uopf: '\uD835\uDD66', + uparrow: '\u2191', + updownarrow: '\u2195', + upharpoonleft: '\u21BF', + upharpoonright: '\u21BE', + uplus: '\u228E', + upsi: '\u03C5', + upsih: '\u03D2', + upsilon: '\u03C5', + upuparrows: '\u21C8', + urcorn: '\u231D', + urcorner: '\u231D', + urcrop: '\u230E', + uring: '\u016F', + urtri: '\u25F9', + uscr: '\uD835\uDCCA', + utdot: '\u22F0', + utilde: '\u0169', + utri: '\u25B5', + utrif: '\u25B4', + uuarr: '\u21C8', + uuml: '\u00FC', + uwangle: '\u29A7', + vArr: '\u21D5', + vBar: '\u2AE8', + vBarv: '\u2AE9', + vDash: '\u22A8', + vangrt: '\u299C', + varepsilon: '\u03F5', + varkappa: '\u03F0', + varnothing: '\u2205', + varphi: '\u03D5', + varpi: '\u03D6', + varpropto: '\u221D', + varr: '\u2195', + varrho: '\u03F1', + varsigma: '\u03C2', + varsubsetneq: '\u228A\uFE00', + varsubsetneqq: '\u2ACB\uFE00', + varsupsetneq: '\u228B\uFE00', + varsupsetneqq: '\u2ACC\uFE00', + vartheta: '\u03D1', + vartriangleleft: '\u22B2', + vartriangleright: '\u22B3', + vcy: '\u0432', + vdash: '\u22A2', + vee: '\u2228', + veebar: '\u22BB', + veeeq: '\u225A', + vellip: '\u22EE', + verbar: '\u007C', + vert: '\u007C', + vfr: '\uD835\uDD33', + vltri: '\u22B2', + vnsub: '\u2282\u20D2', + vnsup: '\u2283\u20D2', + vopf: '\uD835\uDD67', + vprop: '\u221D', + vrtri: '\u22B3', + vscr: '\uD835\uDCCB', + vsubnE: '\u2ACB\uFE00', + vsubne: '\u228A\uFE00', + vsupnE: '\u2ACC\uFE00', + vsupne: '\u228B\uFE00', + vzigzag: '\u299A', + wcirc: '\u0175', + wedbar: '\u2A5F', + wedge: '\u2227', + wedgeq: '\u2259', + weierp: '\u2118', + wfr: '\uD835\uDD34', + wopf: '\uD835\uDD68', + wp: '\u2118', + wr: '\u2240', + wreath: '\u2240', + wscr: '\uD835\uDCCC', + xcap: '\u22C2', + xcirc: '\u25EF', + xcup: '\u22C3', + xdtri: '\u25BD', + xfr: '\uD835\uDD35', + xhArr: '\u27FA', + xharr: '\u27F7', + xi: '\u03BE', + xlArr: '\u27F8', + xlarr: '\u27F5', + xmap: '\u27FC', + xnis: '\u22FB', + xodot: '\u2A00', + xopf: '\uD835\uDD69', + xoplus: '\u2A01', + xotime: '\u2A02', + xrArr: '\u27F9', + xrarr: '\u27F6', + xscr: '\uD835\uDCCD', + xsqcup: '\u2A06', + xuplus: '\u2A04', + xutri: '\u25B3', + xvee: '\u22C1', + xwedge: '\u22C0', + yacute: '\u00FD', + yacy: '\u044F', + ycirc: '\u0177', + ycy: '\u044B', + yen: '\u00A5', + yfr: '\uD835\uDD36', + yicy: '\u0457', + yopf: '\uD835\uDD6A', + yscr: '\uD835\uDCCE', + yucy: '\u044E', + yuml: '\u00FF', + zacute: '\u017A', + zcaron: '\u017E', + zcy: '\u0437', + zdot: '\u017C', + zeetrf: '\u2128', + zeta: '\u03B6', + zfr: '\uD835\uDD37', + zhcy: '\u0436', + zigrarr: '\u21DD', + zopf: '\uD835\uDD6B', + zscr: '\uD835\uDCCF', + zwj: '\u200D', + zwnj: '\u200C' + }; + const decodeMap = { + '0': 65533, + '128': 8364, + '130': 8218, + '131': 402, + '132': 8222, + '133': 8230, + '134': 8224, + '135': 8225, + '136': 710, + '137': 8240, + '138': 352, + '139': 8249, + '140': 338, + '142': 381, + '145': 8216, + '146': 8217, + '147': 8220, + '148': 8221, + '149': 8226, + '150': 8211, + '151': 8212, + '152': 732, + '153': 8482, + '154': 353, + '155': 8250, + '156': 339, + '158': 382, + '159': 376 + }; + function decodeHTMLStrict(text) { + return text.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, (key) => { + if (key.charAt(1) === '#') { + const secondChar = key.charAt(2); + const codePoint = secondChar === 'X' || secondChar === 'x' + ? parseInt(key.slice(3), 16) + : parseInt(key.slice(2), 10); + return decodeCodePoint(codePoint); + } + return entities[key.slice(1, -1)] || key; + }); + } + function decodeCodePoint(codePoint) { + if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { + return '\uFFFD'; + } + if (codePoint in decodeMap) { + codePoint = decodeMap[codePoint]; + } + return String.fromCodePoint(codePoint); + } + + function scanJSXAttributeValue(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + parser.token = + CharTypes[parser.currentChar] & 8192 + ? scanJSXString(parser, context) + : scanSingleToken(parser, context, 0); + return parser.token; + } + function scanJSXString(parser, context) { + const quote = parser.currentChar; + let char = advanceChar(parser); + const start = parser.index; + while (char !== quote) { + if (parser.index >= parser.end) + report(parser, 14); + char = advanceChar(parser); + } + if (char !== quote) + report(parser, 14); + parser.tokenValue = parser.source.slice(start, parser.index); + advanceChar(parser); + if (context & 512) + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return 134283267; + } + function scanJSXToken(parser, context) { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + if (parser.index >= parser.end) + return (parser.token = 1048576); + const token = TokenLookup[parser.source.charCodeAt(parser.index)]; + switch (token) { + case 8456258: { + advanceChar(parser); + if (parser.currentChar === 47) { + advanceChar(parser); + parser.token = 25; + } + else { + parser.token = 8456258; + } + break; + } + case 2162700: { + advanceChar(parser); + parser.token = 2162700; + break; + } + default: { + let state = 0; + while (parser.index < parser.end) { + const type = CharTypes[parser.source.charCodeAt(parser.index)]; + if (type & 1024) { + state |= 1 | 4; + scanNewLine(parser); + } + else if (type & 2048) { + consumeLineFeed(parser, state); + state = (state & ~4) | 1; + } + else { + advanceChar(parser); + } + if (CharTypes[parser.currentChar] & 16384) + break; + } + const raw = parser.source.slice(parser.tokenPos, parser.index); + if (context & 512) + parser.tokenRaw = raw; + parser.tokenValue = decodeHTMLStrict(raw); + parser.token = 138; + } + } + return parser.token; + } + function scanJSXIdentifier(parser) { + if ((parser.token & 143360) === 143360) { + const { index } = parser; + let char = parser.currentChar; + while (CharTypes[char] & (32768 | 2)) { + char = advanceChar(parser); + } + parser.tokenValue += parser.source.slice(index, parser.index); + } + parser.token = 208897; + return parser.token; + } + + function matchOrInsertSemicolon(parser, context, specDeviation) { + if ((parser.flags & 1) === 0 && + (parser.token & 1048576) !== 1048576 && + !specDeviation) { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + consumeOpt(parser, context, 1074790417); + } + function isValidStrictMode(parser, index, tokenPos, tokenValue) { + if (index - tokenPos < 13 && tokenValue === 'use strict') { + if ((parser.token & 1048576) === 1048576 || parser.flags & 1) { + return 1; + } + } + return 0; + } + function optionalBit(parser, context, t) { + if (parser.token !== t) + return 0; + nextToken(parser, context); + return 1; + } + function consumeOpt(parser, context, t) { + if (parser.token !== t) + return false; + nextToken(parser, context); + return true; + } + function consume(parser, context, t) { + if (parser.token !== t) + report(parser, 23, KeywordDescTable[t & 255]); + nextToken(parser, context); + } + function reinterpretToPattern(state, node) { + switch (node.type) { + case 'ArrayExpression': + node.type = 'ArrayPattern'; + const elements = node.elements; + for (let i = 0, n = elements.length; i < n; ++i) { + const element = elements[i]; + if (element) + reinterpretToPattern(state, element); + } + return; + case 'ObjectExpression': + node.type = 'ObjectPattern'; + const properties = node.properties; + for (let i = 0, n = properties.length; i < n; ++i) { + reinterpretToPattern(state, properties[i]); + } + return; + case 'AssignmentExpression': + node.type = 'AssignmentPattern'; + if (node.operator !== '=') + report(state, 68); + delete node.operator; + reinterpretToPattern(state, node.left); + return; + case 'Property': + reinterpretToPattern(state, node.value); + return; + case 'SpreadElement': + node.type = 'RestElement'; + reinterpretToPattern(state, node.argument); + } + } + function validateBindingIdentifier(parser, context, kind, t, skipEvalArgCheck) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if (!skipEvalArgCheck && (t & 537079808) === 537079808) { + report(parser, 115); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (kind & (8 | 16) && t === 241739) { + report(parser, 97); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } + } + function validateFunctionName(parser, context, t) { + if (context & 1024) { + if ((t & 36864) === 36864) { + report(parser, 114); + } + if ((t & 537079808) === 537079808) { + report(parser, 115); + } + if (t === 122) { + report(parser, 92); + } + if (t === 121) { + report(parser, 92); + } + } + if ((t & 20480) === 20480) { + report(parser, 99); + } + if (context & (4194304 | 2048) && t === 209008) { + report(parser, 95); + } + if (context & (2097152 | 1024) && t === 241773) { + report(parser, 94, 'yield'); + } + } + function isStrictReservedWord(parser, context, t) { + if (t === 209008) { + if (context & (4194304 | 2048)) + report(parser, 95); + parser.destructible |= 128; + } + if (t === 241773 && context & 2097152) + report(parser, 94, 'yield'); + return ((t & 20480) === 20480 || + (t & 36864) === 36864 || + t == 122); + } + function isPropertyWithPrivateFieldKey(expr) { + return !expr.property ? false : expr.property.type === 'PrivateIdentifier'; + } + function isValidLabel(parser, labels, name, isIterationStatement) { + while (labels) { + if (labels['$' + name]) { + if (isIterationStatement) + report(parser, 133); + return 1; + } + if (isIterationStatement && labels.loop) + isIterationStatement = 0; + labels = labels['$']; + } + return 0; + } + function validateAndDeclareLabel(parser, labels, name) { + let set = labels; + while (set) { + if (set['$' + name]) + report(parser, 132, name); + set = set['$']; + } + labels['$' + name] = 1; + } + function finishNode(parser, context, start, line, column, node) { + if (context & 2) { + node.start = start; + node.end = parser.startPos; + node.range = [start, parser.startPos]; + } + if (context & 4) { + node.loc = { + start: { + line, + column + }, + end: { + line: parser.startLine, + column: parser.startColumn + } + }; + if (parser.sourceFile) { + node.loc.source = parser.sourceFile; + } + } + return node; + } + function isEqualTagName(elementName) { + switch (elementName.type) { + case 'JSXIdentifier': + return elementName.name; + case 'JSXNamespacedName': + return elementName.namespace + ':' + elementName.name; + case 'JSXMemberExpression': + return isEqualTagName(elementName.object) + '.' + isEqualTagName(elementName.property); + } + } + function createArrowHeadParsingScope(parser, context, value) { + const scope = addChildScope(createScope(), 1024); + addBlockName(parser, context, scope, value, 1, 0); + return scope; + } + function recordScopeError(parser, type, ...params) { + const { index, line, column } = parser; + return { + type, + params, + index, + line, + column + }; + } + function createScope() { + return { + parent: void 0, + type: 2 + }; + } + function addChildScope(parent, type) { + return { + parent, + type, + scopeError: void 0 + }; + } + function addVarOrBlock(parser, context, scope, name, kind, origin) { + if (kind & 4) { + addVarName(parser, context, scope, name, kind); + } + else { + addBlockName(parser, context, scope, name, kind, origin); + } + if (origin & 64) { + declareUnboundVariable(parser, name); + } + } + function addBlockName(parser, context, scope, name, kind, origin) { + const value = scope['#' + name]; + if (value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + else if (context & 256 && + value & 64 && + origin & 2) ; + else { + report(parser, 140, name); + } + } + if (scope.type & 128 && + (scope.parent['#' + name] && (scope.parent['#' + name] & 2) === 0)) { + report(parser, 140, name); + } + if (scope.type & 1024 && value && (value & 2) === 0) { + if (kind & 1) { + scope.scopeError = recordScopeError(parser, 140, name); + } + } + if (scope.type & 64) { + if (scope.parent['#' + name] & 768) + report(parser, 153, name); + } + scope['#' + name] = kind; + } + function addVarName(parser, context, scope, name, kind) { + let currentScope = scope; + while (currentScope && (currentScope.type & 256) === 0) { + const value = currentScope['#' + name]; + if (value & 248) { + if (context & 256 && + (context & 1024) === 0 && + ((kind & 128 && value & 68) || + (value & 128 && kind & 68))) ; + else { + report(parser, 140, name); + } + } + if (currentScope === scope) { + if (value & 1 && kind & 1) { + currentScope.scopeError = recordScopeError(parser, 140, name); + } + } + if (value & (512 | 256)) { + if ((value & 512) === 0 || + (context & 256) === 0 || + context & 1024) { + report(parser, 140, name); + } + } + currentScope['#' + name] = kind; + currentScope = currentScope.parent; + } + } + function declareUnboundVariable(parser, name) { + if (parser.exportedNames !== void 0 && name !== '') { + if (parser.exportedNames['#' + name]) { + report(parser, 141, name); + } + parser.exportedNames['#' + name] = 1; + } + } + function addBindingToExports(parser, name) { + if (parser.exportedBindings !== void 0 && name !== '') { + parser.exportedBindings['#' + name] = 1; + } + } + function pushComment(context, array) { + return function (type, value, start, end, loc) { + const comment = { + type, + value + }; + if (context & 2) { + comment.start = start; + comment.end = end; + comment.range = [start, end]; + } + if (context & 4) { + comment.loc = loc; + } + array.push(comment); + }; + } + function pushToken(context, array) { + return function (token, start, end, loc) { + const tokens = { + token + }; + if (context & 2) { + tokens.start = start; + tokens.end = end; + tokens.range = [start, end]; + } + if (context & 4) { + tokens.loc = loc; + } + array.push(tokens); + }; + } + function isValidIdentifier(context, t) { + if (context & (1024 | 2097152)) { + if (context & 2048 && t === 209008) + return false; + if (context & 2097152 && t === 241773) + return false; + return (t & 143360) === 143360 || (t & 12288) === 12288; + } + return ((t & 143360) === 143360 || + (t & 12288) === 12288 || + (t & 36864) === 36864); + } + function classifyIdentifier(parser, context, t, isArrow) { + if ((t & 537079808) === 537079808) { + if (context & 1024) + report(parser, 115); + if (isArrow) + parser.flags |= 512; + } + if (!isValidIdentifier(context, t)) + report(parser, 0); + } + + function create(source, sourceFile, onComment, onToken) { + return { + source, + flags: 0, + index: 0, + line: 1, + column: 0, + startPos: 0, + end: source.length, + tokenPos: 0, + startColumn: 0, + colPos: 0, + linePos: 1, + startLine: 1, + sourceFile, + tokenValue: '', + token: 1048576, + tokenRaw: '', + tokenRegExp: void 0, + currentChar: source.charCodeAt(0), + exportedNames: [], + exportedBindings: [], + assignable: 1, + destructible: 0, + onComment, + onToken, + leadingDecorators: [] + }; + } + function parseSource(source, options, context) { + let sourceFile = ''; + let onComment; + let onToken; + if (options != null) { + if (options.module) + context |= 2048 | 1024; + if (options.next) + context |= 1; + if (options.loc) + context |= 4; + if (options.ranges) + context |= 2; + if (options.uniqueKeyInPattern) + context |= -2147483648; + if (options.lexical) + context |= 64; + if (options.webcompat) + context |= 256; + if (options.directives) + context |= 8 | 512; + if (options.globalReturn) + context |= 32; + if (options.raw) + context |= 512; + if (options.preserveParens) + context |= 128; + if (options.impliedStrict) + context |= 1024; + if (options.jsx) + context |= 16; + if (options.identifierPattern) + context |= 268435456; + if (options.specDeviation) + context |= 536870912; + if (options.source) + sourceFile = options.source; + if (options.onComment != null) { + onComment = Array.isArray(options.onComment) ? pushComment(context, options.onComment) : options.onComment; + } + if (options.onToken != null) { + onToken = Array.isArray(options.onToken) ? pushToken(context, options.onToken) : options.onToken; + } + } + const parser = create(source, sourceFile, onComment, onToken); + if (context & 1) + skipHashBang(parser); + const scope = context & 64 ? createScope() : void 0; + let body = []; + let sourceType = 'script'; + if (context & 2048) { + sourceType = 'module'; + body = parseModuleItemList(parser, context | 8192, scope); + if (scope) { + for (const key in parser.exportedBindings) { + if (key[0] === '#' && !scope[key]) + report(parser, 142, key.slice(1)); + } + } + } + else { + body = parseStatementList(parser, context | 8192, scope); + } + const node = { + type: 'Program', + sourceType, + body + }; + if (context & 2) { + node.start = 0; + node.end = source.length; + node.range = [0, source.length]; + } + if (context & 4) { + node.loc = { + start: { line: 1, column: 0 }, + end: { line: parser.line, column: parser.column } + }; + if (parser.sourceFile) + node.loc.source = sourceFile; + } + return node; + } + function parseStatementList(parser, context, scope) { + nextToken(parser, context | 32768 | 1073741824); + const statements = []; + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, linePos, colPos, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) + context |= 1024; + statements.push(parseDirective(parser, context, expr, token, tokenPos, linePos, colPos)); + } + while (parser.token !== 1048576) { + statements.push(parseStatementListItem(parser, context, scope, 4, {})); + } + return statements; + } + function parseModuleItemList(parser, context, scope) { + nextToken(parser, context | 32768); + const statements = []; + if (context & 8) { + while (parser.token === 134283267) { + const { tokenPos, linePos, colPos, token } = parser; + statements.push(parseDirective(parser, context, parseLiteral(parser, context), token, tokenPos, linePos, colPos)); + } + } + while (parser.token !== 1048576) { + statements.push(parseModuleItem(parser, context, scope)); + } + return statements; + } + function parseModuleItem(parser, context, scope) { + parser.leadingDecorators = parseDecorators(parser, context); + let moduleItem; + switch (parser.token) { + case 20566: + moduleItem = parseExportDeclaration(parser, context, scope); + break; + case 86108: + moduleItem = parseImportDeclaration(parser, context, scope); + break; + default: + moduleItem = parseStatementListItem(parser, context, scope, 4, {}); + } + if (parser.leadingDecorators.length) { + report(parser, 164); + } + return moduleItem; + } + function parseStatementListItem(parser, context, scope, origin, labels) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + switch (parser.token) { + case 86106: + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 0, start, line, column); + case 133: + case 86096: + return parseClassDeclaration(parser, context, scope, 0, start, line, column); + case 86092: + return parseLexicalDeclaration(parser, context, scope, 16, 0, start, line, column); + case 241739: + return parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column); + case 20566: + report(parser, 100, 'export'); + case 86108: + nextToken(parser, context); + switch (parser.token) { + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 100, 'import'); + } + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 1, start, line, column); + default: + return parseStatement(parser, context, scope, origin, labels, 1, start, line, column); + } + } + function parseStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + switch (parser.token) { + case 86090: + return parseVariableStatement(parser, context, scope, 0, start, line, column); + case 20574: + return parseReturnStatement(parser, context, start, line, column); + case 20571: + return parseIfStatement(parser, context, scope, labels, start, line, column); + case 20569: + return parseForStatement(parser, context, scope, labels, start, line, column); + case 20564: + return parseDoWhileStatement(parser, context, scope, labels, start, line, column); + case 20580: + return parseWhileStatement(parser, context, scope, labels, start, line, column); + case 86112: + return parseSwitchStatement(parser, context, scope, labels, start, line, column); + case 1074790417: + return parseEmptyStatement(parser, context, start, line, column); + case 2162700: + return parseBlock(parser, context, scope ? addChildScope(scope, 2) : scope, labels, start, line, column); + case 86114: + return parseThrowStatement(parser, context, start, line, column); + case 20557: + return parseBreakStatement(parser, context, labels, start, line, column); + case 20561: + return parseContinueStatement(parser, context, labels, start, line, column); + case 20579: + return parseTryStatement(parser, context, scope, labels, start, line, column); + case 20581: + return parseWithStatement(parser, context, scope, labels, start, line, column); + case 20562: + return parseDebuggerStatement(parser, context, start, line, column); + case 209007: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 0, start, line, column); + case 20559: + report(parser, 156); + case 20568: + report(parser, 157); + case 86106: + report(parser, context & 1024 + ? 73 + : (context & 256) < 1 + ? 75 + : 74); + case 86096: + report(parser, 76); + default: + return parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column); + } + } + function parseExpressionOrLabelledStatement(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { tokenValue, token } = parser; + let expr; + switch (token) { + case 241739: + expr = parseIdentifier(parser, context, 0); + if (context & 1024) + report(parser, 82); + if (parser.token === 69271571) + report(parser, 81); + break; + default: + expr = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + if (token & 143360 && parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, allowFuncDecl, start, line, column); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseBlock(parser, context, scope, labels, start, line, column) { + const body = []; + consume(parser, context | 32768, 2162700); + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 2, { $: labels })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'BlockStatement', + body + }); + } + function parseReturnStatement(parser, context, start, line, column) { + if ((context & 32) < 1 && context & 8192) + report(parser, 89); + nextToken(parser, context | 32768); + const argument = parser.flags & 1 || parser.token & 1048576 + ? null + : parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.column); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ReturnStatement', + argument + }); + } + function parseExpressionStatement(parser, context, expression, start, line, column) { + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); + } + function parseLabelledStatement(parser, context, scope, origin, labels, value, expr, token, allowFuncDecl, start, line, column) { + validateBindingIdentifier(parser, context, 0, token, 1); + validateAndDeclareLabel(parser, labels, value); + nextToken(parser, context | 32768); + const body = allowFuncDecl && + (context & 1024) < 1 && + context & 256 && + parser.token === 86106 + ? parseFunctionDeclaration(parser, context, addChildScope(scope, 2), origin, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseStatement(parser, context, scope, origin, labels, allowFuncDecl, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'LabeledStatement', + label: expr, + body + }); + } + function parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, allowFuncDecl, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, labels, tokenValue, expr, token, 1, start, line, column); + } + const asyncNewLine = parser.flags & 1; + if (!asyncNewLine) { + if (parser.token === 86106) { + if (!allowFuncDecl) + report(parser, 119); + return parseFunctionDeclaration(parser, context, scope, origin, 1, 0, 1, start, line, column); + } + if ((parser.token & 143360) === 143360) { + expr = parseAsyncArrowAfterIdent(parser, context, 1, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + } + if (parser.token === 67174411) { + expr = parseAsyncArrowOrCallExpression(parser, context, expr, 1, 1, 0, asyncNewLine, start, line, column); + } + else { + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + expr = parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, 0, 1, 0, start, line, column); + } + parser.assignable = 1; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + if (parser.token === 18) + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + parser.assignable = 1; + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseDirective(parser, context, expression, token, start, line, column) { + if (token !== 1074790417) { + parser.assignable = 2; + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + if (parser.token !== 1074790417) { + expression = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expression); + if (parser.token === 18) { + expression = parseSequenceExpression(parser, context, 0, start, line, column, expression); + } + } + matchOrInsertSemicolon(parser, context | 32768); + } + return context & 8 && expression.type === 'Literal' && typeof expression.value === 'string' + ? finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression, + directive: expression.raw.slice(1, -1) + }) + : finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); + } + function parseEmptyStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'EmptyStatement' + }); + } + function parseThrowStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + if (parser.flags & 1) + report(parser, 87); + const argument = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ThrowStatement', + argument + }); + } + function parseIfStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + parser.assignable = 1; + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.colPos); + consume(parser, context | 32768, 16); + const consequent = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + let alternate = null; + if (parser.token === 20565) { + nextToken(parser, context | 32768); + alternate = parseConsequentOrAlternative(parser, context, scope, labels, parser.tokenPos, parser.linePos, parser.colPos); + } + return finishNode(parser, context, start, line, column, { + type: 'IfStatement', + test, + consequent, + alternate + }); + } + function parseConsequentOrAlternative(parser, context, scope, labels, start, line, column) { + return context & 1024 || + (context & 256) < 1 || + parser.token !== 86106 + ? parseStatement(parser, context, scope, 0, { $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos) + : parseFunctionDeclaration(parser, context, addChildScope(scope, 2), 0, 0, 0, 0, start, line, column); + } + function parseSwitchStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const discriminant = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + consume(parser, context, 2162700); + const cases = []; + let seenDefault = 0; + if (scope) + scope = addChildScope(scope, 8); + while (parser.token !== 1074790415) { + const { tokenPos, linePos, colPos } = parser; + let test = null; + const consequent = []; + if (consumeOpt(parser, context | 32768, 20558)) { + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + consume(parser, context | 32768, 20563); + if (seenDefault) + report(parser, 86); + seenDefault = 1; + } + consume(parser, context | 32768, 21); + while (parser.token !== 20558 && + parser.token !== 1074790415 && + parser.token !== 20563) { + consequent.push(parseStatementListItem(parser, context | 4096, scope, 2, { + $: labels + })); + } + cases.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'SwitchCase', + test, + consequent + })); + } + consume(parser, context | 32768, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'SwitchStatement', + discriminant, + cases + }); + } + function parseWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'WhileStatement', + test, + body + }); + } + function parseIterationStatementBody(parser, context, scope, labels) { + return parseStatement(parser, ((context | 134217728) ^ 134217728) | 131072, scope, 0, { loop: 1, $: labels }, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + function parseContinueStatement(parser, context, labels, start, line, column) { + if ((context & 131072) < 1) + report(parser, 65); + nextToken(parser, context); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 1)) + report(parser, 134, tokenValue); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ContinueStatement', + label + }); + } + function parseBreakStatement(parser, context, labels, start, line, column) { + nextToken(parser, context | 32768); + let label = null; + if ((parser.flags & 1) < 1 && parser.token & 143360) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | 32768, 0); + if (!isValidLabel(parser, labels, tokenValue, 0)) + report(parser, 134, tokenValue); + } + else if ((context & (4096 | 131072)) < 1) { + report(parser, 66); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'BreakStatement', + label + }); + } + function parseWithStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + if (context & 1024) + report(parser, 88); + consume(parser, context | 32768, 67174411); + const object = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseStatement(parser, context, scope, 2, labels, 0, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'WithStatement', + object, + body + }); + } + function parseDebuggerStatement(parser, context, start, line, column) { + nextToken(parser, context | 32768); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'DebuggerStatement' + }); + } + function parseTryStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const firstScope = scope ? addChildScope(scope, 32) : void 0; + const block = parseBlock(parser, context, firstScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + const { tokenPos, linePos, colPos } = parser; + const handler = consumeOpt(parser, context | 32768, 20559) + ? parseCatchBlock(parser, context, scope, labels, tokenPos, linePos, colPos) + : null; + let finalizer = null; + if (parser.token === 20568) { + nextToken(parser, context | 32768); + const finalizerScope = firstScope ? addChildScope(scope, 4) : void 0; + finalizer = parseBlock(parser, context, finalizerScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + } + if (!handler && !finalizer) { + report(parser, 85); + } + return finishNode(parser, context, start, line, column, { + type: 'TryStatement', + block, + handler, + finalizer + }); + } + function parseCatchBlock(parser, context, scope, labels, start, line, column) { + let param = null; + let additionalScope = scope; + if (consumeOpt(parser, context, 67174411)) { + if (scope) + scope = addChildScope(scope, 4); + param = parseBindingPattern(parser, context, scope, (parser.token & 2097152) === 2097152 + ? 256 + : 512, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 18) { + report(parser, 83); + } + else if (parser.token === 1077936157) { + report(parser, 84); + } + consume(parser, context | 32768, 16); + if (scope) + additionalScope = addChildScope(scope, 64); + } + const body = parseBlock(parser, context, additionalScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'CatchClause', + param, + body + }); + } + function parseDoWhileStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context | 32768); + const body = parseIterationStatementBody(parser, context, scope, labels); + consume(parser, context, 20580); + consume(parser, context | 32768, 67174411); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + consumeOpt(parser, context, 1074790417); + return finishNode(parser, context, start, line, column, { + type: 'DoWhileStatement', + body, + test + }); + } + function parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column) { + const { token, tokenValue } = parser; + let expr = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + const declarations = parseVariableDeclarationList(parser, context, scope, 8, 0); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'let', + declarations + }); + } + parser.assignable = 1; + if (context & 1024) + report(parser, 82); + if (parser.token === 21) { + return parseLabelledStatement(parser, context, scope, origin, {}, tokenValue, expr, token, 0, start, line, column); + } + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + expr = parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + else { + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + } + if (parser.token === 18) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseLexicalDeclaration(parser, context, scope, kind, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, kind, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: kind & 8 ? 'let' : 'const', + declarations + }); + } + function parseVariableStatement(parser, context, scope, origin, start, line, column) { + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, 4, origin); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'var', + declarations + }); + } + function parseVariableDeclarationList(parser, context, scope, kind, origin) { + let bindingCount = 1; + const list = [parseVariableDeclaration(parser, context, scope, kind, origin)]; + while (consumeOpt(parser, context, 18)) { + bindingCount++; + list.push(parseVariableDeclaration(parser, context, scope, kind, origin)); + } + if (bindingCount > 1 && origin & 32 && parser.token & 262144) { + report(parser, 58, KeywordDescTable[parser.token & 255]); + } + return list; + } + function parseVariableDeclaration(parser, context, scope, kind, origin) { + const { token, tokenPos, linePos, colPos } = parser; + let init = null; + const id = parseBindingPattern(parser, context, scope, kind, origin, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + init = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (origin & 32 || (token & 2097152) < 1) { + if (parser.token === 274549 || + (parser.token === 8738868 && + (token & 2097152 || (kind & 4) < 1 || context & 1024))) { + reportMessageAt(tokenPos, parser.line, parser.index - 3, 57, parser.token === 274549 ? 'of' : 'in'); + } + } + } + else if ((kind & 16 || (token & 2097152) > 0) && + (parser.token & 262144) !== 262144) { + report(parser, 56, kind & 16 ? 'const' : 'destructuring'); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclarator', + id, + init + }); + } + function parseForStatement(parser, context, scope, labels, start, line, column) { + nextToken(parser, context); + const forAwait = (context & 4194304) > 0 && consumeOpt(parser, context, 209008); + consume(parser, context | 32768, 67174411); + if (scope) + scope = addChildScope(scope, 1); + let test = null; + let update = null; + let destructible = 0; + let init = null; + let isVarDecl = parser.token === 86090 || parser.token === 241739 || parser.token === 86092; + let right; + const { token, tokenPos, linePos, colPos } = parser; + if (isVarDecl) { + if (token === 241739) { + init = parseIdentifier(parser, context, 0); + if (parser.token & (143360 | 2097152)) { + if (parser.token === 8738868) { + if (context & 1024) + report(parser, 64); + } + else { + init = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclaration', + kind: 'let', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 8, 32) + }); + } + parser.assignable = 1; + } + else if (context & 1024) { + report(parser, 64); + } + else { + isVarDecl = false; + parser.assignable = 1; + init = parseMemberOrUpdateExpression(parser, context, init, 0, 0, tokenPos, linePos, colPos); + if (parser.token === 274549) + report(parser, 111); + } + } + else { + nextToken(parser, context); + init = finishNode(parser, context, tokenPos, linePos, colPos, token === 86090 + ? { + type: 'VariableDeclaration', + kind: 'var', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 4, 32) + } + : { + type: 'VariableDeclaration', + kind: 'const', + declarations: parseVariableDeclarationList(parser, context | 134217728, scope, 16, 32) + }); + parser.assignable = 1; + } + } + else if (token === 1074790417) { + if (forAwait) + report(parser, 79); + } + else if ((token & 2097152) === 2097152) { + init = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, void 0, 1, 0, 0, 2, 32, tokenPos, linePos, colPos); + destructible = parser.destructible; + if (context & 256 && destructible & 64) { + report(parser, 60); + } + parser.assignable = + destructible & 16 ? 2 : 1; + init = parseMemberOrUpdateExpression(parser, context | 134217728, init, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + init = parseLeftHandSideExpression(parser, context | 134217728, 1, 0, 1, tokenPos, linePos, colPos); + } + if ((parser.token & 262144) === 262144) { + if (parser.token === 274549) { + if (parser.assignable & 2) + report(parser, 77, forAwait ? 'await' : 'of'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + right = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForOfStatement', + left: init, + right, + body, + await: forAwait + }); + } + if (parser.assignable & 2) + report(parser, 77, 'in'); + reinterpretToPattern(parser, init); + nextToken(parser, context | 32768); + if (forAwait) + report(parser, 79); + right = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForInStatement', + body, + left: init, + right + }); + } + if (forAwait) + report(parser, 79); + if (!isVarDecl) { + if (destructible & 8 && parser.token !== 1077936157) { + report(parser, 77, 'loop'); + } + init = parseAssignmentExpression(parser, context | 134217728, 0, 0, tokenPos, linePos, colPos, init); + } + if (parser.token === 18) + init = parseSequenceExpression(parser, context, 0, parser.tokenPos, parser.linePos, parser.colPos, init); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 1074790417) + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 1074790417); + if (parser.token !== 16) + update = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 16); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'ForStatement', + init, + test, + update, + body + }); + } + function parseRestrictedIdentifier(parser, context, scope) { + if (!isValidIdentifier(context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) + report(parser, 115); + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 8, 0); + return parseIdentifier(parser, context, 0); + } + function parseImportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context); + let source = null; + const { tokenPos, linePos, colPos } = parser; + let specifiers = []; + if (parser.token === 134283267) { + source = parseLiteral(parser, context); + } + else { + if (parser.token & 143360) { + const local = parseRestrictedIdentifier(parser, context, scope); + specifiers = [ + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportDefaultSpecifier', + local + }) + ]; + if (consumeOpt(parser, context, 18)) { + switch (parser.token) { + case 8457014: + specifiers.push(parseImportNamespaceSpecifier(parser, context, scope)); + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + default: + report(parser, 104); + } + } + } + else { + switch (parser.token) { + case 8457014: + specifiers = [parseImportNamespaceSpecifier(parser, context, scope)]; + break; + case 2162700: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + case 67174411: + return parseImportCallDeclaration(parser, context, start, line, column); + case 67108877: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + source = parseModuleSpecifier(parser, context); + } + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ImportDeclaration', + specifiers, + source + }); + } + function parseImportNamespaceSpecifier(parser, context, scope) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + consume(parser, context, 77934); + if ((parser.token & 134217728) === 134217728) { + reportMessageAt(tokenPos, parser.line, parser.index, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportNamespaceSpecifier', + local: parseRestrictedIdentifier(parser, context, scope) + }); + } + function parseModuleSpecifier(parser, context) { + consumeOpt(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Import'); + return parseLiteral(parser, context); + } + function parseImportSpecifierOrNamedImports(parser, context, scope, specifiers) { + nextToken(parser, context); + while (parser.token & 143360) { + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + const imported = parseIdentifier(parser, context, 0); + let local; + if (consumeOpt(parser, context, 77934)) { + if ((parser.token & 134217728) === 134217728 || parser.token === 18) { + report(parser, 103); + } + else { + validateBindingIdentifier(parser, context, 16, parser.token, 0); + } + tokenValue = parser.tokenValue; + local = parseIdentifier(parser, context, 0); + } + else { + validateBindingIdentifier(parser, context, 16, token, 0); + local = imported; + } + if (scope) + addBlockName(parser, context, scope, tokenValue, 8, 0); + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportSpecifier', + local, + imported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + return specifiers; + } + function parseImportMetaDeclaration(parser, context, start, line, column) { + let expr = parseImportMetaExpression(parser, context, finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: 'import' + }), start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseImportCallDeclaration(parser, context, start, line, column) { + let expr = parseImportExpression(parser, context, 0, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + return parseExpressionStatement(parser, context, expr, start, line, column); + } + function parseExportDeclaration(parser, context, scope) { + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + nextToken(parser, context | 32768); + const specifiers = []; + let declaration = null; + let source = null; + let key; + if (consumeOpt(parser, context | 32768, 20563)) { + switch (parser.token) { + case 86106: { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + } + case 133: + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 1, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + declaration = parseIdentifier(parser, context, 0); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 1, 1, tokenPos, linePos, colPos); + } + else { + if (parser.token === 67174411) { + declaration = parseAsyncArrowOrCallExpression(parser, context, declaration, 1, 1, 0, flags, tokenPos, linePos, colPos); + declaration = parseMemberOrUpdateExpression(parser, context, declaration, 0, 0, tokenPos, linePos, colPos); + declaration = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, declaration); + } + else if (parser.token & 143360) { + if (scope) + scope = createArrowHeadParsingScope(parser, context, parser.tokenValue); + declaration = parseIdentifier(parser, context, 0); + declaration = parseArrowFunctionExpression(parser, context, scope, [declaration], 1, tokenPos, linePos, colPos); + } + } + } + break; + default: + declaration = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | 32768); + } + if (scope) + declareUnboundVariable(parser, 'default'); + return finishNode(parser, context, start, line, column, { + type: 'ExportDefaultDeclaration', + declaration + }); + } + switch (parser.token) { + case 8457014: { + nextToken(parser, context); + let exported = null; + const isNamedDeclaration = consumeOpt(parser, context, 77934); + if (isNamedDeclaration) { + if (scope) + declareUnboundVariable(parser, parser.tokenValue); + exported = parseIdentifier(parser, context, 0); + } + consume(parser, context, 12404); + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + matchOrInsertSemicolon(parser, context | 32768); + return finishNode(parser, context, start, line, column, { + type: 'ExportAllDeclaration', + source, + exported + }); + } + case 2162700: { + nextToken(parser, context); + const tmpExportedNames = []; + const tmpExportedBindings = []; + while (parser.token & 143360) { + const { tokenPos, tokenValue, linePos, colPos } = parser; + const local = parseIdentifier(parser, context, 0); + let exported; + if (parser.token === 77934) { + nextToken(parser, context); + if ((parser.token & 134217728) === 134217728) { + report(parser, 103); + } + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(tokenValue); + } + exported = parseIdentifier(parser, context, 0); + } + else { + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(parser.tokenValue); + } + exported = local; + } + specifiers.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ExportSpecifier', + local, + exported + })); + if (parser.token !== 1074790415) + consume(parser, context, 18); + } + consume(parser, context, 1074790415); + if (consumeOpt(parser, context, 12404)) { + if (parser.token !== 134283267) + report(parser, 102, 'Export'); + source = parseLiteral(parser, context); + } + else if (scope) { + let i = 0; + let iMax = tmpExportedNames.length; + for (; i < iMax; i++) { + declareUnboundVariable(parser, tmpExportedNames[i]); + } + i = 0; + iMax = tmpExportedBindings.length; + for (; i < iMax; i++) { + addBindingToExports(parser, tmpExportedBindings[i]); + } + } + matchOrInsertSemicolon(parser, context | 32768); + break; + } + case 86096: + declaration = parseClassDeclaration(parser, context, scope, 2, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86106: + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 0, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 241739: + declaration = parseLexicalDeclaration(parser, context, scope, 8, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86092: + declaration = parseLexicalDeclaration(parser, context, scope, 16, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 86090: + declaration = parseVariableStatement(parser, context, scope, 64, parser.tokenPos, parser.linePos, parser.colPos); + break; + case 209007: + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + if ((parser.flags & 1) < 1 && parser.token === 86106) { + declaration = parseFunctionDeclaration(parser, context, scope, 4, 1, 2, 1, tokenPos, linePos, colPos); + if (scope) { + key = declaration.id ? declaration.id.name : ''; + declareUnboundVariable(parser, key); + } + break; + } + default: + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + return finishNode(parser, context, start, line, column, { + type: 'ExportNamedDeclaration', + declaration, + specifiers, + source + }); + } + function parseExpression(parser, context, canAssign, isPattern, inGroup, start, line, column) { + let expr = parsePrimaryExpression(parser, context, 2, 0, canAssign, isPattern, inGroup, 1, start, line, column); + expr = parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + return parseAssignmentExpression(parser, context, inGroup, 0, start, line, column, expr); + } + function parseSequenceExpression(parser, context, inGroup, start, line, column, expr) { + const expressions = [expr]; + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + return finishNode(parser, context, start, line, column, { + type: 'SequenceExpression', + expressions + }); + } + function parseExpressions(parser, context, inGroup, canAssign, start, line, column) { + const expr = parseExpression(parser, context, canAssign, 0, inGroup, start, line, column); + return parser.token === 18 + ? parseSequenceExpression(parser, context, inGroup, start, line, column, expr) + : expr; + } + function parseAssignmentExpression(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + if ((token & 4194304) === 4194304) { + if (parser.assignable & 2) + report(parser, 24); + if ((!isPattern && token === 1077936157 && left.type === 'ArrayExpression') || + left.type === 'ObjectExpression') { + reinterpretToPattern(parser, left); + } + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + } + if ((token & 8454144) === 8454144) { + left = parseBinaryExpression(parser, context, inGroup, start, line, column, 4, token, left); + } + if (consumeOpt(parser, context | 32768, 22)) { + left = parseConditionalExpression(parser, context, left, start, line, column); + } + return left; + } + function parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, start, line, column, left) { + const { token } = parser; + nextToken(parser, context | 32768); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & 255], + right + }); + parser.assignable = 2; + return left; + } + function parseConditionalExpression(parser, context, test, start, line, column) { + const consequent = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | 32768, 21); + parser.assignable = 1; + const alternate = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ConditionalExpression', + test, + consequent, + alternate + }); + } + function parseBinaryExpression(parser, context, inGroup, start, line, column, minPrec, operator, left) { + const bit = -((context & 134217728) > 0) & 8738868; + let t; + let prec; + parser.assignable = 2; + while (parser.token & 8454144) { + t = parser.token; + prec = t & 3840; + if ((t & 524288 && operator & 268435456) || (operator & 524288 && t & 268435456)) { + report(parser, 159); + } + if (prec + ((t === 8457273) << 8) - ((bit === t) << 12) <= minPrec) + break; + nextToken(parser, context | 32768); + left = finishNode(parser, context, start, line, column, { + type: t & 524288 || t & 268435456 ? 'LogicalExpression' : 'BinaryExpression', + left, + right: parseBinaryExpression(parser, context, inGroup, parser.tokenPos, parser.linePos, parser.colPos, prec, t, parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos)), + operator: KeywordDescTable[t & 255] + }); + } + if (parser.token === 1077936157) + report(parser, 24); + return left; + } + function parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup) { + if (!isLHS) + report(parser, 0); + const unaryOperator = parser.token; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + if (context & 1024 && unaryOperator === 16863278) { + if (arg.type === 'Identifier') { + report(parser, 117); + } + else if (isPropertyWithPrivateFieldKey(arg)) { + report(parser, 123); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UnaryExpression', + operator: KeywordDescTable[unaryOperator & 255], + argument: arg, + prefix: true + }); + } + function parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column) { + const { token } = parser; + const expr = parseIdentifier(parser, context, isPattern); + const { flags } = parser; + if ((flags & 1) < 1) { + if (parser.token === 86106) { + return parseFunctionExpression(parser, context, 1, inGroup, start, line, column); + } + if ((parser.token & 143360) === 143360) { + if (!isLHS) + report(parser, 0); + return parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column); + } + } + if (!inNew && parser.token === 67174411) { + return parseAsyncArrowOrCallExpression(parser, context, expr, canAssign, 1, 0, flags, start, line, column); + } + if (parser.token === 10) { + classifyIdentifier(parser, context, token, 1); + if (inNew) + report(parser, 48); + return parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + return expr; + } + function parseYieldExpression(parser, context, inGroup, canAssign, start, line, column) { + if (inGroup) + parser.destructible |= 256; + if (context & 2097152) { + nextToken(parser, context | 32768); + if (context & 8388608) + report(parser, 30); + if (!canAssign) + report(parser, 24); + if (parser.token === 22) + report(parser, 120); + let argument = null; + let delegate = false; + if ((parser.flags & 1) < 1) { + delegate = consumeOpt(parser, context | 32768, 8457014); + if (parser.token & (12288 | 65536) || delegate) { + argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'YieldExpression', + argument, + delegate + }); + } + if (context & 1024) + report(parser, 94, 'yield'); + return parseIdentifierOrArrow(parser, context, start, line, column); + } + function parseAwaitExpression(parser, context, inNew, inGroup, start, line, column) { + if (inGroup) + parser.destructible |= 128; + if (context & 4194304 || (context & 2048 && context & 8192)) { + if (inNew) + report(parser, 0); + if (context & 8388608) { + reportMessageAt(parser.index, parser.line, parser.index, 29); + } + nextToken(parser, context | 32768); + const argument = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.token === 8457273) + report(parser, 31); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'AwaitExpression', + argument + }); + } + if (context & 2048) + report(parser, 95); + return parseIdentifierOrArrow(parser, context, start, line, column); + } + function parseFunctionBody(parser, context, scope, origin, firstRestricted, scopeError) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + const body = []; + const prevContext = context; + if (parser.token !== 1074790415) { + while (parser.token === 134283267) { + const { index, tokenPos, tokenValue, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) { + context |= 1024; + if (parser.flags & 128) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 63); + } + if (parser.flags & 64) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, 8); + } + } + body.push(parseDirective(parser, context, expr, token, tokenPos, parser.linePos, parser.colPos)); + } + if (context & 1024) { + if (firstRestricted) { + if ((firstRestricted & 537079808) === 537079808) { + report(parser, 115); + } + if ((firstRestricted & 36864) === 36864) { + report(parser, 38); + } + } + if (parser.flags & 512) + report(parser, 115); + if (parser.flags & 256) + report(parser, 114); + } + if (context & 64 && + scope && + scopeError !== void 0 && + (prevContext & 1024) < 1 && + (context & 8192) < 1) { + reportScopeError(scopeError); + } + } + parser.flags = + (parser.flags | 512 | 256 | 64) ^ + (512 | 256 | 64); + parser.destructible = (parser.destructible | 256) ^ 256; + while (parser.token !== 1074790415) { + body.push(parseStatementListItem(parser, context, scope, 4, {})); + } + consume(parser, origin & (16 | 8) ? context | 32768 : context, 1074790415); + parser.flags &= ~(128 | 64); + if (parser.token === 1077936157) + report(parser, 24); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'BlockStatement', + body + }); + } + function parseSuperExpression(parser, context, start, line, column) { + nextToken(parser, context); + switch (parser.token) { + case 67108991: + report(parser, 161); + case 67174411: { + if ((context & 524288) < 1) + report(parser, 26); + if (context & 16384) + report(parser, 143); + parser.assignable = 2; + break; + } + case 69271571: + case 67108877: { + if ((context & 262144) < 1) + report(parser, 27); + if (context & 16384) + report(parser, 143); + parser.assignable = 1; + break; + } + default: + report(parser, 28, 'super'); + } + return finishNode(parser, context, start, line, column, { type: 'Super' }); + } + function parseLeftHandSideExpression(parser, context, canAssign, inGroup, isLHS, start, line, column) { + const expression = parsePrimaryExpression(parser, context, 2, 0, canAssign, 0, inGroup, isLHS, start, line, column); + return parseMemberOrUpdateExpression(parser, context, expression, inGroup, 0, start, line, column); + } + function parseUpdateExpression(parser, context, expr, start, line, column) { + if (parser.assignable & 2) + report(parser, 52); + const { token } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: expr, + operator: KeywordDescTable[token & 255], + prefix: false + }); + } + function parseMemberOrUpdateExpression(parser, context, expr, inGroup, inChain, start, line, column) { + if ((parser.token & 33619968) === 33619968 && (parser.flags & 1) < 1) { + expr = parseUpdateExpression(parser, context, expr, start, line, column); + } + else if ((parser.token & 67108864) === 67108864) { + context = (context | 134217728 | 8192) ^ (134217728 | 8192); + switch (parser.token) { + case 67108877: { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }); + break; + } + case 69271571: { + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67174411: { + if ((parser.flags & 1024) === 1024) { + parser.flags = (parser.flags | 1024) ^ 1024; + return expr; + } + let restoreHasOptionalChaining = false; + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + const args = parseArguments(parser, context, inGroup); + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args + }); + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + break; + } + case 67108991: { + nextToken(parser, context); + parser.flags |= 2048; + parser.assignable = 2; + expr = parseOptionalChain(parser, context, expr, start, line, column); + break; + } + default: + if ((parser.flags & 2048) === 2048) { + report(parser, 160); + } + parser.assignable = 2; + expr = finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 1, start, line, column); + } + if (inChain === 0 && (parser.flags & 2048) === 2048) { + parser.flags = (parser.flags | 2048) ^ 2048; + expr = finishNode(parser, context, start, line, column, { + type: 'ChainExpression', + expression: expr + }); + } + return expr; + } + function parseOptionalChain(parser, context, expr, start, line, column) { + let restoreHasOptionalChaining = false; + let node; + if (parser.token === 69271571 || parser.token === 67174411) { + if ((parser.flags & 2048) === 2048) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | 2048) ^ 2048; + } + } + if (parser.token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, 0, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + optional: true, + property + }); + } + else if (parser.token === 67174411) { + const args = parseArguments(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args, + optional: true + }); + } + else { + if ((parser.token & (143360 | 4096)) < 1) + report(parser, 154); + const property = parseIdentifier(parser, context, 0); + parser.assignable = 2; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + optional: true, + property + }); + } + if (restoreHasOptionalChaining) { + parser.flags |= 2048; + } + return node; + } + function parsePropertyOrPrivatePropertyName(parser, context) { + if ((parser.token & (143360 | 4096)) < 1 && parser.token !== 131) { + report(parser, 154); + } + return context & 1 && parser.token === 131 + ? parsePrivateIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + : parseIdentifier(parser, context, 0); + } + function parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column) { + if (inNew) + report(parser, 53); + if (!isLHS) + report(parser, 0); + const { token } = parser; + nextToken(parser, context | 32768); + const arg = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + if (parser.assignable & 2) { + report(parser, 52); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: arg, + operator: KeywordDescTable[token & 255], + prefix: true + }); + } + function parsePrimaryExpression(parser, context, kind, inNew, canAssign, isPattern, inGroup, isLHS, start, line, column) { + if ((parser.token & 143360) === 143360) { + switch (parser.token) { + case 209008: + return parseAwaitExpression(parser, context, inNew, inGroup, start, line, column); + case 241773: + return parseYieldExpression(parser, context, inGroup, canAssign, start, line, column); + case 209007: + return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column); + } + const { token, tokenValue } = parser; + const expr = parseIdentifier(parser, context | 65536, isPattern); + if (parser.token === 10) { + if (!isLHS) + report(parser, 0); + classifyIdentifier(parser, context, token, 1); + return parseArrowFromIdentifier(parser, context, tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + if (context & 16384 && token === 537079928) + report(parser, 126); + if (token === 241739) { + if (context & 1024) + report(parser, 109); + if (kind & (8 | 16)) + report(parser, 97); + } + parser.assignable = + context & 1024 && (token & 537079808) === 537079808 + ? 2 + : 1; + return expr; + } + if ((parser.token & 134217728) === 134217728) { + return parseLiteral(parser, context); + } + switch (parser.token) { + case 33619995: + case 33619996: + return parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column); + case 16863278: + case 16842800: + case 16842801: + case 25233970: + case 25233971: + case 16863277: + case 16863279: + return parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup); + case 86106: + return parseFunctionExpression(parser, context, 0, inGroup, start, line, column); + case 2162700: + return parseObjectLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 69271571: + return parseArrayLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case 67174411: + return parseParenthesizedExpression(parser, context, canAssign, 1, 0, start, line, column); + case 86021: + case 86022: + case 86023: + return parseNullOrTrueOrFalseLiteral(parser, context, start, line, column); + case 86113: + return parseThisExpression(parser, context); + case 65540: + return parseRegExpLiteral(parser, context, start, line, column); + case 133: + case 86096: + return parseClassExpression(parser, context, inGroup, start, line, column); + case 86111: + return parseSuperExpression(parser, context, start, line, column); + case 67174409: + return parseTemplateLiteral(parser, context, start, line, column); + case 67174408: + return parseTemplate(parser, context); + case 86109: + return parseNewExpression(parser, context, inGroup, start, line, column); + case 134283389: + return parseBigIntLiteral(parser, context, start, line, column); + case 131: + return parsePrivateIdentifier(parser, context, start, line, column); + case 86108: + return parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column); + case 8456258: + if (context & 16) + return parseJSXRootElementOrFragment(parser, context, 1, start, line, column); + default: + if (isValidIdentifier(context, parser.token)) + return parseIdentifierOrArrow(parser, context, start, line, column); + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + function parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column) { + let expr = parseIdentifier(parser, context, 0); + if (parser.token === 67108877) { + return parseImportMetaExpression(parser, context, expr, start, line, column); + } + if (inNew) + report(parser, 137); + expr = parseImportExpression(parser, context, inGroup, start, line, column); + parser.assignable = 2; + return parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + } + function parseImportMetaExpression(parser, context, meta, start, line, column) { + if ((context & 2048) === 0) + report(parser, 163); + nextToken(parser, context); + if (parser.token !== 143495 && parser.tokenValue !== 'meta') + report(parser, 28, KeywordDescTable[parser.token & 255]); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property: parseIdentifier(parser, context, 0) + }); + } + function parseImportExpression(parser, context, inGroup, start, line, column) { + consume(parser, context | 32768, 67174411); + if (parser.token === 14) + report(parser, 138); + const source = parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 16); + return finishNode(parser, context, start, line, column, { + type: 'ImportExpression', + source + }); + } + function parseBigIntLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1), + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1) + }); + } + function parseTemplateLiteral(parser, context, start, line, column) { + parser.assignable = 2; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + const quasis = [parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)]; + return finishNode(parser, context, start, line, column, { + type: 'TemplateLiteral', + expressions: [], + quasis + }); + } + function parseTemplate(parser, context) { + context = (context | 134217728) ^ 134217728; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + const quasis = [ + parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false) + ]; + const expressions = [parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)]; + if (parser.token !== 1074790415) + report(parser, 80); + while ((parser.token = scanTemplateTail(parser, context)) !== 67174409) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 67174408); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, false)); + expressions.push(parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + if (parser.token !== 1074790415) + report(parser, 80); + } + { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, 67174409); + quasis.push(parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)); + } + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'TemplateLiteral', + expressions, + quasis + }); + } + function parseTemplateElement(parser, context, cooked, raw, start, line, col, tail) { + const node = finishNode(parser, context, start, line, col, { + type: 'TemplateElement', + value: { + cooked, + raw + }, + tail + }); + const tailSize = tail ? 1 : 2; + if (context & 2) { + node.start += 1; + node.range[0] += 1; + node.end -= tailSize; + node.range[1] -= tailSize; + } + if (context & 4) { + node.loc.start.column += 1; + node.loc.end.column -= tailSize; + } + return node; + } + function parseSpreadElement(parser, context, start, line, column) { + context = (context | 134217728) ^ 134217728; + consume(parser, context | 32768, 14); + const argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = 1; + return finishNode(parser, context, start, line, column, { + type: 'SpreadElement', + argument + }); + } + function parseArguments(parser, context, inGroup) { + nextToken(parser, context | 32768); + const args = []; + if (parser.token === 16) { + nextToken(parser, context); + return args; + } + while (parser.token !== 16) { + if (parser.token === 14) { + args.push(parseSpreadElement(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + else { + args.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + if (parser.token !== 18) + break; + nextToken(parser, context | 32768); + if (parser.token === 16) + break; + } + consume(parser, context, 16); + return args; + } + function parseIdentifier(parser, context, isPattern) { + const { tokenValue, tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + return finishNode(parser, context, tokenPos, linePos, colPos, context & 268435456 + ? { + type: 'Identifier', + name: tokenValue, + pattern: isPattern === 1 + } + : { + type: 'Identifier', + name: tokenValue + }); + } + function parseLiteral(parser, context) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + if (parser.token === 134283389) { + return parseBigIntLiteral(parser, context, tokenPos, linePos, colPos); + } + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, context & 512 + ? { + type: 'Literal', + value: tokenValue, + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue + }); + } + function parseNullOrTrueOrFalseLiteral(parser, context, start, line, column) { + const raw = KeywordDescTable[parser.token & 255]; + const value = parser.token === 86023 ? null : raw === 'true'; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 512 + ? { + type: 'Literal', + value, + raw + } + : { + type: 'Literal', + value + }); + } + function parseThisExpression(parser, context) { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + parser.assignable = 2; + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ThisExpression' + }); + } + function parseFunctionDeclaration(parser, context, scope, origin, allowGen, flags, isAsync, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = allowGen ? optionalBit(parser, context, 8457014) : 0; + let id = null; + let firstRestricted; + let functionScope = scope ? createScope() : void 0; + if (parser.token === 67174411) { + if ((flags & 1) < 1) + report(parser, 37, 'Function'); + } + else { + const kind = origin & 4 && ((context & 8192) < 1 || (context & 2048) < 1) + ? 4 + : 64; + validateFunctionName(parser, context | ((context & 3072) << 11), parser.token); + if (scope) { + if (kind & 4) { + addVarName(parser, context, scope, parser.tokenValue, kind); + } + else { + addBlockName(parser, context, scope, parser.tokenValue, kind, origin); + } + functionScope = addChildScope(functionScope, 256); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, parser.tokenValue); + } + } + } + firstRestricted = parser.token; + if (parser.token & 143360) { + id = parseIdentifier(parser, context, 0); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + ((isAsync * 2 + isGenerator) << 21) | + (isGenerator ? 0 : 1073741824); + if (scope) + functionScope = addChildScope(functionScope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, functionScope, 0, 1); + const body = parseFunctionBody(parser, (context | 8192 | 4096 | 131072) ^ + (8192 | 4096 | 131072), scope ? addChildScope(functionScope, 128) : functionScope, 8, firstRestricted, scope ? functionScope.scopeError : void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionDeclaration', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); + } + function parseFunctionExpression(parser, context, isAsync, inGroup, start, line, column) { + nextToken(parser, context | 32768); + const isGenerator = optionalBit(parser, context, 8457014); + const generatorAndAsyncFlags = (isAsync * 2 + isGenerator) << 21; + let id = null; + let firstRestricted; + let scope = context & 64 ? createScope() : void 0; + if ((parser.token & (143360 | 4096 | 36864)) > 0) { + validateFunctionName(parser, ((context | 0x1ec0000) ^ 0x1ec0000) | generatorAndAsyncFlags, parser.token); + if (scope) + scope = addChildScope(scope, 256); + firstRestricted = parser.token; + id = parseIdentifier(parser, context, 0); + } + context = + ((context | 32243712) ^ 32243712) | + 67108864 | + generatorAndAsyncFlags | + (isGenerator ? 0 : 1073741824); + if (scope) + scope = addChildScope(scope, 512); + const params = parseFormalParametersOrFormalList(parser, context | 8388608, scope, inGroup, 1); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192 | 4096 | 131072 | 16384), scope ? addChildScope(scope, 128) : scope, 0, firstRestricted, void 0); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); + } + function parseArrayLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseArrayExpressionOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; + } + function parseArrayExpressionOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context | 32768); + const elements = []; + let destructible = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 20) { + if (consumeOpt(parser, context | 32768, 18)) { + elements.push(null); + } + else { + let left; + const { token, tokenPos, linePos, colPos, tokenValue } = parser; + if (token & 143360) { + left = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + if (parser.token === 1077936157) { + if (parser.assignable & 2) + report(parser, 24); + nextToken(parser, context | 32768); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : { + type: 'AssignmentExpression', + operator: '=', + left, + right + }); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + } + else { + destructible |= + kind & 1 + ? 32 + : (kind & 2) < 1 + ? 16 + : 0; + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + if (parser.token !== 1077936157) + destructible |= 16; + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token & 2097152) { + left = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + parser.assignable = + parser.destructible & 16 + ? 2 + : 1; + if (parser.token === 18 || parser.token === 20) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } + else if (parser.token !== 1077936157) { + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else if (token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 20, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos); + destructible |= parser.destructible; + if (parser.token !== 18 && parser.token !== 20) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + left = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== 20) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + if ((kind & (2 | 1)) < 1 && token === 67174411) + destructible |= 16; + } + else if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === 67174411) { + destructible |= + parser.assignable & 1 && kind & (2 | 1) + ? 32 + : 16; + } + } + elements.push(left); + if (consumeOpt(parser, context | 32768, 18)) { + if (parser.token === 20) + break; + } + else + break; + } + } + consume(parser, context, 20); + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ArrayPattern' : 'ArrayExpression', + elements + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; + } + function parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node) { + if (parser.token !== 1077936157) + report(parser, 24); + nextToken(parser, context | 32768); + if (destructible & 16) + report(parser, 24); + if (!isPattern) + reinterpretToPattern(parser, node); + const { tokenPos, linePos, colPos } = parser; + const right = parseExpression(parser, context, 1, 1, inGroup, tokenPos, linePos, colPos); + parser.destructible = + ((destructible | 64 | 8) ^ + (8 | 64)) | + (parser.destructible & 128 ? 128 : 0) | + (parser.destructible & 256 ? 256 : 0); + return finishNode(parser, context, start, line, column, isPattern + ? { + type: 'AssignmentPattern', + left: node, + right + } + : { + type: 'AssignmentExpression', + left: node, + operator: '=', + right + }); + } + function parseSpreadOrRestElement(parser, context, scope, closingToken, kind, origin, isAsync, inGroup, isPattern, start, line, column) { + nextToken(parser, context | 32768); + let argument = null; + let destructible = 0; + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + if (token & (4096 | 143360)) { + parser.assignable = 1; + argument = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + token = parser.token; + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token !== 18 && parser.token !== closingToken) { + if (parser.assignable & 2 && parser.token === 1077936157) + report(parser, 68); + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token === closingToken || token === 18) { + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + else { + destructible |= 32; + } + destructible |= parser.destructible & 128 ? 128 : 0; + } + else if (token === closingToken) { + report(parser, 39); + } + else if (token & 2097152) { + argument = + parser.token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + token = parser.token; + if (token !== 1077936157 && token !== closingToken && token !== 18) { + if (parser.destructible & 8) + report(parser, 68); + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + destructible |= parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + else { + if ((parser.token & 8454144) === 8454144) { + argument = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, argument); + } + if (consumeOpt(parser, context | 32768, 22)) { + argument = parseConditionalExpression(parser, context, argument, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + else { + destructible |= + closingToken === 1074790415 && token !== 1077936157 + ? 16 + : parser.destructible; + } + } + else { + destructible |= 32; + argument = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos); + const { token, tokenPos, linePos, colPos } = parser; + if (token === 1077936157 && token !== closingToken && token !== 18) { + if (parser.assignable & 2) + report(parser, 24); + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + destructible |= 16; + } + else { + if (token === 18) { + destructible |= 16; + } + else if (token !== closingToken) { + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + destructible |= + parser.assignable & 1 ? 32 : 16; + } + parser.destructible = destructible; + if (parser.token !== closingToken && parser.token !== 18) + report(parser, 155); + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + if (parser.token !== closingToken) { + if (kind & 1) + destructible |= isAsync ? 16 : 32; + if (consumeOpt(parser, context | 32768, 1077936157)) { + if (destructible & 16) + report(parser, 24); + reinterpretToPattern(parser, argument); + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + argument = finishNode(parser, context, tokenPos, linePos, colPos, isPattern + ? { + type: 'AssignmentPattern', + left: argument, + right + } + : { + type: 'AssignmentExpression', + left: argument, + operator: '=', + right + }); + destructible = 16; + } + else { + destructible |= 16; + } + } + parser.destructible = destructible; + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument + }); + } + function parseMethodDefinition(parser, context, kind, inGroup, start, line, column) { + const modifierFlags = (kind & 64) < 1 ? 31981568 : 14680064; + context = + ((context | modifierFlags) ^ modifierFlags) | + ((kind & 88) << 18) | + 100925440; + let scope = context & 64 ? addChildScope(createScope(), 512) : void 0; + const params = parseMethodFormals(parser, context | 8388608, scope, kind, 1, inGroup); + if (scope) + scope = addChildScope(scope, 128); + const body = parseFunctionBody(parser, context & ~(0x8001000 | 8192), scope, 0, void 0, void 0); + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + params, + body, + async: (kind & 16) > 0, + generator: (kind & 8) > 0, + id: null + }); + } + function parseObjectLiteral(parser, context, skipInitializer, inGroup, start, line, column) { + const expr = parseObjectLiteralOrPattern(parser, context, void 0, skipInitializer, inGroup, 0, 2, 0, start, line, column); + if (context & 256 && parser.destructible & 64) { + report(parser, 60); + } + if (parser.destructible & 8) { + report(parser, 59); + } + return expr; + } + function parseObjectLiteralOrPattern(parser, context, scope, skipInitializer, inGroup, isPattern, kind, origin, start, line, column) { + nextToken(parser, context); + const properties = []; + let destructible = 0; + let prototypeCount = 0; + context = (context | 134217728) ^ 134217728; + while (parser.token !== 1074790415) { + const { token, tokenValue, linePos, colPos, tokenPos } = parser; + if (token === 14) { + properties.push(parseSpreadOrRestElement(parser, context, scope, 1074790415, kind, origin, 0, inGroup, isPattern, tokenPos, linePos, colPos)); + } + else { + let state = 0; + let key = null; + let value; + const t = parser.token; + if (parser.token & (143360 | 4096) || parser.token === 121) { + key = parseIdentifier(parser, context, 0); + if (parser.token === 18 || parser.token === 1074790415 || parser.token === 1077936157) { + state |= 4; + if (context & 1024 && (token & 537079808) === 537079808) { + destructible |= 16; + } + else { + validateBindingIdentifier(parser, context, kind, token, 0); + } + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + if (consumeOpt(parser, context | 32768, 1077936157)) { + destructible |= 8; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + value = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: context & -2147483648 ? Object.assign({}, key) : key, + right + }); + } + else { + destructible |= + (token === 209008 ? 128 : 0) | + (token === 121 ? 16 : 0); + value = context & -2147483648 ? Object.assign({}, key) : key; + } + } + else if (consumeOpt(parser, context | 32768, 21)) { + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + const tokenAfterColon = parser.token; + const valueAfterColon = parser.tokenValue; + destructible |= t === 121 ? 16 : 0; + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + destructible |= parser.destructible & 128 ? 128 : 0; + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if ((parser.token & 4194304) === 4194304) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (token !== 1077936157) { + destructible |= 32; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (parser.destructible & 8) { + report(parser, 68); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if (parser.token !== 18 && token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 69271571) { + destructible |= 16; + if (token === 209007) + state |= 16; + state |= + (token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1) | 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token & (143360 | 4096)) { + destructible |= 16; + if (token === 121) + report(parser, 92); + if (token === 209007) { + if (parser.flags & 1) + report(parser, 128); + state |= 16; + } + key = parseIdentifier(parser, context, 0); + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 67174411) { + destructible |= 16; + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if (parser.token === 8457014) { + destructible |= 16; + if (token === 12402 || token === 12403) { + report(parser, 40); + } + else if (token === 143483) { + report(parser, 92); + } + nextToken(parser, context); + state |= + 8 | 1 | (token === 209007 ? 16 : 0); + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + state |= 2; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else if ((parser.token & 134217728) === 134217728) { + if (token === 209007) + state |= 16; + state |= + token === 12402 + ? 256 + : token === 12403 + ? 512 + : 1; + destructible |= 16; + key = parseLiteral(parser, context); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 129); + } + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + if (parser.token === 21) { + consume(parser, context | 32768, 21); + const { tokenPos, linePos, colPos } = parser; + if (tokenValue === '__proto__') + prototypeCount++; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token, tokenValue: valueAfterColon } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else if (parser.token === 1077936157) { + if (parser.assignable & 2) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else if ((parser.destructible & 8) !== 8) { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 2 ? 16 : 0; + if ((parser.token & 4194304) === 4194304) { + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) { + destructible |= 16; + } + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + destructible = parser.assignable | 16; + } + else { + report(parser, 130); + } + } + else if (parser.token === 69271571) { + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.destructible & 256 ? 256 : 0; + state |= 2; + if (parser.token === 21) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos, tokenValue, token: tokenAfterColon } = parser; + if (parser.token & 143360) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + const { token } = parser; + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + if ((parser.token & 4194304) === 4194304) { + destructible |= + parser.assignable & 2 + ? 16 + : token === 1077936157 + ? 0 + : 32; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else if (parser.token === 18 || parser.token === 1074790415) { + if (token === 1077936157 || token === 1074790415 || token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + } + else if (scope && (tokenAfterColon & 143360) === 143360) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + } + else { + destructible |= + parser.assignable & 1 + ? 32 + : 16; + } + } + else { + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + else if ((parser.token & 2097152) === 2097152) { + value = + parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos) + : parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, isPattern, kind, origin, tokenPos, linePos, colPos); + destructible = parser.destructible; + parser.assignable = + destructible & 16 ? 2 : 1; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else if (destructible & 8) { + report(parser, 59); + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = + parser.assignable & 2 ? destructible | 16 : 0; + if ((parser.token & 4194304) === 4194304) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpressionOrPattern(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + else { + if ((parser.token & 8454144) === 8454144) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | 32768, 22)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & 2 + ? 16 + : 32; + } + } + } + else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + destructible |= + parser.assignable & 1 + ? 32 + : 16; + if (parser.token === 18 || parser.token === 1074790415) { + if (parser.assignable & 2) + destructible |= 16; + } + else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & 1 ? 0 : 16; + if (parser.token !== 18 && parser.token !== 1074790415) { + if (parser.token !== 1077936157) + destructible |= 16; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } + } + } + else if (parser.token === 67174411) { + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, linePos, colPos); + destructible = 16; + } + else { + report(parser, 41); + } + } + else if (token === 8457014) { + consume(parser, context | 32768, 8457014); + state |= 8; + if (parser.token & 143360) { + const { token, line, index } = parser; + key = parseIdentifier(parser, context, 0); + state |= 1; + if (parser.token === 67174411) { + destructible |= 16; + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + reportMessageAt(index, line, index, token === 209007 + ? 43 + : token === 12402 || parser.token === 12403 + ? 42 + : 44, KeywordDescTable[token & 255]); + } + } + else if ((parser.token & 134217728) === 134217728) { + destructible |= 16; + key = parseLiteral(parser, context); + state |= 1; + value = parseMethodDefinition(parser, context, state, inGroup, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + destructible |= 16; + state |= 2 | 1; + key = parseComputedPropertyName(parser, context, inGroup); + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + report(parser, 122); + } + } + else { + report(parser, 28, KeywordDescTable[token & 255]); + } + destructible |= parser.destructible & 128 ? 128 : 0; + parser.destructible = destructible; + properties.push(finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'Property', + key: key, + value, + kind: !(state & 768) ? 'init' : state & 512 ? 'set' : 'get', + computed: (state & 2) > 0, + method: (state & 1) > 0, + shorthand: (state & 4) > 0 + })); + } + destructible |= parser.destructible; + if (parser.token !== 18) + break; + nextToken(parser, context); + } + consume(parser, context, 1074790415); + if (prototypeCount > 1) + destructible |= 64; + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ObjectPattern' : 'ObjectExpression', + properties + }); + if (!skipInitializer && parser.token & 4194304) { + return parseArrayOrObjectAssignmentPattern(parser, context, destructible, inGroup, isPattern, start, line, column, node); + } + parser.destructible = destructible; + return node; + } + function parseMethodFormals(parser, context, scope, kind, type, inGroup) { + consume(parser, context, 67174411); + const params = []; + parser.flags = (parser.flags | 128) ^ 128; + if (parser.token === 16) { + if (kind & 512) { + report(parser, 35, 'Setter', 'one', ''); + } + nextToken(parser, context); + return params; + } + if (kind & 256) { + report(parser, 35, 'Getter', 'no', 's'); + } + if (kind & 512 && parser.token === 14) { + report(parser, 36); + } + context = (context | 134217728) ^ 134217728; + let setterArgs = 0; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left = null; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, type, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, type, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) + report(parser, 47); + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: left, + right + }); + } + setterArgs++; + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (kind & 512 && setterArgs !== 1) { + report(parser, 35, 'Setter', 'one', ''); + } + if (scope && scope.scopeError !== void 0) + reportScopeError(scope.scopeError); + if (isSimpleParameterList) + parser.flags |= 128; + consume(parser, context, 16); + return params; + } + function parseComputedPropertyName(parser, context, inGroup) { + nextToken(parser, context | 32768); + const key = parseExpression(parser, (context | 134217728) ^ 134217728, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 20); + return key; + } + function parseParenthesizedExpression(parser, context, canAssign, kind, origin, start, line, column) { + parser.flags = (parser.flags | 128) ^ 128; + const { tokenPos: piStart, linePos: plStart, colPos: pcStart } = parser; + nextToken(parser, context | 32768 | 1073741824); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 0, start, line, column); + } + let destructible = 0; + parser.destructible &= ~(256 | 128); + let expr; + let expressions = []; + let isSequence = 0; + let isSimpleParameterList = 0; + const { tokenPos: iStart, linePos: lStart, colPos: cStart } = parser; + parser.assignable = 1; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, 1, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808 || + (token & 36864) === 36864) { + isSimpleParameterList = 1; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if ((token & 2097152) === 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context | 1073741824, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + parser.assignable = 2; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 0, 1, 0, tokenPos, linePos, colPos); + if (parser.destructible & 16) + report(parser, 71); + isSimpleParameterList = 1; + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + destructible |= 8; + break; + } + else { + destructible |= 16; + expr = parseExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (parser.token === 18) { + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + } + if (isSequence) { + while (consumeOpt(parser, context | 32768, 18)) { + expressions.push(parseExpression(parser, context, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + } + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + parser.destructible = destructible; + return expr; + } + if (isSequence && (parser.token === 16 || parser.token === 18)) { + expressions.push(expr); + } + if (!consumeOpt(parser, context | 32768, 18)) + break; + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + if (parser.token === 16) { + destructible |= 8; + break; + } + } + if (isSequence) { + parser.assignable = 2; + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + consume(parser, context, 16); + if (destructible & 16 && destructible & 8) + report(parser, 145); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 46); + if (context & (4194304 | 2048) && destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) { + report(parser, 30); + } + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, isSequence ? expressions : [expr], canAssign, 0, start, line, column); + } + else if (destructible & 8) { + report(parser, 139); + } + parser.destructible = ((parser.destructible | 256) ^ 256) | destructible; + return context & 128 + ? finishNode(parser, context, piStart, plStart, pcStart, { + type: 'ParenthesizedExpression', + expression: expr + }) + : expr; + } + function parseIdentifierOrArrow(parser, context, start, line, column) { + const { tokenValue } = parser; + const expr = parseIdentifier(parser, context, 0); + parser.assignable = 1; + if (parser.token === 10) { + let scope = void 0; + if (context & 64) + scope = createArrowHeadParsingScope(parser, context, tokenValue); + parser.flags = (parser.flags | 128) ^ 128; + return parseArrowFunctionExpression(parser, context, scope, [expr], 0, start, line, column); + } + return expr; + } + function parseArrowFromIdentifier(parser, context, value, expr, inNew, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + if (inNew) + report(parser, 48); + parser.flags &= ~128; + const scope = context & 64 ? createArrowHeadParsingScope(parser, context, value) : void 0; + return parseArrowFunctionExpression(parser, context, scope, [expr], isAsync, start, line, column); + } + function parseParenthesizedArrow(parser, context, scope, params, canAssign, isAsync, start, line, column) { + if (!canAssign) + report(parser, 54); + for (let i = 0; i < params.length; ++i) + reinterpretToPattern(parser, params[i]); + return parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column); + } + function parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column) { + if (parser.flags & 1) + report(parser, 45); + consume(parser, context | 32768, 10); + context = ((context | 15728640) ^ 15728640) | (isAsync << 22); + const expression = parser.token !== 2162700; + let body; + if (scope && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + if (expression) { + body = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + else { + if (scope) + scope = addChildScope(scope, 128); + body = parseFunctionBody(parser, (context | 134221824 | 8192 | 16384) ^ + (134221824 | 8192 | 16384), scope, 16, void 0, void 0); + switch (parser.token) { + case 69271571: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + break; + case 67108877: + case 67174409: + case 22: + report(parser, 113); + case 67174411: + if ((parser.flags & 1) < 1) { + report(parser, 112); + } + parser.flags |= 1024; + break; + } + if ((parser.token & 8454144) === 8454144 && (parser.flags & 1) < 1) + report(parser, 28, KeywordDescTable[parser.token & 255]); + if ((parser.token & 33619968) === 33619968) + report(parser, 121); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'ArrowFunctionExpression', + params, + body, + async: isAsync === 1, + expression + }); + } + function parseFormalParametersOrFormalList(parser, context, scope, inGroup, kind) { + consume(parser, context, 67174411); + parser.flags = (parser.flags | 128) ^ 128; + const params = []; + if (consumeOpt(parser, context, 16)) + return params; + context = (context | 134217728) ^ 134217728; + let isSimpleParameterList = 0; + while (parser.token !== 18) { + let left; + const { tokenPos, linePos, colPos } = parser; + if (parser.token & 143360) { + if ((context & 1024) < 1) { + if ((parser.token & 36864) === 36864) { + parser.flags |= 256; + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + } + left = parseAndClassifyIdentifier(parser, context, scope, kind | 1, 0, tokenPos, linePos, colPos); + } + else { + if (parser.token === 2162700) { + left = parseObjectLiteralOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 69271571) { + left = parseArrayExpressionOrPattern(parser, context, scope, 1, inGroup, 1, kind, 0, tokenPos, linePos, colPos); + } + else if (parser.token === 14) { + left = parseSpreadOrRestElement(parser, context, scope, 16, kind, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + isSimpleParameterList = 1; + if (parser.destructible & (32 | 16)) { + report(parser, 47); + } + } + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + isSimpleParameterList = 1; + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left, + right + }); + } + params.push(left); + if (!consumeOpt(parser, context, 18)) + break; + if (parser.token === 16) { + break; + } + } + if (isSimpleParameterList) + parser.flags |= 128; + if (scope && (isSimpleParameterList || context & 1024) && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + consume(parser, context, 16); + return params; + } + function parseMembeExpressionNoCall(parser, context, expr, inGroup, start, line, column) { + const { token } = parser; + if (token & 67108864) { + if (token === 67108877) { + nextToken(parser, context | 1073741824); + parser.assignable = 1; + const property = parsePropertyOrPrivatePropertyName(parser, context); + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }), 0, start, line, column); + } + else if (token === 69271571) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + consume(parser, context, 20); + parser.assignable = 1; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }), 0, start, line, column); + } + else if (token === 67174408 || token === 67174409) { + parser.assignable = 2; + return parseMembeExpressionNoCall(parser, context, finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: parser.token === 67174408 + ? parseTemplate(parser, context | 65536) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }), 0, start, line, column); + } + } + return expr; + } + function parseNewExpression(parser, context, inGroup, start, line, column) { + const id = parseIdentifier(parser, context | 32768, 0); + const { tokenPos, linePos, colPos } = parser; + if (consumeOpt(parser, context, 67108877)) { + if (context & 67108864 && parser.token === 143494) { + parser.assignable = 2; + return parseMetaProperty(parser, context, id, start, line, column); + } + report(parser, 91); + } + parser.assignable = 2; + if ((parser.token & 16842752) === 16842752) { + report(parser, 62, KeywordDescTable[parser.token & 255]); + } + const expr = parsePrimaryExpression(parser, context, 2, 1, 0, 0, inGroup, 1, tokenPos, linePos, colPos); + context = (context | 134217728) ^ 134217728; + if (parser.token === 67108991) + report(parser, 162); + const callee = parseMembeExpressionNoCall(parser, context, expr, inGroup, tokenPos, linePos, colPos); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'NewExpression', + callee, + arguments: parser.token === 67174411 ? parseArguments(parser, context, inGroup) : [] + }); + } + function parseMetaProperty(parser, context, meta, start, line, column) { + const property = parseIdentifier(parser, context, 0); + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property + }); + } + function parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column) { + if (parser.token === 209008) + report(parser, 29); + if (context & (1024 | 2097152) && parser.token === 241773) { + report(parser, 30); + } + if ((parser.token & 537079808) === 537079808) { + parser.flags |= 512; + } + return parseArrowFromIdentifier(parser, context, parser.tokenValue, parseIdentifier(parser, context, 0), 0, canAssign, 1, start, line, column); + } + function parseAsyncArrowOrCallExpression(parser, context, callee, canAssign, kind, origin, flags, start, line, column) { + nextToken(parser, context | 32768); + const scope = context & 64 ? addChildScope(createScope(), 1024) : void 0; + context = (context | 134217728) ^ 134217728; + if (consumeOpt(parser, context, 16)) { + if (parser.token === 10) { + if (flags & 1) + report(parser, 45); + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 1, start, line, column); + } + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: [] + }); + } + let destructible = 0; + let expr = null; + let isSimpleParameterList = 0; + parser.destructible = + (parser.destructible | 256 | 128) ^ + (256 | 128); + const params = []; + while (parser.token !== 16) { + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 4096)) { + if (scope) + addBlockName(parser, context, scope, parser.tokenValue, kind, 0); + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + if (parser.token === 16 || parser.token === 18) { + if (parser.assignable & 2) { + destructible |= 16; + isSimpleParameterList = 1; + } + else if ((token & 537079808) === 537079808) { + parser.flags |= 512; + } + else if ((token & 36864) === 36864) { + parser.flags |= 256; + } + } + else { + if (parser.token === 1077936157) { + isSimpleParameterList = 1; + } + else { + destructible |= 16; + } + expr = parseMemberOrUpdateExpression(parser, context, expr, 1, 0, tokenPos, linePos, colPos); + if (parser.token !== 16 && parser.token !== 18) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } + else if (token & 2097152) { + expr = + token === 2162700 + ? parseObjectLiteralOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + destructible |= parser.destructible; + isSimpleParameterList = 1; + if (parser.token !== 16 && parser.token !== 18) { + if (destructible & 8) + report(parser, 118); + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + destructible |= 16; + if ((parser.token & 8454144) === 8454144) { + expr = parseBinaryExpression(parser, context, 1, start, line, column, 4, token, expr); + } + if (consumeOpt(parser, context | 32768, 22)) { + expr = parseConditionalExpression(parser, context, expr, start, line, column); + } + } + } + else if (token === 14) { + expr = parseSpreadOrRestElement(parser, context, scope, 16, kind, origin, 1, 1, 0, tokenPos, linePos, colPos); + destructible |= (parser.token === 16 ? 0 : 16) | parser.destructible; + isSimpleParameterList = 1; + } + else { + expr = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + destructible = parser.assignable; + params.push(expr); + while (consumeOpt(parser, context | 32768, 18)) { + params.push(parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos)); + } + destructible |= parser.assignable; + consume(parser, context, 16); + parser.destructible = destructible | 16; + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + params.push(expr); + if (!consumeOpt(parser, context | 32768, 18)) + break; + } + consume(parser, context, 16); + destructible |= + parser.destructible & 256 + ? 256 + : 0 | (parser.destructible & 128) + ? 128 + : 0; + if (parser.token === 10) { + if (destructible & (32 | 16)) + report(parser, 25); + if (parser.flags & 1 || flags & 1) + report(parser, 45); + if (destructible & 128) + report(parser, 29); + if (context & (1024 | 2097152) && destructible & 256) + report(parser, 30); + if (isSimpleParameterList) + parser.flags |= 128; + return parseParenthesizedArrow(parser, context, scope, params, canAssign, 1, start, line, column); + } + else if (destructible & 8) { + report(parser, 59); + } + parser.assignable = 2; + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + function parseRegExpLiteral(parser, context, start, line, column) { + const { tokenRaw, tokenRegExp, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = 2; + return context & 512 + ? finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp, + raw: tokenRaw + }) + : finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp + }); + } + function parseClassDeclaration(parser, context, scope, flags, start, line, column) { + context = (context | 16777216 | 1024) ^ 16777216; + let decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + if (parser.leadingDecorators.length) { + parser.leadingDecorators.push(...decorators); + decorators = parser.leadingDecorators; + parser.leadingDecorators = []; + } + nextToken(parser, context); + let id = null; + let superClass = null; + const { tokenValue } = parser; + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) { + report(parser, 114); + } + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + if (scope) { + addBlockName(parser, context, scope, tokenValue, 32, 0); + if (flags) { + if (flags & 2) { + declareUnboundVariable(parser, tokenValue); + } + } + } + id = parseIdentifier(parser, context, 0); + } + else { + if ((flags & 1) < 1) + report(parser, 37, 'Class'); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, scope, 2, 8, 0); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassDeclaration', + id, + superClass, + decorators, + body + } + : { + type: 'ClassDeclaration', + id, + superClass, + body + }); + } + function parseClassExpression(parser, context, inGroup, start, line, column) { + let id = null; + let superClass = null; + context = (context | 1024 | 16777216) ^ 16777216; + const decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + nextToken(parser, context); + if (parser.token & 4096 && parser.token !== 20567) { + if (isStrictReservedWord(parser, context, parser.token)) + report(parser, 114); + if ((parser.token & 537079808) === 537079808) { + report(parser, 115); + } + id = parseIdentifier(parser, context, 0); + } + let inheritedContext = context; + if (consumeOpt(parser, context | 32768, 20567)) { + superClass = parseLeftHandSideExpression(parser, context, 0, inGroup, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= 524288; + } + else { + inheritedContext = (inheritedContext | 524288) ^ 524288; + } + const body = parseClassBody(parser, inheritedContext, context, void 0, 2, 0, inGroup); + parser.assignable = 2; + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'ClassExpression', + id, + superClass, + decorators, + body + } + : { + type: 'ClassExpression', + id, + superClass, + body + }); + } + function parseDecorators(parser, context) { + const list = []; + if (context & 1) { + while (parser.token === 133) { + list.push(parseDecoratorList(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + } + return list; + } + function parseDecoratorList(parser, context, start, line, column) { + nextToken(parser, context | 32768); + let expression = parsePrimaryExpression(parser, context, 2, 0, 1, 0, 0, 1, start, line, column); + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + return finishNode(parser, context, start, line, column, { + type: 'Decorator', + expression + }); + } + function parseClassBody(parser, context, inheritedContext, scope, kind, origin, inGroup) { + const { tokenPos, linePos, colPos } = parser; + consume(parser, context | 32768, 2162700); + context = (context | 134217728) ^ 134217728; + parser.flags = (parser.flags | 32) ^ 32; + const body = []; + let decorators; + while (parser.token !== 1074790415) { + let length = 0; + decorators = parseDecorators(parser, context); + length = decorators.length; + if (length > 0 && parser.tokenValue === 'constructor') { + report(parser, 106); + } + if (parser.token === 1074790415) + report(parser, 105); + if (consumeOpt(parser, context, 1074790417)) { + if (length > 0) + report(parser, 116); + continue; + } + body.push(parseClassElementList(parser, context, scope, inheritedContext, kind, decorators, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + consume(parser, origin & 8 ? context | 32768 : context, 1074790415); + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ClassBody', + body + }); + } + function parseClassElementList(parser, context, scope, inheritedContext, type, decorators, isStatic, inGroup, start, line, column) { + let kind = isStatic ? 32 : 0; + let key = null; + const { token, tokenPos, linePos, colPos } = parser; + if (token & (143360 | 36864)) { + key = parseIdentifier(parser, context, 0); + switch (token) { + case 36972: + if (!isStatic && parser.token !== 67174411) { + return parseClassElementList(parser, context, scope, inheritedContext, type, decorators, 1, inGroup, start, line, column); + } + break; + case 209007: + if (parser.token !== 67174411 && (parser.flags & 1) < 1) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 16 | (optionalBit(parser, context, 8457014) ? 8 : 0); + } + break; + case 12402: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 256; + } + break; + case 12403: + if (parser.token !== 67174411) { + if (context & 1 && (parser.token & 1073741824) === 1073741824) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= 512; + } + break; + } + } + else if (token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, inheritedContext, inGroup); + } + else if ((token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (token === 8457014) { + kind |= 8; + nextToken(parser, context); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + context = context | 16384; + } + else if (context & 1 && (parser.token & 1073741824) === 1073741824) { + kind |= 128; + context = context | 16384; + } + else if (token === 122) { + key = parseIdentifier(parser, context, 0); + if (parser.token !== 67174411) + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + else { + report(parser, 28, KeywordDescTable[parser.token & 255]); + } + if (kind & (8 | 16 | 768)) { + if (parser.token & 143360) { + key = parseIdentifier(parser, context, 0); + } + else if ((parser.token & 134217728) === 134217728) { + key = parseLiteral(parser, context); + } + else if (parser.token === 69271571) { + kind |= 2; + key = parseComputedPropertyName(parser, context, 0); + } + else if (parser.token === 122) { + key = parseIdentifier(parser, context, 0); + } + else if (context & 1 && parser.token === 131) { + kind |= 4096; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + } + else + report(parser, 131); + } + if ((kind & 2) < 1) { + if (parser.tokenValue === 'constructor') { + if ((parser.token & 1073741824) === 1073741824) { + report(parser, 125); + } + else if ((kind & 32) < 1 && parser.token === 67174411) { + if (kind & (768 | 16 | 128 | 8)) { + report(parser, 50, 'accessor'); + } + else if ((context & 524288) < 1) { + if (parser.flags & 32) + report(parser, 51); + else + parser.flags |= 32; + } + } + kind |= 64; + } + else if ((kind & 4096) < 1 && + kind & (32 | 768 | 8 | 16) && + parser.tokenValue === 'prototype') { + report(parser, 49); + } + } + if (context & 1 && parser.token !== 67174411) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + const value = parseMethodDefinition(parser, context, kind, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, context & 1 + ? { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + decorators, + value + } + : { + type: 'MethodDefinition', + kind: (kind & 32) < 1 && kind & 64 + ? 'constructor' + : kind & 256 + ? 'get' + : kind & 512 + ? 'set' + : 'method', + static: (kind & 32) > 0, + computed: (kind & 2) > 0, + key, + value + }); + } + function parsePrivateIdentifier(parser, context, start, line, column) { + nextToken(parser, context); + const { tokenValue } = parser; + if (tokenValue === 'constructor') + report(parser, 124); + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'PrivateIdentifier', + name: tokenValue + }); + } + function parsePropertyDefinition(parser, context, key, state, decorators, start, line, column) { + let value = null; + if (state & 8) + report(parser, 0); + if (parser.token === 1077936157) { + nextToken(parser, context | 32768); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 537079928) + report(parser, 115); + value = parsePrimaryExpression(parser, context | 16384, 2, 0, 1, 0, 0, 1, tokenPos, linePos, colPos); + if ((parser.token & 1073741824) !== 1073741824) { + value = parseMemberOrUpdateExpression(parser, context | 16384, value, 0, 0, tokenPos, linePos, colPos); + value = parseAssignmentExpression(parser, context | 16384, 0, 0, tokenPos, linePos, colPos, value); + if (parser.token === 18) { + value = parseSequenceExpression(parser, context, 0, start, line, column, value); + } + } + } + return finishNode(parser, context, start, line, column, { + type: 'PropertyDefinition', + key, + value, + static: (state & 32) > 0, + computed: (state & 2) > 0, + decorators + }); + } + function parseBindingPattern(parser, context, scope, type, origin, start, line, column) { + if (parser.token & 143360) + return parseAndClassifyIdentifier(parser, context, scope, type, origin, start, line, column); + if ((parser.token & 2097152) !== 2097152) + report(parser, 28, KeywordDescTable[parser.token & 255]); + const left = parser.token === 69271571 + ? parseArrayExpressionOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column) + : parseObjectLiteralOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column); + if (parser.destructible & 16) + report(parser, 47); + if (parser.destructible & 32) + report(parser, 47); + return left; + } + function parseAndClassifyIdentifier(parser, context, scope, kind, origin, start, line, column) { + const { tokenValue, token } = parser; + if (context & 1024) { + if ((token & 537079808) === 537079808) { + report(parser, 115); + } + else if ((token & 36864) === 36864) { + report(parser, 114); + } + } + if ((token & 20480) === 20480) { + report(parser, 99); + } + if (context & (2048 | 2097152) && token === 241773) { + report(parser, 30); + } + if (token === 241739) { + if (kind & (8 | 16)) + report(parser, 97); + } + if (context & (4194304 | 2048) && token === 209008) { + report(parser, 95); + } + nextToken(parser, context); + if (scope) + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + return finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: tokenValue + }); + } + function parseJSXRootElementOrFragment(parser, context, inJSXChild, start, line, column) { + nextToken(parser, context); + if (parser.token === 8456259) { + return finishNode(parser, context, start, line, column, { + type: 'JSXFragment', + openingFragment: parseOpeningFragment(parser, context, start, line, column), + children: parseJSXChildren(parser, context), + closingFragment: parseJSXClosingFragment(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + let closingElement = null; + let children = []; + const openingElement = parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column); + if (!openingElement.selfClosing) { + children = parseJSXChildren(parser, context); + closingElement = parseJSXClosingElement(parser, context, inJSXChild, parser.tokenPos, parser.linePos, parser.colPos); + const close = isEqualTagName(closingElement.name); + if (isEqualTagName(openingElement.name) !== close) + report(parser, 149, close); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXElement', + children, + openingElement, + closingElement + }); + } + function parseOpeningFragment(parser, context, start, line, column) { + scanJSXToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningFragment' + }); + } + function parseJSXClosingElement(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + const name = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + parser.token = scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingElement', + name + }); + } + function parseJSXClosingFragment(parser, context, inJSXChild, start, line, column) { + consume(parser, context, 25); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + consume(parser, context, 8456259); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingFragment' + }); + } + function parseJSXChildren(parser, context) { + const children = []; + while (parser.token !== 25) { + parser.index = parser.tokenPos = parser.startPos; + parser.column = parser.colPos = parser.startColumn; + parser.line = parser.linePos = parser.startLine; + scanJSXToken(parser, context); + children.push(parseJSXChild(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return children; + } + function parseJSXChild(parser, context, start, line, column) { + if (parser.token === 138) + return parseJSXText(parser, context, start, line, column); + if (parser.token === 2162700) + return parseJSXExpressionContainer(parser, context, 0, 0, start, line, column); + if (parser.token === 8456258) + return parseJSXRootElementOrFragment(parser, context, 0, start, line, column); + report(parser, 0); + } + function parseJSXText(parser, context, start, line, column) { + scanJSXToken(parser, context); + const node = { + type: 'JSXText', + value: parser.tokenValue + }; + if (context & 512) { + node.raw = parser.tokenRaw; + } + return finishNode(parser, context, start, line, column, node); + } + function parseJSXOpeningFragmentOrSelfCloseElement(parser, context, inJSXChild, start, line, column) { + if ((parser.token & 143360) !== 143360 && (parser.token & 4096) !== 4096) + report(parser, 0); + const tagName = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + const attributes = parseJSXAttributes(parser, context); + const selfClosing = parser.token === 8457016; + if (parser.token === 8456259) { + scanJSXToken(parser, context); + } + else { + consume(parser, context, 8457016); + if (inJSXChild) { + consume(parser, context, 8456259); + } + else { + scanJSXToken(parser, context); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningElement', + name: tagName, + attributes, + selfClosing + }); + } + function parseJSXElementName(parser, context, start, line, column) { + scanJSXIdentifier(parser); + let key = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) + return parseJSXNamespacedName(parser, context, key, start, line, column); + while (consumeOpt(parser, context, 67108877)) { + scanJSXIdentifier(parser); + key = parseJSXMemberExpression(parser, context, key, start, line, column); + } + return key; + } + function parseJSXMemberExpression(parser, context, object, start, line, column) { + const property = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXMemberExpression', + object, + property + }); + } + function parseJSXAttributes(parser, context) { + const attributes = []; + while (parser.token !== 8457016 && parser.token !== 8456259 && parser.token !== 1048576) { + attributes.push(parseJsxAttribute(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return attributes; + } + function parseJSXSpreadAttribute(parser, context, start, line, column) { + nextToken(parser, context); + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadAttribute', + argument: expression + }); + } + function parseJsxAttribute(parser, context, start, line, column) { + if (parser.token === 2162700) + return parseJSXSpreadAttribute(parser, context, start, line, column); + scanJSXIdentifier(parser); + let value = null; + let name = parseJSXIdentifier(parser, context, start, line, column); + if (parser.token === 21) { + name = parseJSXNamespacedName(parser, context, name, start, line, column); + } + if (parser.token === 1077936157) { + const token = scanJSXAttributeValue(parser, context); + const { tokenPos, linePos, colPos } = parser; + switch (token) { + case 134283267: + value = parseLiteral(parser, context); + break; + case 8456258: + value = parseJSXRootElementOrFragment(parser, context, 1, tokenPos, linePos, colPos); + break; + case 2162700: + value = parseJSXExpressionContainer(parser, context, 1, 1, tokenPos, linePos, colPos); + break; + default: + report(parser, 148); + } + } + return finishNode(parser, context, start, line, column, { + type: 'JSXAttribute', + value, + name + }); + } + function parseJSXNamespacedName(parser, context, namespace, start, line, column) { + consume(parser, context, 21); + const name = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXNamespacedName', + namespace, + name + }); + } + function parseJSXExpressionContainer(parser, context, inJSXChild, isAttr, start, line, column) { + nextToken(parser, context); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === 14) + return parseJSXSpreadChild(parser, context, tokenPos, linePos, colPos); + let expression = null; + if (parser.token === 1074790415) { + if (isAttr) + report(parser, 151); + expression = parseJSXEmptyExpression(parser, context, parser.startPos, parser.startLine, parser.startColumn); + } + else { + expression = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + } + if (inJSXChild) { + consume(parser, context, 1074790415); + } + else { + scanJSXToken(parser, context); + } + return finishNode(parser, context, start, line, column, { + type: 'JSXExpressionContainer', + expression + }); + } + function parseJSXSpreadChild(parser, context, start, line, column) { + consume(parser, context, 14); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, 1074790415); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadChild', + expression + }); + } + function parseJSXEmptyExpression(parser, context, start, line, column) { + parser.startPos = parser.tokenPos; + parser.startLine = parser.linePos; + parser.startColumn = parser.colPos; + return finishNode(parser, context, start, line, column, { + type: 'JSXEmptyExpression' + }); + } + function parseJSXIdentifier(parser, context, start, line, column) { + const { tokenValue } = parser; + nextToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXIdentifier', + name: tokenValue + }); + } + + var estree = /*#__PURE__*/Object.freeze({ + __proto__: null + }); + + var version$1 = "4.2.0"; + + const version = version$1; + function parseScript(source, options) { + return parseSource(source, options, 0); + } + function parseModule(source, options) { + return parseSource(source, options, 1024 | 2048); + } + function parse(source, options) { + return parseSource(source, options, 0); + } + + exports.ESTree = estree; + exports.parse = parse; + exports.parseModule = parseModule; + exports.parseScript = parseScript; + exports.version = version; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/node_modules/meriyah/dist/meriyah.umd.min.cjs b/node_modules/meriyah/dist/meriyah.umd.min.cjs new file mode 100644 index 0000000..0595799 --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.umd.min.cjs @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).meriyah={})}(this,(function(e){"use strict";const t={0:"Unexpected token",28:"Unexpected token: '%0'",1:"Octal escape sequences are not allowed in strict mode",2:"Octal escape sequences are not allowed in template strings",3:"Unexpected token `#`",4:"Illegal Unicode escape sequence",5:"Invalid code point %0",6:"Invalid hexadecimal escape sequence",8:"Octal literals are not allowed in strict mode",7:"Decimal integer literals with a leading zero are forbidden in strict mode",9:"Expected number in radix %0",145:"Invalid left-hand side assignment to a destructible right-hand side",10:"Non-number found after exponent indicator",11:"Invalid BigIntLiteral",12:"No identifiers allowed directly after numeric literal",13:"Escapes \\8 or \\9 are not syntactically valid escapes",14:"Unterminated string literal",15:"Unterminated template literal",16:"Multiline comment was not closed properly",17:"The identifier contained dynamic unicode escape that was not closed",18:"Illegal character '%0'",19:"Missing hexadecimal digits",20:"Invalid implicit octal",21:"Invalid line break in string literal",22:"Only unicode escapes are legal in identifier names",23:"Expected '%0'",24:"Invalid left-hand side in assignment",25:"Invalid left-hand side in async arrow",26:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',27:"Member access on super must be in a method",29:"Await expression not allowed in formal parameter",30:"Yield expression not allowed in formal parameter",92:"Unexpected token: 'escaped keyword'",31:"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses",119:"Async functions can only be declared at the top level or inside a block",32:"Unterminated regular expression",33:"Unexpected regular expression flag",34:"Duplicate regular expression flag '%0'",35:"%0 functions must have exactly %1 argument%2",36:"Setter function argument must not be a rest parameter",37:"%0 declaration must have a name in this context",38:"Function name may not contain any reserved words or be eval or arguments in strict mode",39:"The rest operator is missing an argument",40:"A getter cannot be a generator",41:"A computed property name must be followed by a colon or paren",130:"Object literal keys that are strings or numbers must be a method or have a colon",43:"Found `* async x(){}` but this should be `async * x(){}`",42:"Getters and setters can not be generators",44:"'%0' can not be generator method",45:"No line break is allowed after '=>'",46:"The left-hand side of the arrow can only be destructed through assignment",47:"The binding declaration is not destructible",48:"Async arrow can not be followed by new expression",49:"Classes may not have a static property named 'prototype'",50:"Class constructor may not be a %0",51:"Duplicate constructor method in class",52:"Invalid increment/decrement operand",53:"Invalid use of `new` keyword on an increment/decrement expression",54:"`=>` is an invalid assignment target",55:"Rest element may not have a trailing comma",56:"Missing initializer in %0 declaration",57:"'for-%0' loop head declarations can not have an initializer",58:"Invalid left-hand side in for-%0 loop: Must have a single binding",59:"Invalid shorthand property initializer",60:"Property name __proto__ appears more than once in object literal",61:"Let is disallowed as a lexically bound name",62:"Invalid use of '%0' inside new expression",63:"Illegal 'use strict' directive in function with non-simple parameter list",64:'Identifier "let" disallowed as left-hand side expression in strict mode',65:"Illegal continue statement",66:"Illegal break statement",67:"Cannot have `let[...]` as a var name in strict mode",68:"Invalid destructuring assignment target",69:"Rest parameter may not have a default initializer",70:"The rest argument must the be last parameter",71:"Invalid rest argument",73:"In strict mode code, functions can only be declared at top level or inside a block",74:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement",75:"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement",76:"Class declaration can't appear in single-statement context",77:"Invalid left-hand side in for-%0",78:"Invalid assignment in for-%0",79:"for await (... of ...) is only valid in async functions and async generators",80:"The first token after the template expression should be a continuation of the template",82:"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode",81:"`let \n [` is a restricted production at the start of a statement",83:"Catch clause requires exactly one parameter, not more (and no trailing comma)",84:"Catch clause parameter does not support default values",85:"Missing catch or finally after try",86:"More than one default clause in switch statement",87:"Illegal newline after throw",88:"Strict mode code may not include a with statement",89:"Illegal return statement",90:"The left hand side of the for-header binding declaration is not destructible",91:"new.target only allowed within functions",93:"'#' not followed by identifier",99:"Invalid keyword",98:"Can not use 'let' as a class name",97:"'A lexical declaration can't define a 'let' binding",96:"Can not use `let` as variable name in strict mode",94:"'%0' may not be used as an identifier in this context",95:"Await is only valid in async functions",100:"The %0 keyword can only be used with the module goal",101:"Unicode codepoint must not be greater than 0x10FFFF",102:"%0 source must be string",103:"Only a identifier can be used to indicate alias",104:"Only '*' or '{...}' can be imported after default",105:"Trailing decorator may be followed by method",106:"Decorators can't be used with a constructor",108:"HTML comments are only allowed with web compatibility (Annex B)",109:"The identifier 'let' must not be in expression position in strict mode",110:"Cannot assign to `eval` and `arguments` in strict mode",111:"The left-hand side of a for-of loop may not start with 'let'",112:"Block body arrows can not be immediately invoked without a group",113:"Block body arrows can not be immediately accessed without a group",114:"Unexpected strict mode reserved word",115:"Unexpected eval or arguments in strict mode",116:"Decorators must not be followed by a semicolon",117:"Calling delete on expression not allowed in strict mode",118:"Pattern can not have a tail",120:"Can not have a `yield` expression on the left side of a ternary",121:"An arrow function can not have a postfix update operator",122:"Invalid object literal key character after generator star",123:"Private fields can not be deleted",125:"Classes may not have a field called constructor",124:"Classes may not have a private element named constructor",126:"A class field initializer may not contain arguments",127:"Generators can only be declared at the top level or inside a block",128:"Async methods are a restricted production and cannot have a newline following it",129:"Unexpected character after object literal property name",131:"Invalid key token",132:"Label '%0' has already been declared",133:"continue statement must be nested within an iteration statement",134:"Undefined label '%0'",135:"Trailing comma is disallowed inside import(...) arguments",136:"import() requires exactly one argument",137:"Cannot use new with import(...)",138:"... is not allowed in import()",139:"Expected '=>'",140:"Duplicate binding '%0'",141:"Cannot export a duplicate name '%0'",144:"Duplicate %0 for-binding",142:"Exported binding '%0' needs to refer to a top-level declared variable",143:"Unexpected private field",147:"Numeric separators are not allowed at the end of numeric literals",146:"Only one underscore is allowed as numeric separator",148:"JSX value should be either an expression or a quoted JSX text",149:"Expected corresponding JSX closing tag for %0",150:"Adjacent JSX elements must be wrapped in an enclosing tag",151:"JSX attributes must only be assigned a non-empty 'expression'",152:"'%0' has already been declared",153:"'%0' shadowed a catch clause binding",154:"Dot property must be an identifier",155:"Encountered invalid input after spread/rest argument",156:"Catch without try",157:"Finally without try",158:"Expected corresponding closing tag for JSX fragment",159:"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses",160:"Invalid tagged template on optional chain",161:"Invalid optional chain from super property",162:"Invalid optional chain from new expression",163:'Cannot use "import.meta" outside a module',164:"Leading decorators must be attached to a class declaration"};class n extends SyntaxError{constructor(e,n,o,r,...s){const a="["+n+":"+o+"]: "+t[r].replace(/%(\d+)/g,((e,t)=>s[t]));super(`${a}`),this.index=e,this.line=n,this.column=o,this.description=a,this.loc={line:n,column:o}}}function o(e,t,...o){throw new n(e.index,e.line,e.column,t,...o)}function r(e){throw new n(e.index,e.line,e.column,e.type,e.params)}function s(e,t,o,r,...s){throw new n(e,t,o,r,...s)}function a(e,t,o,r){throw new n(e,t,o,r)}const i=((e,t)=>{const n=new Uint32Array(104448);let o=0,r=0;for(;o<3540;){const s=e[o++];if(s<0)r-=s;else{let a=e[o++];2&s&&(a=t[a]),1&s?n.fill(a,r,r+=e[o++]):n[r++]=a}}return n})([-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828e3,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902e3,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532]);function l(e){return e.column++,e.currentChar=e.source.charCodeAt(++e.index)}function c(e,t){if(55296!=(64512&t))return 0;const n=e.source.charCodeAt(e.index+1);return 56320!=(64512&n)?0:(t=e.currentChar=65536+((1023&t)<<10)+(1023&n),0==(1&i[0+(t>>>5)]>>>t)&&o(e,18,p(t)),e.index++,e.column++,1)}function u(e,t){e.currentChar=e.source.charCodeAt(++e.index),e.flags|=1,0==(4&t)&&(e.column=0,e.line++)}function d(e){e.flags|=1,e.currentChar=e.source.charCodeAt(++e.index),e.column=0,e.line++}function p(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(e>>>10)+String.fromCharCode(1023&e)}function f(e){return e<65?e-48:e-65+10&15}const k=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],g=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],m=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function b(e){return e<=127?g[e]:1&i[34816+(e>>>5)]>>>e}function h(e){return e<=127?m[e]:1&i[0+(e>>>5)]>>>e||8204===e||8205===e}const P=["SingleLine","MultiLine","HTMLOpen","HTMLClose","HashbangComment"];function y(e,t,n,r,s,a,i,l){return 2048&r&&o(e,0),x(e,t,n,s,a,i,l)}function x(e,t,n,o,r,s,a){const{index:i}=e;for(e.tokenPos=e.index,e.linePos=e.line,e.colPos=e.column;e.index=e.source.length)return o(e,32)}const s=e.index-1;let a=0,i=e.currentChar;const{index:c}=e;for(;h(i);){switch(i){case 103:2&a&&o(e,34,"g"),a|=2;break;case 105:1&a&&o(e,34,"i"),a|=1;break;case 109:4&a&&o(e,34,"m"),a|=4;break;case 117:16&a&&o(e,34,"g"),a|=16;break;case 121:8&a&&o(e,34,"y"),a|=8;break;case 115:12&a&&o(e,34,"s"),a|=12;break;default:o(e,33)}i=l(e)}const u=e.source.slice(c,e.index),d=e.source.slice(n,s);return e.tokenRegExp={pattern:d,flags:u},512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),e.tokenValue=function(e,t,n){try{return new RegExp(t,n)}catch(t){o(e,32)}}(e,d,u),65540}function q(e,t,n){const{index:r}=e;let s="",a=l(e),i=e.index;for(;0==(8&k[a]);){if(a===n)return s+=e.source.slice(i,e.index),l(e),512&t&&(e.tokenRaw=e.source.slice(r,e.index)),e.tokenValue=s,134283267;if(8==(8&a)&&92===a){if(s+=e.source.slice(i,e.index),a=l(e),a<127||8232===a||8233===a){const n=C(e,t,a);n>=0?s+=p(n):E(e,n,0)}else s+=p(a);i=e.index+1}e.index>=e.end&&o(e,14),a=l(e)}o(e,14)}function C(e,t,n){switch(n){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(e.index1114111)return-5;return e.currentChar<1||125!==e.currentChar?-4:t}{if(0==(64&k[t]))return-4;const n=e.source.charCodeAt(e.index+1);if(0==(64&k[n]))return-4;const o=e.source.charCodeAt(e.index+2);if(0==(64&k[o]))return-4;const r=e.source.charCodeAt(e.index+3);return 0==(64&k[r])?-4:(e.index+=3,e.column+=3,e.currentChar=e.source.charCodeAt(e.index),f(t)<<12|f(n)<<8|f(o)<<4|f(r))}}case 56:case 57:if(0==(256&t))return-3;default:return n}}function E(e,t,n){switch(t){case-1:return;case-2:o(e,n?2:1);case-3:o(e,13);case-4:o(e,6);case-5:o(e,101)}}function A(e,t){const{index:n}=e;let r=67174409,s="",a=l(e);for(;96!==a;){if(36===a&&123===e.source.charCodeAt(e.index+1)){l(e),r=67174408;break}if(8==(8&a)&&92===a)if(a=l(e),a>126)s+=p(a);else{const n=C(e,1024|t,a);if(n>=0)s+=p(n);else{if(-1!==n&&65536&t){s=void 0,a=S(e,a),a<0&&(r=67174408);break}E(e,n,1)}}else e.index=e.end&&o(e,15),a=l(e)}return l(e),e.tokenValue=s,e.tokenRaw=e.source.slice(n+1,e.index-(67174409===r?1:2)),r}function S(e,t){for(;96!==t;){switch(t){case 36:{const n=e.index+1;if(n=e.end&&o(e,15),t=l(e)}return t}function D(e,t){return e.index>=e.end&&o(e,0),e.index--,e.column--,A(e,t)}function L(e,t,n){let r=e.currentChar,s=0,i=9,c=64&n?0:1,u=0,d=0;if(64&n)s="."+V(e,r),r=e.currentChar,110===r&&o(e,11);else{if(48===r)if(r=l(e),120==(32|r)){for(n=136,r=l(e);4160&k[r];)95!==r?(d=1,s=16*s+f(r),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?19:147)}else if(111==(32|r)){for(n=132,r=l(e);4128&k[r];)95!==r?(d=1,s=8*s+(r-48),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?0:147)}else if(98==(32|r)){for(n=130,r=l(e);4224&k[r];)95!==r?(d=1,s=2*s+(r-48),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?0:147)}else if(32&k[r])for(1024&t&&o(e,1),n=1;16&k[r];){if(512&k[r]){n=32,c=0;break}s=8*s+(r-48),r=l(e)}else 512&k[r]?(1024&t&&o(e,1),e.flags|=64,n=32):95===r&&o(e,0);if(48&n){if(c){for(;i>=0&&4112&k[r];)95!==r?(d=0,s=10*s+(r-48),r=l(e),--i):(r=l(e),(95===r||32&n)&&a(e.index,e.line,e.index+1,146),d=1);if(d&&a(e.index,e.line,e.index+1,147),i>=0&&!b(r)&&46!==r)return e.tokenValue=s,512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),134283266}s+=V(e,r),r=e.currentChar,46===r&&(95===l(e)&&o(e,0),n=64,s+="."+V(e,e.currentChar),r=e.currentChar)}}const p=e.index;let g=0;if(110===r&&128&n)g=1,r=l(e);else if(101==(32|r)){r=l(e),256&k[r]&&(r=l(e));const{index:t}=e;(16&k[r])<1&&o(e,10),s+=e.source.substring(p,t)+V(e,r),r=e.currentChar}return(e.index","(","{",".","...","}",")",";",",","[","]",":","?","'",'"',"","++","--","=","<<=",">>=",">>>=","**=","+=","-=","*=","/=","%=","^=","|=","&=","||=","&&=","??=","typeof","delete","void","!","~","+","-","in","instanceof","*","%","/","**","&&","||","===","!==","==","!=","<=",">=","<",">","<<",">>",">>>","&","|","^","var","let","const","break","case","catch","class","continue","debugger","default","do","else","export","extends","finally","for","function","if","import","new","return","super","switch","this","throw","try","while","with","implements","interface","package","private","protected","public","static","yield","as","async","await","constructor","get","set","from","of","enum","eval","arguments","escaped keyword","escaped future reserved keyword","reserved if strict","#","BigIntLiteral","??","?.","WhiteSpace","Illegal","LineTerminator","PrivateField","Template","@","target","meta","LineFeed","Escaped","JSXText"],R=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function N(e,t,n){for(;m[l(e)];);return e.tokenValue=e.source.slice(e.tokenPos,e.index),92!==e.currentChar&&e.currentChar<126?R[e.tokenValue]||208897:U(e,t,0,n)}function I(e,t){const n=O(e);return h(n)||o(e,4),e.tokenValue=p(n),U(e,t,1,4&k[n])}function U(e,t,n,r){let s=e.index;for(;e.index=2&&a<=11){const o=R[e.tokenValue];return void 0===o?208897:n?1024&t?209008===o&&0==(4196352&t)?o:36972===o||36864==(36864&o)?122:121:1073741824&t&&0==(8192&t)&&20480==(20480&o)?o:241773===o?1073741824&t?143483:2097152&t?121:o:209007===o&&1073741824&t?143483:36864==(36864&o)||209008===o&&0==(4194304&t)?o:121:o}return 208897}function B(e){return b(l(e))||o(e,93),131}function O(e){return 117!==e.source.charCodeAt(e.index+1)&&o(e,4),e.currentChar=e.source.charCodeAt(e.index+=2),function(e){let t=0;const n=e.currentChar;if(123===n){const n=e.index-2;for(;64&k[l(e)];)t=t<<4|f(e.currentChar),t>1114111&&a(n,e.line,e.index+1,101);return 125!==e.currentChar&&a(n,e.line,e.index-1,6),l(e),t}0==(64&k[n])&&o(e,6);const r=e.source.charCodeAt(e.index+1);0==(64&k[r])&&o(e,6);const s=e.source.charCodeAt(e.index+2);0==(64&k[s])&&o(e,6);const i=e.source.charCodeAt(e.index+3);0==(64&k[i])&&o(e,6);return t=f(n)<<12|f(r)<<8|f(s)<<4|f(i),e.currentChar=e.source.charCodeAt(e.index+=4),t}(e)}const G=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function j(e,t){if(e.flags=1^(1|e.flags),e.startPos=e.index,e.startColumn=e.column,e.startLine=e.line,e.token=F(e,t,0),e.onToken&&1048576!==e.token){const t={start:{line:e.linePos,column:e.colPos},end:{line:e.line,column:e.column}};e.onToken(function(e){switch(e){case 134283266:return"NumericLiteral";case 134283267:return"StringLiteral";case 86021:case 86022:return"BooleanLiteral";case 86023:return"NullLiteral";case 65540:return"RegularExpression";case 67174408:case 67174409:case 132:return"TemplateLiteral";default:return 143360==(143360&e)?"Identifier":4096==(4096&e)?"Keyword":"Punctuator"}}(e.token),e.tokenPos,e.index,t)}}function F(e,t,n){const r=0===e.index,s=e.source;let a=e.index,c=e.line,f=e.column;for(;e.index=e.end)return 8457014;const t=e.currentChar;return 61===t?(l(e),4194340):42!==t?8457014:61!==l(e)?8457273:(l(e),4194337)}case 8455497:return 61!==l(e)?8455497:(l(e),4194343);case 25233970:{l(e);const t=e.currentChar;return 43===t?(l(e),33619995):61===t?(l(e),4194338):25233970}case 25233971:{l(e);const i=e.currentChar;if(45===i){if(l(e),(1&n||r)&&62===e.currentChar){0==(256&t)&&o(e,108),l(e),n=y(e,s,n,t,3,a,c,f),a=e.tokenPos,c=e.linePos,f=e.colPos;continue}return 33619996}return 61===i?(l(e),4194339):25233971}case 8457016:if(l(e),e.index=48&&k<=57)return L(e,t,80);if(46===k){const t=e.index+1;if(t=48&&t<=57)))return l(e),67108991}return 22}}}else{if((8232^g)<=1){n=-5&n|1,d(e);continue}if(55296==(64512&g)||0!=(1&i[34816+(g>>>5)]>>>g))return 56320==(64512&g)&&(g=(1023&g)<<10|1023&g|65536,0==(1&i[0+(g>>>5)]>>>g)&&o(e,18,p(g)),e.index++,e.currentChar=g),e.column++,e.tokenValue="",U(e,t,0,0);if(160===(k=g)||65279===k||133===k||5760===k||k>=8192&&k<=8203||8239===k||8287===k||12288===k||8201===k||65519===k){l(e);continue}o(e,18,p(g))}}var k;return 1048576}const H={AElig:"Æ",AMP:"&",Aacute:"Á",Abreve:"Ă",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atilde:"Ã",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ETH:"Ð",Eacute:"É",Ecaron:"Ě",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"Í",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"â",acute:"´",acy:"а",aelig:"æ",af:"⁡",afr:"𝔞",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"ð",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"í",ic:"⁣",icirc:"î",icy:"и",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"ó",oast:"⊛",ocir:"⊚",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"ø",osol:"⊘",otilde:"õ",otimes:"⊗",otimesas:"⨶",ouml:"ö",ovbar:"⌽",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"þ",tilde:"˜",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"},J={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function M(e){return e.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g,(e=>{if("#"===e.charAt(1)){const t=e.charAt(2);return function(e){if(e>=55296&&e<=57343||e>1114111)return"�";e in J&&(e=J[e]);return String.fromCodePoint(e)}("X"===t||"x"===t?parseInt(e.slice(3),16):parseInt(e.slice(2),10))}return H[e.slice(1,-1)]||e}))}function z(e,t){return e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.token=8192&k[e.currentChar]?function(e,t){const n=e.currentChar;let r=l(e);const s=e.index;for(;r!==n;)e.index>=e.end&&o(e,14),r=l(e);r!==n&&o(e,14);e.tokenValue=e.source.slice(s,e.index),l(e),512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index));return 134283267}(e,t):F(e,t,0),e.token}function X(e,t){if(e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.index>=e.end)return e.token=1048576;switch(G[e.source.charCodeAt(e.index)]){case 8456258:l(e),47===e.currentChar?(l(e),e.token=25):e.token=8456258;break;case 2162700:l(e),e.token=2162700;break;default:{let n=0;for(;e.index0&&W(e,t,209008);K(e,32768|t,67174411),n&&(n=le(n,1));let c,u=null,d=null,p=0,f=null,k=86090===e.token||241739===e.token||86092===e.token;const{token:g,tokenPos:m,linePos:b,colPos:h}=e;k?241739===g?(f=nt(e,t,0),2240512&e.token?(8738868===e.token?1024&t&&o(e,64):f=re(e,t,m,b,h,{type:"VariableDeclaration",kind:"let",declarations:De(e,134217728|t,n,8,32)}),e.assignable=1):1024&t?o(e,64):(k=!1,e.assignable=1,f=ze(e,t,f,0,0,m,b,h),274549===e.token&&o(e,111))):(j(e,t),f=re(e,t,m,b,h,86090===g?{type:"VariableDeclaration",kind:"var",declarations:De(e,134217728|t,n,4,32)}:{type:"VariableDeclaration",kind:"const",declarations:De(e,134217728|t,n,16,32)}),e.assignable=1):1074790417===g?l&&o(e,79):2097152==(2097152&g)?(f=2162700===g?ut(e,t,void 0,1,0,0,2,32,m,b,h):at(e,t,void 0,1,0,0,2,32,m,b,h),p=e.destructible,256&t&&64&p&&o(e,60),e.assignable=16&p?2:1,f=ze(e,134217728|t,f,0,0,e.tokenPos,e.linePos,e.colPos)):f=Me(e,134217728|t,1,0,1,m,b,h);if(262144==(262144&e.token)){if(274549===e.token){2&e.assignable&&o(e,77,l?"await":"of"),Q(e,f),j(e,32768|t),c=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),K(e,32768|t,16);return re(e,t,s,a,i,{type:"ForOfStatement",left:f,right:c,body:Ee(e,t,n,r),await:l})}2&e.assignable&&o(e,77,"in"),Q(e,f),j(e,32768|t),l&&o(e,79),c=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos),K(e,32768|t,16);return re(e,t,s,a,i,{type:"ForInStatement",body:Ee(e,t,n,r),left:f,right:c})}l&&o(e,79);k||(8&p&&1077936157!==e.token&&o(e,77,"loop"),f=Ge(e,134217728|t,0,0,m,b,h,f));18===e.token&&(f=Be(e,t,0,e.tokenPos,e.linePos,e.colPos,f));K(e,32768|t,1074790417),1074790417!==e.token&&(u=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos));K(e,32768|t,1074790417),16!==e.token&&(d=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos));K(e,32768|t,16);const P=Ee(e,t,n,r);return re(e,t,s,a,i,{type:"ForStatement",init:f,test:u,update:d,body:P})}(e,t,n,s,i,l,c);case 20564:return function(e,t,n,o,r,s,a){j(e,32768|t);const i=Ee(e,t,n,o);K(e,t,20580),K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return K(e,32768|t,16),W(e,t,1074790417),re(e,t,r,s,a,{type:"DoWhileStatement",body:i,test:l})}(e,t,n,s,i,l,c);case 20580:return function(e,t,n,o,r,s,a){j(e,t),K(e,32768|t,67174411);const i=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,16);const l=Ee(e,t,n,o);return re(e,t,r,s,a,{type:"WhileStatement",test:i,body:l})}(e,t,n,s,i,l,c);case 86112:return function(e,t,n,r,s,a,i){j(e,t),K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,t,16),K(e,t,2162700);const c=[];let u=0;n&&(n=le(n,8));for(;1074790415!==e.token;){const{tokenPos:s,linePos:a,colPos:i}=e;let l=null;const d=[];for(W(e,32768|t,20558)?l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos):(K(e,32768|t,20563),u&&o(e,86),u=1),K(e,32768|t,21);20558!==e.token&&1074790415!==e.token&&20563!==e.token;)d.push(he(e,4096|t,n,2,{$:r}));c.push(re(e,t,s,a,i,{type:"SwitchCase",test:l,consequent:d}))}return K(e,32768|t,1074790415),re(e,t,s,a,i,{type:"SwitchStatement",discriminant:l,cases:c})}(e,t,n,s,i,l,c);case 1074790417:return function(e,t,n,o,r){return j(e,32768|t),re(e,t,n,o,r,{type:"EmptyStatement"})}(e,t,i,l,c);case 2162700:return ye(e,t,n?le(n,2):n,s,i,l,c);case 86114:return function(e,t,n,r,s){j(e,32768|t),1&e.flags&&o(e,87);const a=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return $(e,32768|t),re(e,t,n,r,s,{type:"ThrowStatement",argument:a})}(e,t,i,l,c);case 20557:return function(e,t,n,r,s,a){j(e,32768|t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=nt(e,32768|t,0),oe(e,n,r,0)||o(e,134,r)}else(135168&t)<1&&o(e,66);return $(e,32768|t),re(e,t,r,s,a,{type:"BreakStatement",label:i})}(e,t,s,i,l,c);case 20561:return function(e,t,n,r,s,a){(131072&t)<1&&o(e,65);j(e,t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=nt(e,32768|t,0),oe(e,n,r,1)||o(e,134,r)}return $(e,32768|t),re(e,t,r,s,a,{type:"ContinueStatement",label:i})}(e,t,s,i,l,c);case 20579:return function(e,t,n,r,s,a,i){j(e,32768|t);const l=n?le(n,32):void 0,c=ye(e,t,l,{$:r},e.tokenPos,e.linePos,e.colPos),{tokenPos:u,linePos:d,colPos:p}=e,f=W(e,32768|t,20559)?function(e,t,n,r,s,a,i){let l=null,c=n;W(e,t,67174411)&&(n&&(n=le(n,4)),l=At(e,t,n,2097152==(2097152&e.token)?256:512,0,e.tokenPos,e.linePos,e.colPos),18===e.token?o(e,83):1077936157===e.token&&o(e,84),K(e,32768|t,16),n&&(c=le(n,64)));const u=ye(e,t,c,{$:r},e.tokenPos,e.linePos,e.colPos);return re(e,t,s,a,i,{type:"CatchClause",param:l,body:u})}(e,t,n,r,u,d,p):null;let k=null;if(20568===e.token){j(e,32768|t);k=ye(e,t,l?le(n,4):void 0,{$:r},e.tokenPos,e.linePos,e.colPos)}f||k||o(e,85);return re(e,t,s,a,i,{type:"TryStatement",block:c,handler:f,finalizer:k})}(e,t,n,s,i,l,c);case 20581:return function(e,t,n,r,s,a,i){j(e,t),1024&t&&o(e,88);K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,16);const c=Pe(e,t,n,2,r,0,e.tokenPos,e.linePos,e.colPos);return re(e,t,s,a,i,{type:"WithStatement",object:l,body:c})}(e,t,n,s,i,l,c);case 20562:return function(e,t,n,o,r){return j(e,32768|t),$(e,32768|t),re(e,t,n,o,r,{type:"DebuggerStatement"})}(e,t,i,l,c);case 209007:return we(e,t,n,r,s,0,i,l,c);case 20559:o(e,156);case 20568:o(e,157);case 86106:o(e,1024&t?73:(256&t)<1?75:74);case 86096:o(e,76);default:return function(e,t,n,r,s,a,i,l,c){const{tokenValue:u,token:d}=e;let p;switch(d){case 241739:p=nt(e,t,0),1024&t&&o(e,82),69271571===e.token&&o(e,81);break;default:p=_e(e,t,2,0,1,0,0,1,e.tokenPos,e.linePos,e.colPos)}if(143360&d&&21===e.token)return ve(e,t,n,r,s,u,p,d,a,i,l,c);p=ze(e,t,p,0,0,i,l,c),p=Ge(e,t,0,0,i,l,c,p),18===e.token&&(p=Be(e,t,0,i,l,c,p));return xe(e,t,p,i,l,c)}(e,t,n,r,s,a,i,l,c)}}function ye(e,t,n,o,r,s,a){const i=[];for(K(e,32768|t,2162700);1074790415!==e.token;)i.push(he(e,t,n,2,{$:o}));return K(e,32768|t,1074790415),re(e,t,r,s,a,{type:"BlockStatement",body:i})}function xe(e,t,n,o,r,s){return $(e,32768|t),re(e,t,o,r,s,{type:"ExpressionStatement",expression:n})}function ve(e,t,n,r,s,a,i,l,c,u,d,p){ee(e,t,0,l,1),function(e,t,n){let r=t;for(;r;)r["$"+n]&&o(e,132,n),r=r.$;t["$"+n]=1}(e,s,a),j(e,32768|t);return re(e,t,u,d,p,{type:"LabeledStatement",label:i,body:c&&(1024&t)<1&&256&t&&86106===e.token?rt(e,t,le(n,2),r,0,0,0,e.tokenPos,e.linePos,e.colPos):Pe(e,t,n,r,s,c,e.tokenPos,e.linePos,e.colPos)})}function we(e,t,n,r,s,a,i,l,c){const{token:u,tokenValue:d}=e;let p=nt(e,t,0);if(21===e.token)return ve(e,t,n,r,s,d,p,u,1,i,l,c);const f=1&e.flags;if(!f){if(86106===e.token)return a||o(e,119),rt(e,t,n,r,1,0,1,i,l,c);if(143360==(143360&e.token))return p=ht(e,t,1,i,l,c),18===e.token&&(p=Be(e,t,0,i,l,c,p)),xe(e,t,p,i,l,c)}return 67174411===e.token?p=Pt(e,t,p,1,1,0,f,i,l,c):(10===e.token&&(ge(e,t,u,1),p=ft(e,t,e.tokenValue,p,0,1,0,i,l,c)),e.assignable=1),p=ze(e,t,p,0,0,i,l,c),18===e.token&&(p=Be(e,t,0,i,l,c,p)),p=Ge(e,t,0,0,i,l,c,p),e.assignable=1,xe(e,t,p,i,l,c)}function qe(e,t,n,o,r,s,a){return 1074790417!==o&&(e.assignable=2,n=ze(e,t,n,0,0,r,s,a),1074790417!==e.token&&(n=Ge(e,t,0,0,r,s,a,n),18===e.token&&(n=Be(e,t,0,r,s,a,n))),$(e,32768|t)),8&t&&"Literal"===n.type&&"string"==typeof n.value?re(e,t,r,s,a,{type:"ExpressionStatement",expression:n,directive:n.raw.slice(1,-1)}):re(e,t,r,s,a,{type:"ExpressionStatement",expression:n})}function Ce(e,t,n,o,r,s,a){return 1024&t||(256&t)<1||86106!==e.token?Pe(e,t,n,0,{$:o},0,e.tokenPos,e.linePos,e.colPos):rt(e,t,le(n,2),0,0,0,0,r,s,a)}function Ee(e,t,n,o){return Pe(e,134217728^(134217728|t)|131072,n,0,{loop:1,$:o},0,e.tokenPos,e.linePos,e.colPos)}function Ae(e,t,n,o,r,s,a,i){j(e,t);const l=De(e,t,n,o,r);return $(e,32768|t),re(e,t,s,a,i,{type:"VariableDeclaration",kind:8&o?"let":"const",declarations:l})}function Se(e,t,n,o,r,s,a){j(e,t);const i=De(e,t,n,4,o);return $(e,32768|t),re(e,t,r,s,a,{type:"VariableDeclaration",kind:"var",declarations:i})}function De(e,t,n,r,s){let a=1;const i=[Le(e,t,n,r,s)];for(;W(e,t,18);)a++,i.push(Le(e,t,n,r,s));return a>1&&32&s&&262144&e.token&&o(e,58,T[255&e.token]),i}function Le(e,t,n,r,a){const{token:i,tokenPos:l,linePos:c,colPos:u}=e;let d=null;const p=At(e,t,n,r,a,l,c,u);return 1077936157===e.token?(j(e,32768|t),d=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),(32&a||(2097152&i)<1)&&(274549===e.token||8738868===e.token&&(2097152&i||(4&r)<1||1024&t))&&s(l,e.line,e.index-3,57,274549===e.token?"of":"in")):(16&r||(2097152&i)>0)&&262144!=(262144&e.token)&&o(e,56,16&r?"const":"destructuring"),re(e,t,l,c,u,{type:"VariableDeclarator",id:p,init:d})}function Ve(e,t,n){return ke(t,e.token)||o(e,114),537079808==(537079808&e.token)&&o(e,115),n&&ue(e,t,n,e.tokenValue,8,0),nt(e,t,0)}function Te(e,t,n){const{tokenPos:o,linePos:r,colPos:a}=e;return j(e,t),K(e,t,77934),134217728==(134217728&e.token)&&s(o,e.line,e.index,28,T[255&e.token]),re(e,t,o,r,a,{type:"ImportNamespaceSpecifier",local:Ve(e,t,n)})}function Re(e,t,n,r){for(j(e,t);143360&e.token;){let{token:s,tokenValue:a,tokenPos:i,linePos:l,colPos:c}=e;const u=nt(e,t,0);let d;W(e,t,77934)?(134217728==(134217728&e.token)||18===e.token?o(e,103):ee(e,t,16,e.token,0),a=e.tokenValue,d=nt(e,t,0)):(ee(e,t,16,s,0),d=u),n&&ue(e,t,n,a,8,0),r.push(re(e,t,i,l,c,{type:"ImportSpecifier",local:d,imported:u})),1074790415!==e.token&&K(e,t,18)}return K(e,t,1074790415),r}function Ne(e,t,n,o,r){let s=$e(e,t,re(e,t,n,o,r,{type:"Identifier",name:"import"}),n,o,r);return s=ze(e,t,s,0,0,n,o,r),s=Ge(e,t,0,0,n,o,r,s),xe(e,t,s,n,o,r)}function Ie(e,t,n,o,r){let s=Ye(e,t,0,n,o,r);return s=ze(e,t,s,0,0,n,o,r),xe(e,t,s,n,o,r)}function Ue(e,t,n,o,r,s,a,i){let l=_e(e,t,2,0,n,o,r,1,s,a,i);return l=ze(e,t,l,r,0,s,a,i),Ge(e,t,r,0,s,a,i,l)}function Be(e,t,n,o,r,s,a){const i=[a];for(;W(e,32768|t,18);)i.push(Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos));return re(e,t,o,r,s,{type:"SequenceExpression",expressions:i})}function Oe(e,t,n,o,r,s,a){const i=Ue(e,t,o,0,n,r,s,a);return 18===e.token?Be(e,t,n,r,s,a,i):i}function Ge(e,t,n,r,s,a,i,l){const{token:c}=e;if(4194304==(4194304&c)){2&e.assignable&&o(e,24),(!r&&1077936157===c&&"ArrayExpression"===l.type||"ObjectExpression"===l.type)&&Q(e,l),j(e,32768|t);const u=Ue(e,t,1,1,n,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,re(e,t,s,a,i,r?{type:"AssignmentPattern",left:l,right:u}:{type:"AssignmentExpression",left:l,operator:T[255&c],right:u})}return 8454144==(8454144&c)&&(l=He(e,t,n,s,a,i,4,c,l)),W(e,32768|t,22)&&(l=Fe(e,t,l,s,a,i)),l}function je(e,t,n,o,r,s,a,i){const{token:l}=e;j(e,32768|t);const c=Ue(e,t,1,1,n,e.tokenPos,e.linePos,e.colPos);return i=re(e,t,r,s,a,o?{type:"AssignmentPattern",left:i,right:c}:{type:"AssignmentExpression",left:i,operator:T[255&l],right:c}),e.assignable=2,i}function Fe(e,t,n,o,r,s){const a=Ue(e,134217728^(134217728|t),1,0,0,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,21),e.assignable=1;const i=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,re(e,t,o,r,s,{type:"ConditionalExpression",test:n,consequent:a,alternate:i})}function He(e,t,n,r,s,a,i,l,c){const u=8738868&-((134217728&t)>0);let d,p;for(e.assignable=2;8454144&e.token&&(d=e.token,p=3840&d,(524288&d&&268435456&l||524288&l&&268435456&d)&&o(e,159),!(p+((8457273===d)<<8)-((u===d)<<12)<=i));)j(e,32768|t),c=re(e,t,r,s,a,{type:524288&d||268435456&d?"LogicalExpression":"BinaryExpression",left:c,right:He(e,t,n,e.tokenPos,e.linePos,e.colPos,p,d,Me(e,t,0,n,1,e.tokenPos,e.linePos,e.colPos)),operator:T[255&d]});return 1077936157===e.token&&o(e,24),c}function Je(e,t,n,a,i,l){const{tokenPos:c,linePos:u,colPos:d}=e;K(e,32768|t,2162700);const p=[],f=t;if(1074790415!==e.token){for(;134283267===e.token;){const{index:n,tokenPos:o,tokenValue:r,token:a}=e,i=ot(e,t);Y(e,n,o,r)&&(t|=1024,128&e.flags&&s(e.index,e.line,e.tokenPos,63),64&e.flags&&s(e.index,e.line,e.tokenPos,8)),p.push(qe(e,t,i,a,o,e.linePos,e.colPos))}1024&t&&(i&&(537079808==(537079808&i)&&o(e,115),36864==(36864&i)&&o(e,38)),512&e.flags&&o(e,115),256&e.flags&&o(e,114)),64&t&&n&&void 0!==l&&(1024&f)<1&&(8192&t)<1&&r(l)}for(e.flags=832^(832|e.flags),e.destructible=256^(256|e.destructible);1074790415!==e.token;)p.push(he(e,t,n,4,{}));return K(e,24&a?32768|t:t,1074790415),e.flags&=-193,1077936157===e.token&&o(e,24),re(e,t,c,u,d,{type:"BlockStatement",body:p})}function Me(e,t,n,o,r,s,a,i){return ze(e,t,_e(e,t,2,0,n,0,o,r,s,a,i),o,0,s,a,i)}function ze(e,t,n,r,s,a,i,l){if(33619968==(33619968&e.token)&&(1&e.flags)<1)n=function(e,t,n,r,s,a){2&e.assignable&&o(e,52);const{token:i}=e;return j(e,t),e.assignable=2,re(e,t,r,s,a,{type:"UpdateExpression",argument:n,operator:T[255&i],prefix:!1})}(e,t,n,a,i,l);else if(67108864==(67108864&e.token)){switch(t=134225920^(134225920|t),e.token){case 67108877:j(e,1073741824|t),e.assignable=1;n=re(e,t,a,i,l,{type:"MemberExpression",object:n,computed:!1,property:Xe(e,t)});break;case 69271571:{let o=!1;2048==(2048&e.flags)&&(o=!0,e.flags=2048^(2048|e.flags)),j(e,32768|t);const{tokenPos:s,linePos:c,colPos:u}=e,d=Oe(e,t,r,1,s,c,u);K(e,t,20),e.assignable=1,n=re(e,t,a,i,l,{type:"MemberExpression",object:n,computed:!0,property:d}),o&&(e.flags|=2048);break}case 67174411:{if(1024==(1024&e.flags))return e.flags=1024^(1024|e.flags),n;let o=!1;2048==(2048&e.flags)&&(o=!0,e.flags=2048^(2048|e.flags));const s=tt(e,t,r);e.assignable=2,n=re(e,t,a,i,l,{type:"CallExpression",callee:n,arguments:s}),o&&(e.flags|=2048);break}case 67108991:j(e,t),e.flags|=2048,e.assignable=2,n=function(e,t,n,r,s,a){let i,l=!1;69271571!==e.token&&67174411!==e.token||2048==(2048&e.flags)&&(l=!0,e.flags=2048^(2048|e.flags));if(69271571===e.token){j(e,32768|t);const{tokenPos:o,linePos:l,colPos:c}=e,u=Oe(e,t,0,1,o,l,c);K(e,t,20),e.assignable=2,i=re(e,t,r,s,a,{type:"MemberExpression",object:n,computed:!0,optional:!0,property:u})}else if(67174411===e.token){const o=tt(e,t,0);e.assignable=2,i=re(e,t,r,s,a,{type:"CallExpression",callee:n,arguments:o,optional:!0})}else{(143360&e.token)<1&&o(e,154);const l=nt(e,t,0);e.assignable=2,i=re(e,t,r,s,a,{type:"MemberExpression",object:n,computed:!1,optional:!0,property:l})}l&&(e.flags|=2048);return i}(e,t,n,a,i,l);break;default:2048==(2048&e.flags)&&o(e,160),e.assignable=2,n=re(e,t,a,i,l,{type:"TaggedTemplateExpression",tag:n,quasi:67174408===e.token?Ke(e,65536|t):We(e,t,e.tokenPos,e.linePos,e.colPos)})}n=ze(e,t,n,0,1,a,i,l)}return 0===s&&2048==(2048&e.flags)&&(e.flags=2048^(2048|e.flags),n=re(e,t,a,i,l,{type:"ChainExpression",expression:n})),n}function Xe(e,t){return(143360&e.token)<1&&131!==e.token&&o(e,154),1&t&&131===e.token?Ct(e,t,e.tokenPos,e.linePos,e.colPos):nt(e,t,0)}function _e(e,t,n,r,a,i,l,c,u,d,p){if(143360==(143360&e.token)){switch(e.token){case 209008:return function(e,t,n,r,a,i,l){if(r&&(e.destructible|=128),4194304&t||2048&t&&8192&t){n&&o(e,0),8388608&t&&s(e.index,e.line,e.index,29),j(e,32768|t);const r=Me(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 8457273===e.token&&o(e,31),e.assignable=2,re(e,t,a,i,l,{type:"AwaitExpression",argument:r})}return 2048&t&&o(e,95),pt(e,t,a,i,l)}(e,t,r,l,u,d,p);case 241773:return function(e,t,n,r,s,a,i){if(n&&(e.destructible|=256),2097152&t){j(e,32768|t),8388608&t&&o(e,30),r||o(e,24),22===e.token&&o(e,120);let n=null,l=!1;return(1&e.flags)<1&&(l=W(e,32768|t,8457014),(77824&e.token||l)&&(n=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos))),e.assignable=2,re(e,t,s,a,i,{type:"YieldExpression",argument:n,delegate:l})}return 1024&t&&o(e,94,"yield"),pt(e,t,s,a,i)}(e,t,l,a,u,d,p);case 209007:return function(e,t,n,r,s,a,i,l,c,u){const{token:d}=e,p=nt(e,t,a),{flags:f}=e;if((1&f)<1){if(86106===e.token)return st(e,t,1,n,l,c,u);if(143360==(143360&e.token))return r||o(e,0),ht(e,t,s,l,c,u)}return i||67174411!==e.token?10===e.token?(ge(e,t,d,1),i&&o(e,48),ft(e,t,e.tokenValue,p,i,s,0,l,c,u)):p:Pt(e,t,p,s,1,0,f,l,c,u)}(e,t,l,c,a,i,r,u,d,p)}const{token:f,tokenValue:k}=e,g=nt(e,65536|t,i);return 10===e.token?(c||o(e,0),ge(e,t,f,1),ft(e,t,k,g,r,a,0,u,d,p)):(16384&t&&537079928===f&&o(e,126),241739===f&&(1024&t&&o(e,109),24&n&&o(e,97)),e.assignable=1024&t&&537079808==(537079808&f)?2:1,g)}if(134217728==(134217728&e.token))return ot(e,t);switch(e.token){case 33619995:case 33619996:return function(e,t,n,r,s,a,i){n&&o(e,53),r||o(e,0);const{token:l}=e;j(e,32768|t);const c=Me(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 2&e.assignable&&o(e,52),e.assignable=2,re(e,t,s,a,i,{type:"UpdateExpression",argument:c,operator:T[255&l],prefix:!0})}(e,t,r,c,u,d,p);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return function(e,t,n,r,s,a,i){n||o(e,0);const l=e.token;j(e,32768|t);const c=Me(e,t,0,i,1,e.tokenPos,e.linePos,e.colPos);var u;return 8457273===e.token&&o(e,31),1024&t&&16863278===l&&("Identifier"===c.type?o(e,117):(u=c).property&&"PrivateIdentifier"===u.property.type&&o(e,123)),e.assignable=2,re(e,t,r,s,a,{type:"UnaryExpression",operator:T[255&l],argument:c,prefix:!0})}(e,t,c,u,d,p,l);case 86106:return st(e,t,0,l,u,d,p);case 2162700:return function(e,t,n,r,s,a,i){const l=ut(e,t,void 0,n,r,0,2,0,s,a,i);256&t&&64&e.destructible&&o(e,60);8&e.destructible&&o(e,59);return l}(e,t,a?0:1,l,u,d,p);case 69271571:return function(e,t,n,r,s,a,i){const l=at(e,t,void 0,n,r,0,2,0,s,a,i);256&t&&64&e.destructible&&o(e,60);8&e.destructible&&o(e,59);return l}(e,t,a?0:1,l,u,d,p);case 67174411:return function(e,t,n,r,s,a,i,l){e.flags=128^(128|e.flags);const{tokenPos:c,linePos:u,colPos:d}=e;j(e,1073774592|t);const p=64&t?le({parent:void 0,type:2},1024):void 0;if(W(e,t=134217728^(134217728|t),16))return kt(e,t,p,[],n,0,a,i,l);let f,k=0;e.destructible&=-385;let g=[],m=0,b=0;const{tokenPos:h,linePos:P,colPos:y}=e;e.assignable=1;for(;16!==e.token;){const{token:n,tokenPos:a,linePos:i,colPos:l}=e;if(143360&n)p&&ue(e,t,p,e.tokenValue,1,0),f=_e(e,t,r,0,1,0,1,1,a,i,l),16===e.token||18===e.token?2&e.assignable?(k|=16,b=1):537079808!=(537079808&n)&&36864!=(36864&n)||(b=1):(1077936157===e.token?b=1:k|=16,f=ze(e,t,f,1,0,a,i,l),16!==e.token&&18!==e.token&&(f=Ge(e,t,1,0,a,i,l,f)));else{if(2097152!=(2097152&n)){if(14===n){f=lt(e,t,p,16,r,s,0,1,0,a,i,l),16&e.destructible&&o(e,71),b=1,!m||16!==e.token&&18!==e.token||g.push(f),k|=8;break}if(k|=16,f=Ue(e,t,1,0,1,a,i,l),!m||16!==e.token&&18!==e.token||g.push(f),18===e.token&&(m||(m=1,g=[f])),m){for(;W(e,32768|t,18);)g.push(Ue(e,t,1,0,1,e.tokenPos,e.linePos,e.colPos));e.assignable=2,f=re(e,t,h,P,y,{type:"SequenceExpression",expressions:g})}return K(e,t,16),e.destructible=k,f}f=2162700===n?ut(e,1073741824|t,p,0,1,0,r,s,a,i,l):at(e,1073741824|t,p,0,1,0,r,s,a,i,l),k|=e.destructible,b=1,e.assignable=2,16!==e.token&&18!==e.token&&(8&k&&o(e,118),f=ze(e,t,f,0,0,a,i,l),k|=16,16!==e.token&&18!==e.token&&(f=Ge(e,t,0,0,a,i,l,f)))}if(!m||16!==e.token&&18!==e.token||g.push(f),!W(e,32768|t,18))break;if(m||(m=1,g=[f]),16===e.token){k|=8;break}}m&&(e.assignable=2,f=re(e,t,h,P,y,{type:"SequenceExpression",expressions:g}));K(e,t,16),16&k&&8&k&&o(e,145);if(k|=256&e.destructible?256:0|128&e.destructible?128:0,10===e.token)return 48&k&&o(e,46),4196352&t&&128&k&&o(e,29),2098176&t&&256&k&&o(e,30),b&&(e.flags|=128),kt(e,t,p,m?g:[f],n,0,a,i,l);8&k&&o(e,139);return e.destructible=256^(256|e.destructible)|k,128&t?re(e,t,c,u,d,{type:"ParenthesizedExpression",expression:f}):f}(e,t,a,1,0,u,d,p);case 86021:case 86022:case 86023:return function(e,t,n,o,r){const s=T[255&e.token],a=86023===e.token?null:"true"===s;return j(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:a,raw:s}:{type:"Literal",value:a})}(e,t,u,d,p);case 86113:return function(e,t){const{tokenPos:n,linePos:o,colPos:r}=e;return j(e,t),e.assignable=2,re(e,t,n,o,r,{type:"ThisExpression"})}(e,t);case 65540:return function(e,t,n,o,r){const{tokenRaw:s,tokenRegExp:a,tokenValue:i}=e;return j(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:i,regex:a,raw:s}:{type:"Literal",value:i,regex:a})}(e,t,u,d,p);case 133:case 86096:return function(e,t,n,r,s,a){let i=null,l=null;const c=xt(e,t=16777216^(16778240|t));c.length&&(r=e.tokenPos,s=e.linePos,a=e.colPos);j(e,t),4096&e.token&&20567!==e.token&&(ne(e,t,e.token)&&o(e,114),537079808==(537079808&e.token)&&o(e,115),i=nt(e,t,0));let u=t;W(e,32768|t,20567)?(l=Me(e,t,0,n,0,e.tokenPos,e.linePos,e.colPos),u|=524288):u=524288^(524288|u);const d=wt(e,u,t,void 0,2,0,n);return e.assignable=2,re(e,t,r,s,a,1&t?{type:"ClassExpression",id:i,superClass:l,decorators:c,body:d}:{type:"ClassExpression",id:i,superClass:l,body:d})}(e,t,l,u,d,p);case 86111:return function(e,t,n,r,s){switch(j(e,t),e.token){case 67108991:o(e,161);case 67174411:(524288&t)<1&&o(e,26),16384&t&&o(e,143),e.assignable=2;break;case 69271571:case 67108877:(262144&t)<1&&o(e,27),16384&t&&o(e,143),e.assignable=1;break;default:o(e,28,"super")}return re(e,t,n,r,s,{type:"Super"})}(e,t,u,d,p);case 67174409:return We(e,t,u,d,p);case 67174408:return Ke(e,t);case 86109:return function(e,t,n,r,s,a){const i=nt(e,32768|t,0),{tokenPos:l,linePos:c,colPos:u}=e;if(W(e,t,67108877)){if(67108864&t&&143494===e.token)return e.assignable=2,function(e,t,n,o,r,s){const a=nt(e,t,0);return re(e,t,o,r,s,{type:"MetaProperty",meta:n,property:a})}(e,t,i,r,s,a);o(e,91)}e.assignable=2,16842752==(16842752&e.token)&&o(e,62,T[255&e.token]);const d=_e(e,t,2,1,0,0,n,1,l,c,u);t=134217728^(134217728|t),67108991===e.token&&o(e,162);const p=bt(e,t,d,n,l,c,u);return e.assignable=2,re(e,t,r,s,a,{type:"NewExpression",callee:p,arguments:67174411===e.token?tt(e,t,n):[]})}(e,t,l,u,d,p);case 134283389:return Ze(e,t,u,d,p);case 131:return Ct(e,t,u,d,p);case 86108:return function(e,t,n,r,s,a,i){let l=nt(e,t,0);if(67108877===e.token)return $e(e,t,l,s,a,i);n&&o(e,137);return l=Ye(e,t,r,s,a,i),e.assignable=2,ze(e,t,l,r,0,s,a,i)}(e,t,r,l,u,d,p);case 8456258:if(16&t)return Dt(e,t,1,u,d,p);default:if(ke(t,e.token))return pt(e,t,u,d,p);o(e,28,T[255&e.token])}}function $e(e,t,n,r,s,a){return 0==(2048&t)&&o(e,163),j(e,t),143495!==e.token&&"meta"!==e.tokenValue&&o(e,28,T[255&e.token]),e.assignable=2,re(e,t,r,s,a,{type:"MetaProperty",meta:n,property:nt(e,t,0)})}function Ye(e,t,n,r,s,a){K(e,32768|t,67174411),14===e.token&&o(e,138);const i=Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos);return K(e,t,16),re(e,t,r,s,a,{type:"ImportExpression",source:i})}function Ze(e,t,n,o,r){const{tokenRaw:s,tokenValue:a}=e;return j(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:a,bigint:s.slice(0,-1),raw:s}:{type:"Literal",value:a,bigint:s.slice(0,-1)})}function We(e,t,n,o,r){e.assignable=2;const{tokenValue:s,tokenRaw:a,tokenPos:i,linePos:l,colPos:c}=e;K(e,t,67174409);return re(e,t,n,o,r,{type:"TemplateLiteral",expressions:[],quasis:[Qe(e,t,s,a,i,l,c,!0)]})}function Ke(e,t){t=134217728^(134217728|t);const{tokenValue:n,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;K(e,32768|t,67174408);const l=[Qe(e,t,n,r,s,a,i,!1)],c=[Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos)];for(1074790415!==e.token&&o(e,80);67174409!==(e.token=D(e,t));){const{tokenValue:n,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;K(e,32768|t,67174408),l.push(Qe(e,t,n,r,s,a,i,!1)),c.push(Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos)),1074790415!==e.token&&o(e,80)}{const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;K(e,t,67174409),l.push(Qe(e,t,n,o,r,s,a,!0))}return re(e,t,s,a,i,{type:"TemplateLiteral",expressions:c,quasis:l})}function Qe(e,t,n,o,r,s,a,i){const l=re(e,t,r,s,a,{type:"TemplateElement",value:{cooked:n,raw:o},tail:i}),c=i?1:2;return 2&t&&(l.start+=1,l.range[0]+=1,l.end-=c,l.range[1]-=c),4&t&&(l.loc.start.column+=1,l.loc.end.column-=c),l}function et(e,t,n,o,r){K(e,32768|(t=134217728^(134217728|t)),14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=1,re(e,t,n,o,r,{type:"SpreadElement",argument:s})}function tt(e,t,n){j(e,32768|t);const o=[];if(16===e.token)return j(e,t),o;for(;16!==e.token&&(14===e.token?o.push(et(e,t,e.tokenPos,e.linePos,e.colPos)):o.push(Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos)),18===e.token)&&(j(e,32768|t),16!==e.token););return K(e,t,16),o}function nt(e,t,n){const{tokenValue:o,tokenPos:r,linePos:s,colPos:a}=e;return j(e,t),re(e,t,r,s,a,268435456&t?{type:"Identifier",name:o,pattern:1===n}:{type:"Identifier",name:o})}function ot(e,t){const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;return 134283389===e.token?Ze(e,t,r,s,a):(j(e,t),e.assignable=2,re(e,t,r,s,a,512&t?{type:"Literal",value:n,raw:o}:{type:"Literal",value:n}))}function rt(e,t,n,r,s,a,i,l,c,u){j(e,32768|t);const d=s?Z(e,t,8457014):0;let p,f=null,k=n?{parent:void 0,type:2}:void 0;if(67174411===e.token)(1&a)<1&&o(e,37,"Function");else{const s=4&r&&((8192&t)<1||(2048&t)<1)?4:64;te(e,t|(3072&t)<<11,e.token),n&&(4&s?de(e,t,n,e.tokenValue,s):ue(e,t,n,e.tokenValue,s,r),k=le(k,256),a&&2&a&&pe(e,e.tokenValue)),p=e.token,143360&e.token?f=nt(e,t,0):o(e,28,T[255&e.token])}t=32243712^(32243712|t)|67108864|2*i+d<<21|(d?0:1073741824),n&&(k=le(k,512));return re(e,t,l,c,u,{type:"FunctionDeclaration",id:f,params:mt(e,8388608|t,k,0,1),body:Je(e,143360^(143360|t),n?le(k,128):k,8,p,n?k.scopeError:void 0),async:1===i,generator:1===d})}function st(e,t,n,o,r,s,a){j(e,32768|t);const i=Z(e,t,8457014),l=2*n+i<<21;let c,u=null,d=64&t?{parent:void 0,type:2}:void 0;(176128&e.token)>0&&(te(e,32243712^(32243712|t)|l,e.token),d&&(d=le(d,256)),c=e.token,u=nt(e,t,0)),t=32243712^(32243712|t)|67108864|l|(i?0:1073741824),d&&(d=le(d,512));const p=mt(e,8388608|t,d,o,1),f=Je(e,-134377473&t,d?le(d,128):d,0,c,void 0);return e.assignable=2,re(e,t,r,s,a,{type:"FunctionExpression",id:u,params:p,body:f,async:1===n,generator:1===i})}function at(e,t,n,r,s,a,i,l,c,u,d){j(e,32768|t);const p=[];let f=0;for(t=134217728^(134217728|t);20!==e.token;)if(W(e,32768|t,18))p.push(null);else{let r;const{token:c,tokenPos:u,linePos:d,colPos:k,tokenValue:g}=e;if(143360&c)if(r=_e(e,t,i,0,1,0,s,1,u,d,k),1077936157===e.token){2&e.assignable&&o(e,24),j(e,32768|t),n&&ce(e,t,n,g,i,l);const c=Ue(e,t,1,1,s,e.tokenPos,e.linePos,e.colPos);r=re(e,t,u,d,k,a?{type:"AssignmentPattern",left:r,right:c}:{type:"AssignmentExpression",operator:"=",left:r,right:c}),f|=256&e.destructible?256:0|128&e.destructible?128:0}else 18===e.token||20===e.token?(2&e.assignable?f|=16:n&&ce(e,t,n,g,i,l),f|=256&e.destructible?256:0|128&e.destructible?128:0):(f|=1&i?32:(2&i)<1?16:0,r=ze(e,t,r,s,0,u,d,k),18!==e.token&&20!==e.token?(1077936157!==e.token&&(f|=16),r=Ge(e,t,s,a,u,d,k,r)):1077936157!==e.token&&(f|=2&e.assignable?16:32));else 2097152&c?(r=2162700===e.token?ut(e,t,n,0,s,a,i,l,u,d,k):at(e,t,n,0,s,a,i,l,u,d,k),f|=e.destructible,e.assignable=16&e.destructible?2:1,18===e.token||20===e.token?2&e.assignable&&(f|=16):8&e.destructible?o(e,68):(r=ze(e,t,r,s,0,u,d,k),f=2&e.assignable?16:0,18!==e.token&&20!==e.token?r=Ge(e,t,s,a,u,d,k,r):1077936157!==e.token&&(f|=2&e.assignable?16:32))):14===c?(r=lt(e,t,n,20,i,l,0,s,a,u,d,k),f|=e.destructible,18!==e.token&&20!==e.token&&o(e,28,T[255&e.token])):(r=Me(e,t,1,0,1,u,d,k),18!==e.token&&20!==e.token?(r=Ge(e,t,s,a,u,d,k,r),(3&i)<1&&67174411===c&&(f|=16)):2&e.assignable?f|=16:67174411===c&&(f|=1&e.assignable&&3&i?32:16));if(p.push(r),!W(e,32768|t,18))break;if(20===e.token)break}K(e,t,20);const k=re(e,t,c,u,d,{type:a?"ArrayPattern":"ArrayExpression",elements:p});return!r&&4194304&e.token?it(e,t,f,s,a,c,u,d,k):(e.destructible=f,k)}function it(e,t,n,r,s,a,i,l,c){1077936157!==e.token&&o(e,24),j(e,32768|t),16&n&&o(e,24),s||Q(e,c);const{tokenPos:u,linePos:d,colPos:p}=e,f=Ue(e,t,1,1,r,u,d,p);return e.destructible=72^(72|n)|(128&e.destructible?128:0)|(256&e.destructible?256:0),re(e,t,a,i,l,s?{type:"AssignmentPattern",left:c,right:f}:{type:"AssignmentExpression",left:c,operator:"=",right:f})}function lt(e,t,n,r,s,a,i,l,c,u,d,p){j(e,32768|t);let f=null,k=0,{token:g,tokenValue:m,tokenPos:b,linePos:h,colPos:P}=e;if(143360&g)e.assignable=1,f=_e(e,t,s,0,1,0,l,1,b,h,P),g=e.token,f=ze(e,t,f,l,0,b,h,P),18!==e.token&&e.token!==r&&(2&e.assignable&&1077936157===e.token&&o(e,68),k|=16,f=Ge(e,t,l,c,b,h,P,f)),2&e.assignable?k|=16:g===r||18===g?n&&ce(e,t,n,m,s,a):k|=32,k|=128&e.destructible?128:0;else if(g===r)o(e,39);else{if(!(2097152&g)){k|=32,f=Me(e,t,1,l,1,e.tokenPos,e.linePos,e.colPos);const{token:n,tokenPos:s,linePos:a,colPos:i}=e;return 1077936157===n&&n!==r&&18!==n?(2&e.assignable&&o(e,24),f=Ge(e,t,l,c,s,a,i,f),k|=16):(18===n?k|=16:n!==r&&(f=Ge(e,t,l,c,s,a,i,f)),k|=1&e.assignable?32:16),e.destructible=k,e.token!==r&&18!==e.token&&o(e,155),re(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}f=2162700===e.token?ut(e,t,n,1,l,c,s,a,b,h,P):at(e,t,n,1,l,c,s,a,b,h,P),g=e.token,1077936157!==g&&g!==r&&18!==g?(8&e.destructible&&o(e,68),f=ze(e,t,f,l,0,b,h,P),k|=2&e.assignable?16:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),f=Ge(e,t,l,c,b,h,P,f)):(8454144==(8454144&e.token)&&(f=He(e,t,1,b,h,P,4,g,f)),W(e,32768|t,22)&&(f=Fe(e,t,f,b,h,P)),k|=2&e.assignable?16:32)):k|=1074790415===r&&1077936157!==g?16:e.destructible}if(e.token!==r)if(1&s&&(k|=i?16:32),W(e,32768|t,1077936157)){16&k&&o(e,24),Q(e,f);const n=Ue(e,t,1,1,l,e.tokenPos,e.linePos,e.colPos);f=re(e,t,b,h,P,c?{type:"AssignmentPattern",left:f,right:n}:{type:"AssignmentExpression",left:f,operator:"=",right:n}),k=16}else k|=16;return e.destructible=k,re(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}function ct(e,t,n,s,a,i,l){const c=(64&n)<1?31981568:14680064;let u=64&(t=(t|c)^c|(88&n)<<18|100925440)?le({parent:void 0,type:2},512):void 0;const d=function(e,t,n,s,a,i){K(e,t,67174411);const l=[];if(e.flags=128^(128|e.flags),16===e.token)return 512&s&&o(e,35,"Setter","one",""),j(e,t),l;256&s&&o(e,35,"Getter","no","s");512&s&&14===e.token&&o(e,36);t=134217728^(134217728|t);let c=0,u=0;for(;18!==e.token;){let r=null;const{tokenPos:d,linePos:p,colPos:f}=e;if(143360&e.token?((1024&t)<1&&(36864==(36864&e.token)&&(e.flags|=256),537079808==(537079808&e.token)&&(e.flags|=512)),r=St(e,t,n,1|s,0,d,p,f)):(2162700===e.token?r=ut(e,t,n,1,i,1,a,0,d,p,f):69271571===e.token?r=at(e,t,n,1,i,1,a,0,d,p,f):14===e.token&&(r=lt(e,t,n,16,a,0,0,i,1,d,p,f)),u=1,48&e.destructible&&o(e,47)),1077936157===e.token){j(e,32768|t),u=1;r=re(e,t,d,p,f,{type:"AssignmentPattern",left:r,right:Ue(e,t,1,1,0,e.tokenPos,e.linePos,e.colPos)})}if(c++,l.push(r),!W(e,t,18))break;if(16===e.token)break}512&s&&1!==c&&o(e,35,"Setter","one","");n&&void 0!==n.scopeError&&r(n.scopeError);u&&(e.flags|=128);return K(e,t,16),l}(e,8388608|t,u,n,1,s);u&&(u=le(u,128));return re(e,t,a,i,l,{type:"FunctionExpression",params:d,body:Je(e,-134230017&t,u,0,void 0,void 0),async:(16&n)>0,generator:(8&n)>0,id:null})}function ut(e,t,n,r,a,i,l,c,u,d,p){j(e,t);const f=[];let k=0,g=0;for(t=134217728^(134217728|t);1074790415!==e.token;){const{token:r,tokenValue:u,linePos:d,colPos:p,tokenPos:m}=e;if(14===r)f.push(lt(e,t,n,1074790415,l,c,0,a,i,m,d,p));else{let b,h=0,P=null;const y=e.token;if(143360&e.token||121===e.token)if(P=nt(e,t,0),18===e.token||1074790415===e.token||1077936157===e.token)if(h|=4,1024&t&&537079808==(537079808&r)?k|=16:ee(e,t,l,r,0),n&&ce(e,t,n,u,l,c),W(e,32768|t,1077936157)){k|=8;const n=Ue(e,t,1,1,a,e.tokenPos,e.linePos,e.colPos);k|=256&e.destructible?256:0|128&e.destructible?128:0,b=re(e,t,m,d,p,{type:"AssignmentPattern",left:-2147483648&t?Object.assign({},P):P,right:n})}else k|=(209008===r?128:0)|(121===r?16:0),b=-2147483648&t?Object.assign({},P):P;else if(W(e,32768|t,21)){const{tokenPos:s,linePos:d,colPos:p}=e;if("__proto__"===u&&g++,143360&e.token){const o=e.token,r=e.tokenValue;k|=121===y?16:0,b=_e(e,t,l,0,1,0,a,1,s,d,p);const{token:u}=e;b=ze(e,t,b,a,0,s,d,p),18===e.token||1074790415===e.token?1077936157===u||1074790415===u||18===u?(k|=128&e.destructible?128:0,2&e.assignable?k|=16:n&&143360==(143360&o)&&ce(e,t,n,r,l,c)):k|=1&e.assignable?32:16:4194304==(4194304&e.token)?(2&e.assignable?k|=16:1077936157!==u?k|=32:n&&ce(e,t,n,r,l,c),b=Ge(e,t,a,i,s,d,p,b)):(k|=16,8454144==(8454144&e.token)&&(b=He(e,t,1,s,d,p,4,u,b)),W(e,32768|t,22)&&(b=Fe(e,t,b,s,d,p)))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,s,d,p):ut(e,t,n,0,a,i,l,c,s,d,p),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&e.destructible?o(e,68):(b=ze(e,t,b,a,0,s,d,p),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=je(e,t,a,i,s,d,p,b):(8454144==(8454144&e.token)&&(b=He(e,t,1,s,d,p,4,r,b)),W(e,32768|t,22)&&(b=Fe(e,t,b,s,d,p)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,a,1,s,d,p),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,s,d,p),k=2&e.assignable?16:0,18!==e.token&&1074790415!==r&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,s,d,p,b))))}else 69271571===e.token?(k|=16,209007===r&&(h|=16),h|=2|(12402===r?256:12403===r?512:1),P=dt(e,t,a),k|=e.assignable,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):143360&e.token?(k|=16,121===r&&o(e,92),209007===r&&(1&e.flags&&o(e,128),h|=16),P=nt(e,t,0),h|=12402===r?256:12403===r?512:1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):67174411===e.token?(k|=16,h|=1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):8457014===e.token?(k|=16,12402===r||12403===r?o(e,40):143483===r&&o(e,92),j(e,t),h|=9|(209007===r?16:0),143360&e.token?P=nt(e,t,0):134217728==(134217728&e.token)?P=ot(e,t):69271571===e.token?(h|=2,P=dt(e,t,a),k|=e.assignable):o(e,28,T[255&e.token]),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):134217728==(134217728&e.token)?(209007===r&&(h|=16),h|=12402===r?256:12403===r?512:1,k|=16,P=ot(e,t),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):o(e,129);else if(134217728==(134217728&e.token))if(P=ot(e,t),21===e.token){K(e,32768|t,21);const{tokenPos:o,linePos:s,colPos:d}=e;if("__proto__"===u&&g++,143360&e.token){b=_e(e,t,l,0,1,0,a,1,o,s,d);const{token:r,tokenValue:u}=e;b=ze(e,t,b,a,0,o,s,d),18===e.token||1074790415===e.token?1077936157===r||1074790415===r||18===r?2&e.assignable?k|=16:n&&ce(e,t,n,u,l,c):k|=1&e.assignable?32:16:1077936157===e.token?(2&e.assignable&&(k|=16),b=Ge(e,t,a,i,o,s,d,b)):(k|=16,b=Ge(e,t,a,i,o,s,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,o,s,d):ut(e,t,n,0,a,i,l,c,o,s,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8!=(8&e.destructible)&&(b=ze(e,t,b,a,0,o,s,d),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=je(e,t,a,i,o,s,d,b):(8454144==(8454144&e.token)&&(b=He(e,t,1,o,s,d,4,r,b)),W(e,32768|t,22)&&(b=Fe(e,t,b,o,s,d)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,0,1,o,s,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,o,s,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,o,s,d,b))))}else 67174411===e.token?(h|=1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos),k=16|e.assignable):o(e,130);else if(69271571===e.token)if(P=dt(e,t,a),k|=256&e.destructible?256:0,h|=2,21===e.token){j(e,32768|t);const{tokenPos:s,linePos:u,colPos:d,tokenValue:p,token:f}=e;if(143360&e.token){b=_e(e,t,l,0,1,0,a,1,s,u,d);const{token:o}=e;b=ze(e,t,b,a,0,s,u,d),4194304==(4194304&e.token)?(k|=2&e.assignable?16:1077936157===o?0:32,b=je(e,t,a,i,s,u,d,b)):18===e.token||1074790415===e.token?1077936157===o||1074790415===o||18===o?2&e.assignable?k|=16:n&&143360==(143360&f)&&ce(e,t,n,p,l,c):k|=1&e.assignable?32:16:(k|=16,b=Ge(e,t,a,i,s,u,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,s,u,d):ut(e,t,n,0,a,i,l,c,s,u,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&k?o(e,59):(b=ze(e,t,b,a,0,s,u,d),k=2&e.assignable?16|k:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),b=je(e,t,a,i,s,u,d,b)):(8454144==(8454144&e.token)&&(b=He(e,t,1,s,u,d,4,r,b)),W(e,32768|t,22)&&(b=Fe(e,t,b,s,u,d)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,0,1,s,u,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,s,u,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,s,u,d,b))))}else 67174411===e.token?(h|=1,b=ct(e,t,h,a,e.tokenPos,d,p),k=16):o(e,41);else if(8457014===r)if(K(e,32768|t,8457014),h|=8,143360&e.token){const{token:n,line:o,index:r}=e;P=nt(e,t,0),h|=1,67174411===e.token?(k|=16,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):s(r,o,r,209007===n?43:12402===n||12403===e.token?42:44,T[255&n])}else 134217728==(134217728&e.token)?(k|=16,P=ot(e,t),h|=1,b=ct(e,t,h,a,m,d,p)):69271571===e.token?(k|=16,h|=3,P=dt(e,t,a),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):o(e,122);else o(e,28,T[255&r]);k|=128&e.destructible?128:0,e.destructible=k,f.push(re(e,t,m,d,p,{type:"Property",key:P,value:b,kind:768&h?512&h?"set":"get":"init",computed:(2&h)>0,method:(1&h)>0,shorthand:(4&h)>0}))}if(k|=e.destructible,18!==e.token)break;j(e,t)}K(e,t,1074790415),g>1&&(k|=64);const m=re(e,t,u,d,p,{type:i?"ObjectPattern":"ObjectExpression",properties:f});return!r&&4194304&e.token?it(e,t,k,a,i,u,d,p,m):(e.destructible=k,m)}function dt(e,t,n){j(e,32768|t);const o=Ue(e,134217728^(134217728|t),1,0,n,e.tokenPos,e.linePos,e.colPos);return K(e,t,20),o}function pt(e,t,n,o,r){const{tokenValue:s}=e,a=nt(e,t,0);if(e.assignable=1,10===e.token){let i;return 64&t&&(i=ae(e,t,s)),e.flags=128^(128|e.flags),gt(e,t,i,[a],0,n,o,r)}return a}function ft(e,t,n,r,s,a,i,l,c,u){a||o(e,54),s&&o(e,48),e.flags&=-129;return gt(e,t,64&t?ae(e,t,n):void 0,[r],i,l,c,u)}function kt(e,t,n,r,s,a,i,l,c){s||o(e,54);for(let t=0;t0&&"constructor"===e.tokenValue&&o(e,106),1074790415===e.token&&o(e,105),W(e,t,1074790417)?a>0&&o(e,116):d.push(qt(e,t,r,n,s,p,0,i,e.tokenPos,e.linePos,e.colPos))}return K(e,8&a?32768|t:t,1074790415),re(e,t,l,c,u,{type:"ClassBody",body:d})}function qt(e,t,n,r,s,a,i,l,c,u,d){let p=i?32:0,f=null;const{token:k,tokenPos:g,linePos:m,colPos:b}=e;if(176128&k)switch(f=nt(e,t,0),k){case 36972:if(!i&&67174411!==e.token)return qt(e,t,n,r,s,a,1,l,c,u,d);break;case 209007:if(67174411!==e.token&&(1&e.flags)<1){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=16|(Z(e,t,8457014)?8:0)}break;case 12402:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=256}break;case 12403:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=512}}else 69271571===k?(p|=2,f=dt(e,r,l)):134217728==(134217728&k)?f=ot(e,t):8457014===k?(p|=8,j(e,t)):1&t&&131===e.token?(p|=4096,f=Ct(e,t,g,m,b),t|=16384):1&t&&1073741824==(1073741824&e.token)?(p|=128,t|=16384):122===k?(f=nt(e,t,0),67174411!==e.token&&o(e,28,T[255&e.token])):o(e,28,T[255&e.token]);if(792&p&&(143360&e.token?f=nt(e,t,0):134217728==(134217728&e.token)?f=ot(e,t):69271571===e.token?(p|=2,f=dt(e,t,0)):122===e.token?f=nt(e,t,0):1&t&&131===e.token?(p|=4096,f=Ct(e,t,g,m,b)):o(e,131)),(2&p)<1&&("constructor"===e.tokenValue?(1073741824==(1073741824&e.token)?o(e,125):(32&p)<1&&67174411===e.token&&(920&p?o(e,50,"accessor"):(524288&t)<1&&(32&e.flags?o(e,51):e.flags|=32)),p|=64):(4096&p)<1&&824&p&&"prototype"===e.tokenValue&&o(e,49)),1&t&&67174411!==e.token)return Et(e,t,f,p,a,g,m,b);const h=ct(e,t,p,l,e.tokenPos,e.linePos,e.colPos);return re(e,t,c,u,d,1&t?{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,decorators:a,value:h}:{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,value:h})}function Ct(e,t,n,r,s){j(e,t);const{tokenValue:a}=e;return"constructor"===a&&o(e,124),j(e,t),re(e,t,n,r,s,{type:"PrivateIdentifier",name:a})}function Et(e,t,n,r,s,a,i,l){let c=null;if(8&r&&o(e,0),1077936157===e.token){j(e,32768|t);const{tokenPos:n,linePos:r,colPos:s}=e;537079928===e.token&&o(e,115),c=_e(e,16384|t,2,0,1,0,0,1,n,r,s),1073741824!=(1073741824&e.token)&&(c=ze(e,16384|t,c,0,0,n,r,s),c=Ge(e,16384|t,0,0,n,r,s,c),18===e.token&&(c=Be(e,t,0,a,i,l,c)))}return re(e,t,a,i,l,{type:"PropertyDefinition",key:n,value:c,static:(32&r)>0,computed:(2&r)>0,decorators:s})}function At(e,t,n,r,s,a,i,l){if(143360&e.token)return St(e,t,n,r,s,a,i,l);2097152!=(2097152&e.token)&&o(e,28,T[255&e.token]);const c=69271571===e.token?at(e,t,n,1,0,1,r,s,a,i,l):ut(e,t,n,1,0,1,r,s,a,i,l);return 16&e.destructible&&o(e,47),32&e.destructible&&o(e,47),c}function St(e,t,n,r,s,a,i,l){const{tokenValue:c,token:u}=e;return 1024&t&&(537079808==(537079808&u)?o(e,115):36864==(36864&u)&&o(e,114)),20480==(20480&u)&&o(e,99),2099200&t&&241773===u&&o(e,30),241739===u&&24&r&&o(e,97),4196352&t&&209008===u&&o(e,95),j(e,t),n&&ce(e,t,n,c,r,s),re(e,t,a,i,l,{type:"Identifier",name:c})}function Dt(e,t,n,r,s,a){if(j(e,t),8456259===e.token)return re(e,t,r,s,a,{type:"JSXFragment",openingFragment:Lt(e,t,r,s,a),children:Tt(e,t),closingFragment:Vt(e,t,n,e.tokenPos,e.linePos,e.colPos)});let i=null,l=[];const c=function(e,t,n,r,s,a){143360!=(143360&e.token)&&4096!=(4096&e.token)&&o(e,0);const i=Nt(e,t,e.tokenPos,e.linePos,e.colPos),l=function(e,t){const n=[];for(;8457016!==e.token&&8456259!==e.token&&1048576!==e.token;)n.push(Ut(e,t,e.tokenPos,e.linePos,e.colPos));return n}(e,t),c=8457016===e.token;8456259===e.token?X(e,t):(K(e,t,8457016),n?K(e,t,8456259):X(e,t));return re(e,t,r,s,a,{type:"JSXOpeningElement",name:i,attributes:l,selfClosing:c})}(e,t,n,r,s,a);if(!c.selfClosing){l=Tt(e,t),i=function(e,t,n,o,r,s){K(e,t,25);const a=Nt(e,t,e.tokenPos,e.linePos,e.colPos);n?K(e,t,8456259):e.token=X(e,t);return re(e,t,o,r,s,{type:"JSXClosingElement",name:a})}(e,t,n,e.tokenPos,e.linePos,e.colPos);const r=se(i.name);se(c.name)!==r&&o(e,149,r)}return re(e,t,r,s,a,{type:"JSXElement",children:l,openingElement:c,closingElement:i})}function Lt(e,t,n,o,r){return X(e,t),re(e,t,n,o,r,{type:"JSXOpeningFragment"})}function Vt(e,t,n,o,r,s){return K(e,t,25),K(e,t,8456259),re(e,t,o,r,s,{type:"JSXClosingFragment"})}function Tt(e,t){const n=[];for(;25!==e.token;)e.index=e.tokenPos=e.startPos,e.column=e.colPos=e.startColumn,e.line=e.linePos=e.startLine,X(e,t),n.push(Rt(e,t,e.tokenPos,e.linePos,e.colPos));return n}function Rt(e,t,n,r,s){return 138===e.token?function(e,t,n,o,r){X(e,t);const s={type:"JSXText",value:e.tokenValue};512&t&&(s.raw=e.tokenRaw);return re(e,t,n,o,r,s)}(e,t,n,r,s):2162700===e.token?Ot(e,t,0,0,n,r,s):8456258===e.token?Dt(e,t,0,n,r,s):void o(e,0)}function Nt(e,t,n,o,r){_(e);let s=Gt(e,t,n,o,r);if(21===e.token)return Bt(e,t,s,n,o,r);for(;W(e,t,67108877);)_(e),s=It(e,t,s,n,o,r);return s}function It(e,t,n,o,r,s){return re(e,t,o,r,s,{type:"JSXMemberExpression",object:n,property:Gt(e,t,e.tokenPos,e.linePos,e.colPos)})}function Ut(e,t,n,r,s){if(2162700===e.token)return function(e,t,n,o,r){j(e,t),K(e,t,14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return K(e,t,1074790415),re(e,t,n,o,r,{type:"JSXSpreadAttribute",argument:s})}(e,t,n,r,s);_(e);let a=null,i=Gt(e,t,n,r,s);if(21===e.token&&(i=Bt(e,t,i,n,r,s)),1077936157===e.token){const n=z(e,t),{tokenPos:r,linePos:s,colPos:i}=e;switch(n){case 134283267:a=ot(e,t);break;case 8456258:a=Dt(e,t,1,r,s,i);break;case 2162700:a=Ot(e,t,1,1,r,s,i);break;default:o(e,148)}}return re(e,t,n,r,s,{type:"JSXAttribute",value:a,name:i})}function Bt(e,t,n,o,r,s){K(e,t,21);return re(e,t,o,r,s,{type:"JSXNamespacedName",namespace:n,name:Gt(e,t,e.tokenPos,e.linePos,e.colPos)})}function Ot(e,t,n,r,s,a,i){j(e,t);const{tokenPos:l,linePos:c,colPos:u}=e;if(14===e.token)return function(e,t,n,o,r){K(e,t,14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return K(e,t,1074790415),re(e,t,n,o,r,{type:"JSXSpreadChild",expression:s})}(e,t,l,c,u);let d=null;return 1074790415===e.token?(r&&o(e,151),d=function(e,t,n,o,r){return e.startPos=e.tokenPos,e.startLine=e.linePos,e.startColumn=e.colPos,re(e,t,n,o,r,{type:"JSXEmptyExpression"})}(e,t,e.startPos,e.startLine,e.startColumn)):d=Ue(e,t,1,0,0,l,c,u),n?K(e,t,1074790415):X(e,t),re(e,t,s,a,i,{type:"JSXExpressionContainer",expression:d})}function Gt(e,t,n,o,r){const{tokenValue:s}=e;return j(e,t),re(e,t,n,o,r,{type:"JSXIdentifier",name:s})}var jt=Object.freeze({__proto__:null});e.ESTree=jt,e.parse=function(e,t){return me(e,t,0)},e.parseModule=function(e,t){return me(e,t,3072)},e.parseScript=function(e,t){return me(e,t,0)},e.version="4.2.0",Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/node_modules/meriyah/dist/meriyah.umd.min.js b/node_modules/meriyah/dist/meriyah.umd.min.js new file mode 100644 index 0000000..0595799 --- /dev/null +++ b/node_modules/meriyah/dist/meriyah.umd.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).meriyah={})}(this,(function(e){"use strict";const t={0:"Unexpected token",28:"Unexpected token: '%0'",1:"Octal escape sequences are not allowed in strict mode",2:"Octal escape sequences are not allowed in template strings",3:"Unexpected token `#`",4:"Illegal Unicode escape sequence",5:"Invalid code point %0",6:"Invalid hexadecimal escape sequence",8:"Octal literals are not allowed in strict mode",7:"Decimal integer literals with a leading zero are forbidden in strict mode",9:"Expected number in radix %0",145:"Invalid left-hand side assignment to a destructible right-hand side",10:"Non-number found after exponent indicator",11:"Invalid BigIntLiteral",12:"No identifiers allowed directly after numeric literal",13:"Escapes \\8 or \\9 are not syntactically valid escapes",14:"Unterminated string literal",15:"Unterminated template literal",16:"Multiline comment was not closed properly",17:"The identifier contained dynamic unicode escape that was not closed",18:"Illegal character '%0'",19:"Missing hexadecimal digits",20:"Invalid implicit octal",21:"Invalid line break in string literal",22:"Only unicode escapes are legal in identifier names",23:"Expected '%0'",24:"Invalid left-hand side in assignment",25:"Invalid left-hand side in async arrow",26:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',27:"Member access on super must be in a method",29:"Await expression not allowed in formal parameter",30:"Yield expression not allowed in formal parameter",92:"Unexpected token: 'escaped keyword'",31:"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses",119:"Async functions can only be declared at the top level or inside a block",32:"Unterminated regular expression",33:"Unexpected regular expression flag",34:"Duplicate regular expression flag '%0'",35:"%0 functions must have exactly %1 argument%2",36:"Setter function argument must not be a rest parameter",37:"%0 declaration must have a name in this context",38:"Function name may not contain any reserved words or be eval or arguments in strict mode",39:"The rest operator is missing an argument",40:"A getter cannot be a generator",41:"A computed property name must be followed by a colon or paren",130:"Object literal keys that are strings or numbers must be a method or have a colon",43:"Found `* async x(){}` but this should be `async * x(){}`",42:"Getters and setters can not be generators",44:"'%0' can not be generator method",45:"No line break is allowed after '=>'",46:"The left-hand side of the arrow can only be destructed through assignment",47:"The binding declaration is not destructible",48:"Async arrow can not be followed by new expression",49:"Classes may not have a static property named 'prototype'",50:"Class constructor may not be a %0",51:"Duplicate constructor method in class",52:"Invalid increment/decrement operand",53:"Invalid use of `new` keyword on an increment/decrement expression",54:"`=>` is an invalid assignment target",55:"Rest element may not have a trailing comma",56:"Missing initializer in %0 declaration",57:"'for-%0' loop head declarations can not have an initializer",58:"Invalid left-hand side in for-%0 loop: Must have a single binding",59:"Invalid shorthand property initializer",60:"Property name __proto__ appears more than once in object literal",61:"Let is disallowed as a lexically bound name",62:"Invalid use of '%0' inside new expression",63:"Illegal 'use strict' directive in function with non-simple parameter list",64:'Identifier "let" disallowed as left-hand side expression in strict mode',65:"Illegal continue statement",66:"Illegal break statement",67:"Cannot have `let[...]` as a var name in strict mode",68:"Invalid destructuring assignment target",69:"Rest parameter may not have a default initializer",70:"The rest argument must the be last parameter",71:"Invalid rest argument",73:"In strict mode code, functions can only be declared at top level or inside a block",74:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement",75:"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement",76:"Class declaration can't appear in single-statement context",77:"Invalid left-hand side in for-%0",78:"Invalid assignment in for-%0",79:"for await (... of ...) is only valid in async functions and async generators",80:"The first token after the template expression should be a continuation of the template",82:"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode",81:"`let \n [` is a restricted production at the start of a statement",83:"Catch clause requires exactly one parameter, not more (and no trailing comma)",84:"Catch clause parameter does not support default values",85:"Missing catch or finally after try",86:"More than one default clause in switch statement",87:"Illegal newline after throw",88:"Strict mode code may not include a with statement",89:"Illegal return statement",90:"The left hand side of the for-header binding declaration is not destructible",91:"new.target only allowed within functions",93:"'#' not followed by identifier",99:"Invalid keyword",98:"Can not use 'let' as a class name",97:"'A lexical declaration can't define a 'let' binding",96:"Can not use `let` as variable name in strict mode",94:"'%0' may not be used as an identifier in this context",95:"Await is only valid in async functions",100:"The %0 keyword can only be used with the module goal",101:"Unicode codepoint must not be greater than 0x10FFFF",102:"%0 source must be string",103:"Only a identifier can be used to indicate alias",104:"Only '*' or '{...}' can be imported after default",105:"Trailing decorator may be followed by method",106:"Decorators can't be used with a constructor",108:"HTML comments are only allowed with web compatibility (Annex B)",109:"The identifier 'let' must not be in expression position in strict mode",110:"Cannot assign to `eval` and `arguments` in strict mode",111:"The left-hand side of a for-of loop may not start with 'let'",112:"Block body arrows can not be immediately invoked without a group",113:"Block body arrows can not be immediately accessed without a group",114:"Unexpected strict mode reserved word",115:"Unexpected eval or arguments in strict mode",116:"Decorators must not be followed by a semicolon",117:"Calling delete on expression not allowed in strict mode",118:"Pattern can not have a tail",120:"Can not have a `yield` expression on the left side of a ternary",121:"An arrow function can not have a postfix update operator",122:"Invalid object literal key character after generator star",123:"Private fields can not be deleted",125:"Classes may not have a field called constructor",124:"Classes may not have a private element named constructor",126:"A class field initializer may not contain arguments",127:"Generators can only be declared at the top level or inside a block",128:"Async methods are a restricted production and cannot have a newline following it",129:"Unexpected character after object literal property name",131:"Invalid key token",132:"Label '%0' has already been declared",133:"continue statement must be nested within an iteration statement",134:"Undefined label '%0'",135:"Trailing comma is disallowed inside import(...) arguments",136:"import() requires exactly one argument",137:"Cannot use new with import(...)",138:"... is not allowed in import()",139:"Expected '=>'",140:"Duplicate binding '%0'",141:"Cannot export a duplicate name '%0'",144:"Duplicate %0 for-binding",142:"Exported binding '%0' needs to refer to a top-level declared variable",143:"Unexpected private field",147:"Numeric separators are not allowed at the end of numeric literals",146:"Only one underscore is allowed as numeric separator",148:"JSX value should be either an expression or a quoted JSX text",149:"Expected corresponding JSX closing tag for %0",150:"Adjacent JSX elements must be wrapped in an enclosing tag",151:"JSX attributes must only be assigned a non-empty 'expression'",152:"'%0' has already been declared",153:"'%0' shadowed a catch clause binding",154:"Dot property must be an identifier",155:"Encountered invalid input after spread/rest argument",156:"Catch without try",157:"Finally without try",158:"Expected corresponding closing tag for JSX fragment",159:"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses",160:"Invalid tagged template on optional chain",161:"Invalid optional chain from super property",162:"Invalid optional chain from new expression",163:'Cannot use "import.meta" outside a module',164:"Leading decorators must be attached to a class declaration"};class n extends SyntaxError{constructor(e,n,o,r,...s){const a="["+n+":"+o+"]: "+t[r].replace(/%(\d+)/g,((e,t)=>s[t]));super(`${a}`),this.index=e,this.line=n,this.column=o,this.description=a,this.loc={line:n,column:o}}}function o(e,t,...o){throw new n(e.index,e.line,e.column,t,...o)}function r(e){throw new n(e.index,e.line,e.column,e.type,e.params)}function s(e,t,o,r,...s){throw new n(e,t,o,r,...s)}function a(e,t,o,r){throw new n(e,t,o,r)}const i=((e,t)=>{const n=new Uint32Array(104448);let o=0,r=0;for(;o<3540;){const s=e[o++];if(s<0)r-=s;else{let a=e[o++];2&s&&(a=t[a]),1&s?n.fill(a,r,r+=e[o++]):n[r++]=a}}return n})([-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828e3,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902e3,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532]);function l(e){return e.column++,e.currentChar=e.source.charCodeAt(++e.index)}function c(e,t){if(55296!=(64512&t))return 0;const n=e.source.charCodeAt(e.index+1);return 56320!=(64512&n)?0:(t=e.currentChar=65536+((1023&t)<<10)+(1023&n),0==(1&i[0+(t>>>5)]>>>t)&&o(e,18,p(t)),e.index++,e.column++,1)}function u(e,t){e.currentChar=e.source.charCodeAt(++e.index),e.flags|=1,0==(4&t)&&(e.column=0,e.line++)}function d(e){e.flags|=1,e.currentChar=e.source.charCodeAt(++e.index),e.column=0,e.line++}function p(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(e>>>10)+String.fromCharCode(1023&e)}function f(e){return e<65?e-48:e-65+10&15}const k=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],g=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],m=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function b(e){return e<=127?g[e]:1&i[34816+(e>>>5)]>>>e}function h(e){return e<=127?m[e]:1&i[0+(e>>>5)]>>>e||8204===e||8205===e}const P=["SingleLine","MultiLine","HTMLOpen","HTMLClose","HashbangComment"];function y(e,t,n,r,s,a,i,l){return 2048&r&&o(e,0),x(e,t,n,s,a,i,l)}function x(e,t,n,o,r,s,a){const{index:i}=e;for(e.tokenPos=e.index,e.linePos=e.line,e.colPos=e.column;e.index=e.source.length)return o(e,32)}const s=e.index-1;let a=0,i=e.currentChar;const{index:c}=e;for(;h(i);){switch(i){case 103:2&a&&o(e,34,"g"),a|=2;break;case 105:1&a&&o(e,34,"i"),a|=1;break;case 109:4&a&&o(e,34,"m"),a|=4;break;case 117:16&a&&o(e,34,"g"),a|=16;break;case 121:8&a&&o(e,34,"y"),a|=8;break;case 115:12&a&&o(e,34,"s"),a|=12;break;default:o(e,33)}i=l(e)}const u=e.source.slice(c,e.index),d=e.source.slice(n,s);return e.tokenRegExp={pattern:d,flags:u},512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),e.tokenValue=function(e,t,n){try{return new RegExp(t,n)}catch(t){o(e,32)}}(e,d,u),65540}function q(e,t,n){const{index:r}=e;let s="",a=l(e),i=e.index;for(;0==(8&k[a]);){if(a===n)return s+=e.source.slice(i,e.index),l(e),512&t&&(e.tokenRaw=e.source.slice(r,e.index)),e.tokenValue=s,134283267;if(8==(8&a)&&92===a){if(s+=e.source.slice(i,e.index),a=l(e),a<127||8232===a||8233===a){const n=C(e,t,a);n>=0?s+=p(n):E(e,n,0)}else s+=p(a);i=e.index+1}e.index>=e.end&&o(e,14),a=l(e)}o(e,14)}function C(e,t,n){switch(n){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(e.index1114111)return-5;return e.currentChar<1||125!==e.currentChar?-4:t}{if(0==(64&k[t]))return-4;const n=e.source.charCodeAt(e.index+1);if(0==(64&k[n]))return-4;const o=e.source.charCodeAt(e.index+2);if(0==(64&k[o]))return-4;const r=e.source.charCodeAt(e.index+3);return 0==(64&k[r])?-4:(e.index+=3,e.column+=3,e.currentChar=e.source.charCodeAt(e.index),f(t)<<12|f(n)<<8|f(o)<<4|f(r))}}case 56:case 57:if(0==(256&t))return-3;default:return n}}function E(e,t,n){switch(t){case-1:return;case-2:o(e,n?2:1);case-3:o(e,13);case-4:o(e,6);case-5:o(e,101)}}function A(e,t){const{index:n}=e;let r=67174409,s="",a=l(e);for(;96!==a;){if(36===a&&123===e.source.charCodeAt(e.index+1)){l(e),r=67174408;break}if(8==(8&a)&&92===a)if(a=l(e),a>126)s+=p(a);else{const n=C(e,1024|t,a);if(n>=0)s+=p(n);else{if(-1!==n&&65536&t){s=void 0,a=S(e,a),a<0&&(r=67174408);break}E(e,n,1)}}else e.index=e.end&&o(e,15),a=l(e)}return l(e),e.tokenValue=s,e.tokenRaw=e.source.slice(n+1,e.index-(67174409===r?1:2)),r}function S(e,t){for(;96!==t;){switch(t){case 36:{const n=e.index+1;if(n=e.end&&o(e,15),t=l(e)}return t}function D(e,t){return e.index>=e.end&&o(e,0),e.index--,e.column--,A(e,t)}function L(e,t,n){let r=e.currentChar,s=0,i=9,c=64&n?0:1,u=0,d=0;if(64&n)s="."+V(e,r),r=e.currentChar,110===r&&o(e,11);else{if(48===r)if(r=l(e),120==(32|r)){for(n=136,r=l(e);4160&k[r];)95!==r?(d=1,s=16*s+f(r),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?19:147)}else if(111==(32|r)){for(n=132,r=l(e);4128&k[r];)95!==r?(d=1,s=8*s+(r-48),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?0:147)}else if(98==(32|r)){for(n=130,r=l(e);4224&k[r];)95!==r?(d=1,s=2*s+(r-48),u++,r=l(e)):(d||o(e,146),d=0,r=l(e));(u<1||!d)&&o(e,u<1?0:147)}else if(32&k[r])for(1024&t&&o(e,1),n=1;16&k[r];){if(512&k[r]){n=32,c=0;break}s=8*s+(r-48),r=l(e)}else 512&k[r]?(1024&t&&o(e,1),e.flags|=64,n=32):95===r&&o(e,0);if(48&n){if(c){for(;i>=0&&4112&k[r];)95!==r?(d=0,s=10*s+(r-48),r=l(e),--i):(r=l(e),(95===r||32&n)&&a(e.index,e.line,e.index+1,146),d=1);if(d&&a(e.index,e.line,e.index+1,147),i>=0&&!b(r)&&46!==r)return e.tokenValue=s,512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),134283266}s+=V(e,r),r=e.currentChar,46===r&&(95===l(e)&&o(e,0),n=64,s+="."+V(e,e.currentChar),r=e.currentChar)}}const p=e.index;let g=0;if(110===r&&128&n)g=1,r=l(e);else if(101==(32|r)){r=l(e),256&k[r]&&(r=l(e));const{index:t}=e;(16&k[r])<1&&o(e,10),s+=e.source.substring(p,t)+V(e,r),r=e.currentChar}return(e.index","(","{",".","...","}",")",";",",","[","]",":","?","'",'"',"","++","--","=","<<=",">>=",">>>=","**=","+=","-=","*=","/=","%=","^=","|=","&=","||=","&&=","??=","typeof","delete","void","!","~","+","-","in","instanceof","*","%","/","**","&&","||","===","!==","==","!=","<=",">=","<",">","<<",">>",">>>","&","|","^","var","let","const","break","case","catch","class","continue","debugger","default","do","else","export","extends","finally","for","function","if","import","new","return","super","switch","this","throw","try","while","with","implements","interface","package","private","protected","public","static","yield","as","async","await","constructor","get","set","from","of","enum","eval","arguments","escaped keyword","escaped future reserved keyword","reserved if strict","#","BigIntLiteral","??","?.","WhiteSpace","Illegal","LineTerminator","PrivateField","Template","@","target","meta","LineFeed","Escaped","JSXText"],R=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function N(e,t,n){for(;m[l(e)];);return e.tokenValue=e.source.slice(e.tokenPos,e.index),92!==e.currentChar&&e.currentChar<126?R[e.tokenValue]||208897:U(e,t,0,n)}function I(e,t){const n=O(e);return h(n)||o(e,4),e.tokenValue=p(n),U(e,t,1,4&k[n])}function U(e,t,n,r){let s=e.index;for(;e.index=2&&a<=11){const o=R[e.tokenValue];return void 0===o?208897:n?1024&t?209008===o&&0==(4196352&t)?o:36972===o||36864==(36864&o)?122:121:1073741824&t&&0==(8192&t)&&20480==(20480&o)?o:241773===o?1073741824&t?143483:2097152&t?121:o:209007===o&&1073741824&t?143483:36864==(36864&o)||209008===o&&0==(4194304&t)?o:121:o}return 208897}function B(e){return b(l(e))||o(e,93),131}function O(e){return 117!==e.source.charCodeAt(e.index+1)&&o(e,4),e.currentChar=e.source.charCodeAt(e.index+=2),function(e){let t=0;const n=e.currentChar;if(123===n){const n=e.index-2;for(;64&k[l(e)];)t=t<<4|f(e.currentChar),t>1114111&&a(n,e.line,e.index+1,101);return 125!==e.currentChar&&a(n,e.line,e.index-1,6),l(e),t}0==(64&k[n])&&o(e,6);const r=e.source.charCodeAt(e.index+1);0==(64&k[r])&&o(e,6);const s=e.source.charCodeAt(e.index+2);0==(64&k[s])&&o(e,6);const i=e.source.charCodeAt(e.index+3);0==(64&k[i])&&o(e,6);return t=f(n)<<12|f(r)<<8|f(s)<<4|f(i),e.currentChar=e.source.charCodeAt(e.index+=4),t}(e)}const G=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function j(e,t){if(e.flags=1^(1|e.flags),e.startPos=e.index,e.startColumn=e.column,e.startLine=e.line,e.token=F(e,t,0),e.onToken&&1048576!==e.token){const t={start:{line:e.linePos,column:e.colPos},end:{line:e.line,column:e.column}};e.onToken(function(e){switch(e){case 134283266:return"NumericLiteral";case 134283267:return"StringLiteral";case 86021:case 86022:return"BooleanLiteral";case 86023:return"NullLiteral";case 65540:return"RegularExpression";case 67174408:case 67174409:case 132:return"TemplateLiteral";default:return 143360==(143360&e)?"Identifier":4096==(4096&e)?"Keyword":"Punctuator"}}(e.token),e.tokenPos,e.index,t)}}function F(e,t,n){const r=0===e.index,s=e.source;let a=e.index,c=e.line,f=e.column;for(;e.index=e.end)return 8457014;const t=e.currentChar;return 61===t?(l(e),4194340):42!==t?8457014:61!==l(e)?8457273:(l(e),4194337)}case 8455497:return 61!==l(e)?8455497:(l(e),4194343);case 25233970:{l(e);const t=e.currentChar;return 43===t?(l(e),33619995):61===t?(l(e),4194338):25233970}case 25233971:{l(e);const i=e.currentChar;if(45===i){if(l(e),(1&n||r)&&62===e.currentChar){0==(256&t)&&o(e,108),l(e),n=y(e,s,n,t,3,a,c,f),a=e.tokenPos,c=e.linePos,f=e.colPos;continue}return 33619996}return 61===i?(l(e),4194339):25233971}case 8457016:if(l(e),e.index=48&&k<=57)return L(e,t,80);if(46===k){const t=e.index+1;if(t=48&&t<=57)))return l(e),67108991}return 22}}}else{if((8232^g)<=1){n=-5&n|1,d(e);continue}if(55296==(64512&g)||0!=(1&i[34816+(g>>>5)]>>>g))return 56320==(64512&g)&&(g=(1023&g)<<10|1023&g|65536,0==(1&i[0+(g>>>5)]>>>g)&&o(e,18,p(g)),e.index++,e.currentChar=g),e.column++,e.tokenValue="",U(e,t,0,0);if(160===(k=g)||65279===k||133===k||5760===k||k>=8192&&k<=8203||8239===k||8287===k||12288===k||8201===k||65519===k){l(e);continue}o(e,18,p(g))}}var k;return 1048576}const H={AElig:"Æ",AMP:"&",Aacute:"Á",Abreve:"Ă",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atilde:"Ã",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ETH:"Ð",Eacute:"É",Ecaron:"Ě",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"Í",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"â",acute:"´",acy:"а",aelig:"æ",af:"⁡",afr:"𝔞",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"ð",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"í",ic:"⁣",icirc:"î",icy:"и",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"ó",oast:"⊛",ocir:"⊚",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"ø",osol:"⊘",otilde:"õ",otimes:"⊗",otimesas:"⨶",ouml:"ö",ovbar:"⌽",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"þ",tilde:"˜",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"},J={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function M(e){return e.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g,(e=>{if("#"===e.charAt(1)){const t=e.charAt(2);return function(e){if(e>=55296&&e<=57343||e>1114111)return"�";e in J&&(e=J[e]);return String.fromCodePoint(e)}("X"===t||"x"===t?parseInt(e.slice(3),16):parseInt(e.slice(2),10))}return H[e.slice(1,-1)]||e}))}function z(e,t){return e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.token=8192&k[e.currentChar]?function(e,t){const n=e.currentChar;let r=l(e);const s=e.index;for(;r!==n;)e.index>=e.end&&o(e,14),r=l(e);r!==n&&o(e,14);e.tokenValue=e.source.slice(s,e.index),l(e),512&t&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index));return 134283267}(e,t):F(e,t,0),e.token}function X(e,t){if(e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.index>=e.end)return e.token=1048576;switch(G[e.source.charCodeAt(e.index)]){case 8456258:l(e),47===e.currentChar?(l(e),e.token=25):e.token=8456258;break;case 2162700:l(e),e.token=2162700;break;default:{let n=0;for(;e.index0&&W(e,t,209008);K(e,32768|t,67174411),n&&(n=le(n,1));let c,u=null,d=null,p=0,f=null,k=86090===e.token||241739===e.token||86092===e.token;const{token:g,tokenPos:m,linePos:b,colPos:h}=e;k?241739===g?(f=nt(e,t,0),2240512&e.token?(8738868===e.token?1024&t&&o(e,64):f=re(e,t,m,b,h,{type:"VariableDeclaration",kind:"let",declarations:De(e,134217728|t,n,8,32)}),e.assignable=1):1024&t?o(e,64):(k=!1,e.assignable=1,f=ze(e,t,f,0,0,m,b,h),274549===e.token&&o(e,111))):(j(e,t),f=re(e,t,m,b,h,86090===g?{type:"VariableDeclaration",kind:"var",declarations:De(e,134217728|t,n,4,32)}:{type:"VariableDeclaration",kind:"const",declarations:De(e,134217728|t,n,16,32)}),e.assignable=1):1074790417===g?l&&o(e,79):2097152==(2097152&g)?(f=2162700===g?ut(e,t,void 0,1,0,0,2,32,m,b,h):at(e,t,void 0,1,0,0,2,32,m,b,h),p=e.destructible,256&t&&64&p&&o(e,60),e.assignable=16&p?2:1,f=ze(e,134217728|t,f,0,0,e.tokenPos,e.linePos,e.colPos)):f=Me(e,134217728|t,1,0,1,m,b,h);if(262144==(262144&e.token)){if(274549===e.token){2&e.assignable&&o(e,77,l?"await":"of"),Q(e,f),j(e,32768|t),c=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),K(e,32768|t,16);return re(e,t,s,a,i,{type:"ForOfStatement",left:f,right:c,body:Ee(e,t,n,r),await:l})}2&e.assignable&&o(e,77,"in"),Q(e,f),j(e,32768|t),l&&o(e,79),c=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos),K(e,32768|t,16);return re(e,t,s,a,i,{type:"ForInStatement",body:Ee(e,t,n,r),left:f,right:c})}l&&o(e,79);k||(8&p&&1077936157!==e.token&&o(e,77,"loop"),f=Ge(e,134217728|t,0,0,m,b,h,f));18===e.token&&(f=Be(e,t,0,e.tokenPos,e.linePos,e.colPos,f));K(e,32768|t,1074790417),1074790417!==e.token&&(u=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos));K(e,32768|t,1074790417),16!==e.token&&(d=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos));K(e,32768|t,16);const P=Ee(e,t,n,r);return re(e,t,s,a,i,{type:"ForStatement",init:f,test:u,update:d,body:P})}(e,t,n,s,i,l,c);case 20564:return function(e,t,n,o,r,s,a){j(e,32768|t);const i=Ee(e,t,n,o);K(e,t,20580),K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return K(e,32768|t,16),W(e,t,1074790417),re(e,t,r,s,a,{type:"DoWhileStatement",body:i,test:l})}(e,t,n,s,i,l,c);case 20580:return function(e,t,n,o,r,s,a){j(e,t),K(e,32768|t,67174411);const i=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,16);const l=Ee(e,t,n,o);return re(e,t,r,s,a,{type:"WhileStatement",test:i,body:l})}(e,t,n,s,i,l,c);case 86112:return function(e,t,n,r,s,a,i){j(e,t),K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,t,16),K(e,t,2162700);const c=[];let u=0;n&&(n=le(n,8));for(;1074790415!==e.token;){const{tokenPos:s,linePos:a,colPos:i}=e;let l=null;const d=[];for(W(e,32768|t,20558)?l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos):(K(e,32768|t,20563),u&&o(e,86),u=1),K(e,32768|t,21);20558!==e.token&&1074790415!==e.token&&20563!==e.token;)d.push(he(e,4096|t,n,2,{$:r}));c.push(re(e,t,s,a,i,{type:"SwitchCase",test:l,consequent:d}))}return K(e,32768|t,1074790415),re(e,t,s,a,i,{type:"SwitchStatement",discriminant:l,cases:c})}(e,t,n,s,i,l,c);case 1074790417:return function(e,t,n,o,r){return j(e,32768|t),re(e,t,n,o,r,{type:"EmptyStatement"})}(e,t,i,l,c);case 2162700:return ye(e,t,n?le(n,2):n,s,i,l,c);case 86114:return function(e,t,n,r,s){j(e,32768|t),1&e.flags&&o(e,87);const a=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);return $(e,32768|t),re(e,t,n,r,s,{type:"ThrowStatement",argument:a})}(e,t,i,l,c);case 20557:return function(e,t,n,r,s,a){j(e,32768|t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=nt(e,32768|t,0),oe(e,n,r,0)||o(e,134,r)}else(135168&t)<1&&o(e,66);return $(e,32768|t),re(e,t,r,s,a,{type:"BreakStatement",label:i})}(e,t,s,i,l,c);case 20561:return function(e,t,n,r,s,a){(131072&t)<1&&o(e,65);j(e,t);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:r}=e;i=nt(e,32768|t,0),oe(e,n,r,1)||o(e,134,r)}return $(e,32768|t),re(e,t,r,s,a,{type:"ContinueStatement",label:i})}(e,t,s,i,l,c);case 20579:return function(e,t,n,r,s,a,i){j(e,32768|t);const l=n?le(n,32):void 0,c=ye(e,t,l,{$:r},e.tokenPos,e.linePos,e.colPos),{tokenPos:u,linePos:d,colPos:p}=e,f=W(e,32768|t,20559)?function(e,t,n,r,s,a,i){let l=null,c=n;W(e,t,67174411)&&(n&&(n=le(n,4)),l=At(e,t,n,2097152==(2097152&e.token)?256:512,0,e.tokenPos,e.linePos,e.colPos),18===e.token?o(e,83):1077936157===e.token&&o(e,84),K(e,32768|t,16),n&&(c=le(n,64)));const u=ye(e,t,c,{$:r},e.tokenPos,e.linePos,e.colPos);return re(e,t,s,a,i,{type:"CatchClause",param:l,body:u})}(e,t,n,r,u,d,p):null;let k=null;if(20568===e.token){j(e,32768|t);k=ye(e,t,l?le(n,4):void 0,{$:r},e.tokenPos,e.linePos,e.colPos)}f||k||o(e,85);return re(e,t,s,a,i,{type:"TryStatement",block:c,handler:f,finalizer:k})}(e,t,n,s,i,l,c);case 20581:return function(e,t,n,r,s,a,i){j(e,t),1024&t&&o(e,88);K(e,32768|t,67174411);const l=Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,16);const c=Pe(e,t,n,2,r,0,e.tokenPos,e.linePos,e.colPos);return re(e,t,s,a,i,{type:"WithStatement",object:l,body:c})}(e,t,n,s,i,l,c);case 20562:return function(e,t,n,o,r){return j(e,32768|t),$(e,32768|t),re(e,t,n,o,r,{type:"DebuggerStatement"})}(e,t,i,l,c);case 209007:return we(e,t,n,r,s,0,i,l,c);case 20559:o(e,156);case 20568:o(e,157);case 86106:o(e,1024&t?73:(256&t)<1?75:74);case 86096:o(e,76);default:return function(e,t,n,r,s,a,i,l,c){const{tokenValue:u,token:d}=e;let p;switch(d){case 241739:p=nt(e,t,0),1024&t&&o(e,82),69271571===e.token&&o(e,81);break;default:p=_e(e,t,2,0,1,0,0,1,e.tokenPos,e.linePos,e.colPos)}if(143360&d&&21===e.token)return ve(e,t,n,r,s,u,p,d,a,i,l,c);p=ze(e,t,p,0,0,i,l,c),p=Ge(e,t,0,0,i,l,c,p),18===e.token&&(p=Be(e,t,0,i,l,c,p));return xe(e,t,p,i,l,c)}(e,t,n,r,s,a,i,l,c)}}function ye(e,t,n,o,r,s,a){const i=[];for(K(e,32768|t,2162700);1074790415!==e.token;)i.push(he(e,t,n,2,{$:o}));return K(e,32768|t,1074790415),re(e,t,r,s,a,{type:"BlockStatement",body:i})}function xe(e,t,n,o,r,s){return $(e,32768|t),re(e,t,o,r,s,{type:"ExpressionStatement",expression:n})}function ve(e,t,n,r,s,a,i,l,c,u,d,p){ee(e,t,0,l,1),function(e,t,n){let r=t;for(;r;)r["$"+n]&&o(e,132,n),r=r.$;t["$"+n]=1}(e,s,a),j(e,32768|t);return re(e,t,u,d,p,{type:"LabeledStatement",label:i,body:c&&(1024&t)<1&&256&t&&86106===e.token?rt(e,t,le(n,2),r,0,0,0,e.tokenPos,e.linePos,e.colPos):Pe(e,t,n,r,s,c,e.tokenPos,e.linePos,e.colPos)})}function we(e,t,n,r,s,a,i,l,c){const{token:u,tokenValue:d}=e;let p=nt(e,t,0);if(21===e.token)return ve(e,t,n,r,s,d,p,u,1,i,l,c);const f=1&e.flags;if(!f){if(86106===e.token)return a||o(e,119),rt(e,t,n,r,1,0,1,i,l,c);if(143360==(143360&e.token))return p=ht(e,t,1,i,l,c),18===e.token&&(p=Be(e,t,0,i,l,c,p)),xe(e,t,p,i,l,c)}return 67174411===e.token?p=Pt(e,t,p,1,1,0,f,i,l,c):(10===e.token&&(ge(e,t,u,1),p=ft(e,t,e.tokenValue,p,0,1,0,i,l,c)),e.assignable=1),p=ze(e,t,p,0,0,i,l,c),18===e.token&&(p=Be(e,t,0,i,l,c,p)),p=Ge(e,t,0,0,i,l,c,p),e.assignable=1,xe(e,t,p,i,l,c)}function qe(e,t,n,o,r,s,a){return 1074790417!==o&&(e.assignable=2,n=ze(e,t,n,0,0,r,s,a),1074790417!==e.token&&(n=Ge(e,t,0,0,r,s,a,n),18===e.token&&(n=Be(e,t,0,r,s,a,n))),$(e,32768|t)),8&t&&"Literal"===n.type&&"string"==typeof n.value?re(e,t,r,s,a,{type:"ExpressionStatement",expression:n,directive:n.raw.slice(1,-1)}):re(e,t,r,s,a,{type:"ExpressionStatement",expression:n})}function Ce(e,t,n,o,r,s,a){return 1024&t||(256&t)<1||86106!==e.token?Pe(e,t,n,0,{$:o},0,e.tokenPos,e.linePos,e.colPos):rt(e,t,le(n,2),0,0,0,0,r,s,a)}function Ee(e,t,n,o){return Pe(e,134217728^(134217728|t)|131072,n,0,{loop:1,$:o},0,e.tokenPos,e.linePos,e.colPos)}function Ae(e,t,n,o,r,s,a,i){j(e,t);const l=De(e,t,n,o,r);return $(e,32768|t),re(e,t,s,a,i,{type:"VariableDeclaration",kind:8&o?"let":"const",declarations:l})}function Se(e,t,n,o,r,s,a){j(e,t);const i=De(e,t,n,4,o);return $(e,32768|t),re(e,t,r,s,a,{type:"VariableDeclaration",kind:"var",declarations:i})}function De(e,t,n,r,s){let a=1;const i=[Le(e,t,n,r,s)];for(;W(e,t,18);)a++,i.push(Le(e,t,n,r,s));return a>1&&32&s&&262144&e.token&&o(e,58,T[255&e.token]),i}function Le(e,t,n,r,a){const{token:i,tokenPos:l,linePos:c,colPos:u}=e;let d=null;const p=At(e,t,n,r,a,l,c,u);return 1077936157===e.token?(j(e,32768|t),d=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos),(32&a||(2097152&i)<1)&&(274549===e.token||8738868===e.token&&(2097152&i||(4&r)<1||1024&t))&&s(l,e.line,e.index-3,57,274549===e.token?"of":"in")):(16&r||(2097152&i)>0)&&262144!=(262144&e.token)&&o(e,56,16&r?"const":"destructuring"),re(e,t,l,c,u,{type:"VariableDeclarator",id:p,init:d})}function Ve(e,t,n){return ke(t,e.token)||o(e,114),537079808==(537079808&e.token)&&o(e,115),n&&ue(e,t,n,e.tokenValue,8,0),nt(e,t,0)}function Te(e,t,n){const{tokenPos:o,linePos:r,colPos:a}=e;return j(e,t),K(e,t,77934),134217728==(134217728&e.token)&&s(o,e.line,e.index,28,T[255&e.token]),re(e,t,o,r,a,{type:"ImportNamespaceSpecifier",local:Ve(e,t,n)})}function Re(e,t,n,r){for(j(e,t);143360&e.token;){let{token:s,tokenValue:a,tokenPos:i,linePos:l,colPos:c}=e;const u=nt(e,t,0);let d;W(e,t,77934)?(134217728==(134217728&e.token)||18===e.token?o(e,103):ee(e,t,16,e.token,0),a=e.tokenValue,d=nt(e,t,0)):(ee(e,t,16,s,0),d=u),n&&ue(e,t,n,a,8,0),r.push(re(e,t,i,l,c,{type:"ImportSpecifier",local:d,imported:u})),1074790415!==e.token&&K(e,t,18)}return K(e,t,1074790415),r}function Ne(e,t,n,o,r){let s=$e(e,t,re(e,t,n,o,r,{type:"Identifier",name:"import"}),n,o,r);return s=ze(e,t,s,0,0,n,o,r),s=Ge(e,t,0,0,n,o,r,s),xe(e,t,s,n,o,r)}function Ie(e,t,n,o,r){let s=Ye(e,t,0,n,o,r);return s=ze(e,t,s,0,0,n,o,r),xe(e,t,s,n,o,r)}function Ue(e,t,n,o,r,s,a,i){let l=_e(e,t,2,0,n,o,r,1,s,a,i);return l=ze(e,t,l,r,0,s,a,i),Ge(e,t,r,0,s,a,i,l)}function Be(e,t,n,o,r,s,a){const i=[a];for(;W(e,32768|t,18);)i.push(Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos));return re(e,t,o,r,s,{type:"SequenceExpression",expressions:i})}function Oe(e,t,n,o,r,s,a){const i=Ue(e,t,o,0,n,r,s,a);return 18===e.token?Be(e,t,n,r,s,a,i):i}function Ge(e,t,n,r,s,a,i,l){const{token:c}=e;if(4194304==(4194304&c)){2&e.assignable&&o(e,24),(!r&&1077936157===c&&"ArrayExpression"===l.type||"ObjectExpression"===l.type)&&Q(e,l),j(e,32768|t);const u=Ue(e,t,1,1,n,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,re(e,t,s,a,i,r?{type:"AssignmentPattern",left:l,right:u}:{type:"AssignmentExpression",left:l,operator:T[255&c],right:u})}return 8454144==(8454144&c)&&(l=He(e,t,n,s,a,i,4,c,l)),W(e,32768|t,22)&&(l=Fe(e,t,l,s,a,i)),l}function je(e,t,n,o,r,s,a,i){const{token:l}=e;j(e,32768|t);const c=Ue(e,t,1,1,n,e.tokenPos,e.linePos,e.colPos);return i=re(e,t,r,s,a,o?{type:"AssignmentPattern",left:i,right:c}:{type:"AssignmentExpression",left:i,operator:T[255&l],right:c}),e.assignable=2,i}function Fe(e,t,n,o,r,s){const a=Ue(e,134217728^(134217728|t),1,0,0,e.tokenPos,e.linePos,e.colPos);K(e,32768|t,21),e.assignable=1;const i=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,re(e,t,o,r,s,{type:"ConditionalExpression",test:n,consequent:a,alternate:i})}function He(e,t,n,r,s,a,i,l,c){const u=8738868&-((134217728&t)>0);let d,p;for(e.assignable=2;8454144&e.token&&(d=e.token,p=3840&d,(524288&d&&268435456&l||524288&l&&268435456&d)&&o(e,159),!(p+((8457273===d)<<8)-((u===d)<<12)<=i));)j(e,32768|t),c=re(e,t,r,s,a,{type:524288&d||268435456&d?"LogicalExpression":"BinaryExpression",left:c,right:He(e,t,n,e.tokenPos,e.linePos,e.colPos,p,d,Me(e,t,0,n,1,e.tokenPos,e.linePos,e.colPos)),operator:T[255&d]});return 1077936157===e.token&&o(e,24),c}function Je(e,t,n,a,i,l){const{tokenPos:c,linePos:u,colPos:d}=e;K(e,32768|t,2162700);const p=[],f=t;if(1074790415!==e.token){for(;134283267===e.token;){const{index:n,tokenPos:o,tokenValue:r,token:a}=e,i=ot(e,t);Y(e,n,o,r)&&(t|=1024,128&e.flags&&s(e.index,e.line,e.tokenPos,63),64&e.flags&&s(e.index,e.line,e.tokenPos,8)),p.push(qe(e,t,i,a,o,e.linePos,e.colPos))}1024&t&&(i&&(537079808==(537079808&i)&&o(e,115),36864==(36864&i)&&o(e,38)),512&e.flags&&o(e,115),256&e.flags&&o(e,114)),64&t&&n&&void 0!==l&&(1024&f)<1&&(8192&t)<1&&r(l)}for(e.flags=832^(832|e.flags),e.destructible=256^(256|e.destructible);1074790415!==e.token;)p.push(he(e,t,n,4,{}));return K(e,24&a?32768|t:t,1074790415),e.flags&=-193,1077936157===e.token&&o(e,24),re(e,t,c,u,d,{type:"BlockStatement",body:p})}function Me(e,t,n,o,r,s,a,i){return ze(e,t,_e(e,t,2,0,n,0,o,r,s,a,i),o,0,s,a,i)}function ze(e,t,n,r,s,a,i,l){if(33619968==(33619968&e.token)&&(1&e.flags)<1)n=function(e,t,n,r,s,a){2&e.assignable&&o(e,52);const{token:i}=e;return j(e,t),e.assignable=2,re(e,t,r,s,a,{type:"UpdateExpression",argument:n,operator:T[255&i],prefix:!1})}(e,t,n,a,i,l);else if(67108864==(67108864&e.token)){switch(t=134225920^(134225920|t),e.token){case 67108877:j(e,1073741824|t),e.assignable=1;n=re(e,t,a,i,l,{type:"MemberExpression",object:n,computed:!1,property:Xe(e,t)});break;case 69271571:{let o=!1;2048==(2048&e.flags)&&(o=!0,e.flags=2048^(2048|e.flags)),j(e,32768|t);const{tokenPos:s,linePos:c,colPos:u}=e,d=Oe(e,t,r,1,s,c,u);K(e,t,20),e.assignable=1,n=re(e,t,a,i,l,{type:"MemberExpression",object:n,computed:!0,property:d}),o&&(e.flags|=2048);break}case 67174411:{if(1024==(1024&e.flags))return e.flags=1024^(1024|e.flags),n;let o=!1;2048==(2048&e.flags)&&(o=!0,e.flags=2048^(2048|e.flags));const s=tt(e,t,r);e.assignable=2,n=re(e,t,a,i,l,{type:"CallExpression",callee:n,arguments:s}),o&&(e.flags|=2048);break}case 67108991:j(e,t),e.flags|=2048,e.assignable=2,n=function(e,t,n,r,s,a){let i,l=!1;69271571!==e.token&&67174411!==e.token||2048==(2048&e.flags)&&(l=!0,e.flags=2048^(2048|e.flags));if(69271571===e.token){j(e,32768|t);const{tokenPos:o,linePos:l,colPos:c}=e,u=Oe(e,t,0,1,o,l,c);K(e,t,20),e.assignable=2,i=re(e,t,r,s,a,{type:"MemberExpression",object:n,computed:!0,optional:!0,property:u})}else if(67174411===e.token){const o=tt(e,t,0);e.assignable=2,i=re(e,t,r,s,a,{type:"CallExpression",callee:n,arguments:o,optional:!0})}else{(143360&e.token)<1&&o(e,154);const l=nt(e,t,0);e.assignable=2,i=re(e,t,r,s,a,{type:"MemberExpression",object:n,computed:!1,optional:!0,property:l})}l&&(e.flags|=2048);return i}(e,t,n,a,i,l);break;default:2048==(2048&e.flags)&&o(e,160),e.assignable=2,n=re(e,t,a,i,l,{type:"TaggedTemplateExpression",tag:n,quasi:67174408===e.token?Ke(e,65536|t):We(e,t,e.tokenPos,e.linePos,e.colPos)})}n=ze(e,t,n,0,1,a,i,l)}return 0===s&&2048==(2048&e.flags)&&(e.flags=2048^(2048|e.flags),n=re(e,t,a,i,l,{type:"ChainExpression",expression:n})),n}function Xe(e,t){return(143360&e.token)<1&&131!==e.token&&o(e,154),1&t&&131===e.token?Ct(e,t,e.tokenPos,e.linePos,e.colPos):nt(e,t,0)}function _e(e,t,n,r,a,i,l,c,u,d,p){if(143360==(143360&e.token)){switch(e.token){case 209008:return function(e,t,n,r,a,i,l){if(r&&(e.destructible|=128),4194304&t||2048&t&&8192&t){n&&o(e,0),8388608&t&&s(e.index,e.line,e.index,29),j(e,32768|t);const r=Me(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 8457273===e.token&&o(e,31),e.assignable=2,re(e,t,a,i,l,{type:"AwaitExpression",argument:r})}return 2048&t&&o(e,95),pt(e,t,a,i,l)}(e,t,r,l,u,d,p);case 241773:return function(e,t,n,r,s,a,i){if(n&&(e.destructible|=256),2097152&t){j(e,32768|t),8388608&t&&o(e,30),r||o(e,24),22===e.token&&o(e,120);let n=null,l=!1;return(1&e.flags)<1&&(l=W(e,32768|t,8457014),(77824&e.token||l)&&(n=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos))),e.assignable=2,re(e,t,s,a,i,{type:"YieldExpression",argument:n,delegate:l})}return 1024&t&&o(e,94,"yield"),pt(e,t,s,a,i)}(e,t,l,a,u,d,p);case 209007:return function(e,t,n,r,s,a,i,l,c,u){const{token:d}=e,p=nt(e,t,a),{flags:f}=e;if((1&f)<1){if(86106===e.token)return st(e,t,1,n,l,c,u);if(143360==(143360&e.token))return r||o(e,0),ht(e,t,s,l,c,u)}return i||67174411!==e.token?10===e.token?(ge(e,t,d,1),i&&o(e,48),ft(e,t,e.tokenValue,p,i,s,0,l,c,u)):p:Pt(e,t,p,s,1,0,f,l,c,u)}(e,t,l,c,a,i,r,u,d,p)}const{token:f,tokenValue:k}=e,g=nt(e,65536|t,i);return 10===e.token?(c||o(e,0),ge(e,t,f,1),ft(e,t,k,g,r,a,0,u,d,p)):(16384&t&&537079928===f&&o(e,126),241739===f&&(1024&t&&o(e,109),24&n&&o(e,97)),e.assignable=1024&t&&537079808==(537079808&f)?2:1,g)}if(134217728==(134217728&e.token))return ot(e,t);switch(e.token){case 33619995:case 33619996:return function(e,t,n,r,s,a,i){n&&o(e,53),r||o(e,0);const{token:l}=e;j(e,32768|t);const c=Me(e,t,0,0,1,e.tokenPos,e.linePos,e.colPos);return 2&e.assignable&&o(e,52),e.assignable=2,re(e,t,s,a,i,{type:"UpdateExpression",argument:c,operator:T[255&l],prefix:!0})}(e,t,r,c,u,d,p);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return function(e,t,n,r,s,a,i){n||o(e,0);const l=e.token;j(e,32768|t);const c=Me(e,t,0,i,1,e.tokenPos,e.linePos,e.colPos);var u;return 8457273===e.token&&o(e,31),1024&t&&16863278===l&&("Identifier"===c.type?o(e,117):(u=c).property&&"PrivateIdentifier"===u.property.type&&o(e,123)),e.assignable=2,re(e,t,r,s,a,{type:"UnaryExpression",operator:T[255&l],argument:c,prefix:!0})}(e,t,c,u,d,p,l);case 86106:return st(e,t,0,l,u,d,p);case 2162700:return function(e,t,n,r,s,a,i){const l=ut(e,t,void 0,n,r,0,2,0,s,a,i);256&t&&64&e.destructible&&o(e,60);8&e.destructible&&o(e,59);return l}(e,t,a?0:1,l,u,d,p);case 69271571:return function(e,t,n,r,s,a,i){const l=at(e,t,void 0,n,r,0,2,0,s,a,i);256&t&&64&e.destructible&&o(e,60);8&e.destructible&&o(e,59);return l}(e,t,a?0:1,l,u,d,p);case 67174411:return function(e,t,n,r,s,a,i,l){e.flags=128^(128|e.flags);const{tokenPos:c,linePos:u,colPos:d}=e;j(e,1073774592|t);const p=64&t?le({parent:void 0,type:2},1024):void 0;if(W(e,t=134217728^(134217728|t),16))return kt(e,t,p,[],n,0,a,i,l);let f,k=0;e.destructible&=-385;let g=[],m=0,b=0;const{tokenPos:h,linePos:P,colPos:y}=e;e.assignable=1;for(;16!==e.token;){const{token:n,tokenPos:a,linePos:i,colPos:l}=e;if(143360&n)p&&ue(e,t,p,e.tokenValue,1,0),f=_e(e,t,r,0,1,0,1,1,a,i,l),16===e.token||18===e.token?2&e.assignable?(k|=16,b=1):537079808!=(537079808&n)&&36864!=(36864&n)||(b=1):(1077936157===e.token?b=1:k|=16,f=ze(e,t,f,1,0,a,i,l),16!==e.token&&18!==e.token&&(f=Ge(e,t,1,0,a,i,l,f)));else{if(2097152!=(2097152&n)){if(14===n){f=lt(e,t,p,16,r,s,0,1,0,a,i,l),16&e.destructible&&o(e,71),b=1,!m||16!==e.token&&18!==e.token||g.push(f),k|=8;break}if(k|=16,f=Ue(e,t,1,0,1,a,i,l),!m||16!==e.token&&18!==e.token||g.push(f),18===e.token&&(m||(m=1,g=[f])),m){for(;W(e,32768|t,18);)g.push(Ue(e,t,1,0,1,e.tokenPos,e.linePos,e.colPos));e.assignable=2,f=re(e,t,h,P,y,{type:"SequenceExpression",expressions:g})}return K(e,t,16),e.destructible=k,f}f=2162700===n?ut(e,1073741824|t,p,0,1,0,r,s,a,i,l):at(e,1073741824|t,p,0,1,0,r,s,a,i,l),k|=e.destructible,b=1,e.assignable=2,16!==e.token&&18!==e.token&&(8&k&&o(e,118),f=ze(e,t,f,0,0,a,i,l),k|=16,16!==e.token&&18!==e.token&&(f=Ge(e,t,0,0,a,i,l,f)))}if(!m||16!==e.token&&18!==e.token||g.push(f),!W(e,32768|t,18))break;if(m||(m=1,g=[f]),16===e.token){k|=8;break}}m&&(e.assignable=2,f=re(e,t,h,P,y,{type:"SequenceExpression",expressions:g}));K(e,t,16),16&k&&8&k&&o(e,145);if(k|=256&e.destructible?256:0|128&e.destructible?128:0,10===e.token)return 48&k&&o(e,46),4196352&t&&128&k&&o(e,29),2098176&t&&256&k&&o(e,30),b&&(e.flags|=128),kt(e,t,p,m?g:[f],n,0,a,i,l);8&k&&o(e,139);return e.destructible=256^(256|e.destructible)|k,128&t?re(e,t,c,u,d,{type:"ParenthesizedExpression",expression:f}):f}(e,t,a,1,0,u,d,p);case 86021:case 86022:case 86023:return function(e,t,n,o,r){const s=T[255&e.token],a=86023===e.token?null:"true"===s;return j(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:a,raw:s}:{type:"Literal",value:a})}(e,t,u,d,p);case 86113:return function(e,t){const{tokenPos:n,linePos:o,colPos:r}=e;return j(e,t),e.assignable=2,re(e,t,n,o,r,{type:"ThisExpression"})}(e,t);case 65540:return function(e,t,n,o,r){const{tokenRaw:s,tokenRegExp:a,tokenValue:i}=e;return j(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:i,regex:a,raw:s}:{type:"Literal",value:i,regex:a})}(e,t,u,d,p);case 133:case 86096:return function(e,t,n,r,s,a){let i=null,l=null;const c=xt(e,t=16777216^(16778240|t));c.length&&(r=e.tokenPos,s=e.linePos,a=e.colPos);j(e,t),4096&e.token&&20567!==e.token&&(ne(e,t,e.token)&&o(e,114),537079808==(537079808&e.token)&&o(e,115),i=nt(e,t,0));let u=t;W(e,32768|t,20567)?(l=Me(e,t,0,n,0,e.tokenPos,e.linePos,e.colPos),u|=524288):u=524288^(524288|u);const d=wt(e,u,t,void 0,2,0,n);return e.assignable=2,re(e,t,r,s,a,1&t?{type:"ClassExpression",id:i,superClass:l,decorators:c,body:d}:{type:"ClassExpression",id:i,superClass:l,body:d})}(e,t,l,u,d,p);case 86111:return function(e,t,n,r,s){switch(j(e,t),e.token){case 67108991:o(e,161);case 67174411:(524288&t)<1&&o(e,26),16384&t&&o(e,143),e.assignable=2;break;case 69271571:case 67108877:(262144&t)<1&&o(e,27),16384&t&&o(e,143),e.assignable=1;break;default:o(e,28,"super")}return re(e,t,n,r,s,{type:"Super"})}(e,t,u,d,p);case 67174409:return We(e,t,u,d,p);case 67174408:return Ke(e,t);case 86109:return function(e,t,n,r,s,a){const i=nt(e,32768|t,0),{tokenPos:l,linePos:c,colPos:u}=e;if(W(e,t,67108877)){if(67108864&t&&143494===e.token)return e.assignable=2,function(e,t,n,o,r,s){const a=nt(e,t,0);return re(e,t,o,r,s,{type:"MetaProperty",meta:n,property:a})}(e,t,i,r,s,a);o(e,91)}e.assignable=2,16842752==(16842752&e.token)&&o(e,62,T[255&e.token]);const d=_e(e,t,2,1,0,0,n,1,l,c,u);t=134217728^(134217728|t),67108991===e.token&&o(e,162);const p=bt(e,t,d,n,l,c,u);return e.assignable=2,re(e,t,r,s,a,{type:"NewExpression",callee:p,arguments:67174411===e.token?tt(e,t,n):[]})}(e,t,l,u,d,p);case 134283389:return Ze(e,t,u,d,p);case 131:return Ct(e,t,u,d,p);case 86108:return function(e,t,n,r,s,a,i){let l=nt(e,t,0);if(67108877===e.token)return $e(e,t,l,s,a,i);n&&o(e,137);return l=Ye(e,t,r,s,a,i),e.assignable=2,ze(e,t,l,r,0,s,a,i)}(e,t,r,l,u,d,p);case 8456258:if(16&t)return Dt(e,t,1,u,d,p);default:if(ke(t,e.token))return pt(e,t,u,d,p);o(e,28,T[255&e.token])}}function $e(e,t,n,r,s,a){return 0==(2048&t)&&o(e,163),j(e,t),143495!==e.token&&"meta"!==e.tokenValue&&o(e,28,T[255&e.token]),e.assignable=2,re(e,t,r,s,a,{type:"MetaProperty",meta:n,property:nt(e,t,0)})}function Ye(e,t,n,r,s,a){K(e,32768|t,67174411),14===e.token&&o(e,138);const i=Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos);return K(e,t,16),re(e,t,r,s,a,{type:"ImportExpression",source:i})}function Ze(e,t,n,o,r){const{tokenRaw:s,tokenValue:a}=e;return j(e,t),e.assignable=2,re(e,t,n,o,r,512&t?{type:"Literal",value:a,bigint:s.slice(0,-1),raw:s}:{type:"Literal",value:a,bigint:s.slice(0,-1)})}function We(e,t,n,o,r){e.assignable=2;const{tokenValue:s,tokenRaw:a,tokenPos:i,linePos:l,colPos:c}=e;K(e,t,67174409);return re(e,t,n,o,r,{type:"TemplateLiteral",expressions:[],quasis:[Qe(e,t,s,a,i,l,c,!0)]})}function Ke(e,t){t=134217728^(134217728|t);const{tokenValue:n,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;K(e,32768|t,67174408);const l=[Qe(e,t,n,r,s,a,i,!1)],c=[Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos)];for(1074790415!==e.token&&o(e,80);67174409!==(e.token=D(e,t));){const{tokenValue:n,tokenRaw:r,tokenPos:s,linePos:a,colPos:i}=e;K(e,32768|t,67174408),l.push(Qe(e,t,n,r,s,a,i,!1)),c.push(Oe(e,t,0,1,e.tokenPos,e.linePos,e.colPos)),1074790415!==e.token&&o(e,80)}{const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;K(e,t,67174409),l.push(Qe(e,t,n,o,r,s,a,!0))}return re(e,t,s,a,i,{type:"TemplateLiteral",expressions:c,quasis:l})}function Qe(e,t,n,o,r,s,a,i){const l=re(e,t,r,s,a,{type:"TemplateElement",value:{cooked:n,raw:o},tail:i}),c=i?1:2;return 2&t&&(l.start+=1,l.range[0]+=1,l.end-=c,l.range[1]-=c),4&t&&(l.loc.start.column+=1,l.loc.end.column-=c),l}function et(e,t,n,o,r){K(e,32768|(t=134217728^(134217728|t)),14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=1,re(e,t,n,o,r,{type:"SpreadElement",argument:s})}function tt(e,t,n){j(e,32768|t);const o=[];if(16===e.token)return j(e,t),o;for(;16!==e.token&&(14===e.token?o.push(et(e,t,e.tokenPos,e.linePos,e.colPos)):o.push(Ue(e,t,1,0,n,e.tokenPos,e.linePos,e.colPos)),18===e.token)&&(j(e,32768|t),16!==e.token););return K(e,t,16),o}function nt(e,t,n){const{tokenValue:o,tokenPos:r,linePos:s,colPos:a}=e;return j(e,t),re(e,t,r,s,a,268435456&t?{type:"Identifier",name:o,pattern:1===n}:{type:"Identifier",name:o})}function ot(e,t){const{tokenValue:n,tokenRaw:o,tokenPos:r,linePos:s,colPos:a}=e;return 134283389===e.token?Ze(e,t,r,s,a):(j(e,t),e.assignable=2,re(e,t,r,s,a,512&t?{type:"Literal",value:n,raw:o}:{type:"Literal",value:n}))}function rt(e,t,n,r,s,a,i,l,c,u){j(e,32768|t);const d=s?Z(e,t,8457014):0;let p,f=null,k=n?{parent:void 0,type:2}:void 0;if(67174411===e.token)(1&a)<1&&o(e,37,"Function");else{const s=4&r&&((8192&t)<1||(2048&t)<1)?4:64;te(e,t|(3072&t)<<11,e.token),n&&(4&s?de(e,t,n,e.tokenValue,s):ue(e,t,n,e.tokenValue,s,r),k=le(k,256),a&&2&a&&pe(e,e.tokenValue)),p=e.token,143360&e.token?f=nt(e,t,0):o(e,28,T[255&e.token])}t=32243712^(32243712|t)|67108864|2*i+d<<21|(d?0:1073741824),n&&(k=le(k,512));return re(e,t,l,c,u,{type:"FunctionDeclaration",id:f,params:mt(e,8388608|t,k,0,1),body:Je(e,143360^(143360|t),n?le(k,128):k,8,p,n?k.scopeError:void 0),async:1===i,generator:1===d})}function st(e,t,n,o,r,s,a){j(e,32768|t);const i=Z(e,t,8457014),l=2*n+i<<21;let c,u=null,d=64&t?{parent:void 0,type:2}:void 0;(176128&e.token)>0&&(te(e,32243712^(32243712|t)|l,e.token),d&&(d=le(d,256)),c=e.token,u=nt(e,t,0)),t=32243712^(32243712|t)|67108864|l|(i?0:1073741824),d&&(d=le(d,512));const p=mt(e,8388608|t,d,o,1),f=Je(e,-134377473&t,d?le(d,128):d,0,c,void 0);return e.assignable=2,re(e,t,r,s,a,{type:"FunctionExpression",id:u,params:p,body:f,async:1===n,generator:1===i})}function at(e,t,n,r,s,a,i,l,c,u,d){j(e,32768|t);const p=[];let f=0;for(t=134217728^(134217728|t);20!==e.token;)if(W(e,32768|t,18))p.push(null);else{let r;const{token:c,tokenPos:u,linePos:d,colPos:k,tokenValue:g}=e;if(143360&c)if(r=_e(e,t,i,0,1,0,s,1,u,d,k),1077936157===e.token){2&e.assignable&&o(e,24),j(e,32768|t),n&&ce(e,t,n,g,i,l);const c=Ue(e,t,1,1,s,e.tokenPos,e.linePos,e.colPos);r=re(e,t,u,d,k,a?{type:"AssignmentPattern",left:r,right:c}:{type:"AssignmentExpression",operator:"=",left:r,right:c}),f|=256&e.destructible?256:0|128&e.destructible?128:0}else 18===e.token||20===e.token?(2&e.assignable?f|=16:n&&ce(e,t,n,g,i,l),f|=256&e.destructible?256:0|128&e.destructible?128:0):(f|=1&i?32:(2&i)<1?16:0,r=ze(e,t,r,s,0,u,d,k),18!==e.token&&20!==e.token?(1077936157!==e.token&&(f|=16),r=Ge(e,t,s,a,u,d,k,r)):1077936157!==e.token&&(f|=2&e.assignable?16:32));else 2097152&c?(r=2162700===e.token?ut(e,t,n,0,s,a,i,l,u,d,k):at(e,t,n,0,s,a,i,l,u,d,k),f|=e.destructible,e.assignable=16&e.destructible?2:1,18===e.token||20===e.token?2&e.assignable&&(f|=16):8&e.destructible?o(e,68):(r=ze(e,t,r,s,0,u,d,k),f=2&e.assignable?16:0,18!==e.token&&20!==e.token?r=Ge(e,t,s,a,u,d,k,r):1077936157!==e.token&&(f|=2&e.assignable?16:32))):14===c?(r=lt(e,t,n,20,i,l,0,s,a,u,d,k),f|=e.destructible,18!==e.token&&20!==e.token&&o(e,28,T[255&e.token])):(r=Me(e,t,1,0,1,u,d,k),18!==e.token&&20!==e.token?(r=Ge(e,t,s,a,u,d,k,r),(3&i)<1&&67174411===c&&(f|=16)):2&e.assignable?f|=16:67174411===c&&(f|=1&e.assignable&&3&i?32:16));if(p.push(r),!W(e,32768|t,18))break;if(20===e.token)break}K(e,t,20);const k=re(e,t,c,u,d,{type:a?"ArrayPattern":"ArrayExpression",elements:p});return!r&&4194304&e.token?it(e,t,f,s,a,c,u,d,k):(e.destructible=f,k)}function it(e,t,n,r,s,a,i,l,c){1077936157!==e.token&&o(e,24),j(e,32768|t),16&n&&o(e,24),s||Q(e,c);const{tokenPos:u,linePos:d,colPos:p}=e,f=Ue(e,t,1,1,r,u,d,p);return e.destructible=72^(72|n)|(128&e.destructible?128:0)|(256&e.destructible?256:0),re(e,t,a,i,l,s?{type:"AssignmentPattern",left:c,right:f}:{type:"AssignmentExpression",left:c,operator:"=",right:f})}function lt(e,t,n,r,s,a,i,l,c,u,d,p){j(e,32768|t);let f=null,k=0,{token:g,tokenValue:m,tokenPos:b,linePos:h,colPos:P}=e;if(143360&g)e.assignable=1,f=_e(e,t,s,0,1,0,l,1,b,h,P),g=e.token,f=ze(e,t,f,l,0,b,h,P),18!==e.token&&e.token!==r&&(2&e.assignable&&1077936157===e.token&&o(e,68),k|=16,f=Ge(e,t,l,c,b,h,P,f)),2&e.assignable?k|=16:g===r||18===g?n&&ce(e,t,n,m,s,a):k|=32,k|=128&e.destructible?128:0;else if(g===r)o(e,39);else{if(!(2097152&g)){k|=32,f=Me(e,t,1,l,1,e.tokenPos,e.linePos,e.colPos);const{token:n,tokenPos:s,linePos:a,colPos:i}=e;return 1077936157===n&&n!==r&&18!==n?(2&e.assignable&&o(e,24),f=Ge(e,t,l,c,s,a,i,f),k|=16):(18===n?k|=16:n!==r&&(f=Ge(e,t,l,c,s,a,i,f)),k|=1&e.assignable?32:16),e.destructible=k,e.token!==r&&18!==e.token&&o(e,155),re(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}f=2162700===e.token?ut(e,t,n,1,l,c,s,a,b,h,P):at(e,t,n,1,l,c,s,a,b,h,P),g=e.token,1077936157!==g&&g!==r&&18!==g?(8&e.destructible&&o(e,68),f=ze(e,t,f,l,0,b,h,P),k|=2&e.assignable?16:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),f=Ge(e,t,l,c,b,h,P,f)):(8454144==(8454144&e.token)&&(f=He(e,t,1,b,h,P,4,g,f)),W(e,32768|t,22)&&(f=Fe(e,t,f,b,h,P)),k|=2&e.assignable?16:32)):k|=1074790415===r&&1077936157!==g?16:e.destructible}if(e.token!==r)if(1&s&&(k|=i?16:32),W(e,32768|t,1077936157)){16&k&&o(e,24),Q(e,f);const n=Ue(e,t,1,1,l,e.tokenPos,e.linePos,e.colPos);f=re(e,t,b,h,P,c?{type:"AssignmentPattern",left:f,right:n}:{type:"AssignmentExpression",left:f,operator:"=",right:n}),k=16}else k|=16;return e.destructible=k,re(e,t,u,d,p,{type:c?"RestElement":"SpreadElement",argument:f})}function ct(e,t,n,s,a,i,l){const c=(64&n)<1?31981568:14680064;let u=64&(t=(t|c)^c|(88&n)<<18|100925440)?le({parent:void 0,type:2},512):void 0;const d=function(e,t,n,s,a,i){K(e,t,67174411);const l=[];if(e.flags=128^(128|e.flags),16===e.token)return 512&s&&o(e,35,"Setter","one",""),j(e,t),l;256&s&&o(e,35,"Getter","no","s");512&s&&14===e.token&&o(e,36);t=134217728^(134217728|t);let c=0,u=0;for(;18!==e.token;){let r=null;const{tokenPos:d,linePos:p,colPos:f}=e;if(143360&e.token?((1024&t)<1&&(36864==(36864&e.token)&&(e.flags|=256),537079808==(537079808&e.token)&&(e.flags|=512)),r=St(e,t,n,1|s,0,d,p,f)):(2162700===e.token?r=ut(e,t,n,1,i,1,a,0,d,p,f):69271571===e.token?r=at(e,t,n,1,i,1,a,0,d,p,f):14===e.token&&(r=lt(e,t,n,16,a,0,0,i,1,d,p,f)),u=1,48&e.destructible&&o(e,47)),1077936157===e.token){j(e,32768|t),u=1;r=re(e,t,d,p,f,{type:"AssignmentPattern",left:r,right:Ue(e,t,1,1,0,e.tokenPos,e.linePos,e.colPos)})}if(c++,l.push(r),!W(e,t,18))break;if(16===e.token)break}512&s&&1!==c&&o(e,35,"Setter","one","");n&&void 0!==n.scopeError&&r(n.scopeError);u&&(e.flags|=128);return K(e,t,16),l}(e,8388608|t,u,n,1,s);u&&(u=le(u,128));return re(e,t,a,i,l,{type:"FunctionExpression",params:d,body:Je(e,-134230017&t,u,0,void 0,void 0),async:(16&n)>0,generator:(8&n)>0,id:null})}function ut(e,t,n,r,a,i,l,c,u,d,p){j(e,t);const f=[];let k=0,g=0;for(t=134217728^(134217728|t);1074790415!==e.token;){const{token:r,tokenValue:u,linePos:d,colPos:p,tokenPos:m}=e;if(14===r)f.push(lt(e,t,n,1074790415,l,c,0,a,i,m,d,p));else{let b,h=0,P=null;const y=e.token;if(143360&e.token||121===e.token)if(P=nt(e,t,0),18===e.token||1074790415===e.token||1077936157===e.token)if(h|=4,1024&t&&537079808==(537079808&r)?k|=16:ee(e,t,l,r,0),n&&ce(e,t,n,u,l,c),W(e,32768|t,1077936157)){k|=8;const n=Ue(e,t,1,1,a,e.tokenPos,e.linePos,e.colPos);k|=256&e.destructible?256:0|128&e.destructible?128:0,b=re(e,t,m,d,p,{type:"AssignmentPattern",left:-2147483648&t?Object.assign({},P):P,right:n})}else k|=(209008===r?128:0)|(121===r?16:0),b=-2147483648&t?Object.assign({},P):P;else if(W(e,32768|t,21)){const{tokenPos:s,linePos:d,colPos:p}=e;if("__proto__"===u&&g++,143360&e.token){const o=e.token,r=e.tokenValue;k|=121===y?16:0,b=_e(e,t,l,0,1,0,a,1,s,d,p);const{token:u}=e;b=ze(e,t,b,a,0,s,d,p),18===e.token||1074790415===e.token?1077936157===u||1074790415===u||18===u?(k|=128&e.destructible?128:0,2&e.assignable?k|=16:n&&143360==(143360&o)&&ce(e,t,n,r,l,c)):k|=1&e.assignable?32:16:4194304==(4194304&e.token)?(2&e.assignable?k|=16:1077936157!==u?k|=32:n&&ce(e,t,n,r,l,c),b=Ge(e,t,a,i,s,d,p,b)):(k|=16,8454144==(8454144&e.token)&&(b=He(e,t,1,s,d,p,4,u,b)),W(e,32768|t,22)&&(b=Fe(e,t,b,s,d,p)))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,s,d,p):ut(e,t,n,0,a,i,l,c,s,d,p),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&e.destructible?o(e,68):(b=ze(e,t,b,a,0,s,d,p),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=je(e,t,a,i,s,d,p,b):(8454144==(8454144&e.token)&&(b=He(e,t,1,s,d,p,4,r,b)),W(e,32768|t,22)&&(b=Fe(e,t,b,s,d,p)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,a,1,s,d,p),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,s,d,p),k=2&e.assignable?16:0,18!==e.token&&1074790415!==r&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,s,d,p,b))))}else 69271571===e.token?(k|=16,209007===r&&(h|=16),h|=2|(12402===r?256:12403===r?512:1),P=dt(e,t,a),k|=e.assignable,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):143360&e.token?(k|=16,121===r&&o(e,92),209007===r&&(1&e.flags&&o(e,128),h|=16),P=nt(e,t,0),h|=12402===r?256:12403===r?512:1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):67174411===e.token?(k|=16,h|=1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):8457014===e.token?(k|=16,12402===r||12403===r?o(e,40):143483===r&&o(e,92),j(e,t),h|=9|(209007===r?16:0),143360&e.token?P=nt(e,t,0):134217728==(134217728&e.token)?P=ot(e,t):69271571===e.token?(h|=2,P=dt(e,t,a),k|=e.assignable):o(e,28,T[255&e.token]),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):134217728==(134217728&e.token)?(209007===r&&(h|=16),h|=12402===r?256:12403===r?512:1,k|=16,P=ot(e,t),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):o(e,129);else if(134217728==(134217728&e.token))if(P=ot(e,t),21===e.token){K(e,32768|t,21);const{tokenPos:o,linePos:s,colPos:d}=e;if("__proto__"===u&&g++,143360&e.token){b=_e(e,t,l,0,1,0,a,1,o,s,d);const{token:r,tokenValue:u}=e;b=ze(e,t,b,a,0,o,s,d),18===e.token||1074790415===e.token?1077936157===r||1074790415===r||18===r?2&e.assignable?k|=16:n&&ce(e,t,n,u,l,c):k|=1&e.assignable?32:16:1077936157===e.token?(2&e.assignable&&(k|=16),b=Ge(e,t,a,i,o,s,d,b)):(k|=16,b=Ge(e,t,a,i,o,s,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,o,s,d):ut(e,t,n,0,a,i,l,c,o,s,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8!=(8&e.destructible)&&(b=ze(e,t,b,a,0,o,s,d),k=2&e.assignable?16:0,4194304==(4194304&e.token)?b=je(e,t,a,i,o,s,d,b):(8454144==(8454144&e.token)&&(b=He(e,t,1,o,s,d,4,r,b)),W(e,32768|t,22)&&(b=Fe(e,t,b,o,s,d)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,0,1,o,s,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,o,s,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,o,s,d,b))))}else 67174411===e.token?(h|=1,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos),k=16|e.assignable):o(e,130);else if(69271571===e.token)if(P=dt(e,t,a),k|=256&e.destructible?256:0,h|=2,21===e.token){j(e,32768|t);const{tokenPos:s,linePos:u,colPos:d,tokenValue:p,token:f}=e;if(143360&e.token){b=_e(e,t,l,0,1,0,a,1,s,u,d);const{token:o}=e;b=ze(e,t,b,a,0,s,u,d),4194304==(4194304&e.token)?(k|=2&e.assignable?16:1077936157===o?0:32,b=je(e,t,a,i,s,u,d,b)):18===e.token||1074790415===e.token?1077936157===o||1074790415===o||18===o?2&e.assignable?k|=16:n&&143360==(143360&f)&&ce(e,t,n,p,l,c):k|=1&e.assignable?32:16:(k|=16,b=Ge(e,t,a,i,s,u,d,b))}else 2097152==(2097152&e.token)?(b=69271571===e.token?at(e,t,n,0,a,i,l,c,s,u,d):ut(e,t,n,0,a,i,l,c,s,u,d),k=e.destructible,e.assignable=16&k?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):8&k?o(e,59):(b=ze(e,t,b,a,0,s,u,d),k=2&e.assignable?16|k:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(k|=16),b=je(e,t,a,i,s,u,d,b)):(8454144==(8454144&e.token)&&(b=He(e,t,1,s,u,d,4,r,b)),W(e,32768|t,22)&&(b=Fe(e,t,b,s,u,d)),k|=2&e.assignable?16:32))):(b=Me(e,t,1,0,1,s,u,d),k|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(k|=16):(b=ze(e,t,b,a,0,s,u,d),k=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(k|=16),b=Ge(e,t,a,i,s,u,d,b))))}else 67174411===e.token?(h|=1,b=ct(e,t,h,a,e.tokenPos,d,p),k=16):o(e,41);else if(8457014===r)if(K(e,32768|t,8457014),h|=8,143360&e.token){const{token:n,line:o,index:r}=e;P=nt(e,t,0),h|=1,67174411===e.token?(k|=16,b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):s(r,o,r,209007===n?43:12402===n||12403===e.token?42:44,T[255&n])}else 134217728==(134217728&e.token)?(k|=16,P=ot(e,t),h|=1,b=ct(e,t,h,a,m,d,p)):69271571===e.token?(k|=16,h|=3,P=dt(e,t,a),b=ct(e,t,h,a,e.tokenPos,e.linePos,e.colPos)):o(e,122);else o(e,28,T[255&r]);k|=128&e.destructible?128:0,e.destructible=k,f.push(re(e,t,m,d,p,{type:"Property",key:P,value:b,kind:768&h?512&h?"set":"get":"init",computed:(2&h)>0,method:(1&h)>0,shorthand:(4&h)>0}))}if(k|=e.destructible,18!==e.token)break;j(e,t)}K(e,t,1074790415),g>1&&(k|=64);const m=re(e,t,u,d,p,{type:i?"ObjectPattern":"ObjectExpression",properties:f});return!r&&4194304&e.token?it(e,t,k,a,i,u,d,p,m):(e.destructible=k,m)}function dt(e,t,n){j(e,32768|t);const o=Ue(e,134217728^(134217728|t),1,0,n,e.tokenPos,e.linePos,e.colPos);return K(e,t,20),o}function pt(e,t,n,o,r){const{tokenValue:s}=e,a=nt(e,t,0);if(e.assignable=1,10===e.token){let i;return 64&t&&(i=ae(e,t,s)),e.flags=128^(128|e.flags),gt(e,t,i,[a],0,n,o,r)}return a}function ft(e,t,n,r,s,a,i,l,c,u){a||o(e,54),s&&o(e,48),e.flags&=-129;return gt(e,t,64&t?ae(e,t,n):void 0,[r],i,l,c,u)}function kt(e,t,n,r,s,a,i,l,c){s||o(e,54);for(let t=0;t0&&"constructor"===e.tokenValue&&o(e,106),1074790415===e.token&&o(e,105),W(e,t,1074790417)?a>0&&o(e,116):d.push(qt(e,t,r,n,s,p,0,i,e.tokenPos,e.linePos,e.colPos))}return K(e,8&a?32768|t:t,1074790415),re(e,t,l,c,u,{type:"ClassBody",body:d})}function qt(e,t,n,r,s,a,i,l,c,u,d){let p=i?32:0,f=null;const{token:k,tokenPos:g,linePos:m,colPos:b}=e;if(176128&k)switch(f=nt(e,t,0),k){case 36972:if(!i&&67174411!==e.token)return qt(e,t,n,r,s,a,1,l,c,u,d);break;case 209007:if(67174411!==e.token&&(1&e.flags)<1){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=16|(Z(e,t,8457014)?8:0)}break;case 12402:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=256}break;case 12403:if(67174411!==e.token){if(1&t&&1073741824==(1073741824&e.token))return Et(e,t,f,p,a,g,m,b);p|=512}}else 69271571===k?(p|=2,f=dt(e,r,l)):134217728==(134217728&k)?f=ot(e,t):8457014===k?(p|=8,j(e,t)):1&t&&131===e.token?(p|=4096,f=Ct(e,t,g,m,b),t|=16384):1&t&&1073741824==(1073741824&e.token)?(p|=128,t|=16384):122===k?(f=nt(e,t,0),67174411!==e.token&&o(e,28,T[255&e.token])):o(e,28,T[255&e.token]);if(792&p&&(143360&e.token?f=nt(e,t,0):134217728==(134217728&e.token)?f=ot(e,t):69271571===e.token?(p|=2,f=dt(e,t,0)):122===e.token?f=nt(e,t,0):1&t&&131===e.token?(p|=4096,f=Ct(e,t,g,m,b)):o(e,131)),(2&p)<1&&("constructor"===e.tokenValue?(1073741824==(1073741824&e.token)?o(e,125):(32&p)<1&&67174411===e.token&&(920&p?o(e,50,"accessor"):(524288&t)<1&&(32&e.flags?o(e,51):e.flags|=32)),p|=64):(4096&p)<1&&824&p&&"prototype"===e.tokenValue&&o(e,49)),1&t&&67174411!==e.token)return Et(e,t,f,p,a,g,m,b);const h=ct(e,t,p,l,e.tokenPos,e.linePos,e.colPos);return re(e,t,c,u,d,1&t?{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,decorators:a,value:h}:{type:"MethodDefinition",kind:(32&p)<1&&64&p?"constructor":256&p?"get":512&p?"set":"method",static:(32&p)>0,computed:(2&p)>0,key:f,value:h})}function Ct(e,t,n,r,s){j(e,t);const{tokenValue:a}=e;return"constructor"===a&&o(e,124),j(e,t),re(e,t,n,r,s,{type:"PrivateIdentifier",name:a})}function Et(e,t,n,r,s,a,i,l){let c=null;if(8&r&&o(e,0),1077936157===e.token){j(e,32768|t);const{tokenPos:n,linePos:r,colPos:s}=e;537079928===e.token&&o(e,115),c=_e(e,16384|t,2,0,1,0,0,1,n,r,s),1073741824!=(1073741824&e.token)&&(c=ze(e,16384|t,c,0,0,n,r,s),c=Ge(e,16384|t,0,0,n,r,s,c),18===e.token&&(c=Be(e,t,0,a,i,l,c)))}return re(e,t,a,i,l,{type:"PropertyDefinition",key:n,value:c,static:(32&r)>0,computed:(2&r)>0,decorators:s})}function At(e,t,n,r,s,a,i,l){if(143360&e.token)return St(e,t,n,r,s,a,i,l);2097152!=(2097152&e.token)&&o(e,28,T[255&e.token]);const c=69271571===e.token?at(e,t,n,1,0,1,r,s,a,i,l):ut(e,t,n,1,0,1,r,s,a,i,l);return 16&e.destructible&&o(e,47),32&e.destructible&&o(e,47),c}function St(e,t,n,r,s,a,i,l){const{tokenValue:c,token:u}=e;return 1024&t&&(537079808==(537079808&u)?o(e,115):36864==(36864&u)&&o(e,114)),20480==(20480&u)&&o(e,99),2099200&t&&241773===u&&o(e,30),241739===u&&24&r&&o(e,97),4196352&t&&209008===u&&o(e,95),j(e,t),n&&ce(e,t,n,c,r,s),re(e,t,a,i,l,{type:"Identifier",name:c})}function Dt(e,t,n,r,s,a){if(j(e,t),8456259===e.token)return re(e,t,r,s,a,{type:"JSXFragment",openingFragment:Lt(e,t,r,s,a),children:Tt(e,t),closingFragment:Vt(e,t,n,e.tokenPos,e.linePos,e.colPos)});let i=null,l=[];const c=function(e,t,n,r,s,a){143360!=(143360&e.token)&&4096!=(4096&e.token)&&o(e,0);const i=Nt(e,t,e.tokenPos,e.linePos,e.colPos),l=function(e,t){const n=[];for(;8457016!==e.token&&8456259!==e.token&&1048576!==e.token;)n.push(Ut(e,t,e.tokenPos,e.linePos,e.colPos));return n}(e,t),c=8457016===e.token;8456259===e.token?X(e,t):(K(e,t,8457016),n?K(e,t,8456259):X(e,t));return re(e,t,r,s,a,{type:"JSXOpeningElement",name:i,attributes:l,selfClosing:c})}(e,t,n,r,s,a);if(!c.selfClosing){l=Tt(e,t),i=function(e,t,n,o,r,s){K(e,t,25);const a=Nt(e,t,e.tokenPos,e.linePos,e.colPos);n?K(e,t,8456259):e.token=X(e,t);return re(e,t,o,r,s,{type:"JSXClosingElement",name:a})}(e,t,n,e.tokenPos,e.linePos,e.colPos);const r=se(i.name);se(c.name)!==r&&o(e,149,r)}return re(e,t,r,s,a,{type:"JSXElement",children:l,openingElement:c,closingElement:i})}function Lt(e,t,n,o,r){return X(e,t),re(e,t,n,o,r,{type:"JSXOpeningFragment"})}function Vt(e,t,n,o,r,s){return K(e,t,25),K(e,t,8456259),re(e,t,o,r,s,{type:"JSXClosingFragment"})}function Tt(e,t){const n=[];for(;25!==e.token;)e.index=e.tokenPos=e.startPos,e.column=e.colPos=e.startColumn,e.line=e.linePos=e.startLine,X(e,t),n.push(Rt(e,t,e.tokenPos,e.linePos,e.colPos));return n}function Rt(e,t,n,r,s){return 138===e.token?function(e,t,n,o,r){X(e,t);const s={type:"JSXText",value:e.tokenValue};512&t&&(s.raw=e.tokenRaw);return re(e,t,n,o,r,s)}(e,t,n,r,s):2162700===e.token?Ot(e,t,0,0,n,r,s):8456258===e.token?Dt(e,t,0,n,r,s):void o(e,0)}function Nt(e,t,n,o,r){_(e);let s=Gt(e,t,n,o,r);if(21===e.token)return Bt(e,t,s,n,o,r);for(;W(e,t,67108877);)_(e),s=It(e,t,s,n,o,r);return s}function It(e,t,n,o,r,s){return re(e,t,o,r,s,{type:"JSXMemberExpression",object:n,property:Gt(e,t,e.tokenPos,e.linePos,e.colPos)})}function Ut(e,t,n,r,s){if(2162700===e.token)return function(e,t,n,o,r){j(e,t),K(e,t,14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return K(e,t,1074790415),re(e,t,n,o,r,{type:"JSXSpreadAttribute",argument:s})}(e,t,n,r,s);_(e);let a=null,i=Gt(e,t,n,r,s);if(21===e.token&&(i=Bt(e,t,i,n,r,s)),1077936157===e.token){const n=z(e,t),{tokenPos:r,linePos:s,colPos:i}=e;switch(n){case 134283267:a=ot(e,t);break;case 8456258:a=Dt(e,t,1,r,s,i);break;case 2162700:a=Ot(e,t,1,1,r,s,i);break;default:o(e,148)}}return re(e,t,n,r,s,{type:"JSXAttribute",value:a,name:i})}function Bt(e,t,n,o,r,s){K(e,t,21);return re(e,t,o,r,s,{type:"JSXNamespacedName",namespace:n,name:Gt(e,t,e.tokenPos,e.linePos,e.colPos)})}function Ot(e,t,n,r,s,a,i){j(e,t);const{tokenPos:l,linePos:c,colPos:u}=e;if(14===e.token)return function(e,t,n,o,r){K(e,t,14);const s=Ue(e,t,1,0,0,e.tokenPos,e.linePos,e.colPos);return K(e,t,1074790415),re(e,t,n,o,r,{type:"JSXSpreadChild",expression:s})}(e,t,l,c,u);let d=null;return 1074790415===e.token?(r&&o(e,151),d=function(e,t,n,o,r){return e.startPos=e.tokenPos,e.startLine=e.linePos,e.startColumn=e.colPos,re(e,t,n,o,r,{type:"JSXEmptyExpression"})}(e,t,e.startPos,e.startLine,e.startColumn)):d=Ue(e,t,1,0,0,l,c,u),n?K(e,t,1074790415):X(e,t),re(e,t,s,a,i,{type:"JSXExpressionContainer",expression:d})}function Gt(e,t,n,o,r){const{tokenValue:s}=e;return j(e,t),re(e,t,n,o,r,{type:"JSXIdentifier",name:s})}var jt=Object.freeze({__proto__:null});e.ESTree=jt,e.parse=function(e,t){return me(e,t,0)},e.parseModule=function(e,t){return me(e,t,3072)},e.parseScript=function(e,t){return me(e,t,0)},e.version="4.2.0",Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/node_modules/meriyah/dist/src/chars.d.ts b/node_modules/meriyah/dist/src/chars.d.ts new file mode 100644 index 0000000..ad60601 --- /dev/null +++ b/node_modules/meriyah/dist/src/chars.d.ts @@ -0,0 +1,136 @@ +export declare const enum Chars { + Null = 0, + Backspace = 8, + Tab = 9, + LineFeed = 10, + VerticalTab = 11, + FormFeed = 12, + CarriageReturn = 13, + Space = 32, + Exclamation = 33, + DoubleQuote = 34, + Hash = 35, + Dollar = 36, + Percent = 37, + Ampersand = 38, + SingleQuote = 39, + LeftParen = 40, + RightParen = 41, + Asterisk = 42, + Plus = 43, + Comma = 44, + Hyphen = 45, + Period = 46, + Slash = 47, + Zero = 48, + One = 49, + Two = 50, + Three = 51, + Four = 52, + Five = 53, + Six = 54, + Seven = 55, + Eight = 56, + Nine = 57, + Colon = 58, + Semicolon = 59, + LessThan = 60, + EqualSign = 61, + GreaterThan = 62, + QuestionMark = 63, + UpperA = 65, + UpperB = 66, + UpperC = 67, + UpperD = 68, + UpperE = 69, + UpperF = 70, + UpperG = 71, + UpperH = 72, + UpperI = 73, + UpperJ = 74, + UpperK = 75, + UpperL = 76, + UpperM = 77, + UpperN = 78, + UpperO = 79, + UpperP = 80, + UpperQ = 81, + UpperR = 82, + UpperS = 83, + UpperT = 84, + UpperU = 85, + UpperV = 86, + UpperW = 87, + UpperX = 88, + UpperY = 89, + UpperZ = 90, + LeftBracket = 91, + Backslash = 92, + RightBracket = 93, + Caret = 94, + Underscore = 95, + Backtick = 96, + LowerA = 97, + LowerB = 98, + LowerC = 99, + LowerD = 100, + LowerE = 101, + LowerF = 102, + LowerG = 103, + LowerH = 104, + LowerI = 105, + LowerJ = 106, + LowerK = 107, + LowerL = 108, + LowerM = 109, + LowerN = 110, + LowerO = 111, + LowerP = 112, + LowerQ = 113, + LowerR = 114, + LowerS = 115, + LowerT = 116, + LowerU = 117, + LowerV = 118, + LowerW = 119, + LowerX = 120, + LowerY = 121, + LowerZ = 122, + LeftBrace = 123, + VerticalBar = 124, + RightBrace = 125, + Tilde = 126, + Delete = 127, + NextLine = 133, + NonBreakingSpace = 160, + Ogham = 5760, + EnQuad = 8192, + EmQuad = 8193, + EnSpace = 8194, + EmSpace = 8195, + ThreePerEmSpace = 8196, + FourPerEmSpace = 8197, + SixPerEmSpace = 8198, + FigureSpace = 8199, + PunctuationSpace = 8200, + ThinSpace = 8201, + HairSpace = 8202, + ZeroWidthSpace = 8203, + ZeroWidthJoiner = 8204, + ZeroWidthNonJoiner = 8205, + LineSeparator = 8232, + ParagraphSeparator = 8233, + NarrowNoBreakSpace = 8239, + MathematicalSpace = 8287, + IdeographicSpace = 12288, + ZeroWidthNoBreakSpace = 65279, + ByteOrderMark = 65519, + NonBMPMax = 1114111, + LeadSurrogateMin = 55296, + LeadSurrogateMax = 56319, + TrailSurrogateMin = 56320, + TrailSurrogateMax = 57343, + UTF16Max = 65535, + NonBMPMin = 65536 +} +//# sourceMappingURL=chars.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/chars.d.ts.map b/node_modules/meriyah/dist/src/chars.d.ts.map new file mode 100644 index 0000000..a724b34 --- /dev/null +++ b/node_modules/meriyah/dist/src/chars.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"chars.d.ts","sourceRoot":"","sources":["../../src/chars.ts"],"names":[],"mappings":"AAGA,0BAAkB,KAAK;IAEnB,IAAI,IAAO;IAEX,SAAS,IAAY;IACrB,GAAG,IAAkB;IACrB,QAAQ,KAAa;IACrB,WAAW,KAAU;IACrB,QAAQ,KAAa;IACrB,cAAc,KAAO;IAErB,KAAK,KAAa;IAClB,WAAW,KAAO;IAClB,WAAW,KAAO;IAClB,IAAI,KAAc;IAClB,MAAM,KAAY;IAClB,OAAO,KAAW;IAClB,SAAS,KAAS;IAClB,WAAW,KAAO;IAClB,SAAS,KAAS;IAClB,UAAU,KAAQ;IAClB,QAAQ,KAAU;IAClB,IAAI,KAAc;IAClB,KAAK,KAAa;IAClB,MAAM,KAAY;IAClB,MAAM,KAAY;IAClB,KAAK,KAAa;IAElB,IAAI,KAAe;IACnB,GAAG,KAAgB;IACnB,GAAG,KAAgB;IACnB,KAAK,KAAc;IACnB,IAAI,KAAe;IACnB,IAAI,KAAe;IACnB,GAAG,KAAgB;IACnB,KAAK,KAAc;IACnB,KAAK,KAAc;IACnB,IAAI,KAAe;IACnB,KAAK,KAAc;IACnB,SAAS,KAAU;IACnB,QAAQ,KAAW;IACnB,SAAS,KAAU;IACnB,WAAW,KAAQ;IACnB,YAAY,KAAO;IAEnB,MAAM,KAAO;IACb,MAAM,KAAO;IACb,MAAM,KAAO;IACb,MAAM,KAAO;IACb,MAAM,KAAO;IACb,MAAM,KAAO;IACb,MAAM,KAAO;IACb,MAAM,KAAO;IACb,MAAM,KAAO;IACb,MAAM,KAAO;IACb,MAAM,KAAO;IACb,MAAM,KAAO;IACb,MAAM,KAAO;IACb,MAAM,KAAO;IACb,MAAM,KAAO;IAEb,MAAM,KAAa;IACnB,MAAM,KAAa;IACnB,MAAM,KAAa;IACnB,MAAM,KAAa;IACnB,MAAM,KAAa;IACnB,MAAM,KAAa;IACnB,MAAM,KAAa;IACnB,MAAM,KAAa;IACnB,MAAM,KAAa;IACnB,MAAM,KAAa;IACnB,MAAM,KAAa;IACnB,WAAW,KAAQ;IACnB,SAAS,KAAU;IACnB,YAAY,KAAO;IACnB,KAAK,KAAc;IACnB,UAAU,KAAS;IAEnB,QAAQ,KAAO;IACf,MAAM,KAAS;IACf,MAAM,KAAS;IACf,MAAM,KAAS;IACf,MAAM,MAAS;IACf,MAAM,MAAS;IACf,MAAM,MAAS;IACf,MAAM,MAAS;IACf,MAAM,MAAS;IACf,MAAM,MAAS;IACf,MAAM,MAAS;IACf,MAAM,MAAS;IACf,MAAM,MAAS;IACf,MAAM,MAAS;IACf,MAAM,MAAS;IACf,MAAM,MAAS;IAEf,MAAM,MAAY;IAClB,MAAM,MAAY;IAClB,MAAM,MAAY;IAClB,MAAM,MAAY;IAClB,MAAM,MAAY;IAClB,MAAM,MAAY;IAClB,MAAM,MAAY;IAClB,MAAM,MAAY;IAClB,MAAM,MAAY;IAClB,MAAM,MAAY;IAClB,MAAM,MAAY;IAClB,SAAS,MAAS;IAClB,WAAW,MAAO;IAClB,UAAU,MAAQ;IAClB,KAAK,MAAa;IAClB,MAAM,MAAY;IAElB,QAAQ,MAAe;IACvB,gBAAgB,MAAO;IAEvB,KAAK,OAAS;IAEd,MAAM,OAAqB;IAC3B,MAAM,OAAqB;IAC3B,OAAO,OAAoB;IAC3B,OAAO,OAAoB;IAC3B,eAAe,OAAY;IAC3B,cAAc,OAAa;IAC3B,aAAa,OAAc;IAC3B,WAAW,OAAgB;IAC3B,gBAAgB,OAAW;IAC3B,SAAS,OAAkB;IAC3B,SAAS,OAAkB;IAC3B,cAAc,OAAa;IAC3B,eAAe,OAAY;IAC3B,kBAAkB,OAAS;IAE3B,aAAa,OAAc;IAC3B,kBAAkB,OAAS;IAE3B,kBAAkB,OAAS;IAC3B,iBAAiB,OAAU;IAC3B,gBAAgB,QAAW;IAE3B,qBAAqB,QAAS;IAE9B,aAAa,QAAS;IAEtB,SAAS,UAAW;IAEpB,gBAAgB,QAAS;IACzB,gBAAgB,QAAS;IACzB,iBAAiB,QAAS;IAC1B,iBAAiB,QAAS;IAC1B,QAAQ,QAAS;IACjB,SAAS,QAAU;CACtB"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/common.d.ts b/node_modules/meriyah/dist/src/common.d.ts new file mode 100644 index 0000000..56ad5d2 --- /dev/null +++ b/node_modules/meriyah/dist/src/common.d.ts @@ -0,0 +1,201 @@ +import { Token } from './token'; +import { Errors } from './errors'; +import { Node, Comment, Decorator, SourceLocation } from './estree'; +export declare const enum Context { + None = 0, + OptionsNext = 1, + OptionsRanges = 2, + OptionsLoc = 4, + OptionsDirectives = 8, + OptionsJSX = 16, + OptionsGlobalReturn = 32, + OptionsLexical = 64, + OptionsPreserveParens = 128, + OptionsWebCompat = 256, + OptionsRaw = 512, + Strict = 1024, + Module = 2048, + InSwitch = 4096, + InGlobal = 8192, + InClass = 16384, + AllowRegExp = 32768, + TaggedTemplate = 65536, + InIteration = 131072, + SuperProperty = 262144, + SuperCall = 524288, + InYieldContext = 2097152, + InAwaitContext = 4194304, + InArgumentList = 8388608, + InConstructor = 16777216, + InMethod = 33554432, + AllowNewTarget = 67108864, + DisallowIn = 134217728, + OptionsIdentifierPattern = 268435456, + OptionsSpecDeviation = 536870912, + AllowEscapedKeyword = 1073741824, + OptionsUniqueKeyInPattern = -2147483648 +} +export declare const enum PropertyKind { + None = 0, + Method = 1, + Computed = 2, + Shorthand = 4, + Generator = 8, + Async = 16, + Static = 32, + Constructor = 64, + ClassField = 128, + Getter = 256, + Setter = 512, + Extends = 1024, + Literal = 2048, + PrivateField = 4096, + GetSet = 768 +} +export declare const enum BindingKind { + None = 0, + ArgumentList = 1, + Empty = 2, + Variable = 4, + Let = 8, + Const = 16, + Class = 32, + FunctionLexical = 64, + FunctionStatement = 128, + CatchPattern = 256, + CatchIdentifier = 512, + CatchIdentifierOrPattern = 768, + LexicalOrFunction = 68, + LexicalBinding = 248 +} +export declare const enum Origin { + None = 0, + Statement = 1, + BlockStatement = 2, + TopLevel = 4, + Declaration = 8, + Arrow = 16, + ForStatement = 32, + Export = 64 +} +export declare const enum AssignmentKind { + None = 0, + Assignable = 1, + CannotAssign = 2 +} +export declare const enum DestructuringKind { + None = 0, + HasToDestruct = 8, + CannotDestruct = 16, + Assignable = 32, + SeenProto = 64, + Await = 128, + Yield = 256 +} +export declare const enum Flags { + None = 0, + NewLine = 1, + HasConstructor = 32, + Octals = 64, + SimpleParameterList = 128, + HasStrictReserved = 256, + StrictEvalArguments = 512, + DisallowCall = 1024, + HasOptionalChaining = 2048 +} +export declare const enum HoistedClassFlags { + None = 0, + Hoisted = 1, + Export = 2 +} +export declare const enum HoistedFunctionFlags { + None = 0, + Hoisted = 1, + Export = 2 +} +export declare const enum ScopeKind { + None = 0, + ForStatement = 1, + Block = 2, + CatchStatement = 4, + SwitchStatement = 8, + ArgList = 16, + TryStatement = 32, + CatchBlock = 64, + FunctionBody = 128, + FunctionRoot = 256, + FunctionParams = 512, + ArrowParams = 1024, + CatchIdentifier = 2048 +} +export declare type OnComment = void | Comment[] | ((type: string, value: string, start: number, end: number, loc: SourceLocation) => any); +export declare type OnToken = void | Token[] | ((token: string, start: number, end: number, loc: SourceLocation) => any); +export interface ScopeState { + parent: ScopeState | undefined; + type: ScopeKind; + scopeError?: ScopeError | null; +} +export interface ScopeError { + type: Errors; + params: string[]; + index: number; + line: number; + column: number; +} +export interface ParserState { + source: string; + flags: Flags; + index: number; + line: number; + column: number; + tokenPos: number; + startPos: number; + startColumn: number; + startLine: number; + colPos: number; + linePos: number; + end: number; + token: Token; + onComment: any; + onToken: any; + tokenValue: any; + tokenRaw: string; + tokenRegExp: void | { + pattern: string; + flags: string; + }; + sourceFile: string | void; + assignable: AssignmentKind | DestructuringKind; + destructible: AssignmentKind | DestructuringKind; + currentChar: number; + exportedNames: any; + exportedBindings: any; + leadingDecorators: Decorator[]; +} +export declare function matchOrInsertSemicolon(parser: ParserState, context: Context, specDeviation?: number): void; +export declare function isValidStrictMode(parser: ParserState, index: number, tokenPos: number, tokenValue: string): 0 | 1; +export declare function optionalBit(parser: ParserState, context: Context, t: Token): 0 | 1; +export declare function consumeOpt(parser: ParserState, context: Context, t: Token): boolean; +export declare function consume(parser: ParserState, context: Context, t: Token): void; +export declare function reinterpretToPattern(state: ParserState, node: any): void; +export declare function validateBindingIdentifier(parser: ParserState, context: Context, kind: BindingKind, t: Token, skipEvalArgCheck: 0 | 1): void; +export declare function validateFunctionName(parser: ParserState, context: Context, t: Token): void; +export declare function isStrictReservedWord(parser: ParserState, context: Context, t: Token): boolean; +export declare function isPropertyWithPrivateFieldKey(expr: any): boolean; +export declare function isValidLabel(parser: ParserState, labels: any, name: string, isIterationStatement: 0 | 1): 0 | 1; +export declare function validateAndDeclareLabel(parser: ParserState, labels: any, name: string): void; +export declare function finishNode(parser: ParserState, context: Context, start: number, line: number, column: number, node: T): T; +export declare function createArrowHeadParsingScope(parser: ParserState, context: Context, value: string): ScopeState; +export declare function recordScopeError(parser: ParserState, type: Errors, ...params: string[]): ScopeError; +export declare function createScope(): ScopeState; +export declare function addChildScope(parent: ScopeState | undefined, type: ScopeKind): ScopeState; +export declare function addVarOrBlock(parser: ParserState, context: Context, scope: ScopeState, name: string, kind: BindingKind, origin: Origin): void; +export declare function addBlockName(parser: ParserState, context: Context, scope: any, name: string, kind: BindingKind, origin: Origin): void; +export declare function addVarName(parser: ParserState, context: Context, scope: ScopeState, name: string, kind: BindingKind): void; +export declare function declareUnboundVariable(parser: ParserState, name: string): void; +export declare function addBindingToExports(parser: ParserState, name: string): void; +export declare function pushComment(context: Context, array: any[]): any; +export declare function pushToken(context: Context, array: any[]): any; +export declare function isValidIdentifier(context: Context, t: Token): boolean; +export declare function classifyIdentifier(parser: ParserState, context: Context, t: Token, isArrow: 0 | 1): any; +//# sourceMappingURL=common.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/common.d.ts.map b/node_modules/meriyah/dist/src/common.d.ts.map new file mode 100644 index 0000000..81e34d9 --- /dev/null +++ b/node_modules/meriyah/dist/src/common.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAoB,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,MAAM,EAAU,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAMpE,0BAAkB,OAAO;IACvB,IAAI,IAAI;IACR,WAAW,IAAS;IACpB,aAAa,IAAS;IACtB,UAAU,IAAS;IACnB,iBAAiB,IAAS;IAC1B,UAAU,KAAS;IACnB,mBAAmB,KAAS;IAC5B,cAAc,KAAS;IACvB,qBAAqB,MAAS;IAC9B,gBAAgB,MAAS;IACzB,UAAU,MAAS;IACnB,MAAM,OAAU;IAChB,MAAM,OAAU;IAChB,QAAQ,OAAU;IAClB,QAAQ,OAAU;IAClB,OAAO,QAAU;IACjB,WAAW,QAAU;IACrB,cAAc,QAAU;IACxB,WAAW,SAAU;IACrB,aAAa,SAAU;IACvB,SAAS,SAAU;IACnB,cAAc,UAAU;IACxB,cAAc,UAAU;IACxB,cAAc,UAAU;IACxB,aAAa,WAAU;IACvB,QAAQ,WAAU;IAClB,cAAc,WAAU;IACxB,UAAU,YAAU;IACpB,wBAAwB,YAAU;IAClC,oBAAoB,YAAU;IAC9B,mBAAmB,aAAU;IAC7B,yBAAyB,cAAU;CACpC;AAKD,0BAAkB,YAAY;IAC5B,IAAI,IAAI;IACR,MAAM,IAAS;IACf,QAAQ,IAAS;IACjB,SAAS,IAAS;IAClB,SAAS,IAAS;IAClB,KAAK,KAAS;IACd,MAAM,KAAS;IACf,WAAW,KAAS;IACpB,UAAU,MAAS;IACnB,MAAM,MAAS;IACf,MAAM,MAAS;IACf,OAAO,OAAU;IACjB,OAAO,OAAU;IACjB,YAAY,OAAU;IACtB,MAAM,MAAkB;CACzB;AAKD,0BAAkB,WAAW;IAC3B,IAAI,IAAI;IACR,YAAY,IAAS;IACrB,KAAK,IAAS;IACd,QAAQ,IAAS;IACjB,GAAG,IAAS;IACZ,KAAK,KAAS;IACd,KAAK,KAAS;IACd,eAAe,KAAS;IACxB,iBAAiB,MAAS;IAC1B,YAAY,MAAS;IACrB,eAAe,MAAS;IACxB,wBAAwB,MAAiC;IACzD,iBAAiB,KAA6B;IAC9C,cAAc,MAA4D;CAC3E;AAKD,0BAAkB,MAAM;IACtB,IAAI,IAAI;IACR,SAAS,IAAS;IAClB,cAAc,IAAS;IACvB,QAAQ,IAAS;IACjB,WAAW,IAAS;IACpB,KAAK,KAAS;IACd,YAAY,KAAS;IACrB,MAAM,KAAS;CAChB;AAKD,0BAAkB,cAAc;IAC9B,IAAI,IAAI;IACR,UAAU,IAAS;IACnB,YAAY,IAAS;CACtB;AAKD,0BAAkB,iBAAiB;IACjC,IAAI,IAAI;IACR,aAAa,IAAS;IAGtB,cAAc,KAAS;IAEvB,UAAU,KAAS;IAEnB,SAAS,KAAS;IAClB,KAAK,MAAS;IACd,KAAK,MAAS;CACf;AAKD,0BAAkB,KAAK;IACrB,IAAI,IAAI;IACR,OAAO,IAAS;IAChB,cAAc,KAAS;IACvB,MAAM,KAAS;IACf,mBAAmB,MAAS;IAC5B,iBAAiB,MAAS;IAC1B,mBAAmB,MAAS;IAC5B,YAAY,OAAY;IACxB,mBAAmB,OAAU;CAC9B;AAED,0BAAkB,iBAAiB;IACjC,IAAI,IAAA;IACJ,OAAO,IAAS;IAChB,MAAM,IAAS;CAChB;AAED,0BAAkB,oBAAoB;IACpC,IAAI,IAAA;IACJ,OAAO,IAAS;IAChB,MAAM,IAAS;CAChB;AAKD,0BAAkB,SAAS;IACzB,IAAI,IAAI;IACR,YAAY,IAAS;IACrB,KAAK,IAAS;IACd,cAAc,IAAS;IACvB,eAAe,IAAS;IACxB,OAAO,KAAS;IAChB,YAAY,KAAS;IACrB,UAAU,KAAS;IACnB,YAAY,MAAS;IACrB,YAAY,MAAS;IACrB,cAAc,MAAS;IACvB,WAAW,OAAU;IACrB,eAAe,OAAU;CAC1B;AAKD,oBAAY,SAAS,GAAG,IAAI,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,GAAG,CAAC,CAAC;AAKnI,oBAAY,OAAO,GAAG,IAAI,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,GAAG,CAAC,CAAC;AAKjH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAChC;AAGD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAKD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,GAAG,CAAC;IACf,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,IAAI,GAAG;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,cAAc,GAAG,iBAAiB,CAAC;IAC/C,YAAY,EAAE,cAAc,GAAG,iBAAiB,CAAC;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,GAAG,CAAC;IACnB,gBAAgB,EAAE,GAAG,CAAC;IACtB,iBAAiB,EAAE,SAAS,EAAE,CAAC;CAChC;AAUD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAU1G;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAOjH;AAUD,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAIlF;AAUD,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAInF;AAUD,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAG7E;AASD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CA+BxE;AAWD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,EACjB,CAAC,EAAE,KAAK,EACR,gBAAgB,EAAE,CAAC,GAAG,CAAC,GACtB,IAAI,CA+BN;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,KAAK,GACP,IAAI,CAgCN;AAUD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAa7F;AAQD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAEhE;AAUD,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAW/G;AAUD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAQ5F;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,IAAI,EACvC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,CAAC,GACN,CAAC,CAyBH;AAwBD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAI5G;AAQD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CASnG;AAKD,wBAAgB,WAAW,IAAI,UAAU,CAKxC;AAQD,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,UAAU,CAMzF;AAYD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,QAUf;AAYD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,GAAG,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,QAoCf;AAWD,wBAAgB,UAAU,CACxB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,GAChB,IAAI,CAoCN;AAWD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAO9E;AAUD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAI3E;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAiB/D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAgB7D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAarE;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,KAAK,EACR,OAAO,EAAE,CAAC,GAAG,CAAC,GACb,GAAG,CAOL"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/errors.d.ts b/node_modules/meriyah/dist/src/errors.d.ts new file mode 100644 index 0000000..489b664 --- /dev/null +++ b/node_modules/meriyah/dist/src/errors.d.ts @@ -0,0 +1,187 @@ +import { ParserState } from './common'; +export declare const enum Errors { + Unexpected = 0, + StrictOctalEscape = 1, + TemplateOctalLiteral = 2, + InvalidPrivateIdentifier = 3, + InvalidUnicodeEscapeSequence = 4, + InvalidCodePoint = 5, + InvalidHexEscapeSequence = 6, + StrictDecimalWithLeadingZero = 7, + StrictOctalLiteral = 8, + ExpectedNumberInRadix = 9, + MissingExponent = 10, + InvalidBigInt = 11, + IDStartAfterNumber = 12, + InvalidEightAndNine = 13, + UnterminatedString = 14, + UnterminatedTemplate = 15, + UnterminatedComment = 16, + InvalidDynamicUnicode = 17, + IllegalCharacter = 18, + MissingHexDigits = 19, + InvalidImplicitOctals = 20, + InvalidStringLT = 21, + InvalidEscapeIdentifier = 22, + ExpectedToken = 23, + CantAssignTo = 24, + InvalidLHSAsyncArrow = 25, + SuperNoConstructor = 26, + InvalidSuperProperty = 27, + UnexpectedToken = 28, + AwaitInParameter = 29, + YieldInParameter = 30, + InvalidExponentiationLHS = 31, + UnterminatedRegExp = 32, + UnexpectedTokenRegExpFlag = 33, + DuplicateRegExpFlag = 34, + AccessorWrongArgs = 35, + BadSetterRestParameter = 36, + DeclNoName = 37, + StrictFunctionName = 38, + RestMissingArg = 39, + InvalidGeneratorGetter = 40, + InvalidComputedPropName = 41, + InvalidGetSetGenerator = 42, + InvalidAsyncGetter = 43, + InvalidGenMethodShorthand = 44, + InvalidLineBreak = 45, + InvalidArrowDestructLHS = 46, + InvalidBindingDestruct = 47, + InvalidAsyncArrow = 48, + StaticPrototype = 49, + InvalidConstructor = 50, + DuplicateConstructor = 51, + InvalidIncDecTarget = 52, + InvalidIncDecNew = 53, + InvalidAssignmentTarget = 54, + InvalidRestTrailing = 55, + DeclarationMissingInitializer = 56, + ForInOfLoopInitializer = 57, + ForInOfLoopMultiBindings = 58, + InvalidShorthandPropInit = 59, + DuplicateProto = 60, + InvalidLetBoundName = 61, + InvalidNewUnary = 62, + IllegalUseStrict = 63, + DisallowedLetInStrict = 64, + IllegalContinue = 65, + IllegalBreak = 66, + InvalidLetBracket = 67, + InvalidDestructuringTarget = 68, + RestDefaultInitializer = 69, + InvalidRestNotLast = 70, + InvalidRestArg = 71, + InvalidRestDefault = 72, + StrictFunction = 73, + SloppyFunction = 74, + WebCompatFunction = 75, + ClassForbiddenAsStatement = 76, + CantAssignToInOfForLoop = 77, + InvalidAssignmentInOfForLoop = 78, + InvalidForAwait = 79, + InvalidTemplateContinuation = 80, + RestrictedLetProduction = 81, + UnexpectedLetStrictReserved = 82, + InvalidCatchParams = 83, + InvalidCatchParamDefault = 84, + NoCatchOrFinally = 85, + MultipleDefaultsInSwitch = 86, + NewlineAfterThrow = 87, + StrictWith = 88, + IllegalReturn = 89, + InvalidForLHSBinding = 90, + InvalidNewTarget = 91, + InvalidEscapedKeyword = 92, + MissingPrivateIdentifier = 93, + DisallowedInContext = 94, + AwaitOutsideAsync = 95, + InvalidStrictLet = 96, + InvalidLetConstBinding = 97, + InvalidLetClassName = 98, + KeywordNotId = 99, + InvalidImportExportSloppy = 100, + UnicodeOverflow = 101, + InvalidExportImportSource = 102, + InvalidKeywordAsAlias = 103, + InvalidDefaultImport = 104, + TrailingDecorators = 105, + GeneratorConstructor = 106, + AwaitOrYieldIdentInModule = 107, + HtmlCommentInWebCompat = 108, + StrictInvalidLetInExprPos = 109, + NotAssignableLetArgs = 110, + ForOfLet = 111, + InvalidInvokedBlockBodyArrow = 112, + InvalidAccessedBlockBodyArrow = 113, + UnexpectedStrictReserved = 114, + StrictEvalArguments = 115, + InvalidDecoratorSemicolon = 116, + StrictDelete = 117, + InvalidPatternTail = 118, + AsyncFunctionInSingleStatementContext = 119, + InvalidTernaryYield = 120, + InvalidArrowPostfix = 121, + InvalidObjLitKeyStar = 122, + DeletePrivateField = 123, + InvalidStaticClassFieldConstructor = 124, + InvalidClassFieldConstructor = 125, + InvalidClassFieldArgEval = 126, + InvalidGeneratorFunction = 127, + AsyncRestrictedProd = 128, + UnexpectedCharAfterObjLit = 129, + InvalidObjLitKey = 130, + InvalidKeyToken = 131, + LabelRedeclaration = 132, + InvalidNestedStatement = 133, + UnknownLabel = 134, + InvalidImportTail = 135, + ImportNotOneArg = 136, + InvalidImportNew = 137, + InvalidSpreadInImport = 138, + UncompleteArrow = 139, + DuplicateBinding = 140, + DuplicateExportBinding = 141, + UndeclaredExportedBinding = 142, + UnexpectedPrivateField = 143, + DuplicateLetConstBinding = 144, + CantAssignToValidRHS = 145, + ContinuousNumericSeparator = 146, + TrailingNumericSeparator = 147, + InvalidJSXAttributeValue = 148, + ExpectedJSXClosingTag = 149, + AdjacentJSXElements = 150, + InvalidNonEmptyJSXExpr = 151, + DuplicateIdentifier = 152, + ShadowedCatchClause = 153, + InvalidDotProperty = 154, + UnclosedSpreadElement = 155, + CatchWithoutTry = 156, + FinallyWithoutTry = 157, + UnCorrespondingFragmentTag = 158, + InvalidCoalescing = 159, + OptionalChainingNoTemplate = 160, + OptionalChainingNoSuper = 161, + OptionalChainingNoNew = 162, + ImportMetaOutsideModule = 163, + InvalidLeadingDecorator = 164 +} +export declare const errorMessages: { + [key: string]: string; +}; +export declare class ParseError extends SyntaxError { + loc: { + line: ParseError['line']; + column: ParseError['column']; + }; + index: number; + line: number; + column: number; + description: string; + constructor(startindex: number, line: number, column: number, type: Errors, ...params: string[]); +} +export declare function report(parser: ParserState, type: Errors, ...params: string[]): never; +export declare function reportScopeError(scope: any): never; +export declare function reportMessageAt(index: number, line: number, column: number, type: Errors, ...params: string[]): never; +export declare function reportScannerError(index: number, line: number, column: number, type: Errors): never; +//# sourceMappingURL=errors.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/errors.d.ts.map b/node_modules/meriyah/dist/src/errors.d.ts.map new file mode 100644 index 0000000..6427dd8 --- /dev/null +++ b/node_modules/meriyah/dist/src/errors.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,0BAAkB,MAAM;IACtB,UAAU,IAAA;IACV,iBAAiB,IAAA;IACjB,oBAAoB,IAAA;IACpB,wBAAwB,IAAA;IACxB,4BAA4B,IAAA;IAC5B,gBAAgB,IAAA;IAChB,wBAAwB,IAAA;IACxB,4BAA4B,IAAA;IAC5B,kBAAkB,IAAA;IAClB,qBAAqB,IAAA;IACrB,eAAe,KAAA;IACf,aAAa,KAAA;IACb,kBAAkB,KAAA;IAClB,mBAAmB,KAAA;IACnB,kBAAkB,KAAA;IAClB,oBAAoB,KAAA;IACpB,mBAAmB,KAAA;IACnB,qBAAqB,KAAA;IACrB,gBAAgB,KAAA;IAChB,gBAAgB,KAAA;IAChB,qBAAqB,KAAA;IACrB,eAAe,KAAA;IACf,uBAAuB,KAAA;IACvB,aAAa,KAAA;IACb,YAAY,KAAA;IACZ,oBAAoB,KAAA;IACpB,kBAAkB,KAAA;IAClB,oBAAoB,KAAA;IACpB,eAAe,KAAA;IACf,gBAAgB,KAAA;IAChB,gBAAgB,KAAA;IAChB,wBAAwB,KAAA;IACxB,kBAAkB,KAAA;IAClB,yBAAyB,KAAA;IACzB,mBAAmB,KAAA;IACnB,iBAAiB,KAAA;IACjB,sBAAsB,KAAA;IACtB,UAAU,KAAA;IACV,kBAAkB,KAAA;IAClB,cAAc,KAAA;IACd,sBAAsB,KAAA;IACtB,uBAAuB,KAAA;IACvB,sBAAsB,KAAA;IACtB,kBAAkB,KAAA;IAClB,yBAAyB,KAAA;IACzB,gBAAgB,KAAA;IAChB,uBAAuB,KAAA;IACvB,sBAAsB,KAAA;IACtB,iBAAiB,KAAA;IACjB,eAAe,KAAA;IACf,kBAAkB,KAAA;IAClB,oBAAoB,KAAA;IACpB,mBAAmB,KAAA;IACnB,gBAAgB,KAAA;IAChB,uBAAuB,KAAA;IACvB,mBAAmB,KAAA;IACnB,6BAA6B,KAAA;IAC7B,sBAAsB,KAAA;IACtB,wBAAwB,KAAA;IACxB,wBAAwB,KAAA;IACxB,cAAc,KAAA;IACd,mBAAmB,KAAA;IACnB,eAAe,KAAA;IACf,gBAAgB,KAAA;IAChB,qBAAqB,KAAA;IACrB,eAAe,KAAA;IACf,YAAY,KAAA;IACZ,iBAAiB,KAAA;IACjB,0BAA0B,KAAA;IAC1B,sBAAsB,KAAA;IACtB,kBAAkB,KAAA;IAClB,cAAc,KAAA;IACd,kBAAkB,KAAA;IAClB,cAAc,KAAA;IACd,cAAc,KAAA;IACd,iBAAiB,KAAA;IACjB,yBAAyB,KAAA;IACzB,uBAAuB,KAAA;IACvB,4BAA4B,KAAA;IAC5B,eAAe,KAAA;IACf,2BAA2B,KAAA;IAC3B,uBAAuB,KAAA;IACvB,2BAA2B,KAAA;IAC3B,kBAAkB,KAAA;IAClB,wBAAwB,KAAA;IACxB,gBAAgB,KAAA;IAChB,wBAAwB,KAAA;IACxB,iBAAiB,KAAA;IACjB,UAAU,KAAA;IACV,aAAa,KAAA;IACb,oBAAoB,KAAA;IACpB,gBAAgB,KAAA;IAChB,qBAAqB,KAAA;IACrB,wBAAwB,KAAA;IACxB,mBAAmB,KAAA;IACnB,iBAAiB,KAAA;IACjB,gBAAgB,KAAA;IAChB,sBAAsB,KAAA;IACtB,mBAAmB,KAAA;IACnB,YAAY,KAAA;IACZ,yBAAyB,MAAA;IACzB,eAAe,MAAA;IACf,yBAAyB,MAAA;IACzB,qBAAqB,MAAA;IACrB,oBAAoB,MAAA;IACpB,kBAAkB,MAAA;IAClB,oBAAoB,MAAA;IACpB,yBAAyB,MAAA;IACzB,sBAAsB,MAAA;IACtB,yBAAyB,MAAA;IACzB,oBAAoB,MAAA;IACpB,QAAQ,MAAA;IACR,4BAA4B,MAAA;IAC5B,6BAA6B,MAAA;IAC7B,wBAAwB,MAAA;IACxB,mBAAmB,MAAA;IACnB,yBAAyB,MAAA;IACzB,YAAY,MAAA;IACZ,kBAAkB,MAAA;IAClB,qCAAqC,MAAA;IACrC,mBAAmB,MAAA;IACnB,mBAAmB,MAAA;IACnB,oBAAoB,MAAA;IACpB,kBAAkB,MAAA;IAClB,kCAAkC,MAAA;IAClC,4BAA4B,MAAA;IAC5B,wBAAwB,MAAA;IACxB,wBAAwB,MAAA;IACxB,mBAAmB,MAAA;IACnB,yBAAyB,MAAA;IACzB,gBAAgB,MAAA;IAChB,eAAe,MAAA;IACf,kBAAkB,MAAA;IAClB,sBAAsB,MAAA;IACtB,YAAY,MAAA;IACZ,iBAAiB,MAAA;IACjB,eAAe,MAAA;IACf,gBAAgB,MAAA;IAChB,qBAAqB,MAAA;IACrB,eAAe,MAAA;IACf,gBAAgB,MAAA;IAChB,sBAAsB,MAAA;IACtB,yBAAyB,MAAA;IACzB,sBAAsB,MAAA;IACtB,wBAAwB,MAAA;IACxB,oBAAoB,MAAA;IACpB,0BAA0B,MAAA;IAC1B,wBAAwB,MAAA;IACxB,wBAAwB,MAAA;IACxB,qBAAqB,MAAA;IACrB,mBAAmB,MAAA;IACnB,sBAAsB,MAAA;IACtB,mBAAmB,MAAA;IACnB,mBAAmB,MAAA;IACnB,kBAAkB,MAAA;IAClB,qBAAqB,MAAA;IACrB,eAAe,MAAA;IACf,iBAAiB,MAAA;IACjB,0BAA0B,MAAA;IAC1B,iBAAiB,MAAA;IACjB,0BAA0B,MAAA;IAC1B,uBAAuB,MAAA;IACvB,qBAAqB,MAAA;IACrB,uBAAuB,MAAA;IACvB,uBAAuB,MAAA;CACxB;AAED,eAAO,MAAM,aAAa,EAAE;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CA8KvB,CAAC;AAEF,qBAAa,UAAW,SAAQ,WAAW;IAClC,GAAG,EAAE;QACV,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;KAC9B,CAAC;IACK,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;gBAEf,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE;CAchG;AAUD,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAEpF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAElD;AAaD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAErH;AAYD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAEnG"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/estree.d.ts b/node_modules/meriyah/dist/src/estree.d.ts new file mode 100644 index 0000000..08fed59 --- /dev/null +++ b/node_modules/meriyah/dist/src/estree.d.ts @@ -0,0 +1,503 @@ +export interface _Node { + start?: number; + end?: number; + range?: [number, number]; + loc?: SourceLocation | null; +} +export interface SourceLocation { + source?: string | null; + start: Position; + end: Position; +} +export interface Position { + line: number; + column: number; +} +export declare type Labels = any; +export declare type IdentifierOrExpression = Identifier | Expression | ArrowFunctionExpression; +export declare type ArgumentExpression = ArrayExpression | AssignmentExpression | ConditionalExpression | Literal | SpreadElement | BinaryExpression | LogicalExpression | SequenceExpression; +export declare type CommentType = 'SingleLine' | 'MultiLine' | 'HTMLOpen' | 'HTMLClose' | 'HashbangComment'; +export interface Comment { + type: CommentType; + value: string; + start?: number; + end?: number; + loc?: SourceLocation | null; +} +export declare type Node = ArrayExpression | ArrayPattern | ArrowFunctionExpression | AssignmentExpression | AssignmentPattern | AwaitExpression | BigIntLiteral | BinaryExpression | BlockStatement | BreakStatement | CallExpression | ChainExpression | ImportExpression | CatchClause | ClassBody | ClassDeclaration | ClassExpression | ConditionalExpression | ContinueStatement | DebuggerStatement | Decorator | DoWhileStatement | EmptyStatement | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ExportSpecifier | ExpressionStatement | PropertyDefinition | ForInStatement | ForOfStatement | ForStatement | FunctionDeclaration | FunctionExpression | Identifier | IfStatement | Import | ImportDeclaration | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | JSXNamespacedName | JSXAttribute | JSXClosingElement | JSXClosingFragment | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXFragment | JSXIdentifier | JSXOpeningElement | JSXOpeningFragment | JSXSpreadAttribute | JSXSpreadChild | JSXMemberExpression | JSXText | LabeledStatement | Literal | LogicalExpression | MemberExpression | MetaProperty | MethodDefinition | NewExpression | ObjectExpression | ObjectPattern | ParenthesizedExpression | PrivateIdentifier | Program | Property | RegExpLiteral | RestElement | ReturnStatement | SequenceExpression | SpreadElement | Super | SwitchCase | SwitchStatement | TaggedTemplateExpression | TemplateElement | TemplateLiteral | ThisExpression | ThrowStatement | TryStatement | UpdateExpression | UnaryExpression | VariableDeclaration | VariableDeclarator | WhileStatement | WithStatement | YieldExpression; +export declare type BindingPattern = ArrayPattern | ObjectPattern | Identifier; +export declare type ClassElement = FunctionExpression | MethodDefinition; +export declare type DeclarationStatement = ClassDeclaration | ClassExpression | ExportDefaultDeclaration | ExportAllDeclaration | ExportNamedDeclaration | FunctionDeclaration; +export declare type EntityName = Identifier; +export declare type ExportDeclaration = ClassDeclaration | ClassExpression | FunctionDeclaration | VariableDeclaration; +export declare type Expression = ArrowFunctionExpression | AssignmentExpression | BinaryExpression | ConditionalExpression | MetaProperty | ChainExpression | JSXClosingElement | JSXClosingFragment | JSXExpressionContainer | JSXOpeningElement | JSXOpeningFragment | JSXSpreadChild | LogicalExpression | NewExpression | RestElement | SequenceExpression | SpreadElement | AwaitExpression | LeftHandSideExpression | UnaryExpression | UpdateExpression | YieldExpression; +export declare type ForInitialiser = Expression | VariableDeclaration; +export declare type ImportClause = ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier; +export declare type IterationStatement = DoWhileStatement | ForInStatement | ForOfStatement | ForStatement | WhileStatement; +export declare type JSXChild = JSXElement | JSXExpression | JSXFragment | JSXText; +export declare type JSXExpression = JSXEmptyExpression | JSXSpreadChild | JSXExpressionContainer; +export declare type JSXTagNameExpression = JSXIdentifier | JSXMemberExpression | JSXNamespacedName; +export declare type LeftHandSideExpression = CallExpression | ChainExpression | ImportExpression | ClassExpression | ClassDeclaration | FunctionExpression | LiteralExpression | MemberExpression | PrimaryExpression | TaggedTemplateExpression; +export declare type LiteralExpression = Literal | TemplateLiteral; +export declare type ObjectLiteralElementLike = MethodDefinition | Property | RestElement | SpreadElement; +export declare type Parameter = AssignmentPattern | RestElement | ArrayPattern | ObjectPattern | Identifier; +export declare type PrimaryExpression = ArrayExpression | ArrayPattern | ClassExpression | FunctionExpression | Identifier | Import | JSXElement | JSXFragment | JSXOpeningElement | Literal | LiteralExpression | MetaProperty | ObjectExpression | ObjectPattern | Super | TemplateLiteral | ThisExpression; +export declare type PrimaryExpressionExtended = ArrayExpression | ArrowFunctionExpression | ArrayPattern | AwaitExpression | Expression | ClassExpression | FunctionExpression | Identifier | Import | JSXElement | JSXFragment | JSXOpeningElement | Literal | LiteralExpression | MetaProperty | ObjectExpression | ObjectPattern | PrivateIdentifier | NewExpression | Super | TemplateLiteral | ThisExpression | UnaryExpression | UpdateExpression; +export declare type PropertyName = Identifier | Literal; +export declare type Statement = BlockStatement | BreakStatement | ContinueStatement | DebuggerStatement | DeclarationStatement | EmptyStatement | ExpressionStatement | IfStatement | IterationStatement | ImportDeclaration | LabeledStatement | ReturnStatement | SwitchStatement | ThrowStatement | TryStatement | VariableDeclaration | WithStatement; +interface ClassDeclarationBase extends _Node { + id: Identifier | null; + body: ClassBody; + superClass: Expression | null; + decorators?: Decorator[]; +} +interface FunctionDeclarationBase extends _Node { + id: Identifier | null; + generator: boolean; + async: boolean; + params: Parameter[]; + body?: BlockStatement | null; +} +interface MethodDefinitionBase extends _Node { + key: Expression | PrivateIdentifier | null; + value: FunctionExpression; + computed: boolean; + static: boolean; + kind: 'method' | 'get' | 'set' | 'constructor'; + decorators?: Decorator[]; +} +export interface ArrayExpression extends _Node { + type: 'ArrayExpression'; + elements: (Expression | SpreadElement | null)[]; +} +export interface ArrayPattern extends _Node { + type: 'ArrayPattern'; + elements: Expression[]; +} +export interface ArrowFunctionExpression extends _Node { + type: 'ArrowFunctionExpression'; + params: Parameter[]; + body: Expression | BlockStatement; + async: boolean; + expression: boolean; +} +export interface AssignmentExpression extends _Node { + type: 'AssignmentExpression'; + operator: string; + left: Expression; + right: Expression; +} +export interface AssignmentPattern extends _Node { + type: 'AssignmentPattern'; + left: BindingPattern | Identifier; + right?: Expression; +} +export interface AwaitExpression extends _Node { + type: 'AwaitExpression'; + argument: Expression; +} +export interface BigIntLiteral extends Literal { + bigint: string; +} +export interface BinaryExpression extends _Node { + type: 'BinaryExpression'; + operator: string; + left: Expression; + right: Expression; +} +export interface BlockStatement extends _Node { + type: 'BlockStatement'; + body: Statement[]; +} +export interface BreakStatement extends _Node { + type: 'BreakStatement'; + label: Identifier | null; +} +export interface ImportExpression extends _Node { + type: 'ImportExpression'; + source: Expression; +} +export interface ChainExpression extends _Node { + type: 'ChainExpression'; + expression: CallExpression | MemberExpression; +} +export interface CallExpression extends _Node { + type: 'CallExpression'; + callee: any; + arguments: (Expression | SpreadElement)[]; + optional?: boolean; +} +export interface CatchClause extends _Node { + type: 'CatchClause'; + param: BindingPattern | Identifier | null; + body: BlockStatement; +} +export interface ClassBody extends _Node { + type: 'ClassBody'; + body: (ClassElement | PropertyDefinition)[]; +} +export interface PropertyDefinition extends _Node { + type: 'PropertyDefinition'; + key: PrivateIdentifier | Expression; + value: any; + decorators?: Decorator[] | null; + computed: boolean; + static: boolean; +} +export interface PrivateIdentifier extends _Node { + type: 'PrivateIdentifier'; + name: string; +} +export interface ClassDeclaration extends ClassDeclarationBase { + type: 'ClassDeclaration'; +} +export interface ClassExpression extends ClassDeclarationBase { + type: 'ClassExpression'; +} +export interface ConditionalExpression extends _Node { + type: 'ConditionalExpression'; + test: Expression; + consequent: Expression; + alternate: Expression; +} +export interface ContinueStatement extends _Node { + type: 'ContinueStatement'; + label: Identifier | null; +} +export interface DebuggerStatement extends _Node { + type: 'DebuggerStatement'; +} +export interface Decorator extends _Node { + type: 'Decorator'; + expression: LeftHandSideExpression; +} +export interface DoWhileStatement extends _Node { + type: 'DoWhileStatement'; + test: Expression; + body: Statement; +} +export interface EmptyStatement extends _Node { + type: 'EmptyStatement'; +} +export interface ExportAllDeclaration extends _Node { + type: 'ExportAllDeclaration'; + source: Literal; + exported: Identifier | null; +} +export interface ExportDefaultDeclaration extends _Node { + type: 'ExportDefaultDeclaration'; + declaration: ExportDeclaration | Expression; +} +export interface ExportNamedDeclaration extends _Node { + type: 'ExportNamedDeclaration'; + declaration: ExportDeclaration | null; + specifiers: ExportSpecifier[]; + source: Literal | null; +} +export interface ExportSpecifier extends _Node { + type: 'ExportSpecifier'; + local: Identifier; + exported: Identifier; +} +export interface ExpressionStatement extends _Node { + type: 'ExpressionStatement'; + expression: Expression; +} +export interface ForInStatement extends _Node { + type: 'ForInStatement'; + left: ForInitialiser; + right: Expression; + body: Statement; +} +export interface ForOfStatement extends _Node { + type: 'ForOfStatement'; + left: ForInitialiser; + right: Expression; + body: Statement; + await: boolean; +} +export interface ForStatement extends _Node { + type: 'ForStatement'; + init: Expression | ForInitialiser | null; + test: Expression | null; + update: Expression | null; + body: Statement; +} +export interface FunctionDeclaration extends FunctionDeclarationBase { + type: 'FunctionDeclaration'; +} +export interface FunctionExpression extends FunctionDeclarationBase { + type: 'FunctionExpression'; +} +export interface Identifier extends _Node { + type: 'Identifier'; + name: string; +} +export interface IfStatement extends _Node { + type: 'IfStatement'; + test: Expression; + consequent: Statement; + alternate: Statement | null; +} +export interface Import extends _Node { + type: 'Import'; +} +export interface ImportDeclaration extends _Node { + type: 'ImportDeclaration'; + source: Literal; + specifiers: ImportClause[]; +} +export interface ImportDefaultSpecifier extends _Node { + type: 'ImportDefaultSpecifier'; + local: Identifier; +} +export interface ImportNamespaceSpecifier extends _Node { + type: 'ImportNamespaceSpecifier'; + local: Identifier; +} +export interface ImportSpecifier extends _Node { + type: 'ImportSpecifier'; + local: Identifier; + imported: Identifier; +} +export interface JSXNamespacedName extends _Node { + type: 'JSXNamespacedName'; + namespace: JSXIdentifier | JSXMemberExpression; + name: JSXIdentifier; +} +export declare type JSXAttributeValue = JSXIdentifier | Literal | JSXElement | JSXFragment | JSXExpressionContainer | JSXSpreadChild | null; +export interface JSXAttribute extends _Node { + type: 'JSXAttribute'; + name: JSXNamespacedName | JSXIdentifier; + value: JSXAttributeValue; +} +export interface JSXClosingElement extends _Node { + type: 'JSXClosingElement'; + name: JSXTagNameExpression; +} +export interface JSXClosingFragment extends _Node { + type: 'JSXClosingFragment'; +} +export interface JSXElement extends _Node { + type: 'JSXElement'; + openingElement: JSXOpeningElement; + closingElement: JSXClosingElement | null; + children: JSXChild[]; +} +export interface JSXEmptyExpression extends _Node { + type: 'JSXEmptyExpression'; +} +export interface JSXExpressionContainer extends _Node { + type: 'JSXExpressionContainer'; + expression: Expression | JSXEmptyExpression; +} +export interface JSXFragment extends _Node { + type: 'JSXFragment'; + openingFragment: JSXOpeningFragment; + closingFragment: JSXClosingFragment; + children: JSXChild[]; +} +export interface JSXIdentifier extends _Node { + type: 'JSXIdentifier'; + name: string; +} +export interface JSXMemberExpression extends _Node { + type: 'JSXMemberExpression'; + object: JSXTagNameExpression; + property: JSXIdentifier; +} +export interface JSXOpeningElement extends _Node { + type: 'JSXOpeningElement'; + selfClosing: boolean; + name: JSXTagNameExpression; + attributes: (JSXAttribute | JSXSpreadAttribute)[]; +} +export interface JSXOpeningFragment extends _Node { + type: 'JSXOpeningFragment'; +} +export interface JSXSpreadAttribute extends _Node { + type: 'JSXSpreadAttribute'; + argument: Expression; +} +export interface JSXSpreadChild extends _Node { + type: 'JSXSpreadChild'; + expression: Expression | JSXEmptyExpression; +} +export interface JSXText extends _Node { + type: 'JSXText'; + value: string; + raw?: string; +} +export interface LabeledStatement extends _Node { + type: 'LabeledStatement'; + label: Identifier; + body: Statement; +} +export interface Literal extends _Node { + type: 'Literal'; + value: boolean | number | string | null | RegExp | bigint; + raw?: string; +} +export interface LogicalExpression extends _Node { + type: 'LogicalExpression'; + operator: string; + left: Expression; + right: Expression; +} +export interface MemberExpression extends _Node { + type: 'MemberExpression'; + object: Expression | Super; + property: Expression | PrivateIdentifier; + computed?: boolean; + optional?: boolean; +} +export declare type Pattern = Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression; +export interface MetaProperty extends _Node { + type: 'MetaProperty'; + meta: Identifier; + property: Identifier; +} +export interface MethodDefinition extends MethodDefinitionBase { + type: 'MethodDefinition'; +} +export interface NewExpression extends _Node { + type: 'NewExpression'; + callee: LeftHandSideExpression; + arguments: Expression[]; +} +export interface ObjectExpression extends _Node { + type: 'ObjectExpression'; + properties: ObjectLiteralElementLike[]; +} +export interface ObjectPattern extends _Node { + type: 'ObjectPattern'; + properties: ObjectLiteralElementLike[]; +} +export interface Program extends _Node { + type: 'Program'; + body: Statement[]; + sourceType: 'module' | 'script'; +} +export interface ParenthesizedExpression extends _Node { + type: 'ParenthesizedExpression'; + expression: Expression; +} +export interface Property extends _Node { + type: 'Property'; + key: Expression; + value: Expression | AssignmentPattern | BindingPattern | Identifier; + computed: boolean; + method: boolean; + shorthand: boolean; + kind: 'init' | 'get' | 'set'; +} +export interface RegExpLiteral extends Literal { + regex: { + pattern: string; + flags: string; + }; +} +export interface RestElement extends _Node { + type: 'RestElement'; + argument: BindingPattern | Identifier | Expression | PropertyName; + value?: AssignmentPattern; +} +export interface ReturnStatement extends _Node { + type: 'ReturnStatement'; + argument: Expression | null; +} +export interface SequenceExpression extends _Node { + type: 'SequenceExpression'; + expressions: Expression[]; +} +export declare type SpreadArgument = BindingPattern | Identifier | Expression | PropertyName | SpreadElement; +export interface SpreadElement extends _Node { + type: 'SpreadElement'; + argument: SpreadArgument; +} +export interface Super extends _Node { + type: 'Super'; +} +export interface SwitchCase extends _Node { + type: 'SwitchCase'; + test: Expression | null; + consequent: Statement[]; +} +export interface SwitchStatement extends _Node { + type: 'SwitchStatement'; + discriminant: Expression; + cases: SwitchCase[]; +} +export interface TaggedTemplateExpression extends _Node { + type: 'TaggedTemplateExpression'; + tag: Expression; + quasi: TemplateLiteral; +} +export interface TemplateElement extends _Node { + type: 'TemplateElement'; + value: { + raw: string; + cooked: string | null; + }; + tail: boolean; +} +export interface TemplateLiteral extends _Node { + type: 'TemplateLiteral'; + quasis: TemplateElement[]; + expressions: Expression[]; +} +export interface ThisExpression extends _Node { + type: 'ThisExpression'; +} +export interface ThrowStatement extends _Node { + type: 'ThrowStatement'; + argument: Expression; +} +export interface TryStatement extends _Node { + type: 'TryStatement'; + block: BlockStatement; + handler: CatchClause | null; + finalizer: BlockStatement | null; +} +export declare type UnaryOperator = '-' | '+' | '!' | '~' | 'typeof' | 'void' | 'delete'; +export declare type UpdateOperator = '++' | '--'; +export interface UpdateExpression extends _Node { + type: 'UpdateExpression'; + operator: UpdateOperator; + argument: Expression; + prefix: boolean; +} +export interface UnaryExpression extends _Node { + type: 'UnaryExpression'; + operator: UnaryOperator; + prefix: true; + argument: Expression; +} +export interface VariableDeclaration extends _Node { + type: 'VariableDeclaration'; + declarations: VariableDeclarator[]; + kind: 'let' | 'const' | 'var'; +} +export interface VariableDeclarator extends _Node { + type: 'VariableDeclarator'; + id: Expression | BindingPattern | Identifier; + init: Expression | null; + definite?: boolean; +} +export interface WhileStatement extends _Node { + type: 'WhileStatement'; + test: Expression; + body: Statement; +} +export interface WithStatement extends _Node { + type: 'WithStatement'; + object: Expression; + body: Statement; +} +export interface YieldExpression extends _Node { + type: 'YieldExpression'; + delegate: boolean; + argument?: Expression | null; +} +export {}; +//# sourceMappingURL=estree.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/estree.d.ts.map b/node_modules/meriyah/dist/src/estree.d.ts.map new file mode 100644 index 0000000..fe22f87 --- /dev/null +++ b/node_modules/meriyah/dist/src/estree.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"estree.d.ts","sourceRoot":"","sources":["../../src/estree.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,GAAG,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,EAAE,QAAQ,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IAEvB,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,MAAM,GAAG,GAAG,CAAC;AAEzB,oBAAY,sBAAsB,GAAG,UAAU,GAAG,UAAU,GAAG,uBAAuB,CAAC;AAEvF,oBAAY,kBAAkB,GAC1B,eAAe,GACf,oBAAoB,GACpB,qBAAqB,GACrB,OAAO,GACP,aAAa,GACb,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,CAAC;AAEvB,oBAAY,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAEpG,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAC7B;AAED,oBAAY,IAAI,GACZ,eAAe,GACf,YAAY,GACZ,uBAAuB,GACvB,oBAAoB,GACpB,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,WAAW,GACX,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,qBAAqB,GACrB,iBAAiB,GACjB,iBAAiB,GACjB,SAAS,GACT,gBAAgB,GAChB,cAAc,GACd,oBAAoB,GACpB,wBAAwB,GACxB,sBAAsB,GACtB,eAAe,GACf,mBAAmB,GACnB,kBAAkB,GAClB,cAAc,GACd,cAAc,GACd,YAAY,GACZ,mBAAmB,GACnB,kBAAkB,GAClB,UAAU,GACV,WAAW,GACX,MAAM,GACN,iBAAiB,GACjB,sBAAsB,GACtB,wBAAwB,GACxB,eAAe,GACf,iBAAiB,GACjB,YAAY,GACZ,iBAAiB,GACjB,kBAAkB,GAClB,UAAU,GACV,kBAAkB,GAClB,sBAAsB,GACtB,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,mBAAmB,GACnB,OAAO,GACP,gBAAgB,GAChB,OAAO,GACP,iBAAiB,GACjB,gBAAgB,GAChB,YAAY,GACZ,gBAAgB,GAChB,aAAa,GACb,gBAAgB,GAChB,aAAa,GACb,uBAAuB,GACvB,iBAAiB,GACjB,OAAO,GACP,QAAQ,GACR,aAAa,GACb,WAAW,GACX,eAAe,GACf,kBAAkB,GAClB,aAAa,GACb,KAAK,GACL,UAAU,GACV,eAAe,GACf,wBAAwB,GACxB,eAAe,GACf,eAAe,GACf,cAAc,GACd,cAAc,GACd,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,mBAAmB,GACnB,kBAAkB,GAClB,cAAc,GACd,aAAa,GACb,eAAe,CAAC;AACpB,oBAAY,cAAc,GAAG,YAAY,GAAG,aAAa,GAAG,UAAU,CAAC;AACvE,oBAAY,YAAY,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AACjE,oBAAY,oBAAoB,GAC5B,gBAAgB,GAChB,eAAe,GACf,wBAAwB,GACxB,oBAAoB,GACpB,sBAAsB,GACtB,mBAAmB,CAAC;AACxB,oBAAY,UAAU,GAAG,UAAU,CAAC;AACpC,oBAAY,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAC/G,oBAAY,UAAU,GAClB,uBAAuB,GACvB,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,YAAY,GACZ,eAAe,GACf,iBAAiB,GACjB,kBAAkB,GAClB,sBAAsB,GACtB,iBAAiB,GACjB,kBAAkB,GAClB,cAAc,GACd,iBAAiB,GACjB,aAAa,GACb,WAAW,GACX,kBAAkB,GAClB,aAAa,GACb,eAAe,GACf,sBAAsB,GACtB,eAAe,GACf,gBAAgB,GAChB,eAAe,CAAC;AACpB,oBAAY,cAAc,GAAG,UAAU,GAAG,mBAAmB,CAAC;AAC9D,oBAAY,YAAY,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,eAAe,CAAC;AAC/F,oBAAY,kBAAkB,GAAG,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,YAAY,GAAG,cAAc,CAAC;AACpH,oBAAY,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,OAAO,CAAC;AAC1E,oBAAY,aAAa,GAAG,kBAAkB,GAAG,cAAc,GAAG,sBAAsB,CAAC;AACzF,oBAAY,oBAAoB,GAAG,aAAa,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAC3F,oBAAY,sBAAsB,GAC9B,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,GACjB,wBAAwB,CAAC;AAC7B,oBAAY,iBAAiB,GAAG,OAAO,GAAG,eAAe,CAAC;AAC1D,oBAAY,wBAAwB,GAAG,gBAAgB,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,CAAC;AACjG,oBAAY,SAAS,GAAG,iBAAiB,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,UAAU,CAAC;AACpG,oBAAY,iBAAiB,GACzB,eAAe,GACf,YAAY,GACZ,eAAe,GACf,kBAAkB,GAClB,UAAU,GACV,MAAM,GACN,UAAU,GACV,WAAW,GACX,iBAAiB,GACjB,OAAO,GACP,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,GAChB,aAAa,GACb,KAAK,GACL,eAAe,GACf,cAAc,CAAC;AACnB,oBAAY,yBAAyB,GACjC,eAAe,GACf,uBAAuB,GACvB,YAAY,GACZ,eAAe,GACf,UAAU,GACV,eAAe,GACf,kBAAkB,GAClB,UAAU,GACV,MAAM,GACN,UAAU,GACV,WAAW,GACX,iBAAiB,GACjB,OAAO,GACP,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,GAChB,aAAa,GACb,iBAAiB,GACjB,aAAa,GACb,KAAK,GACL,eAAe,GACf,cAAc,GACd,eAAe,GACf,gBAAgB,CAAC;AACrB,oBAAY,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC;AAChD,oBAAY,SAAS,GACjB,cAAc,GACd,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,oBAAoB,GACpB,cAAc,GACd,mBAAmB,GACnB,WAAW,GACX,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,eAAe,GACf,cAAc,GACd,YAAY,GACZ,mBAAmB,GACnB,aAAa,CAAC;AAElB,UAAU,oBAAqB,SAAQ,KAAK;IAC1C,EAAE,EAAE,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B;AAED,UAAU,uBAAwB,SAAQ,KAAK;IAC7C,EAAE,EAAE,UAAU,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAC9B;AAED,UAAU,oBAAqB,SAAQ,KAAK;IAC1C,GAAG,EAAE,UAAU,GAAG,iBAAiB,GAAG,IAAI,CAAC;IAC3C,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,aAAa,CAAC;IAC/C,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC5C,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,CAAC,UAAU,GAAG,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;CACjD;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,uBAAwB,SAAQ,KAAK;IACpD,IAAI,EAAE,yBAAyB,CAAC;IAChC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,oBAAqB,SAAQ,KAAK;IACjD,IAAI,EAAE,sBAAsB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK;IAC9C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,cAAc,GAAG,UAAU,CAAC;IAClC,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC5C,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC7C,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC7C,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC5C,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,cAAc,GAAG,gBAAgB,CAAC;CAC/C;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK;IACxC,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,cAAc,GAAG,UAAU,GAAG,IAAI,CAAC;IAC1C,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK;IACtC,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,CAAC,YAAY,GAAG,kBAAkB,CAAC,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAmB,SAAQ,KAAK;IAC/C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,GAAG,EAAE,iBAAiB,GAAG,UAAU,CAAC;IACpC,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK;IAC9C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC5D,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IAC3D,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,KAAK;IAClD,IAAI,EAAE,uBAAuB,CAAC;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK;IAC9C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK;IAC9C,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK;IACtC,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,sBAAsB,CAAC;CACpC;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC7C,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,oBAAqB,SAAQ,KAAK;IACjD,IAAI,EAAE,sBAAsB,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAyB,SAAQ,KAAK;IACrD,IAAI,EAAE,0BAA0B,CAAC;IACjC,WAAW,EAAE,iBAAiB,GAAG,UAAU,CAAC;CAC7C;AAED,MAAM,WAAW,sBAAuB,SAAQ,KAAK;IACnD,IAAI,EAAE,wBAAwB,CAAC;IAC/B,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC5C,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,KAAK;IAChD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAAC;IACzC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IACjE,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK;IACxC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,MAAO,SAAQ,KAAK;IACnC,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK;IAC9C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAuB,SAAQ,KAAK;IACnD,IAAI,EAAE,wBAAwB,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,wBAAyB,SAAQ,KAAK;IACrD,IAAI,EAAE,0BAA0B,CAAC;IACjC,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC5C,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK;IAC9C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,EAAE,aAAa,GAAG,mBAAmB,CAAC;IAC/C,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,oBAAY,iBAAiB,GACzB,aAAa,GACb,OAAO,GACP,UAAU,GACV,WAAW,GACX,sBAAsB,GACtB,cAAc,GACd,IAAI,CAAC;AAET,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAAC;IACxC,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK;IAC9C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAmB,SAAQ,KAAK;IAC/C,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,IAAI,EAAE,YAAY,CAAC;IACnB,cAAc,EAAE,iBAAiB,CAAC;IAClC,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,KAAK;IAC/C,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAuB,SAAQ,KAAK;IACnD,IAAI,EAAE,wBAAwB,CAAC;IAC/B,UAAU,EAAE,UAAU,GAAG,kBAAkB,CAAC;CAC7C;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK;IACxC,IAAI,EAAE,aAAa,CAAC;IACpB,eAAe,EAAE,kBAAkB,CAAC;IACpC,eAAe,EAAE,kBAAkB,CAAC;IACpC,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAoB,SAAQ,KAAK;IAChD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK;IAC9C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,UAAU,EAAE,CAAC,YAAY,GAAG,kBAAkB,CAAC,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,kBAAmB,SAAQ,KAAK;IAC/C,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAmB,SAAQ,KAAK;IAC/C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,UAAU,GAAG,kBAAkB,CAAC;CAC7C;AAED,MAAM,WAAW,OAAQ,SAAQ,KAAK;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC7C,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,OAAQ,SAAQ,KAAK;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK;IAC9C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC7C,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC;IAC3B,QAAQ,EAAE,UAAU,GAAG,iBAAiB,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,oBAAY,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAErH,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC5D,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC7C,IAAI,EAAE,kBAAkB,CAAC;IACzB,UAAU,EAAE,wBAAwB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,wBAAwB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,OAAQ,SAAQ,KAAK;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,UAAU,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACjC;AAED,MAAM,WAAW,uBAAwB,SAAQ,KAAK;IACpD,IAAI,EAAE,yBAAyB,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,QAAS,SAAQ,KAAK;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,EAAE,UAAU,GAAG,iBAAiB,GAAG,cAAc,GAAG,UAAU,CAAC;IACpE,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;CAC9B;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK;IACxC,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;IAClE,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC5C,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAmB,SAAQ,KAAK;IAC/C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,oBAAY,cAAc,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC;AAErG,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,KAAM,SAAQ,KAAK;IAClC,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC5C,IAAI,EAAE,iBAAiB,CAAC;IACxB,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,wBAAyB,SAAQ,KAAK;IACrD,IAAI,EAAE,0BAA0B,CAAC;IACjC,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC5C,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IACF,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC5C,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;CAClC;AAED,oBAAY,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AACjF,oBAAY,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC7C,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC5C,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,KAAK;IAChD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAmB,SAAQ,KAAK;IAC/C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,EAAE,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAC;IAC7C,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK;IAC5C,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAC9B"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/charClassifier.d.ts b/node_modules/meriyah/dist/src/lexer/charClassifier.d.ts new file mode 100644 index 0000000..3c7b21e --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/charClassifier.d.ts @@ -0,0 +1,25 @@ +export declare const enum CharFlags { + None = 0, + IdentifierStart = 1, + IdentifierPart = 2, + KeywordCandidate = 4, + LineTerminator = 8, + Decimal = 16, + Octal = 32, + Hex = 64, + Binary = 128, + Exponent = 256, + ImplicitOctalDigits = 512, + CarriageReturn = 1024, + LineFeed = 2048, + Underscore = 4096, + StringLiteral = 8192, + JSXToken = 16384, + Hyphen = 32768 +} +export declare const CharTypes: (number | CharFlags)[]; +export declare const isIdStart: number[]; +export declare const isIdPart: number[]; +export declare function isIdentifierStart(code: number): number; +export declare function isIdentifierPart(code: number): any; +//# sourceMappingURL=charClassifier.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/charClassifier.d.ts.map b/node_modules/meriyah/dist/src/lexer/charClassifier.d.ts.map new file mode 100644 index 0000000..0a48426 --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/charClassifier.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"charClassifier.d.ts","sourceRoot":"","sources":["../../../src/lexer/charClassifier.ts"],"names":[],"mappings":"AAGA,0BAAkB,SAAS;IACzB,IAAI,IAAI;IACR,eAAe,IAAe;IAC9B,cAAc,IAAgB;IAC9B,gBAAgB,IAAc;IAC9B,cAAc,IAAgB;IAC9B,OAAO,KAAuB;IAC9B,KAAK,KAAyB;IAC9B,GAAG,KAA2B;IAC9B,MAAM,MAAwB;IAC9B,QAAQ,MAAsB;IAC9B,mBAAmB,MAAW;IAC9B,cAAc,OAAiB;IAC/B,QAAQ,OAAuB;IAC/B,UAAU,OAAqB;IAC/B,aAAa,OAAkB;IAC/B,QAAQ,QAAuB;IAC/B,MAAM,QAAyB;CAChC;AAKD,eAAO,MAAM,SAAS,wBAiIrB,CAAC;AAEF,eAAO,MAAM,SAAS,UAiIrB,CAAC;AAEF,eAAO,MAAM,QAAQ,UAiIpB,CAAC;AAGF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAclD"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/comments.d.ts b/node_modules/meriyah/dist/src/lexer/comments.d.ts new file mode 100644 index 0000000..6c46f07 --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/comments.d.ts @@ -0,0 +1,15 @@ +import { LexerState } from './common'; +import { Context, ParserState } from '../common'; +export declare const enum CommentType { + Single = 0, + Multi = 1, + HTMLOpen = 2, + HTMLClose = 3, + HashBang = 4 +} +export declare const CommentTypes: string[]; +export declare function skipHashBang(parser: ParserState): void; +export declare function skipSingleHTMLComment(parser: ParserState, source: string, state: LexerState, context: Context, type: CommentType, start: number, line: number, column: number): LexerState; +export declare function skipSingleLineComment(parser: ParserState, source: string, state: LexerState, type: CommentType, start: number, line: number, column: number): LexerState; +export declare function skipMultiLineComment(parser: ParserState, source: string, state: LexerState): LexerState | void; +//# sourceMappingURL=comments.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/comments.d.ts.map b/node_modules/meriyah/dist/src/lexer/comments.d.ts.map new file mode 100644 index 0000000..20237b7 --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/comments.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../../src/lexer/comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAgC,MAAM,UAAU,CAAC;AAGjF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGjD,0BAAkB,WAAW;IAC3B,MAAM,IAAA;IACN,KAAK,IAAA;IACL,QAAQ,IAAA;IACR,SAAS,IAAA;IACT,QAAQ,IAAA;CACT;AAED,eAAO,MAAM,YAAY,UAA0E,CAAC;AAOpG,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAiBtD;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,UAAU,CAGZ;AAQD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,UAAU,CAsCZ;AAQD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CA+D9G"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/common.d.ts b/node_modules/meriyah/dist/src/lexer/common.d.ts new file mode 100644 index 0000000..01894f0 --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/common.d.ts @@ -0,0 +1,27 @@ +import { Token } from '../token'; +import { ParserState } from '../common'; +export declare const enum LexerState { + None = 0, + NewLine = 1, + LastIsCR = 4 +} +export declare const enum NumberKind { + ImplicitOctal = 1, + Binary = 2, + Octal = 4, + Hex = 8, + Decimal = 16, + NonOctalDecimal = 32, + Float = 64, + ValidBigIntKind = 128, + DecimalNumberKind = 48 +} +export declare function advanceChar(parser: ParserState): number; +export declare function consumeMultiUnitCodePoint(parser: ParserState, hi: number): 0 | 1; +export declare function consumeLineFeed(parser: ParserState, state: LexerState): void; +export declare function scanNewLine(parser: ParserState): void; +export declare function isExoticECMAScriptWhitespace(ch: number): boolean; +export declare function fromCodePoint(codePoint: number): string; +export declare function toHex(code: number): number; +export declare function convertTokenType(t: Token): string; +//# sourceMappingURL=common.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/common.d.ts.map b/node_modules/meriyah/dist/src/lexer/common.d.ts.map new file mode 100644 index 0000000..fe2d42b --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/common.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/lexer/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAS,MAAM,WAAW,CAAC;AAI/C,0BAAkB,UAAU;IAC1B,IAAI,IAAI;IACR,OAAO,IAAS;IAChB,QAAQ,IAAS;CAClB;AAED,0BAAkB,UAAU;IAC1B,aAAa,IAAS;IACtB,MAAM,IAAS;IACf,KAAK,IAAS;IACd,GAAG,IAAS;IACZ,OAAO,KAAS;IAChB,eAAe,KAAS;IACxB,KAAK,KAAS;IACd,eAAe,MAAS;IACxB,iBAAiB,KAA4B;CAC9C;AAOD,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAGvD;AAQD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAYhF;AAKD,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAO5E;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAKrD;AAID,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAahE;AAQD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIvD;AAOD,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1C;AAOD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAuBjD"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/decodeHTML.d.ts b/node_modules/meriyah/dist/src/lexer/decodeHTML.d.ts new file mode 100644 index 0000000..82a45ae --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/decodeHTML.d.ts @@ -0,0 +1,2 @@ +export declare function decodeHTMLStrict(text: string): string; +//# sourceMappingURL=decodeHTML.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/decodeHTML.d.ts.map b/node_modules/meriyah/dist/src/lexer/decodeHTML.d.ts.map new file mode 100644 index 0000000..c691b66 --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/decodeHTML.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"decodeHTML.d.ts","sourceRoot":"","sources":["../../../src/lexer/decodeHTML.ts"],"names":[],"mappings":"AAinEA,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYrD"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/identifier.d.ts b/node_modules/meriyah/dist/src/lexer/identifier.d.ts new file mode 100644 index 0000000..832f2bd --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/identifier.d.ts @@ -0,0 +1,9 @@ +import { ParserState, Context } from '../common'; +import { Token } from '../token'; +export declare function scanIdentifier(parser: ParserState, context: Context, isValidAsKeyword: 0 | 1): Token; +export declare function scanUnicodeIdentifier(parser: ParserState, context: Context): Token; +export declare function scanIdentifierSlowCase(parser: ParserState, context: Context, hasEscape: 0 | 1, isValidAsKeyword: number): Token; +export declare function scanPrivateIdentifier(parser: ParserState): Token; +export declare function scanIdentifierUnicodeEscape(parser: ParserState): number; +export declare function scanUnicodeEscape(parser: ParserState): number; +//# sourceMappingURL=identifier.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/identifier.d.ts.map b/node_modules/meriyah/dist/src/lexer/identifier.d.ts.map new file mode 100644 index 0000000..021a233 --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/identifier.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"identifier.d.ts","sourceRoot":"","sources":["../../../src/lexer/identifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,KAAK,EAAoB,MAAM,UAAU,CAAC;AAYnD,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAOpG;AAQD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAKlF;AAUD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,gBAAgB,EAAE,MAAM,GACvB,KAAK,CA8DP;AAOD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CAGhE;AAOD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAQvE;AAOD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAkC7D"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/index.d.ts b/node_modules/meriyah/dist/src/lexer/index.d.ts new file mode 100644 index 0000000..5c7892d --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/index.d.ts @@ -0,0 +1,10 @@ +export { scanSingleToken, nextToken, TokenLookup } from './scan'; +export { skipMultiLineComment, skipSingleLineComment, skipHashBang, skipSingleHTMLComment, CommentType } from './comments'; +export { advanceChar, consumeMultiUnitCodePoint, isExoticECMAScriptWhitespace, fromCodePoint, toHex, consumeLineFeed, scanNewLine, LexerState, NumberKind, convertTokenType } from './common'; +export { CharTypes, CharFlags, isIdentifierStart, isIdentifierPart } from './charClassifier'; +export { scanIdentifier, scanIdentifierSlowCase, scanUnicodeIdentifier, scanPrivateIdentifier, scanUnicodeEscape } from './identifier'; +export { scanString } from './string'; +export { scanNumber } from './numeric'; +export { scanTemplate, scanTemplateTail } from './template'; +export { scanRegularExpression } from './regexp'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/index.d.ts.map b/node_modules/meriyah/dist/src/lexer/index.d.ts.map new file mode 100644 index 0000000..1f78f2b --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lexer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACjE,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,4BAA4B,EAC5B,aAAa,EACb,KAAK,EACL,eAAe,EACf,WAAW,EACX,UAAU,EACV,UAAU,EACV,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/jsx.d.ts b/node_modules/meriyah/dist/src/lexer/jsx.d.ts new file mode 100644 index 0000000..3287c45 --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/jsx.d.ts @@ -0,0 +1,7 @@ +import { Token } from '../token'; +import { ParserState, Context } from '../common'; +export declare function scanJSXAttributeValue(parser: ParserState, context: Context): Token; +export declare function scanJSXString(parser: ParserState, context: Context): Token; +export declare function scanJSXToken(parser: ParserState, context: Context): Token; +export declare function scanJSXIdentifier(parser: ParserState): Token; +//# sourceMappingURL=jsx.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/jsx.d.ts.map b/node_modules/meriyah/dist/src/lexer/jsx.d.ts.map new file mode 100644 index 0000000..1b704f6 --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/jsx.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../../../src/lexer/jsx.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWjD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CASlF;AAOD,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAe1E;AAOD,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAuDzE;AAOD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CAW5D"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/numeric.d.ts b/node_modules/meriyah/dist/src/lexer/numeric.d.ts new file mode 100644 index 0000000..d9169a2 --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/numeric.d.ts @@ -0,0 +1,6 @@ +import { ParserState, Context } from '../common'; +import { Token } from '../token'; +import { NumberKind } from './common'; +export declare function scanNumber(parser: ParserState, context: Context, kind: NumberKind): Token; +export declare function scanDecimalDigitsOrSeparator(parser: ParserState, char: number): string; +//# sourceMappingURL=numeric.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/numeric.d.ts.map b/node_modules/meriyah/dist/src/lexer/numeric.d.ts.map new file mode 100644 index 0000000..0986ccd --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/numeric.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"numeric.d.ts","sourceRoot":"","sources":["../../../src/lexer/numeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAS,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAsB,UAAU,EAAE,MAAM,UAAU,CAAC;AAY1D,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,KAAK,CA8MzF;AAQD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA8BtF"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/regexp.d.ts b/node_modules/meriyah/dist/src/lexer/regexp.d.ts new file mode 100644 index 0000000..e9712a0 --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/regexp.d.ts @@ -0,0 +1,4 @@ +import { Context, ParserState } from '../common'; +import { Token } from '../token'; +export declare function scanRegularExpression(parser: ParserState, context: Context): Token; +//# sourceMappingURL=regexp.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/regexp.d.ts.map b/node_modules/meriyah/dist/src/lexer/regexp.d.ts.map new file mode 100644 index 0000000..67fb310 --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/regexp.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"regexp.d.ts","sourceRoot":"","sources":["../../../src/lexer/regexp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAYjC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CA+GlF"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/scan.d.ts b/node_modules/meriyah/dist/src/lexer/scan.d.ts new file mode 100644 index 0000000..6a9177b --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/scan.d.ts @@ -0,0 +1,7 @@ +import { Token } from '../token'; +import { ParserState, Context } from '../common'; +import { LexerState } from './common'; +export declare const TokenLookup: Token[]; +export declare function nextToken(parser: ParserState, context: Context): void; +export declare function scanSingleToken(parser: ParserState, context: Context, state: LexerState): Token; +//# sourceMappingURL=scan.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/scan.d.ts.map b/node_modules/meriyah/dist/src/lexer/scan.d.ts.map new file mode 100644 index 0000000..0988895 --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/scan.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/lexer/scan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAS,MAAM,WAAW,CAAC;AAGxD,OAAO,EAEL,UAAU,EAOX,MAAM,UAAU,CAAC;AAsBlB,eAAO,MAAM,WAAW,SAiIvB,CAAC;AAQF,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAmBrE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK,CA4c/F"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/string.d.ts b/node_modules/meriyah/dist/src/lexer/string.d.ts new file mode 100644 index 0000000..bf9631c --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/string.d.ts @@ -0,0 +1,13 @@ +import { ParserState, Context } from '../common'; +import { Token } from '../token'; +export declare const enum Escape { + Empty = -1, + StrictOctal = -2, + EightOrNine = -3, + InvalidHex = -4, + OutOfRange = -5 +} +export declare function scanString(parser: ParserState, context: Context, quote: number): Token; +export declare function parseEscape(parser: ParserState, context: Context, first: number): number; +export declare function handleStringError(state: ParserState, code: Escape, isTemplate: 0 | 1): void; +//# sourceMappingURL=string.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/string.d.ts.map b/node_modules/meriyah/dist/src/lexer/string.d.ts.map new file mode 100644 index 0000000..af4594c --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/string.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../../src/lexer/string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAS,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAMjC,0BAAkB,MAAM;IACtB,KAAK,KAAK;IACV,WAAW,KAAK;IAChB,WAAW,KAAK;IAChB,UAAU,KAAK;IACf,UAAU,KAAK;CAChB;AAKD,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAoCtF;AAID,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkKxF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAmB3F"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/template.d.ts b/node_modules/meriyah/dist/src/lexer/template.d.ts new file mode 100644 index 0000000..bbcb08c --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/template.d.ts @@ -0,0 +1,5 @@ +import { ParserState, Context } from '../common'; +import { Token } from '../token'; +export declare function scanTemplate(parser: ParserState, context: Context): Token; +export declare function scanTemplateTail(parser: ParserState, context: Context): Token; +//# sourceMappingURL=template.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/lexer/template.d.ts.map b/node_modules/meriyah/dist/src/lexer/template.d.ts.map new file mode 100644 index 0000000..f187797 --- /dev/null +++ b/node_modules/meriyah/dist/src/lexer/template.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/lexer/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AASjC,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAuDzE;AAqCD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAK7E"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/meriyah.d.ts b/node_modules/meriyah/dist/src/meriyah.d.ts new file mode 100644 index 0000000..ba65769 --- /dev/null +++ b/node_modules/meriyah/dist/src/meriyah.d.ts @@ -0,0 +1,8 @@ +import { Options } from './parser'; +import * as ESTree from './estree'; +declare const version: string; +export declare function parseScript(source: string, options?: Options): ESTree.Program; +export declare function parseModule(source: string, options?: Options): ESTree.Program; +export declare function parse(source: string, options?: Options): ESTree.Program; +export { Options, ESTree, version }; +//# sourceMappingURL=meriyah.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/meriyah.d.ts.map b/node_modules/meriyah/dist/src/meriyah.d.ts.map new file mode 100644 index 0000000..e08a238 --- /dev/null +++ b/node_modules/meriyah/dist/src/meriyah.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"meriyah.d.ts","sourceRoot":"","sources":["../../src/meriyah.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,OAAO,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAGnC,QAAA,MAAM,OAAO,EAAE,MAAqB,CAAC;AAKrC,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAE7E;AAKD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAE7E;AAKD,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAEvE;AAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/parser.d.ts b/node_modules/meriyah/dist/src/parser.d.ts new file mode 100644 index 0000000..0b65a69 --- /dev/null +++ b/node_modules/meriyah/dist/src/parser.d.ts @@ -0,0 +1,119 @@ +import { Token } from './token'; +import * as ESTree from './estree'; +import { Context, ParserState, PropertyKind, Origin, Flags, OnComment, OnToken, BindingKind, HoistedClassFlags, HoistedFunctionFlags, ScopeState } from './common'; +export declare function create(source: string, sourceFile: string | void, onComment: OnComment | void, onToken: OnToken | void): ParserState; +export interface Options { + module?: boolean; + next?: boolean; + ranges?: boolean; + webcompat?: boolean; + loc?: boolean; + raw?: boolean; + directives?: boolean; + globalReturn?: boolean; + impliedStrict?: boolean; + preserveParens?: boolean; + lexical?: boolean; + source?: string; + identifierPattern?: boolean; + jsx?: boolean; + specDeviation?: boolean; + onComment?: OnComment; + onToken?: OnToken; + uniqueKeyInPattern?: boolean; +} +export declare function parseSource(source: string, options: Options | void, context: Context): ESTree.Program; +export declare function parseStatementList(parser: ParserState, context: Context, scope: ScopeState | undefined): ESTree.Statement[]; +export declare function parseModuleItemList(parser: ParserState, context: Context, scope: ScopeState | undefined): ReturnType[]; +export declare function parseModuleItem(parser: ParserState, context: Context, scope: ScopeState | undefined): any; +export declare function parseStatementListItem(parser: ParserState, context: Context, scope: ScopeState | undefined, origin: Origin, labels: ESTree.Labels): ESTree.Statement | ESTree.Decorator[]; +export declare function parseStatement(parser: ParserState, context: Context, scope: ScopeState | undefined, origin: Origin, labels: ESTree.Labels, allowFuncDecl: 0 | 1, start: number, line: number, column: number): ESTree.Statement; +export declare function parseExpressionOrLabelledStatement(parser: ParserState, context: Context, scope: ScopeState | undefined, origin: Origin, labels: ESTree.Labels, allowFuncDecl: 0 | 1, start: number, line: number, column: number): ESTree.ExpressionStatement | ESTree.LabeledStatement; +export declare function parseBlock(parser: ParserState, context: Context, scope: ScopeState | undefined, labels: ESTree.Labels, start: number, line: number, column: number): ESTree.BlockStatement; +export declare function parseReturnStatement(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.ReturnStatement; +export declare function parseExpressionStatement(parser: ParserState, context: Context, expression: ESTree.Expression, start: number, line: number, column: number): ESTree.ExpressionStatement; +export declare function parseLabelledStatement(parser: ParserState, context: Context, scope: ScopeState | undefined, origin: Origin, labels: ESTree.Labels, value: string, expr: ESTree.Identifier | ESTree.Expression, token: Token, allowFuncDecl: 0 | 1, start: number, line: number, column: number): ESTree.LabeledStatement; +export declare function parseAsyncArrowOrAsyncFunctionDeclaration(parser: ParserState, context: Context, scope: ScopeState | undefined, origin: Origin, labels: ESTree.Labels, allowFuncDecl: 0 | 1, start: number, line: number, column: number): ESTree.ExpressionStatement | ESTree.LabeledStatement | ESTree.FunctionDeclaration; +export declare function parseDirective(parser: ParserState, context: Context, expression: ESTree.ArgumentExpression | ESTree.SequenceExpression | ESTree.Expression, token: Token, start: number, line: number, column: number): ESTree.ExpressionStatement; +export declare function parseEmptyStatement(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.EmptyStatement; +export declare function parseThrowStatement(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.ThrowStatement; +export declare function parseIfStatement(parser: ParserState, context: Context, scope: ScopeState | undefined, labels: ESTree.Labels, start: number, line: number, column: number): ESTree.IfStatement; +export declare function parseConsequentOrAlternative(parser: ParserState, context: Context, scope: ScopeState | undefined, labels: ESTree.Labels, start: number, line: number, column: number): ESTree.Statement | ESTree.FunctionDeclaration; +export declare function parseSwitchStatement(parser: ParserState, context: Context, scope: ScopeState | undefined, labels: ESTree.Labels, start: number, line: number, column: number): ESTree.SwitchStatement; +export declare function parseWhileStatement(parser: ParserState, context: Context, scope: ScopeState | undefined, labels: ESTree.Labels, start: number, line: number, column: number): ESTree.WhileStatement; +export declare function parseIterationStatementBody(parser: ParserState, context: Context, scope: ScopeState | undefined, labels: ESTree.Labels): ESTree.Statement; +export declare function parseContinueStatement(parser: ParserState, context: Context, labels: ESTree.Labels, start: number, line: number, column: number): ESTree.ContinueStatement; +export declare function parseBreakStatement(parser: ParserState, context: Context, labels: ESTree.Labels, start: number, line: number, column: number): ESTree.BreakStatement; +export declare function parseWithStatement(parser: ParserState, context: Context, scope: ScopeState | undefined, labels: ESTree.Labels, start: number, line: number, column: number): ESTree.WithStatement; +export declare function parseDebuggerStatement(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.DebuggerStatement; +export declare function parseTryStatement(parser: ParserState, context: Context, scope: ScopeState | undefined, labels: ESTree.Labels, start: number, line: number, column: number): ESTree.TryStatement; +export declare function parseCatchBlock(parser: ParserState, context: Context, scope: ScopeState | undefined, labels: ESTree.Labels, start: number, line: number, column: number): ESTree.CatchClause; +export declare function parseDoWhileStatement(parser: ParserState, context: Context, scope: ScopeState | undefined, labels: ESTree.Labels, start: number, line: number, column: number): ESTree.DoWhileStatement; +export declare function parseLetIdentOrVarDeclarationStatement(parser: ParserState, context: Context, scope: ScopeState | undefined, origin: Origin, start: number, line: number, column: number): ESTree.VariableDeclaration | ESTree.LabeledStatement | ESTree.ExpressionStatement; +export declare function parseVariableStatement(parser: ParserState, context: Context, scope: ScopeState | undefined, origin: Origin, start: number, line: number, column: number): ESTree.VariableDeclaration; +export declare function parseVariableDeclarationList(parser: ParserState, context: Context, scope: ScopeState | undefined, kind: BindingKind, origin: Origin): ESTree.VariableDeclarator[]; +export declare function parseForStatement(parser: ParserState, context: Context, scope: ScopeState | undefined, labels: ESTree.Labels, start: number, line: number, column: number): ESTree.ForStatement | ESTree.ForInStatement | ESTree.ForOfStatement; +export declare function parseRestrictedIdentifier(parser: ParserState, context: Context, scope: ScopeState | undefined): ESTree.Identifier; +export declare function parseImportMetaDeclaration(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.ExpressionStatement; +export declare function parseExpression(parser: ParserState, context: Context, canAssign: 0 | 1, isPattern: 0 | 1, inGroup: 0 | 1, start: number, line: number, column: number): ESTree.Expression; +export declare function parseSequenceExpression(parser: ParserState, context: Context, inGroup: 0 | 1, start: number, line: number, column: number, expr: ESTree.AssignmentExpression | ESTree.Expression): ESTree.SequenceExpression; +export declare function parseExpressions(parser: ParserState, context: Context, inGroup: 0 | 1, canAssign: 0 | 1, start: number, line: number, column: number): ESTree.SequenceExpression | ESTree.Expression; +export declare function parseAssignmentExpression(parser: ParserState, context: Context, inGroup: 0 | 1, isPattern: 0 | 1, start: number, line: number, column: number, left: ESTree.ArgumentExpression | ESTree.Expression | null): ESTree.ArgumentExpression | ESTree.Expression; +export declare function parseAssignmentExpressionOrPattern(parser: ParserState, context: Context, inGroup: 0 | 1, isPattern: 0 | 1, start: number, line: number, column: number, left: any): any; +export declare function parseConditionalExpression(parser: ParserState, context: Context, test: ESTree.Expression, start: number, line: number, column: number): ESTree.ConditionalExpression; +export declare function parseBinaryExpression(parser: ParserState, context: Context, inGroup: 0 | 1, start: number, line: number, column: number, minPrec: number, operator: Token, left: ESTree.ArgumentExpression | ESTree.Expression): ESTree.ArgumentExpression | ESTree.Expression; +export declare function parseUnaryExpression(parser: ParserState, context: Context, isLHS: 0 | 1, start: number, line: number, column: number, inGroup: 0 | 1): ESTree.UnaryExpression; +export declare function parseAsyncExpression(parser: ParserState, context: Context, inGroup: 0 | 1, isLHS: 0 | 1, canAssign: 0 | 1, isPattern: 0 | 1, inNew: 0 | 1, start: number, line: number, column: number): ESTree.FunctionExpression | ESTree.ArrowFunctionExpression | ESTree.CallExpression | ESTree.Identifier; +export declare function parseYieldExpression(parser: ParserState, context: Context, inGroup: 0 | 1, canAssign: 0 | 1, start: number, line: number, column: number): ESTree.YieldExpression | ESTree.Identifier | ESTree.ArrowFunctionExpression; +export declare function parseAwaitExpression(parser: ParserState, context: Context, inNew: 0 | 1, inGroup: 0 | 1, start: number, line: number, column: number): ESTree.IdentifierOrExpression | ESTree.AwaitExpression; +export declare function parseFunctionBody(parser: ParserState, context: Context, scope: ScopeState | undefined, origin: Origin, firstRestricted: Token | undefined, scopeError: any): ESTree.BlockStatement; +export declare function parseSuperExpression(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.Super; +export declare function parseLeftHandSideExpression(parser: ParserState, context: Context, canAssign: 0 | 1, inGroup: 0 | 1, isLHS: 0 | 1, start: number, line: number, column: number): ESTree.Expression; +export declare function parseMemberOrUpdateExpression(parser: ParserState, context: Context, expr: ESTree.Expression, inGroup: 0 | 1, inChain: 0 | 1, start: number, line: number, column: number): any; +export declare function parseOptionalChain(parser: ParserState, context: Context, expr: ESTree.Expression, start: number, line: number, column: number): ESTree.MemberExpression | ESTree.CallExpression; +export declare function parsePropertyOrPrivatePropertyName(parser: ParserState, context: Context): any; +export declare function parseUpdateExpressionPrefixed(parser: ParserState, context: Context, inNew: 0 | 1, isLHS: 0 | 1, start: number, line: number, column: number): ESTree.UpdateExpression; +export declare function parsePrimaryExpression(parser: ParserState, context: Context, kind: BindingKind, inNew: 0 | 1, canAssign: 0 | 1, isPattern: 0 | 1, inGroup: 0 | 1, isLHS: 0 | 1, start: number, line: number, column: number): any; +export declare function parseImportMetaExpression(parser: ParserState, context: Context, meta: ESTree.Identifier, start: number, line: number, column: number): ESTree.MetaProperty; +export declare function parseImportExpression(parser: ParserState, context: Context, inGroup: 0 | 1, start: number, line: number, column: number): ESTree.ImportExpression; +export declare function parseBigIntLiteral(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.BigIntLiteral; +export declare function parseTemplateLiteral(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.TemplateLiteral; +export declare function parseTemplate(parser: ParserState, context: Context): ESTree.TemplateLiteral; +export declare function parseTemplateElement(parser: ParserState, context: Context, cooked: string | null, raw: string, start: number, line: number, col: number, tail: boolean): ESTree.TemplateElement; +export declare function parseArguments(parser: ParserState, context: Context, inGroup: 0 | 1): (ESTree.SpreadElement | ESTree.Expression)[]; +export declare function parseIdentifier(parser: ParserState, context: Context, isPattern: 0 | 1): ESTree.Identifier; +export declare function parseLiteral(parser: ParserState, context: Context): ESTree.Literal; +export declare function parseNullOrTrueOrFalseLiteral(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.Literal; +export declare function parseThisExpression(parser: ParserState, context: Context): ESTree.ThisExpression; +export declare function parseFunctionDeclaration(parser: ParserState, context: Context, scope: ScopeState | undefined, origin: Origin, allowGen: 0 | 1, flags: HoistedFunctionFlags, isAsync: 0 | 1, start: number, line: number, column: number): ESTree.FunctionDeclaration; +export declare function parseFunctionExpression(parser: ParserState, context: Context, isAsync: 0 | 1, inGroup: 0 | 1, start: number, line: number, column: number): ESTree.FunctionExpression; +export declare function parseArrayExpressionOrPattern(parser: ParserState, context: Context, scope: ScopeState | undefined, skipInitializer: 0 | 1, inGroup: 0 | 1, isPattern: 0 | 1, kind: BindingKind, origin: Origin, start: number, line: number, column: number): ESTree.ArrayExpression | ESTree.ArrayPattern | ESTree.AssignmentExpression; +export declare function parseMethodDefinition(parser: ParserState, context: Context, kind: PropertyKind, inGroup: 0 | 1, start: number, line: number, column: number): ESTree.FunctionExpression; +export declare function parseObjectLiteralOrPattern(parser: ParserState, context: Context, scope: ScopeState | undefined, skipInitializer: 0 | 1, inGroup: 0 | 1, isPattern: 0 | 1, kind: BindingKind, origin: Origin, start: number, line: number, column: number): ESTree.ObjectExpression | ESTree.ObjectPattern | ESTree.AssignmentExpression; +export declare function parseMethodFormals(parser: ParserState, context: Context, scope: ScopeState | undefined, kind: PropertyKind, type: BindingKind, inGroup: 0 | 1): ESTree.Parameter[]; +export declare function parseComputedPropertyName(parser: ParserState, context: Context, inGroup: 0 | 1): ESTree.Expression; +export declare function parseParenthesizedExpression(parser: ParserState, context: Context, canAssign: 0 | 1, kind: BindingKind, origin: Origin, start: number, line: number, column: number): any; +export declare function parseIdentifierOrArrow(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.Identifier | ESTree.ArrowFunctionExpression; +export declare function parseArrowFunctionExpression(parser: ParserState, context: Context, scope: ScopeState | undefined, params: any, isAsync: 0 | 1, start: number, line: number, column: number): ESTree.ArrowFunctionExpression; +export declare function parseFormalParametersOrFormalList(parser: ParserState, context: Context, scope: ScopeState | undefined, inGroup: 0 | 1, kind: BindingKind): ESTree.Parameter[]; +export declare function parseMembeExpressionNoCall(parser: ParserState, context: Context, expr: ESTree.Expression, inGroup: 0 | 1, start: number, line: number, column: number): any; +export declare function parseNewExpression(parser: ParserState, context: Context, inGroup: 0 | 1, start: number, line: number, column: number): ESTree.NewExpression | ESTree.Expression | ESTree.MetaProperty; +export declare function parseMetaProperty(parser: ParserState, context: Context, meta: ESTree.Identifier, start: number, line: number, column: number): ESTree.MetaProperty; +export declare function parseAsyncArrowOrCallExpression(parser: ParserState, context: Context, callee: ESTree.Identifier | void, canAssign: 0 | 1, kind: BindingKind, origin: Origin, flags: Flags, start: number, line: number, column: number): ESTree.CallExpression | ESTree.ArrowFunctionExpression; +export declare function parseRegExpLiteral(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.RegExpLiteral; +export declare function parseClassDeclaration(parser: ParserState, context: Context, scope: ScopeState | undefined, flags: HoistedClassFlags, start: number, line: number, column: number): ESTree.ClassDeclaration; +export declare function parseClassExpression(parser: ParserState, context: Context, inGroup: 0 | 1, start: number, line: number, column: number): ESTree.ClassExpression; +export declare function parseDecorators(parser: ParserState, context: Context): ESTree.Decorator[]; +export declare function parseDecoratorList(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.Decorator; +export declare function parseClassBody(parser: ParserState, context: Context, inheritedContext: Context, scope: ScopeState | undefined, kind: BindingKind, origin: Origin, inGroup: 0 | 1): ESTree.ClassBody; +export declare function parsePropertyDefinition(parser: ParserState, context: Context, key: ESTree.PrivateIdentifier | ESTree.Expression | null, state: PropertyKind, decorators: ESTree.Decorator[] | null, start: number, line: number, column: number): ESTree.PropertyDefinition; +export declare function parseBindingPattern(parser: ParserState, context: Context, scope: ScopeState | undefined, type: BindingKind, origin: Origin, start: number, line: number, column: number): ESTree.BindingPattern; +export declare function parseOpeningFragment(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.JSXOpeningFragment; +export declare function parseJSXClosingFragment(parser: ParserState, context: Context, inJSXChild: 0 | 1, start: number, line: number, column: number): ESTree.JSXClosingFragment; +export declare function parseJSXChildren(parser: ParserState, context: Context): ESTree.JSXChild[]; +export declare function parseJSXText(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.JSXText; +export declare function parseJSXMemberExpression(parser: ParserState, context: Context, object: ESTree.JSXIdentifier | ESTree.JSXMemberExpression, start: number, line: number, column: number): ESTree.JSXMemberExpression; +export declare function parseJSXAttributes(parser: ParserState, context: Context): (ESTree.JSXAttribute | ESTree.JSXSpreadAttribute)[]; +export declare function parseJSXSpreadAttribute(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.JSXSpreadAttribute; +export declare function parseJSXIdentifier(parser: ParserState, context: Context, start: number, line: number, column: number): ESTree.JSXIdentifier; +//# sourceMappingURL=parser.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/parser.d.ts.map b/node_modules/meriyah/dist/src/parser.d.ts.map new file mode 100644 index 0000000..41fd405 --- /dev/null +++ b/node_modules/meriyah/dist/src/parser.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAoB,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAInC,OAAO,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,MAAM,EAGN,KAAK,EACL,SAAS,EACT,OAAO,EAMP,WAAW,EAUX,iBAAiB,EACjB,oBAAoB,EAIpB,UAAU,EAWX,MAAM,UAAU,CAAC;AAMlB,wBAAgB,MAAM,CACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,OAAO,EAAE,OAAO,GAAG,IAAI,GACtB,WAAW,CAiIb;AAKD,MAAM,WAAW,OAAO;IAEtB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAKD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAiFrG;AAQD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,GAC5B,MAAM,CAAC,SAAS,EAAE,CAoBpB;AAUD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,GAC5B,UAAU,CAAC,OAAO,cAAc,GAAG,OAAO,eAAe,CAAC,EAAE,CA2B9D;AAYD,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,GAAG,CA0BzG;AAUD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,GACpB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAoEvC;AAUD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,aAAa,EAAE,CAAC,GAAG,CAAC,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,SAAS,CAyGlB;AAUD,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,aAAa,EAAE,CAAC,GAAG,CAAC,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAgHtD;AAiBD,wBAAgB,UAAU,CACxB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,cAAc,CAevB;AAaD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,eAAe,CAkBxB;AAcD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,CAAC,UAAU,EAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,mBAAmB,CAM5B;AAeD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,EAC3C,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,CAAC,GAAG,CAAC,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,gBAAgB,CA8CzB;AAgBD,wBAAgB,yCAAyC,CACvD,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,aAAa,EAAE,CAAC,GAAG,CAAC,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAiJnF;AAgBD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,EACrF,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,mBAAmB,CA4B5B;AAYD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,cAAc,CAKvB;AAcD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,cAAc,CAmBvB;AAeD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,WAAW,CAqCpB;AAWD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,mBAAmB,CA4B/C;AAaD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,eAAe,CAqDxB;AAcD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,cAAc,CAavB;AAaD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,GACpB,MAAM,CAAC,SAAS,CAYlB;AAUD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,iBAAiB,CAiB1B;AAaD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,cAAc,CAmBvB;AAcD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,aAAa,CA2BtB;AAaD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,iBAAiB,CAQ1B;AAcD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,YAAY,CAgDrB;AAcD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,WAAW,CAqDpB;AAYD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,gBAAgB,CAoBzB;AAiBD,wBAAgB,sCAAsC,CACpD,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CA8FnF;AAwDD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,mBAAmB,CAa5B;AAYD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,kBAAkB,EAAE,CAY7B;AAmFD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAgOrE;AAUD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,GAC5B,MAAM,CAAC,UAAU,CAKnB;AAiOD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,mBAAmB,CA8C5B;AAwaD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,UAAU,CAsBnB;AASD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,GACpD,MAAM,CAAC,kBAAkB,CAa3B;AASD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAK/C;AAgBD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,GACzD,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAoE/C;AAeD,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,GACR,GAAG,CA8BL;AASD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,qBAAqB,CA2B9B;AAWD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,GAClD,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAyC/C;AAQD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,GAAG,CAAC,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CAAC,GAAG,CAAC,GACb,MAAM,CAAC,eAAe,CA4CxB;AAQD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,CAAC,GAAG,CAAC,EACZ,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,KAAK,EAAE,CAAC,GAAG,CAAC,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,uBAAuB,GAAG,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAwCxG;AAQD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,uBAAuB,CAmC7E;AASD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,GAAG,CAAC,EACZ,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,sBAAsB,GAAG,MAAM,CAAC,eAAe,CAkCxD;AAYD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,KAAK,GAAG,SAAS,EAClC,UAAU,EAAE,GAAG,GACd,MAAM,CAAC,cAAc,CA2EvB;AAQD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,KAAK,CA2Bd;AAYD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,CAAC,GAAG,CAAC,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,UAAU,CAmBnB;AA8CD,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,GAAG,CA4HL;AASD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAkDjD;AAQD,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,GAAG,CAQ7F;AAYD,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,GAAG,CAAC,EACZ,KAAK,EAAE,CAAC,GAAG,CAAC,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,gBAAgB,CAyBzB;AAkBD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,CAAC,GAAG,CAAC,EACZ,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,CAAC,GAAG,CAAC,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,GAAG,CAkIL;AAkDD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,YAAY,CAerB;AAaD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,gBAAgB,CAazB;AAQD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,aAAa,CAuBtB;AAQD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,eAAe,CA4CxB;AAQD,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,eAAe,CAqC3F;AAQD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,GACZ,MAAM,CAAC,eAAe,CA+BxB;AA+BD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,GACb,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,CA6B9C;AAQD,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAqB1G;AAQD,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAyBlF;AAQD,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,OAAO,CAuBhB;AAQD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,cAAc,CAOhG;AAaD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC,GAAG,CAAC,EACf,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,mBAAmB,CAkG5B;AASD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,kBAAkB,CA8D3B;AAuED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,eAAe,EAAE,CAAC,GAAG,CAAC,EACtB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAyP5E;AAiTD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,kBAAkB,CAgC3B;AAgGD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,eAAe,EAAE,CAAC,GAAG,CAAC,EACtB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,oBAAoB,CA4yB9E;AAWD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,CAAC,GAAG,CAAC,GACb,MAAM,CAAC,SAAS,EAAE,CA+IpB;AAQD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAgBlH;AAYD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,GAAG,CA+OL;AAYD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,uBAAuB,CAepD;AAyED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,uBAAuB,CAmFhC;AAQD,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,IAAI,EAAE,WAAW,GAChB,MAAM,CAAC,SAAS,EAAE,CAsJpB;AAaD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,GAAG,CA2EL;AASD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,YAAY,CAkEhE;AAWD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,YAAY,CAOrB;AAoED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,EAChC,SAAS,EAAE,CAAC,GAAG,CAAC,EAChB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,uBAAuB,CA6KxD;AAiBD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,aAAa,CAgBtB;AASD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,KAAK,EAAE,iBAAiB,EACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,gBAAgB,CAgGzB;AAQD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,CAAC,GAAG,CAAC,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,eAAe,CA2ExB;AAQD,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,CAUzF;AAUD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,SAAS,CAWlB;AAYD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CAAC,GAAG,CAAC,GACb,MAAM,CAAC,SAAS,CAuGlB;AAmOD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,EACxD,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,EACrC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,kBAAkB,CA0D3B;AASD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,cAAc,CAsBvB;AAsID,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,kBAAkB,CAK3B;AA4CD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,CAAC,GAAG,CAAC,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,kBAAkB,CAY3B;AAQD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAUzF;AA6BD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,OAAO,CAahB;AAsFD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,mBAAmB,EACzD,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,mBAAmB,CAO5B;AAWD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,GACf,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAMrD;AAWD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,kBAAkB,CAS3B;AA2LD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,aAAa,CAQtB"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/token.d.ts b/node_modules/meriyah/dist/src/token.d.ts new file mode 100644 index 0000000..88c4dac --- /dev/null +++ b/node_modules/meriyah/dist/src/token.d.ts @@ -0,0 +1,168 @@ +export declare const enum Token { + Type = 255, + PrecStart = 8, + Precedence = 3840, + Keyword = 4096, + Contextual = 12288, + Reserved = 20480, + FutureReserved = 36864, + IsExpressionStart = 65536, + IsIdentifier = 143360, + IsInOrOf = 262144, + IsLogical = 524288, + IsAutoSemicolon = 1048576, + IsPatternStart = 2097152, + IsAssignOp = 4194304, + IsBinaryOp = 8454144, + IsUnaryOp = 16842752, + IsUpdateOp = 33619968, + IsMemberOrCallExpression = 67108864, + IsStringOrNumber = 134217728, + IsCoalesc = 268435456, + IsEvalOrArguments = 537079808, + IsClassField = 1073741824, + EOF = 1048576, + Identifier = 208897, + NumericLiteral = 134283266, + StringLiteral = 134283267, + RegularExpression = 65540, + FalseKeyword = 86021, + TrueKeyword = 86022, + NullKeyword = 86023, + TemplateContinuation = 67174408, + TemplateSpan = 67174409, + Arrow = 10, + LeftParen = 67174411, + LeftBrace = 2162700, + Period = 67108877, + Ellipsis = 14, + RightBrace = 1074790415, + RightParen = 16, + Semicolon = 1074790417, + Comma = 18, + LeftBracket = 69271571, + RightBracket = 20, + Colon = 21, + QuestionMark = 22, + SingleQuote = 23, + DoubleQuote = 24, + JSXClose = 25, + JSXAutoClose = 26, + Increment = 33619995, + Decrement = 33619996, + Assign = 1077936157, + ShiftLeftAssign = 4194334, + ShiftRightAssign = 4194335, + LogicalShiftRightAssign = 4194336, + ExponentiateAssign = 4194337, + AddAssign = 4194338, + SubtractAssign = 4194339, + MultiplyAssign = 4194340, + DivideAssign = 4259877, + ModuloAssign = 4194342, + BitwiseXorAssign = 4194343, + BitwiseOrAssign = 4194344, + BitwiseAndAssign = 4194345, + LogicalOrAssign = 4194346, + LogicalAndAssign = 4194347, + CoalesceAssign = 4194348, + TypeofKeyword = 16863277, + DeleteKeyword = 16863278, + VoidKeyword = 16863279, + Negate = 16842800, + Complement = 16842801, + Add = 25233970, + Subtract = 25233971, + InKeyword = 8738868, + InstanceofKeyword = 8476725, + Multiply = 8457014, + Modulo = 8457015, + Divide = 8457016, + Exponentiate = 8457273, + LogicalAnd = 8979258, + LogicalOr = 8979003, + StrictEqual = 8455996, + StrictNotEqual = 8455997, + LooseEqual = 8455998, + LooseNotEqual = 8455999, + LessThanOrEqual = 8456000, + GreaterThanOrEqual = 8456001, + LessThan = 8456258, + GreaterThan = 8456259, + ShiftLeft = 8456516, + ShiftRight = 8456517, + LogicalShiftRight = 8456518, + BitwiseAnd = 8455751, + BitwiseOr = 8455240, + BitwiseXor = 8455497, + VarKeyword = 86090, + LetKeyword = 241739, + ConstKeyword = 86092, + BreakKeyword = 20557, + CaseKeyword = 20558, + CatchKeyword = 20559, + ClassKeyword = 86096, + ContinueKeyword = 20561, + DebuggerKeyword = 20562, + DefaultKeyword = 20563, + DoKeyword = 20564, + ElseKeyword = 20565, + ExportKeyword = 20566, + ExtendsKeyword = 20567, + FinallyKeyword = 20568, + ForKeyword = 20569, + FunctionKeyword = 86106, + IfKeyword = 20571, + ImportKeyword = 86108, + NewKeyword = 86109, + ReturnKeyword = 20574, + SuperKeyword = 86111, + SwitchKeyword = 86112, + ThisKeyword = 86113, + ThrowKeyword = 86114, + TryKeyword = 20579, + WhileKeyword = 20580, + WithKeyword = 20581, + ImplementsKeyword = 36966, + InterfaceKeyword = 36967, + PackageKeyword = 36968, + PrivateKeyword = 36969, + ProtectedKeyword = 36970, + PublicKeyword = 36971, + StaticKeyword = 36972, + YieldKeyword = 241773, + AsKeyword = 77934, + AsyncKeyword = 209007, + AwaitKeyword = 209008, + ConstructorKeyword = 12401, + GetKeyword = 12402, + SetKeyword = 12403, + FromKeyword = 12404, + OfKeyword = 274549, + EnumKeyword = 86134, + Eval = 537079927, + Arguments = 537079928, + EscapedReserved = 121, + EscapedFutureReserved = 122, + AnyIdentifier = 143483, + PrivateIdentifier = 124, + BigIntLiteral = 134283389, + Coalesce = 276889982, + QuestionMarkPeriod = 67108991, + WhiteSpace = 128, + Illegal = 129, + CarriageReturn = 130, + PrivateField = 131, + Template = 132, + Decorator = 133, + Target = 143494, + Meta = 143495, + LineFeed = 136, + EscapedIdentifier = 137, + JSXText = 138 +} +export declare const KeywordDescTable: string[]; +export declare const descKeywordTable: { + [key: string]: Token; +}; +//# sourceMappingURL=token.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/token.d.ts.map b/node_modules/meriyah/dist/src/token.d.ts.map new file mode 100644 index 0000000..9f295bf --- /dev/null +++ b/node_modules/meriyah/dist/src/token.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/token.ts"],"names":[],"mappings":"AAAA,0BAAkB,KAAK;IACrB,IAAI,MAAO;IAGX,SAAS,IAAkB;IAC3B,UAAU,OAA+B;IAGzC,OAAO,OAA0B;IACjC,UAAU,QAAiC;IAC3C,QAAQ,QAAmC;IAC3C,cAAc,QAA6B;IAE3C,iBAAiB,QAAiB;IAClC,YAAY,SAAmC;IAC/C,QAAQ,SAA0B;IAClC,SAAS,SAAyB;IAClC,eAAe,UAAmB;IAClC,cAAc,UAAoB;IAClC,UAAU,UAAwB;IAClC,UAAU,UAA4C;IACtD,SAAS,WAA6C;IACtD,UAAU,WAA4C;IACtD,wBAAwB,WAAU;IAClC,gBAAgB,YAAkB;IAClC,SAAS,YAAyB;IAClC,iBAAiB,YAAoD;IACrE,YAAY,aAAsB;IAKlC,GAAG,UAAsB;IAGzB,UAAU,SAA8C;IACxD,cAAc,YAA8C;IAC5D,aAAa,YAA+C;IAC5D,iBAAiB,QAAwB;IACzC,YAAY,QAAwC;IACpD,WAAW,QAAyC;IACpD,WAAW,QAAyC;IAGpD,oBAAoB,WAAmD;IACvE,YAAY,WAAmD;IAG/D,KAAK,KAAY;IACjB,SAAS,WAAuD;IAChE,SAAS,UAA6C;IACtD,MAAM,WAAsC;IAC5C,QAAQ,KAAS;IACjB,UAAU,aAAwC;IAClD,UAAU,KAAO;IACjB,SAAS,aAAyC;IAClD,KAAK,KAAY;IACjB,WAAW,WAAsE;IACjF,YAAY,KAAK;IACjB,KAAK,KAAY;IACjB,YAAY,KAAK;IACjB,WAAW,KAAM;IACjB,WAAW,KAAM;IACjB,QAAQ,KAAS;IACjB,YAAY,KAAK;IAGjB,SAAS,WAAkB;IAC3B,SAAS,WAAkB;IAG3B,MAAM,aAAkD;IACxD,eAAe,UAA0B;IACzC,gBAAgB,UAAyB;IACzC,uBAAuB,UAAkB;IACzC,kBAAkB,UAAuB;IACzC,SAAS,UAAgC;IACzC,cAAc,UAA2B;IACzC,cAAc,UAA2B;IACzC,YAAY,UAAiD;IAC7D,YAAY,UAA6B;IACzC,gBAAgB,UAAyB;IACzC,eAAe,UAA0B;IACzC,gBAAgB,UAAyB;IACzC,eAAe,UAA0B;IACzC,gBAAgB,UAAyB;IACzC,cAAc,UAA2B;IAGzC,aAAa,WAAiC;IAC9C,aAAa,WAAiC;IAC9C,WAAW,WAAmC;IAC9C,MAAM,WAA6B;IACnC,UAAU,WAAyB;IACnC,GAAG,WAA+D;IAClE,QAAQ,WAA0D;IAClE,SAAS,UAAkE;IAC3E,iBAAiB,UAA+C;IAChE,QAAQ,UAA8C;IACtD,MAAM,UAAgD;IACtD,MAAM,UAAoE;IAC1E,YAAY,UAA0C;IACtD,UAAU,UAAuD;IACjE,SAAS,UAAwD;IACjE,WAAW,UAA0C;IACrD,cAAc,UAAuC;IACrD,UAAU,UAA2C;IACrD,aAAa,UAAwC;IACrD,eAAe,UAAsC;IACrD,kBAAkB,UAAmC;IACrD,QAAQ,UAAiE;IACzE,WAAW,UAA0C;IACrD,SAAS,UAA4C;IACrD,UAAU,UAA2C;IACrD,iBAAiB,UAAoC;IACrD,UAAU,UAA2C;IACrD,SAAS,UAA4C;IACrD,UAAU,UAA2C;IAGrD,UAAU,QAAsC;IAChD,UAAU,SAA2D;IACrE,YAAY,QAAoC;IAGhD,YAAY,QAAmB;IAC/B,WAAW,QAAoB;IAC/B,YAAY,QAAmB;IAC/B,YAAY,QAAuC;IACnD,eAAe,QAAgB;IAC/B,eAAe,QAAgB;IAC/B,cAAc,QAAiB;IAC/B,SAAS,QAAsB;IAC/B,WAAW,QAAoB;IAC/B,aAAa,QAAkB;IAC/B,cAAc,QAAiB;IAC/B,cAAc,QAAiB;IAC/B,UAAU,QAAqB;IAC/B,eAAe,QAAoC;IACnD,SAAS,QAAsB;IAC/B,aAAa,QAAsC;IACnD,UAAU,QAAyC;IACnD,aAAa,QAAkB;IAC/B,YAAY,QAAuC;IACnD,aAAa,QAAsC;IACnD,WAAW,QAAwC;IACnD,YAAY,QAAuC;IACnD,UAAU,QAAqB;IAC/B,YAAY,QAAoB;IAChC,WAAW,QAAqB;IAGhC,iBAAiB,QAAuB;IACxC,gBAAgB,QAAwB;IACxC,cAAc,QAA0B;IACxC,cAAc,QAA0B;IACxC,gBAAgB,QAAwB;IACxC,aAAa,QAA2B;IACxC,aAAa,QAA2B;IACxC,YAAY,SAA+D;IAG3E,SAAS,QAAgD;IACzD,YAAY,SAA4D;IACxE,YAAY,SAA4D;IACxE,kBAAkB,QAAmB;IACrC,UAAU,QAA2B;IACrC,UAAU,QAA2B;IACrC,WAAW,QAA0B;IACrC,SAAS,SAAuC;IAChD,WAAW,QAA4C;IAEvD,IAAI,YAAwC;IAC5C,SAAS,YAAmC;IAE5C,eAAe,MAAY;IAC3B,qBAAqB,MAAM;IAC3B,aAAa,SAA0B;IAGvC,iBAAiB,MAAO;IACxB,aAAa,YAAkD;IAC/D,QAAQ,YAA0D;IAClE,kBAAkB,WAAiC;IAGnD,UAAU,MAAa;IACvB,OAAO,MAAgB;IACvB,cAAc,MAAS;IACvB,YAAY,MAAW;IACvB,QAAQ,MAAe;IACvB,SAAS,MAAc;IACvB,MAAM,SAAgC;IACtC,IAAI,SAAkC;IACtC,QAAQ,MAAe;IACvB,iBAAiB,MAAM;IAGvB,OAAO,MAAgB;CACxB;AAED,eAAO,MAAM,gBAAgB,UA4C5B,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;CA0DnD,CAAC"} \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/unicode.d.ts b/node_modules/meriyah/dist/src/unicode.d.ts new file mode 100644 index 0000000..cdce39e --- /dev/null +++ b/node_modules/meriyah/dist/src/unicode.d.ts @@ -0,0 +1,6 @@ +declare function isIDContinue(code: number): boolean; +declare function isIDStart(code: number): boolean; +declare function mustEscape(code: number): boolean; +export declare const unicodeLookup: Uint32Array; +export { isIDContinue, isIDStart, mustEscape }; +//# sourceMappingURL=unicode.d.ts.map \ No newline at end of file diff --git a/node_modules/meriyah/dist/src/unicode.d.ts.map b/node_modules/meriyah/dist/src/unicode.d.ts.map new file mode 100644 index 0000000..e1b8eeb --- /dev/null +++ b/node_modules/meriyah/dist/src/unicode.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"unicode.d.ts","sourceRoot":"","sources":["../../src/unicode.ts"],"names":[],"mappings":"AAGA,iBAAS,YAAY,CAAC,IAAI,EAAC,MAAM,WAEhC;AACD,iBAAS,SAAS,CAAC,IAAI,EAAC,MAAM,WAE7B;AACD,iBAAS,UAAU,CAAC,IAAI,EAAC,MAAM,WAE9B;AACD,eAAO,MAAM,aAAa,aAsBzB,CAAA;AACD,OAAO,EAAC,YAAY,EAAC,SAAS,EAAC,UAAU,EAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/meriyah/package.json b/node_modules/meriyah/package.json new file mode 100644 index 0000000..1f9d2a2 --- /dev/null +++ b/node_modules/meriyah/package.json @@ -0,0 +1,123 @@ +{ + "name": "meriyah", + "version": "4.2.0", + "description": "A 100% compliant, self-hosted javascript parser with high focus on both performance and stability", + "main": "dist/meriyah.cjs", + "module": "dist/meriyah.esm.js", + "jsnext:main": "dist/meriyah.esm.js", + "browser": "dist/meriyah.umd.min.js", + "unpkg": "dist/meriyah.umd.min.js", + "type": "module", + "exports": { + "import": "./dist/meriyah.esm.js", + "require": "./dist/meriyah.cjs" + }, + "types": "dist/src/meriyah.d.ts", + "typings": "dist/src/meriyah.d.ts", + "license": "ISC", + "homepage": "https://github.com/meriyah/meriyah", + "repository": { + "type": "git", + "url": "https://github.com/meriyah/meriyah" + }, + "bugs": { + "url": "https://github.com/meriyah/meriyah/issues" + }, + "author": { + "name": "Kenny F.", + "url": "https://github.com/KFlash" + }, + "contributors": [ + { + "name": "Chunpeng Huo", + "url": "https://github.com/3cp" + } + ], + "keywords": [ + "parsing", + "ecmascript", + "javascript", + "parser", + "performance", + "estree", + "es2018", + "es2019", + "es2020", + "es2021", + "esnext", + "lexer", + "ast", + "lightweight" + ], + "files": [ + "dist", + "src", + "README.md", + "CHANGELOG.md", + "LICENSE.md" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "build": "tsc", + "build:watch": "tsc -w", + "lint": "eslint \"{src,test}/**/*.{ts,js}\"", + "prettier": "node ./scripts/prettier.js write-changed", + "prettier-all": "node ./scripts/prettier.js write", + "bundle": "cross-env rimraf dist && node scripts/bundle.js", + "bundle:bench": "cross-env rimraf dist && node scripts/bundle.js bench", + "test": "mocha \"test/**/*.ts\"", + "test-single": "mocha", + "test:watch": "npm run test -- --watch --watch-extensions ts", + "test:verbose": "npm run test -- -R spec", + "test:watch:verbose": "npm run test:watch -- -R spec", + "prepare-nightly": "node scripts/bump-dev-version", + "coverage": "cross-env TS_NODE_PROJECT=\"test/tsconfig.json\" nyc -n \"src/**/*.ts\" -e .ts -i ts-node/register -r text-summary -r lcov -r html npm test", + "post_coverage": "cross-env cat ./coverage/lcov.info | coveralls", + "prepublishOnly": "npm run bundle", + "preversion": "npm test", + "version": "standard-changelog && git add CHANGELOG.md", + "postversion": "git push && git push --tags && npm publish" + }, + "devDependencies": { + "@rollup/plugin-json": "^4.1.0", + "@types/mocha": "^8.2.0", + "@types/node": "^14.14.21", + "@typescript-eslint/eslint-plugin": "^4.13.0", + "@typescript-eslint/parser": "^4.13.0", + "chalk": "^4.1.0", + "coveralls": "^3.1.0", + "cross-env": "^7.0.3", + "eslint": "^7.17.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-node": "^11.1.0", + "glob": "^7.1.6", + "husky": "^4.3.7", + "mocha": "^8.2.1", + "nyc": "^15.1.0", + "path": "^0.12.7", + "prettier": "^2.2.1", + "rimraf": "^3.0.2", + "rollup": "^2.38.1", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript2": "^0.30.0", + "source-map-support": "^0.5.19", + "standard-changelog": "^2.0.27", + "test262-parser-tests": "0.0.5", + "ts-node": "^9.1.1", + "tsconfig-paths": "^3.9.0", + "tslib": "^2.1.0", + "typescript": "^4.1.3", + "unexpected": "^12.0.0", + "unicode-13.0.0": "^0.8.0" + }, + "husky": { + "hooks": { + "pre-commit": "node ./scripts/prettier.js check-changed" + } + }, + "engines": { + "node": ">=10.4.0" + } +} diff --git a/node_modules/meriyah/src/chars.ts b/node_modules/meriyah/src/chars.ts new file mode 100644 index 0000000..cbd292c --- /dev/null +++ b/node_modules/meriyah/src/chars.ts @@ -0,0 +1,155 @@ +/** + * A list of character constants with much more human-readable names. + */ +export const enum Chars { + + Null = 0x00, + + Backspace = 0x08, + Tab = 0x09, + LineFeed = 0x0A, + VerticalTab = 0x0B, + FormFeed = 0x0C, + CarriageReturn = 0x0D, + + Space = 0x20, + Exclamation = 0x21, + DoubleQuote = 0x22, + Hash = 0x23, + Dollar = 0x24, + Percent = 0x25, + Ampersand = 0x26, + SingleQuote = 0x27, + LeftParen = 0x28, + RightParen = 0x29, + Asterisk = 0x2A, + Plus = 0x2B, + Comma = 0x2C, + Hyphen = 0x2D, + Period = 0x2E, + Slash = 0x2F, + + Zero = 0x30, + One = 0x31, + Two = 0x32, + Three = 0x33, + Four = 0x34, + Five = 0x35, + Six = 0x36, + Seven = 0x37, + Eight = 0x38, + Nine = 0x39, + Colon = 0x3A, + Semicolon = 0x3B, + LessThan = 0x3C, + EqualSign = 0x3D, + GreaterThan = 0x3E, + QuestionMark = 0x3F, + + UpperA = 0x41, + UpperB = 0x42, + UpperC = 0x43, + UpperD = 0x44, + UpperE = 0x45, + UpperF = 0x46, + UpperG = 0x47, + UpperH = 0x48, + UpperI = 0x49, + UpperJ = 0x4A, + UpperK = 0x4B, + UpperL = 0x4C, + UpperM = 0x4D, + UpperN = 0x4E, + UpperO = 0x4F, + + UpperP = 0x50, + UpperQ = 0x51, + UpperR = 0x52, + UpperS = 0x53, + UpperT = 0x54, + UpperU = 0x55, + UpperV = 0x56, + UpperW = 0x57, + UpperX = 0x58, + UpperY = 0x59, + UpperZ = 0x5A, + LeftBracket = 0x5B, + Backslash = 0x5C, + RightBracket = 0x5D, + Caret = 0x5E, + Underscore = 0x5F, + + Backtick = 0x60, + LowerA = 0x61, + LowerB = 0x62, + LowerC = 0x63, + LowerD = 0x64, + LowerE = 0x65, + LowerF = 0x66, + LowerG = 0x67, + LowerH = 0x68, + LowerI = 0x69, + LowerJ = 0x6A, + LowerK = 0x6B, + LowerL = 0x6C, + LowerM = 0x6D, + LowerN = 0x6E, + LowerO = 0x6F, + + LowerP = 0x70, + LowerQ = 0x71, + LowerR = 0x72, + LowerS = 0x73, + LowerT = 0x74, + LowerU = 0x75, + LowerV = 0x76, + LowerW = 0x77, + LowerX = 0x78, + LowerY = 0x79, + LowerZ = 0x7A, + LeftBrace = 0x7B, + VerticalBar = 0x7C, + RightBrace = 0x7D, + Tilde = 0x7E, + Delete = 0x7F, + + NextLine = 0x85, + NonBreakingSpace = 0xA0, + + Ogham = 0x1680, + + EnQuad = 0x2000, + EmQuad = 0x2001, + EnSpace = 0x2002, + EmSpace = 0x2003, + ThreePerEmSpace = 0x2004, + FourPerEmSpace = 0x2005, + SixPerEmSpace = 0x2006, + FigureSpace = 0x2007, + PunctuationSpace = 0x2008, + ThinSpace = 0x2009, + HairSpace = 0x200A, + ZeroWidthSpace = 0x200B, + ZeroWidthJoiner = 0x200C, + ZeroWidthNonJoiner = 0x200D, + + LineSeparator = 0x2028, + ParagraphSeparator = 0x2029, + + NarrowNoBreakSpace = 0x202F, + MathematicalSpace = 0x205F, + IdeographicSpace = 0x3000, + + ZeroWidthNoBreakSpace = 0xFEFF, + + ByteOrderMark = 0xFFEF, + + NonBMPMax = 0x10FFFF, + + LeadSurrogateMin = 0xD800, + LeadSurrogateMax = 0xDBFF, + TrailSurrogateMin = 0xDC00, + TrailSurrogateMax = 0xDFFF, + UTF16Max = 0xFFFF, + NonBMPMin = 0x10000, +} diff --git a/node_modules/meriyah/src/common.ts b/node_modules/meriyah/src/common.ts new file mode 100644 index 0000000..333bb9d --- /dev/null +++ b/node_modules/meriyah/src/common.ts @@ -0,0 +1,835 @@ +import { Token, KeywordDescTable } from './token'; +import { Errors, report } from './errors'; +import { Node, Comment, Decorator, SourceLocation } from './estree'; +import { nextToken } from './lexer/scan'; + +/** + * The core context, passed around everywhere as a simple immutable bit set + */ +export const enum Context { + None = 0, + OptionsNext = 1 << 0, + OptionsRanges = 1 << 1, + OptionsLoc = 1 << 2, + OptionsDirectives = 1 << 3, + OptionsJSX = 1 << 4, + OptionsGlobalReturn = 1 << 5, + OptionsLexical = 1 << 6, + OptionsPreserveParens = 1 << 7, + OptionsWebCompat = 1 << 8, + OptionsRaw = 1 << 9, + Strict = 1 << 10, + Module = 1 << 11, // Current code should be parsed as a module body + InSwitch = 1 << 12, + InGlobal = 1 << 13, + InClass = 1 << 14, + AllowRegExp = 1 << 15, + TaggedTemplate = 1 << 16, + InIteration = 1 << 17, + SuperProperty = 1 << 18, + SuperCall = 1 << 19, + InYieldContext = 1 << 21, + InAwaitContext = 1 << 22, + InArgumentList = 1 << 23, + InConstructor = 1 << 24, + InMethod = 1 << 25, + AllowNewTarget = 1 << 26, + DisallowIn = 1 << 27, + OptionsIdentifierPattern = 1 << 28, + OptionsSpecDeviation = 1 << 29, + AllowEscapedKeyword = 1 << 30, + OptionsUniqueKeyInPattern = 1 << 31, +} + +/** + * Masks to track the property kind + */ +export const enum PropertyKind { + None = 0, + Method = 1 << 0, + Computed = 1 << 1, + Shorthand = 1 << 2, + Generator = 1 << 3, + Async = 1 << 4, + Static = 1 << 5, + Constructor = 1 << 6, + ClassField = 1 << 7, + Getter = 1 << 8, + Setter = 1 << 9, + Extends = 1 << 10, + Literal = 1 << 11, + PrivateField = 1 << 12, + GetSet = Getter | Setter +} + +/** + * Masks to track the binding kind + */ +export const enum BindingKind { + None = 0, + ArgumentList = 1 << 0, + Empty = 1 << 1, + Variable = 1 << 2, + Let = 1 << 3, + Const = 1 << 4, + Class = 1 << 5, + FunctionLexical = 1 << 6, + FunctionStatement = 1 << 7, + CatchPattern = 1 << 8, + CatchIdentifier = 1 << 9, + CatchIdentifierOrPattern = CatchIdentifier | CatchPattern, + LexicalOrFunction = Variable | FunctionLexical, + LexicalBinding = Let | Const | FunctionLexical | FunctionStatement | Class +} + +/** + * The masks to track where something begins. E.g. statements, declarations or arrows. + */ +export const enum Origin { + None = 0, + Statement = 1 << 0, + BlockStatement = 1 << 1, + TopLevel = 1 << 2, + Declaration = 1 << 3, + Arrow = 1 << 4, + ForStatement = 1 << 5, + Export = 1 << 6, +} + +/** + * Masks to track the assignment kind + */ +export const enum AssignmentKind { + None = 0, + Assignable = 1 << 0, + CannotAssign = 1 << 1 +} + +/** + * Masks to track the destructuring kind + */ +export const enum DestructuringKind { + None = 0, + HasToDestruct = 1 << 3, + // "Cannot" rather than "can" so that this flag can be ORed together across + // multiple characters. + CannotDestruct = 1 << 4, + // Only destructible if assignable + Assignable = 1 << 5, + // `__proto__` is a special case and only valid to parse if destructible + SeenProto = 1 << 6, + Await = 1 << 7, + Yield = 1 << 8 +} + +/** + * The mutable parser flags, in case any flags need passed by reference. + */ +export const enum Flags { + None = 0, + NewLine = 1 << 0, + HasConstructor = 1 << 5, + Octals = 1 << 6, + SimpleParameterList = 1 << 7, + HasStrictReserved = 1 << 8, + StrictEvalArguments = 1 << 9, + DisallowCall = 1 << 10, + HasOptionalChaining = 1 << 11 +} + +export const enum HoistedClassFlags { + None, + Hoisted = 1 << 0, + Export = 1 << 1 +} + +export const enum HoistedFunctionFlags { + None, + Hoisted = 1 << 0, + Export = 1 << 1 +} + +/** + * Scope kinds + */ +export const enum ScopeKind { + None = 0, + ForStatement = 1 << 0, + Block = 1 << 1, + CatchStatement = 1 << 2, + SwitchStatement = 1 << 3, + ArgList = 1 << 4, + TryStatement = 1 << 5, + CatchBlock = 1 << 6, + FunctionBody = 1 << 7, + FunctionRoot = 1 << 8, + FunctionParams = 1 << 9, + ArrowParams = 1 << 10, + CatchIdentifier = 1 << 11, +} + +/** + * The type of the `onComment` option. + */ +export type OnComment = void | Comment[] | ((type: string, value: string, start: number, end: number, loc: SourceLocation) => any); + +/** + * The type of the `onToken` option. + */ +export type OnToken = void | Token[] | ((token: string, start: number, end: number, loc: SourceLocation) => any); + +/** + * Lexical scope interface + */ +export interface ScopeState { + parent: ScopeState | undefined; + type: ScopeKind; + scopeError?: ScopeError | null; +} + +/** Scope error interface */ +export interface ScopeError { + type: Errors; + params: string[]; + index: number; + line: number; + column: number; +} + +/** + * The parser interface. + */ +export interface ParserState { + source: string; + flags: Flags; + index: number; + line: number; + column: number; + tokenPos: number; + startPos: number; + startColumn: number; + startLine: number; + colPos: number; + linePos: number; + end: number; + token: Token; + onComment: any; + onToken: any; + tokenValue: any; + tokenRaw: string; + tokenRegExp: void | { + pattern: string; + flags: string; + }; + sourceFile: string | void; + assignable: AssignmentKind | DestructuringKind; + destructible: AssignmentKind | DestructuringKind; + currentChar: number; + exportedNames: any; + exportedBindings: any; + leadingDecorators: Decorator[]; +} + +/** + * Check for automatic semicolon insertion according to the rules + * given in `ECMA-262, section 11.9`. + * + * @param parser Parser object + * @param context Context masks + */ + +export function matchOrInsertSemicolon(parser: ParserState, context: Context, specDeviation?: number): void { + + if ( + (parser.flags & Flags.NewLine) === 0 && + (parser.token & Token.IsAutoSemicolon) !== Token.IsAutoSemicolon && + !specDeviation + ) { + report(parser, Errors.UnexpectedToken, KeywordDescTable[parser.token & Token.Type]); + } + consumeOpt(parser, context, Token.Semicolon); +} + +export function isValidStrictMode(parser: ParserState, index: number, tokenPos: number, tokenValue: string): 0 | 1 { + if (index - tokenPos < 13 && tokenValue === 'use strict') { + if ((parser.token & Token.IsAutoSemicolon) === Token.IsAutoSemicolon || parser.flags & Flags.NewLine) { + return 1; + } + } + return 0; +} + +/** + * Consumes the current token if the current token kind is + * the specified `kind` and returns `0`. Otherwise returns `1`. + * + * @param parser Parser state + * @param context Context masks + * @param token The type of token to consume + */ +export function optionalBit(parser: ParserState, context: Context, t: Token): 0 | 1 { + if (parser.token !== t) return 0; + nextToken(parser, context); + return 1; +} + +/** Consumes the current token if the current token kind is + * the specified `kind` and returns `true`. Otherwise returns + * `false`. + * + * @param parser Parser state + * @param context Context masks + * @param token The type of token to consume + */ +export function consumeOpt(parser: ParserState, context: Context, t: Token): boolean { + if (parser.token !== t) return false; + nextToken(parser, context); + return true; +} + +/** + * Consumes the current token. If the current token kind is not + * the specified `kind`, an error will be reported. + * + * @param parser Parser state + * @param context Context masks + * @param t The type of token to consume + */ +export function consume(parser: ParserState, context: Context, t: Token): void { + if (parser.token !== t) report(parser, Errors.ExpectedToken, KeywordDescTable[t & Token.Type]); + nextToken(parser, context); +} + +/** + * Transforms a `LeftHandSideExpression` into a `AssignmentPattern` if possible, + * otherwise it returns the original tree. + * + * @param parser Parser state + * @param {*} node + */ +export function reinterpretToPattern(state: ParserState, node: any): void { + switch (node.type) { + case 'ArrayExpression': + node.type = 'ArrayPattern'; + const elements = node.elements; + for (let i = 0, n = elements.length; i < n; ++i) { + const element = elements[i]; + if (element) reinterpretToPattern(state, element); + } + return; + case 'ObjectExpression': + node.type = 'ObjectPattern'; + const properties = node.properties; + for (let i = 0, n = properties.length; i < n; ++i) { + reinterpretToPattern(state, properties[i]); + } + return; + case 'AssignmentExpression': + node.type = 'AssignmentPattern'; + if (node.operator !== '=') report(state, Errors.InvalidDestructuringTarget); + delete node.operator; + reinterpretToPattern(state, node.left); + return; + case 'Property': + reinterpretToPattern(state, node.value); + return; + case 'SpreadElement': + node.type = 'RestElement'; + reinterpretToPattern(state, node.argument); + default: // ignore + } +} + +/** + * Validates binding identifier + * + * @param parser Parser state + * @param context Context masks + * @param type Binding type + * @param token Token + */ + +export function validateBindingIdentifier( + parser: ParserState, + context: Context, + kind: BindingKind, + t: Token, + skipEvalArgCheck: 0 | 1 +): void { + + if (context & Context.Strict) { + + if ((t & Token.FutureReserved) === Token.FutureReserved) { + report(parser, Errors.UnexpectedStrictReserved); + } + + if (!skipEvalArgCheck && (t & Token.IsEvalOrArguments) === Token.IsEvalOrArguments) { + report(parser, Errors.StrictEvalArguments); + } + } + + if ((t & Token.Reserved) === Token.Reserved) { + report(parser, Errors.KeywordNotId); + } + + // The BoundNames of LexicalDeclaration and ForDeclaration must not + // contain 'let'. (CatchParameter is the only lexical binding form + // without this restriction.) + if (kind & (BindingKind.Let | BindingKind.Const) && t === Token.LetKeyword) { + report(parser, Errors.InvalidLetConstBinding); + } + + if (context & (Context.InAwaitContext | Context.Module) && t === Token.AwaitKeyword) { + report(parser, Errors.AwaitOutsideAsync); + } + + if (context & (Context.InYieldContext | Context.Strict) && t === Token.YieldKeyword) { + report(parser, Errors.DisallowedInContext, 'yield'); + } +} + +export function validateFunctionName( + parser: ParserState, + context: Context, + t: Token +): void { + + if (context & Context.Strict) { + + if ((t & Token.FutureReserved) === Token.FutureReserved) { + report(parser, Errors.UnexpectedStrictReserved); + } + + if ((t & Token.IsEvalOrArguments) === Token.IsEvalOrArguments) { + report(parser, Errors.StrictEvalArguments); + } + + if (t === Token.EscapedFutureReserved) { + report(parser, Errors.InvalidEscapedKeyword); + } + + if (t === Token.EscapedReserved) { + report(parser, Errors.InvalidEscapedKeyword); + } + } + + if ((t & Token.Reserved) === Token.Reserved) { + report(parser, Errors.KeywordNotId); + } + + if (context & (Context.InAwaitContext | Context.Module) && t === Token.AwaitKeyword) { + report(parser, Errors.AwaitOutsideAsync); + } + + if (context & (Context.InYieldContext | Context.Strict) && t === Token.YieldKeyword) { + report(parser, Errors.DisallowedInContext, 'yield'); + } +} + +/** + * Validates binding identifier + * + * @param parser Parser state + * @param context Context masks + * @param t Token + */ + +export function isStrictReservedWord(parser: ParserState, context: Context, t: Token): boolean { + if (t === Token.AwaitKeyword) { + if (context & (Context.InAwaitContext | Context.Module)) report(parser, Errors.AwaitOutsideAsync); + parser.destructible |= DestructuringKind.Await; + } + + if (t === Token.YieldKeyword && context & Context.InYieldContext) report(parser, Errors.DisallowedInContext, 'yield'); + + return ( + (t & Token.Reserved) === Token.Reserved || + (t & Token.FutureReserved) === Token.FutureReserved || + t == Token.EscapedFutureReserved + ); +} + +/** + * Checks if the property has any private field key + * + * @param parser Parser object + * @param context Context masks + */ +export function isPropertyWithPrivateFieldKey(expr: any): boolean { + return !expr.property ? false : expr.property.type === 'PrivateIdentifier'; +} + +/** + * Checks if a label in `LabelledStatement` are valid or not + * + * @param parser Parser state + * @param labels Object holding the labels + * @param name Current label + * @param isIterationStatement + */ +export function isValidLabel(parser: ParserState, labels: any, name: string, isIterationStatement: 0 | 1): 0 | 1 { + while (labels) { + if (labels['$' + name]) { + if (isIterationStatement) report(parser, Errors.InvalidNestedStatement); + return 1; + } + if (isIterationStatement && labels.loop) isIterationStatement = 0; + labels = labels['$']; + } + + return 0; +} + +/** + * Checks if current label already have been declrared, and if not + * declare it + * + * @param parser Parser state + * @param labels Object holding the labels + * @param name Current label + */ +export function validateAndDeclareLabel(parser: ParserState, labels: any, name: string): void { + let set = labels; + while (set) { + if (set['$' + name]) report(parser, Errors.LabelRedeclaration, name); + set = set['$']; + } + + labels['$' + name] = 1; +} + +export function finishNode( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number, + node: T +): T { + if (context & Context.OptionsRanges) { + node.start = start; + node.end = parser.startPos; + node.range = [start, parser.startPos]; + } + + if (context & Context.OptionsLoc) { + node.loc = { + start: { + line, + column + }, + end: { + line: parser.startLine, + column: parser.startColumn + } + }; + + if (parser.sourceFile) { + node.loc.source = parser.sourceFile; + } + } + + return node; +} + +/** @internal */ +export function isEqualTagName(elementName: any): any { + switch (elementName.type) { + case 'JSXIdentifier': + return elementName.name; + case 'JSXNamespacedName': + return elementName.namespace + ':' + elementName.name; + case 'JSXMemberExpression': + return isEqualTagName(elementName.object) + '.' + isEqualTagName(elementName.property); + /* istanbul ignore next */ + default: + // ignore + } +} + +/** + * Create a parsing scope for arrow head, and add lexical binding + * + * @param parser Parser state + * @param context Context masks + * @param value Binding name to be declared + */ +export function createArrowHeadParsingScope(parser: ParserState, context: Context, value: string): ScopeState { + const scope = addChildScope(createScope(), ScopeKind.ArrowParams); + addBlockName(parser, context, scope, value, BindingKind.ArgumentList, Origin.None); + return scope; +} + +/** + * Record duplicate binding errors that may occur in a arrow head or function parameters +* + * @param parser Parser state + * @param type Errors type + */ +export function recordScopeError(parser: ParserState, type: Errors, ...params: string[]): ScopeError { + const { index, line, column } = parser; + return { + type, + params, + index, + line, + column + }; +} + +/** + * Creates a block scope + */ +export function createScope(): ScopeState { + return { + parent: void 0, + type: ScopeKind.Block + }; +} + +/** + * Inherit scope + * + * @param scope Parser object + * @param type Scope kind + */ +export function addChildScope(parent: ScopeState | undefined, type: ScopeKind): ScopeState { + return { + parent, + type, + scopeError: void 0 + }; +} + +/** + * Adds either a var binding or a block scoped binding. + * + * @param parser Parser state + * @param context Context masks + * @param scope Scope state + * @param name Binding name + * @param type Binding kind + * @param origin Binding Origin + */ +export function addVarOrBlock( + parser: ParserState, + context: Context, + scope: ScopeState, + name: string, + kind: BindingKind, + origin: Origin +) { + if (kind & BindingKind.Variable) { + addVarName(parser, context, scope, name, kind); + } else { + addBlockName(parser, context, scope, name, kind, origin); + } + if (origin & Origin.Export) { + declareUnboundVariable(parser, name); + } +} + +/** + * Adds block scoped binding + * + * @param parser Parser state + * @param context Context masks + * @param scope Scope state + * @param name Binding name + * @param type Binding kind + * @param origin Binding Origin + */ +export function addBlockName( + parser: ParserState, + context: Context, + scope: any, + name: string, + kind: BindingKind, + origin: Origin +) { + const value = (scope as any)['#' + name]; + + if (value && (value & BindingKind.Empty) === 0) { + if (kind & BindingKind.ArgumentList) { + scope.scopeError = recordScopeError(parser, Errors.DuplicateBinding, name); + } else if ( + context & Context.OptionsWebCompat && + value & BindingKind.FunctionLexical && + origin & Origin.BlockStatement + ) { + } else { + report(parser, Errors.DuplicateBinding, name); + } + } + + if ( + scope.type & ScopeKind.FunctionBody && + ((scope as any).parent['#' + name] && ((scope as any).parent['#' + name] & BindingKind.Empty) === 0) + ) { + report(parser, Errors.DuplicateBinding, name); + } + + if (scope.type & ScopeKind.ArrowParams && value && (value & BindingKind.Empty) === 0) { + if (kind & BindingKind.ArgumentList) { + scope.scopeError = recordScopeError(parser, Errors.DuplicateBinding, name); + } + } + + if (scope.type & ScopeKind.CatchBlock) { + if ((scope as any).parent['#' + name] & BindingKind.CatchIdentifierOrPattern) + report(parser, Errors.ShadowedCatchClause, name); + } + + (scope as any)['#' + name] = kind; +} + +/** + * Adds a variable binding + * + * @param parser Parser state + * @param context Context masks + * @param scope Scope state + * @param name Binding name + * @param type Binding kind + */ +export function addVarName( + parser: ParserState, + context: Context, + scope: ScopeState, + name: string, + kind: BindingKind +): void { + let currentScope: any = scope; + + while (currentScope && (currentScope.type & ScopeKind.FunctionRoot) === 0) { + const value: ScopeKind = currentScope['#' + name]; + + if (value & BindingKind.LexicalBinding) { + if ( + context & Context.OptionsWebCompat && + (context & Context.Strict) === 0 && + ((kind & BindingKind.FunctionStatement && value & BindingKind.LexicalOrFunction) || + (value & BindingKind.FunctionStatement && kind & BindingKind.LexicalOrFunction)) + ) { + } else { + report(parser, Errors.DuplicateBinding, name); + } + } + if (currentScope === scope) { + if (value & BindingKind.ArgumentList && kind & BindingKind.ArgumentList) { + currentScope.scopeError = recordScopeError(parser, Errors.DuplicateBinding, name); + } + } + if (value & (BindingKind.CatchIdentifier | BindingKind.CatchPattern)) { + if ( + (value & BindingKind.CatchIdentifier) === 0 || + (context & Context.OptionsWebCompat) === 0 || + context & Context.Strict + ) { + report(parser, Errors.DuplicateBinding, name); + } + } + + currentScope['#' + name] = kind; + + currentScope = currentScope.parent; + } +} + +/** + * Appends a name to the `ExportedNames` of the `ExportsList`, and checks + * for duplicates + * + * @see [Link](https://tc39.github.io/ecma262/$sec-exports-static-semantics-exportednames) + * + * @param parser Parser object + * @param name Exported name + */ +export function declareUnboundVariable(parser: ParserState, name: string): void { + if (parser.exportedNames !== void 0 && name !== '') { + if (parser.exportedNames['#' + name]) { + report(parser, Errors.DuplicateExportBinding, name); + } + parser.exportedNames['#' + name] = 1; + } +} + +/** + * Appends a name to the `ExportedBindings` of the `ExportsList`, + * + * @see [Link](https://tc39.es/ecma262/$sec-exports-static-semantics-exportedbindings) + * + * @param parser Parser object + * @param name Exported binding name + */ +export function addBindingToExports(parser: ParserState, name: string): void { + if (parser.exportedBindings !== void 0 && name !== '') { + parser.exportedBindings['#' + name] = 1; + } +} + +export function pushComment(context: Context, array: any[]): any { + return function(type: string, value: string, start: number, end: number, loc: SourceLocation) { + const comment: any = { + type, + value + }; + + if (context & Context.OptionsRanges) { + comment.start = start; + comment.end = end; + comment.range = [start, end]; + } + if (context & Context.OptionsLoc) { + comment.loc = loc; + } + array.push(comment); + }; +} + +export function pushToken(context: Context, array: any[]): any { + return function(token: string, start: number, end: number, loc: SourceLocation) { + const tokens: any = { + token + }; + + if (context & Context.OptionsRanges) { + tokens.start = start; + tokens.end = end; + tokens.range = [start, end]; + } + if (context & Context.OptionsLoc) { + tokens.loc = loc; + } + array.push(tokens); + }; +} + +export function isValidIdentifier(context: Context, t: Token): boolean { + if (context & (Context.Strict | Context.InYieldContext)) { + // Module code is also "strict mode code" + if (context & Context.Module && t === Token.AwaitKeyword) return false; + if (context & Context.InYieldContext && t === Token.YieldKeyword) return false; + return (t & Token.IsIdentifier) === Token.IsIdentifier || (t & Token.Contextual) === Token.Contextual; + } + + return ( + (t & Token.IsIdentifier) === Token.IsIdentifier || + (t & Token.Contextual) === Token.Contextual || + (t & Token.FutureReserved) === Token.FutureReserved + ); +} + +export function classifyIdentifier( + parser: ParserState, + context: Context, + t: Token, + isArrow: 0 | 1 +): any { + if ((t & Token.IsEvalOrArguments) === Token.IsEvalOrArguments) { + if (context & Context.Strict) report(parser, Errors.StrictEvalArguments); + if (isArrow) parser.flags |= Flags.StrictEvalArguments; + } + + if (!isValidIdentifier(context, t)) report(parser, Errors.Unexpected); +} diff --git a/node_modules/meriyah/src/errors.ts b/node_modules/meriyah/src/errors.ts new file mode 100644 index 0000000..8424b6f --- /dev/null +++ b/node_modules/meriyah/src/errors.ts @@ -0,0 +1,417 @@ +import { ParserState } from './common'; + +export const enum Errors { + Unexpected, + StrictOctalEscape, + TemplateOctalLiteral, + InvalidPrivateIdentifier, + InvalidUnicodeEscapeSequence, + InvalidCodePoint, + InvalidHexEscapeSequence, + StrictDecimalWithLeadingZero, + StrictOctalLiteral, + ExpectedNumberInRadix, + MissingExponent, + InvalidBigInt, + IDStartAfterNumber, + InvalidEightAndNine, + UnterminatedString, + UnterminatedTemplate, + UnterminatedComment, + InvalidDynamicUnicode, + IllegalCharacter, + MissingHexDigits, + InvalidImplicitOctals, + InvalidStringLT, + InvalidEscapeIdentifier, + ExpectedToken, + CantAssignTo, + InvalidLHSAsyncArrow, + SuperNoConstructor, + InvalidSuperProperty, + UnexpectedToken, + AwaitInParameter, + YieldInParameter, + InvalidExponentiationLHS, + UnterminatedRegExp, + UnexpectedTokenRegExpFlag, + DuplicateRegExpFlag, + AccessorWrongArgs, + BadSetterRestParameter, + DeclNoName, + StrictFunctionName, + RestMissingArg, + InvalidGeneratorGetter, + InvalidComputedPropName, + InvalidGetSetGenerator, + InvalidAsyncGetter, + InvalidGenMethodShorthand, + InvalidLineBreak, + InvalidArrowDestructLHS, + InvalidBindingDestruct, + InvalidAsyncArrow, + StaticPrototype, + InvalidConstructor, + DuplicateConstructor, + InvalidIncDecTarget, + InvalidIncDecNew, + InvalidAssignmentTarget, + InvalidRestTrailing, + DeclarationMissingInitializer, + ForInOfLoopInitializer, + ForInOfLoopMultiBindings, + InvalidShorthandPropInit, + DuplicateProto, + InvalidLetBoundName, + InvalidNewUnary, + IllegalUseStrict, + DisallowedLetInStrict, + IllegalContinue, + IllegalBreak, + InvalidLetBracket, + InvalidDestructuringTarget, + RestDefaultInitializer, + InvalidRestNotLast, + InvalidRestArg, + InvalidRestDefault, + StrictFunction, + SloppyFunction, + WebCompatFunction, + ClassForbiddenAsStatement, + CantAssignToInOfForLoop, + InvalidAssignmentInOfForLoop, + InvalidForAwait, + InvalidTemplateContinuation, + RestrictedLetProduction, + UnexpectedLetStrictReserved, + InvalidCatchParams, + InvalidCatchParamDefault, + NoCatchOrFinally, + MultipleDefaultsInSwitch, + NewlineAfterThrow, + StrictWith, + IllegalReturn, + InvalidForLHSBinding, + InvalidNewTarget, + InvalidEscapedKeyword, + MissingPrivateIdentifier, + DisallowedInContext, + AwaitOutsideAsync, + InvalidStrictLet, + InvalidLetConstBinding, + InvalidLetClassName, + KeywordNotId, + InvalidImportExportSloppy, + UnicodeOverflow, + InvalidExportImportSource, + InvalidKeywordAsAlias, + InvalidDefaultImport, + TrailingDecorators, + GeneratorConstructor, + AwaitOrYieldIdentInModule, + HtmlCommentInWebCompat, + StrictInvalidLetInExprPos, + NotAssignableLetArgs, + ForOfLet, + InvalidInvokedBlockBodyArrow, + InvalidAccessedBlockBodyArrow, + UnexpectedStrictReserved, + StrictEvalArguments, + InvalidDecoratorSemicolon, + StrictDelete, + InvalidPatternTail, + AsyncFunctionInSingleStatementContext, + InvalidTernaryYield, + InvalidArrowPostfix, + InvalidObjLitKeyStar, + DeletePrivateField, + InvalidStaticClassFieldConstructor, + InvalidClassFieldConstructor, + InvalidClassFieldArgEval, + InvalidGeneratorFunction, + AsyncRestrictedProd, + UnexpectedCharAfterObjLit, + InvalidObjLitKey, + InvalidKeyToken, + LabelRedeclaration, + InvalidNestedStatement, + UnknownLabel, + InvalidImportTail, + ImportNotOneArg, + InvalidImportNew, + InvalidSpreadInImport, + UncompleteArrow, + DuplicateBinding, + DuplicateExportBinding, + UndeclaredExportedBinding, + UnexpectedPrivateField, + DuplicateLetConstBinding, + CantAssignToValidRHS, + ContinuousNumericSeparator, + TrailingNumericSeparator, + InvalidJSXAttributeValue, + ExpectedJSXClosingTag, + AdjacentJSXElements, + InvalidNonEmptyJSXExpr, + DuplicateIdentifier, + ShadowedCatchClause, + InvalidDotProperty, + UnclosedSpreadElement, + CatchWithoutTry, + FinallyWithoutTry, + UnCorrespondingFragmentTag, + InvalidCoalescing, + OptionalChainingNoTemplate, + OptionalChainingNoSuper, + OptionalChainingNoNew, + ImportMetaOutsideModule, + InvalidLeadingDecorator +} + +export const errorMessages: { + [key: string]: string; +} = { + [Errors.Unexpected]: 'Unexpected token', + [Errors.UnexpectedToken]: "Unexpected token: '%0'", + [Errors.StrictOctalEscape]: 'Octal escape sequences are not allowed in strict mode', + [Errors.TemplateOctalLiteral]: 'Octal escape sequences are not allowed in template strings', + [Errors.InvalidPrivateIdentifier]: 'Unexpected token `#`', + [Errors.InvalidUnicodeEscapeSequence]: 'Illegal Unicode escape sequence', + [Errors.InvalidCodePoint]: 'Invalid code point %0', + [Errors.InvalidHexEscapeSequence]: 'Invalid hexadecimal escape sequence', + [Errors.StrictOctalLiteral]: 'Octal literals are not allowed in strict mode', + [Errors.StrictDecimalWithLeadingZero]: 'Decimal integer literals with a leading zero are forbidden in strict mode', + [Errors.ExpectedNumberInRadix]: 'Expected number in radix %0', + [Errors.CantAssignToValidRHS]: 'Invalid left-hand side assignment to a destructible right-hand side', + [Errors.MissingExponent]: 'Non-number found after exponent indicator', + [Errors.InvalidBigInt]: 'Invalid BigIntLiteral', + [Errors.IDStartAfterNumber]: 'No identifiers allowed directly after numeric literal', + [Errors.InvalidEightAndNine]: 'Escapes \\8 or \\9 are not syntactically valid escapes', + [Errors.UnterminatedString]: 'Unterminated string literal', + [Errors.UnterminatedTemplate]: 'Unterminated template literal', + [Errors.UnterminatedComment]: 'Multiline comment was not closed properly', + [Errors.InvalidDynamicUnicode]: 'The identifier contained dynamic unicode escape that was not closed', + [Errors.IllegalCharacter]: "Illegal character '%0'", + [Errors.MissingHexDigits]: 'Missing hexadecimal digits', + [Errors.InvalidImplicitOctals]: 'Invalid implicit octal', + [Errors.InvalidStringLT]: 'Invalid line break in string literal', + [Errors.InvalidEscapeIdentifier]: 'Only unicode escapes are legal in identifier names', + [Errors.ExpectedToken]: "Expected '%0'", + [Errors.CantAssignTo]: 'Invalid left-hand side in assignment', + [Errors.InvalidLHSAsyncArrow]: 'Invalid left-hand side in async arrow', + [Errors.SuperNoConstructor]: + 'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass', + [Errors.InvalidSuperProperty]: 'Member access on super must be in a method', + [Errors.AwaitInParameter]: 'Await expression not allowed in formal parameter', + [Errors.YieldInParameter]: 'Yield expression not allowed in formal parameter', + [Errors.InvalidEscapedKeyword]: "Unexpected token: 'escaped keyword'", + [Errors.InvalidExponentiationLHS]: + 'Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses', + [Errors.AsyncFunctionInSingleStatementContext]: + 'Async functions can only be declared at the top level or inside a block', + [Errors.UnterminatedRegExp]: 'Unterminated regular expression', + [Errors.UnexpectedTokenRegExpFlag]: 'Unexpected regular expression flag', + [Errors.DuplicateRegExpFlag]: "Duplicate regular expression flag '%0'", + [Errors.AccessorWrongArgs]: '%0 functions must have exactly %1 argument%2', + [Errors.BadSetterRestParameter]: 'Setter function argument must not be a rest parameter', + [Errors.DeclNoName]: '%0 declaration must have a name in this context', + [Errors.StrictFunctionName]: + 'Function name may not contain any reserved words or be eval or arguments in strict mode', + [Errors.RestMissingArg]: 'The rest operator is missing an argument', + [Errors.InvalidGeneratorGetter]: 'A getter cannot be a generator', + [Errors.InvalidComputedPropName]: 'A computed property name must be followed by a colon or paren', + [Errors.InvalidObjLitKey]: 'Object literal keys that are strings or numbers must be a method or have a colon', + [Errors.InvalidAsyncGetter]: 'Found `* async x(){}` but this should be `async * x(){}`', + [Errors.InvalidGetSetGenerator]: 'Getters and setters can not be generators', + [Errors.InvalidGenMethodShorthand]: "'%0' can not be generator method", + [Errors.InvalidLineBreak]: "No line break is allowed after '=>'", + [Errors.InvalidArrowDestructLHS]: 'The left-hand side of the arrow can only be destructed through assignment', + [Errors.InvalidBindingDestruct]: 'The binding declaration is not destructible', + [Errors.InvalidAsyncArrow]: 'Async arrow can not be followed by new expression', + [Errors.StaticPrototype]: "Classes may not have a static property named 'prototype'", + [Errors.InvalidConstructor]: 'Class constructor may not be a %0', + [Errors.DuplicateConstructor]: 'Duplicate constructor method in class', + [Errors.InvalidIncDecTarget]: 'Invalid increment/decrement operand', + [Errors.InvalidIncDecNew]: 'Invalid use of `new` keyword on an increment/decrement expression', + [Errors.InvalidAssignmentTarget]: '`=>` is an invalid assignment target', + [Errors.InvalidRestTrailing]: 'Rest element may not have a trailing comma', + [Errors.DeclarationMissingInitializer]: 'Missing initializer in %0 declaration', + [Errors.ForInOfLoopInitializer]: "'for-%0' loop head declarations can not have an initializer", + [Errors.ForInOfLoopMultiBindings]: 'Invalid left-hand side in for-%0 loop: Must have a single binding', + [Errors.InvalidShorthandPropInit]: 'Invalid shorthand property initializer', + [Errors.DuplicateProto]: 'Property name __proto__ appears more than once in object literal', + [Errors.InvalidLetBoundName]: 'Let is disallowed as a lexically bound name', + [Errors.InvalidNewUnary]: "Invalid use of '%0' inside new expression", + [Errors.IllegalUseStrict]: "Illegal 'use strict' directive in function with non-simple parameter list", + [Errors.DisallowedLetInStrict]: 'Identifier "let" disallowed as left-hand side expression in strict mode', + [Errors.IllegalContinue]: 'Illegal continue statement', + [Errors.IllegalBreak]: 'Illegal break statement', + [Errors.InvalidLetBracket]: 'Cannot have `let[...]` as a var name in strict mode', + [Errors.InvalidDestructuringTarget]: 'Invalid destructuring assignment target', + [Errors.RestDefaultInitializer]: 'Rest parameter may not have a default initializer', + [Errors.InvalidRestNotLast]: 'The rest argument must the be last parameter', + [Errors.InvalidRestArg]: 'Invalid rest argument', + [Errors.StrictFunction]: 'In strict mode code, functions can only be declared at top level or inside a block', + [Errors.SloppyFunction]: + 'In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement', + [Errors.WebCompatFunction]: + 'Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement', + [Errors.ClassForbiddenAsStatement]: "Class declaration can't appear in single-statement context", + [Errors.CantAssignToInOfForLoop]: 'Invalid left-hand side in for-%0', + [Errors.InvalidAssignmentInOfForLoop]: 'Invalid assignment in for-%0', + [Errors.InvalidForAwait]: 'for await (... of ...) is only valid in async functions and async generators', + [Errors.InvalidTemplateContinuation]: + 'The first token after the template expression should be a continuation of the template', + [Errors.UnexpectedLetStrictReserved]: + '`let` declaration not allowed here and `let` cannot be a regular var name in strict mode', + [Errors.RestrictedLetProduction]: '`let \n [` is a restricted production at the start of a statement', + [Errors.InvalidCatchParams]: 'Catch clause requires exactly one parameter, not more (and no trailing comma)', + [Errors.InvalidCatchParamDefault]: 'Catch clause parameter does not support default values', + [Errors.NoCatchOrFinally]: 'Missing catch or finally after try', + [Errors.MultipleDefaultsInSwitch]: 'More than one default clause in switch statement', + [Errors.NewlineAfterThrow]: 'Illegal newline after throw', + [Errors.StrictWith]: 'Strict mode code may not include a with statement', + [Errors.IllegalReturn]: 'Illegal return statement', + [Errors.InvalidForLHSBinding]: 'The left hand side of the for-header binding declaration is not destructible', + [Errors.InvalidNewTarget]: 'new.target only allowed within functions', + [Errors.MissingPrivateIdentifier]: "'#' not followed by identifier", + [Errors.KeywordNotId]: 'Invalid keyword', + [Errors.InvalidLetClassName]: "Can not use 'let' as a class name", + [Errors.InvalidLetConstBinding]: "'A lexical declaration can't define a 'let' binding", + [Errors.InvalidStrictLet]: 'Can not use `let` as variable name in strict mode', + [Errors.DisallowedInContext]: "'%0' may not be used as an identifier in this context", + [Errors.AwaitOutsideAsync]: 'Await is only valid in async functions', + [Errors.InvalidImportExportSloppy]: 'The %0 keyword can only be used with the module goal', + [Errors.UnicodeOverflow]: 'Unicode codepoint must not be greater than 0x10FFFF', + [Errors.InvalidExportImportSource]: '%0 source must be string', + [Errors.InvalidKeywordAsAlias]: 'Only a identifier can be used to indicate alias', + [Errors.InvalidDefaultImport]: "Only '*' or '{...}' can be imported after default", + [Errors.TrailingDecorators]: 'Trailing decorator may be followed by method', + [Errors.GeneratorConstructor]: "Decorators can't be used with a constructor", + [Errors.HtmlCommentInWebCompat]: 'HTML comments are only allowed with web compatibility (Annex B)', + [Errors.StrictInvalidLetInExprPos]: "The identifier 'let' must not be in expression position in strict mode", + [Errors.NotAssignableLetArgs]: 'Cannot assign to `eval` and `arguments` in strict mode', + [Errors.ForOfLet]: "The left-hand side of a for-of loop may not start with 'let'", + [Errors.InvalidInvokedBlockBodyArrow]: 'Block body arrows can not be immediately invoked without a group', + [Errors.InvalidAccessedBlockBodyArrow]: 'Block body arrows can not be immediately accessed without a group', + [Errors.UnexpectedStrictReserved]: 'Unexpected strict mode reserved word', + [Errors.StrictEvalArguments]: 'Unexpected eval or arguments in strict mode', + [Errors.InvalidDecoratorSemicolon]: 'Decorators must not be followed by a semicolon', + [Errors.StrictDelete]: 'Calling delete on expression not allowed in strict mode', + [Errors.InvalidPatternTail]: 'Pattern can not have a tail', + [Errors.InvalidTernaryYield]: 'Can not have a `yield` expression on the left side of a ternary', + [Errors.InvalidArrowPostfix]: 'An arrow function can not have a postfix update operator', + [Errors.InvalidObjLitKeyStar]: 'Invalid object literal key character after generator star', + [Errors.DeletePrivateField]: 'Private fields can not be deleted', + [Errors.InvalidClassFieldConstructor]: 'Classes may not have a field called constructor', + [Errors.InvalidStaticClassFieldConstructor]: 'Classes may not have a private element named constructor', + [Errors.InvalidClassFieldArgEval]: 'A class field initializer may not contain arguments', + [Errors.InvalidGeneratorFunction]: 'Generators can only be declared at the top level or inside a block', + [Errors.AsyncRestrictedProd]: 'Async methods are a restricted production and cannot have a newline following it', + [Errors.UnexpectedCharAfterObjLit]: 'Unexpected character after object literal property name', + [Errors.InvalidKeyToken]: 'Invalid key token', + [Errors.LabelRedeclaration]: "Label '%0' has already been declared", + [Errors.InvalidNestedStatement]: 'continue statement must be nested within an iteration statement', + [Errors.UnknownLabel]: "Undefined label '%0'", + [Errors.InvalidImportTail]: 'Trailing comma is disallowed inside import(...) arguments', + [Errors.ImportNotOneArg]: 'import() requires exactly one argument', + [Errors.InvalidImportNew]: 'Cannot use new with import(...)', + [Errors.InvalidSpreadInImport]: '... is not allowed in import()', + [Errors.UncompleteArrow]: "Expected '=>'", + [Errors.DuplicateBinding]: "Duplicate binding '%0'", + [Errors.DuplicateExportBinding]: "Cannot export a duplicate name '%0'", + [Errors.DuplicateLetConstBinding]: 'Duplicate %0 for-binding', + [Errors.UndeclaredExportedBinding]: "Exported binding '%0' needs to refer to a top-level declared variable", + [Errors.UnexpectedPrivateField]: 'Unexpected private field', + [Errors.TrailingNumericSeparator]: 'Numeric separators are not allowed at the end of numeric literals', + [Errors.ContinuousNumericSeparator]: 'Only one underscore is allowed as numeric separator', + [Errors.InvalidJSXAttributeValue]: 'JSX value should be either an expression or a quoted JSX text', + [Errors.ExpectedJSXClosingTag]: 'Expected corresponding JSX closing tag for %0', + [Errors.AdjacentJSXElements]: 'Adjacent JSX elements must be wrapped in an enclosing tag', + [Errors.InvalidNonEmptyJSXExpr]: "JSX attributes must only be assigned a non-empty 'expression'", + [Errors.DuplicateIdentifier]: "'%0' has already been declared", + [Errors.ShadowedCatchClause]: "'%0' shadowed a catch clause binding", + [Errors.InvalidDotProperty]: 'Dot property must be an identifier', + [Errors.UnclosedSpreadElement]: 'Encountered invalid input after spread/rest argument', + [Errors.CatchWithoutTry]: 'Catch without try', + [Errors.FinallyWithoutTry]: 'Finally without try', + [Errors.UnCorrespondingFragmentTag]: 'Expected corresponding closing tag for JSX fragment', + [Errors.InvalidCoalescing]: + 'Coalescing and logical operators used together in the same expression must be disambiguated with parentheses', + [Errors.OptionalChainingNoTemplate]: 'Invalid tagged template on optional chain', + [Errors.OptionalChainingNoSuper]: 'Invalid optional chain from super property', + [Errors.OptionalChainingNoNew]: 'Invalid optional chain from new expression', + [Errors.ImportMetaOutsideModule]: 'Cannot use "import.meta" outside a module', + [Errors.InvalidLeadingDecorator]: 'Leading decorators must be attached to a class declaration' +}; + +export class ParseError extends SyntaxError { + public loc: { + line: ParseError['line']; + column: ParseError['column']; + }; + public index: number; + public line: number; + public column: number; + public description: string; + /*eslint-disable*/ + constructor(startindex: number, line: number, column: number, type: Errors, ...params: string[]) { + const message = + '[' + line + ':' + column + ']: ' + errorMessages[type].replace(/%(\d+)/g, (_: string, i: number) => params[i]); + super(`${message}`); + this.index = startindex; + this.line = line; + this.column = column; + this.description = message; + /* Acorn compat */ + this.loc = { + line, + column + } as any; + } +} +/** + * Throws an error + * + * @export + * @param {ParserState} state + * @param {Errors} type + * @param {...string[]} params + * @returns {never} + */ +export function report(parser: ParserState, type: Errors, ...params: string[]): never { + throw new ParseError(parser.index, parser.line, parser.column, type, ...params); +} + +export function reportScopeError(scope: any): never { + throw new ParseError(scope.index, scope.line, scope.column, scope.type, scope.params); +} + +/** + * Throws an error at a given position + * + * @export + * @param {ParserState} state + * @param {number} index + * @param {number} line + * @param {number} column + * @param {Errors} type + * @param {...string[]} params + */ +export function reportMessageAt(index: number, line: number, column: number, type: Errors, ...params: string[]): never { + throw new ParseError(index, line, column, type, ...params); +} + +/** + * Throws an error at a given position + * + * @export + * @param {ParserState} state + * @param {number} index + * @param {number} line + * @param {number} column + * @param {Errors} type + */ +export function reportScannerError(index: number, line: number, column: number, type: Errors): never { + throw new ParseError(index, line, column, type); +} diff --git a/node_modules/meriyah/src/estree.ts b/node_modules/meriyah/src/estree.ts new file mode 100644 index 0000000..31d8416 --- /dev/null +++ b/node_modules/meriyah/src/estree.ts @@ -0,0 +1,809 @@ +export interface _Node { + start?: number; + end?: number; + range?: [number, number]; + loc?: SourceLocation | null; +} + +export interface SourceLocation { + source?: string | null; + start: Position; + end: Position; +} + +export interface Position { + /** >= 1 */ + line: number; + /** >= 0 */ + column: number; +} + +export type Labels = any; + +export type IdentifierOrExpression = Identifier | Expression | ArrowFunctionExpression; + +export type ArgumentExpression = + | ArrayExpression + | AssignmentExpression + | ConditionalExpression + | Literal + | SpreadElement + | BinaryExpression + | LogicalExpression + | SequenceExpression; + +export type CommentType = 'SingleLine' | 'MultiLine' | 'HTMLOpen' | 'HTMLClose' | 'HashbangComment'; + +export interface Comment { + type: CommentType; + value: string; + start?: number; + end?: number; + loc?: SourceLocation | null; +} + +export type Node = + | ArrayExpression + | ArrayPattern + | ArrowFunctionExpression + | AssignmentExpression + | AssignmentPattern + | AwaitExpression + | BigIntLiteral + | BinaryExpression + | BlockStatement + | BreakStatement + | CallExpression + | ChainExpression + | ImportExpression + | CatchClause + | ClassBody + | ClassDeclaration + | ClassExpression + | ConditionalExpression + | ContinueStatement + | DebuggerStatement + | Decorator + | DoWhileStatement + | EmptyStatement + | ExportAllDeclaration + | ExportDefaultDeclaration + | ExportNamedDeclaration + | ExportSpecifier + | ExpressionStatement + | PropertyDefinition + | ForInStatement + | ForOfStatement + | ForStatement + | FunctionDeclaration + | FunctionExpression + | Identifier + | IfStatement + | Import + | ImportDeclaration + | ImportDefaultSpecifier + | ImportNamespaceSpecifier + | ImportSpecifier + | JSXNamespacedName + | JSXAttribute + | JSXClosingElement + | JSXClosingFragment + | JSXElement + | JSXEmptyExpression + | JSXExpressionContainer + | JSXFragment + | JSXIdentifier + | JSXOpeningElement + | JSXOpeningFragment + | JSXSpreadAttribute + | JSXSpreadChild + | JSXMemberExpression + | JSXText + | LabeledStatement + | Literal + | LogicalExpression + | MemberExpression + | MetaProperty + | MethodDefinition + | NewExpression + | ObjectExpression + | ObjectPattern + | ParenthesizedExpression + | PrivateIdentifier + | Program + | Property + | RegExpLiteral + | RestElement + | ReturnStatement + | SequenceExpression + | SpreadElement + | Super + | SwitchCase + | SwitchStatement + | TaggedTemplateExpression + | TemplateElement + | TemplateLiteral + | ThisExpression + | ThrowStatement + | TryStatement + | UpdateExpression + | UnaryExpression + | VariableDeclaration + | VariableDeclarator + | WhileStatement + | WithStatement + | YieldExpression; +export type BindingPattern = ArrayPattern | ObjectPattern | Identifier; +export type ClassElement = FunctionExpression | MethodDefinition; +export type DeclarationStatement = + | ClassDeclaration + | ClassExpression + | ExportDefaultDeclaration + | ExportAllDeclaration + | ExportNamedDeclaration + | FunctionDeclaration; +export type EntityName = Identifier; +export type ExportDeclaration = ClassDeclaration | ClassExpression | FunctionDeclaration | VariableDeclaration; +export type Expression = + | ArrowFunctionExpression + | AssignmentExpression + | BinaryExpression + | ConditionalExpression + | MetaProperty + | ChainExpression + | JSXClosingElement + | JSXClosingFragment + | JSXExpressionContainer + | JSXOpeningElement + | JSXOpeningFragment + | JSXSpreadChild + | LogicalExpression + | NewExpression + | RestElement + | SequenceExpression + | SpreadElement + | AwaitExpression + | LeftHandSideExpression + | UnaryExpression + | UpdateExpression + | YieldExpression; +export type ForInitialiser = Expression | VariableDeclaration; +export type ImportClause = ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier; +export type IterationStatement = DoWhileStatement | ForInStatement | ForOfStatement | ForStatement | WhileStatement; +export type JSXChild = JSXElement | JSXExpression | JSXFragment | JSXText; +export type JSXExpression = JSXEmptyExpression | JSXSpreadChild | JSXExpressionContainer; +export type JSXTagNameExpression = JSXIdentifier | JSXMemberExpression | JSXNamespacedName; +export type LeftHandSideExpression = + | CallExpression + | ChainExpression + | ImportExpression + | ClassExpression + | ClassDeclaration + | FunctionExpression + | LiteralExpression + | MemberExpression + | PrimaryExpression + | TaggedTemplateExpression; +export type LiteralExpression = Literal | TemplateLiteral; +export type ObjectLiteralElementLike = MethodDefinition | Property | RestElement | SpreadElement; +export type Parameter = AssignmentPattern | RestElement | ArrayPattern | ObjectPattern | Identifier; +export type PrimaryExpression = + | ArrayExpression + | ArrayPattern + | ClassExpression + | FunctionExpression + | Identifier + | Import + | JSXElement + | JSXFragment + | JSXOpeningElement + | Literal + | LiteralExpression + | MetaProperty + | ObjectExpression + | ObjectPattern + | Super + | TemplateLiteral + | ThisExpression; +export type PrimaryExpressionExtended = + | ArrayExpression + | ArrowFunctionExpression + | ArrayPattern + | AwaitExpression + | Expression + | ClassExpression + | FunctionExpression + | Identifier + | Import + | JSXElement + | JSXFragment + | JSXOpeningElement + | Literal + | LiteralExpression + | MetaProperty + | ObjectExpression + | ObjectPattern + | PrivateIdentifier + | NewExpression + | Super + | TemplateLiteral + | ThisExpression + | UnaryExpression + | UpdateExpression; +export type PropertyName = Identifier | Literal; +export type Statement = + | BlockStatement + | BreakStatement + | ContinueStatement + | DebuggerStatement + | DeclarationStatement + | EmptyStatement + | ExpressionStatement + | IfStatement + | IterationStatement + | ImportDeclaration + | LabeledStatement + | ReturnStatement + | SwitchStatement + | ThrowStatement + | TryStatement + | VariableDeclaration + | WithStatement; + +interface ClassDeclarationBase extends _Node { + id: Identifier | null; + body: ClassBody; + superClass: Expression | null; + decorators?: Decorator[]; +} + +interface FunctionDeclarationBase extends _Node { + id: Identifier | null; + generator: boolean; + async: boolean; + params: Parameter[]; + body?: BlockStatement | null; +} + +interface MethodDefinitionBase extends _Node { + key: Expression | PrivateIdentifier | null; + value: FunctionExpression; + computed: boolean; + static: boolean; + kind: 'method' | 'get' | 'set' | 'constructor'; + decorators?: Decorator[]; +} + +export interface ArrayExpression extends _Node { + type: 'ArrayExpression'; + elements: (Expression | SpreadElement | null)[]; +} + +export interface ArrayPattern extends _Node { + type: 'ArrayPattern'; + elements: Expression[]; +} + +export interface ArrowFunctionExpression extends _Node { + type: 'ArrowFunctionExpression'; + params: Parameter[]; + body: Expression | BlockStatement; + async: boolean; + expression: boolean; +} + +export interface AssignmentExpression extends _Node { + type: 'AssignmentExpression'; + operator: string; + left: Expression; + right: Expression; +} + +export interface AssignmentPattern extends _Node { + type: 'AssignmentPattern'; + left: BindingPattern | Identifier; + right?: Expression; +} + +export interface AwaitExpression extends _Node { + type: 'AwaitExpression'; + argument: Expression; +} + +export interface BigIntLiteral extends Literal { + bigint: string; +} + +export interface BinaryExpression extends _Node { + type: 'BinaryExpression'; + operator: string; + left: Expression; + right: Expression; +} + +export interface BlockStatement extends _Node { + type: 'BlockStatement'; + body: Statement[]; +} + +export interface BreakStatement extends _Node { + type: 'BreakStatement'; + label: Identifier | null; +} + +export interface ImportExpression extends _Node { + type: 'ImportExpression'; + source: Expression; +} + +export interface ChainExpression extends _Node { + type: 'ChainExpression'; + expression: CallExpression | MemberExpression; +} + +export interface CallExpression extends _Node { + type: 'CallExpression'; + callee: any; //Expression | Super; + arguments: (Expression | SpreadElement)[]; + optional?: boolean; +} + +export interface CatchClause extends _Node { + type: 'CatchClause'; + param: BindingPattern | Identifier | null; + body: BlockStatement; +} + +export interface ClassBody extends _Node { + type: 'ClassBody'; + body: (ClassElement | PropertyDefinition)[]; +} + +export interface PropertyDefinition extends _Node { + type: 'PropertyDefinition'; + key: PrivateIdentifier | Expression; + value: any; + decorators?: Decorator[] | null; + computed: boolean; + static: boolean; +} + +export interface PrivateIdentifier extends _Node { + type: 'PrivateIdentifier'; + name: string; +} + +export interface ClassDeclaration extends ClassDeclarationBase { + type: 'ClassDeclaration'; +} + +export interface ClassExpression extends ClassDeclarationBase { + type: 'ClassExpression'; +} + +export interface ConditionalExpression extends _Node { + type: 'ConditionalExpression'; + test: Expression; + consequent: Expression; + alternate: Expression; +} + +export interface ContinueStatement extends _Node { + type: 'ContinueStatement'; + label: Identifier | null; +} + +export interface DebuggerStatement extends _Node { + type: 'DebuggerStatement'; +} + +export interface Decorator extends _Node { + type: 'Decorator'; + expression: LeftHandSideExpression; +} + +export interface DoWhileStatement extends _Node { + type: 'DoWhileStatement'; + test: Expression; + body: Statement; +} + +export interface EmptyStatement extends _Node { + type: 'EmptyStatement'; +} + +export interface ExportAllDeclaration extends _Node { + type: 'ExportAllDeclaration'; + source: Literal; + exported: Identifier | null; +} + +export interface ExportDefaultDeclaration extends _Node { + type: 'ExportDefaultDeclaration'; + declaration: ExportDeclaration | Expression; +} + +export interface ExportNamedDeclaration extends _Node { + type: 'ExportNamedDeclaration'; + declaration: ExportDeclaration | null; + specifiers: ExportSpecifier[]; + source: Literal | null; +} + +export interface ExportSpecifier extends _Node { + type: 'ExportSpecifier'; + local: Identifier; + exported: Identifier; +} + +export interface ExpressionStatement extends _Node { + type: 'ExpressionStatement'; + expression: Expression; +} + +export interface ForInStatement extends _Node { + type: 'ForInStatement'; + left: ForInitialiser; + right: Expression; + body: Statement; +} + +export interface ForOfStatement extends _Node { + type: 'ForOfStatement'; + left: ForInitialiser; + right: Expression; + body: Statement; + await: boolean; +} + +export interface ForStatement extends _Node { + type: 'ForStatement'; + init: Expression | ForInitialiser | null; + test: Expression | null; + update: Expression | null; + body: Statement; +} + +export interface FunctionDeclaration extends FunctionDeclarationBase { + type: 'FunctionDeclaration'; +} + +export interface FunctionExpression extends FunctionDeclarationBase { + type: 'FunctionExpression'; +} + +export interface Identifier extends _Node { + type: 'Identifier'; + name: string; +} + +export interface IfStatement extends _Node { + type: 'IfStatement'; + test: Expression; + consequent: Statement; + alternate: Statement | null; +} + +export interface Import extends _Node { + type: 'Import'; +} + +export interface ImportDeclaration extends _Node { + type: 'ImportDeclaration'; + source: Literal; + specifiers: ImportClause[]; +} + +export interface ImportDefaultSpecifier extends _Node { + type: 'ImportDefaultSpecifier'; + local: Identifier; +} + +export interface ImportNamespaceSpecifier extends _Node { + type: 'ImportNamespaceSpecifier'; + local: Identifier; +} + +export interface ImportSpecifier extends _Node { + type: 'ImportSpecifier'; + local: Identifier; + imported: Identifier; +} + +export interface JSXNamespacedName extends _Node { + type: 'JSXNamespacedName'; + namespace: JSXIdentifier | JSXMemberExpression; + name: JSXIdentifier; +} + +export type JSXAttributeValue = + | JSXIdentifier + | Literal + | JSXElement + | JSXFragment + | JSXExpressionContainer + | JSXSpreadChild + | null; + +export interface JSXAttribute extends _Node { + type: 'JSXAttribute'; + name: JSXNamespacedName | JSXIdentifier; + value: JSXAttributeValue; +} + +export interface JSXClosingElement extends _Node { + type: 'JSXClosingElement'; + name: JSXTagNameExpression; +} + +export interface JSXClosingFragment extends _Node { + type: 'JSXClosingFragment'; +} + +export interface JSXElement extends _Node { + type: 'JSXElement'; + openingElement: JSXOpeningElement; + closingElement: JSXClosingElement | null; + children: JSXChild[]; +} + +export interface JSXEmptyExpression extends _Node { + type: 'JSXEmptyExpression'; +} + +export interface JSXExpressionContainer extends _Node { + type: 'JSXExpressionContainer'; + expression: Expression | JSXEmptyExpression; +} + +export interface JSXFragment extends _Node { + type: 'JSXFragment'; + openingFragment: JSXOpeningFragment; + closingFragment: JSXClosingFragment; + children: JSXChild[]; +} + +export interface JSXIdentifier extends _Node { + type: 'JSXIdentifier'; + name: string; +} + +export interface JSXMemberExpression extends _Node { + type: 'JSXMemberExpression'; + object: JSXTagNameExpression; + property: JSXIdentifier; +} + +export interface JSXOpeningElement extends _Node { + type: 'JSXOpeningElement'; + selfClosing: boolean; + name: JSXTagNameExpression; + attributes: (JSXAttribute | JSXSpreadAttribute)[]; +} + +export interface JSXOpeningFragment extends _Node { + type: 'JSXOpeningFragment'; +} + +export interface JSXSpreadAttribute extends _Node { + type: 'JSXSpreadAttribute'; + argument: Expression; +} + +export interface JSXSpreadChild extends _Node { + type: 'JSXSpreadChild'; + expression: Expression | JSXEmptyExpression; +} + +export interface JSXText extends _Node { + type: 'JSXText'; + value: string; + raw?: string; +} + +export interface LabeledStatement extends _Node { + type: 'LabeledStatement'; + label: Identifier; + body: Statement; +} + +export interface Literal extends _Node { + type: 'Literal'; + value: boolean | number | string | null | RegExp | bigint; + raw?: string; +} + +export interface LogicalExpression extends _Node { + type: 'LogicalExpression'; + operator: string; + left: Expression; + right: Expression; +} + +export interface MemberExpression extends _Node { + type: 'MemberExpression'; + object: Expression | Super; + property: Expression | PrivateIdentifier; + computed?: boolean; + optional?: boolean; +} + +export type Pattern = Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression; + +export interface MetaProperty extends _Node { + type: 'MetaProperty'; + meta: Identifier; + property: Identifier; +} + +export interface MethodDefinition extends MethodDefinitionBase { + type: 'MethodDefinition'; +} + +export interface NewExpression extends _Node { + type: 'NewExpression'; + callee: LeftHandSideExpression; + arguments: Expression[]; +} + +export interface ObjectExpression extends _Node { + type: 'ObjectExpression'; + properties: ObjectLiteralElementLike[]; +} + +export interface ObjectPattern extends _Node { + type: 'ObjectPattern'; + properties: ObjectLiteralElementLike[]; +} + +export interface Program extends _Node { + type: 'Program'; + body: Statement[]; + sourceType: 'module' | 'script'; +} + +export interface ParenthesizedExpression extends _Node { + type: 'ParenthesizedExpression'; + expression: Expression; +} + +export interface Property extends _Node { + type: 'Property'; + key: Expression; + value: Expression | AssignmentPattern | BindingPattern | Identifier; + computed: boolean; + method: boolean; + shorthand: boolean; + kind: 'init' | 'get' | 'set'; +} + +export interface RegExpLiteral extends Literal { + regex: { + pattern: string; + flags: string; + }; +} + +export interface RestElement extends _Node { + type: 'RestElement'; + argument: BindingPattern | Identifier | Expression | PropertyName; + value?: AssignmentPattern; +} + +export interface ReturnStatement extends _Node { + type: 'ReturnStatement'; + argument: Expression | null; +} + +export interface SequenceExpression extends _Node { + type: 'SequenceExpression'; + expressions: Expression[]; +} + +export type SpreadArgument = BindingPattern | Identifier | Expression | PropertyName | SpreadElement; + +export interface SpreadElement extends _Node { + type: 'SpreadElement'; + argument: SpreadArgument; +} + +export interface Super extends _Node { + type: 'Super'; +} + +export interface SwitchCase extends _Node { + type: 'SwitchCase'; + test: Expression | null; + consequent: Statement[]; +} + +export interface SwitchStatement extends _Node { + type: 'SwitchStatement'; + discriminant: Expression; + cases: SwitchCase[]; +} + +export interface TaggedTemplateExpression extends _Node { + type: 'TaggedTemplateExpression'; + tag: Expression; + quasi: TemplateLiteral; +} + +export interface TemplateElement extends _Node { + type: 'TemplateElement'; + value: { + raw: string; + cooked: string | null; + }; + tail: boolean; +} + +export interface TemplateLiteral extends _Node { + type: 'TemplateLiteral'; + quasis: TemplateElement[]; + expressions: Expression[]; +} + +export interface ThisExpression extends _Node { + type: 'ThisExpression'; +} + +export interface ThrowStatement extends _Node { + type: 'ThrowStatement'; + argument: Expression; +} + +export interface TryStatement extends _Node { + type: 'TryStatement'; + block: BlockStatement; + handler: CatchClause | null; + finalizer: BlockStatement | null; +} + +export type UnaryOperator = '-' | '+' | '!' | '~' | 'typeof' | 'void' | 'delete'; +export type UpdateOperator = '++' | '--'; + +export interface UpdateExpression extends _Node { + type: 'UpdateExpression'; + operator: UpdateOperator; + argument: Expression; + prefix: boolean; +} + +export interface UnaryExpression extends _Node { + type: 'UnaryExpression'; + operator: UnaryOperator; + prefix: true; + argument: Expression; +} + +export interface VariableDeclaration extends _Node { + type: 'VariableDeclaration'; + declarations: VariableDeclarator[]; + kind: 'let' | 'const' | 'var'; +} + +export interface VariableDeclarator extends _Node { + type: 'VariableDeclarator'; + id: Expression | BindingPattern | Identifier; + init: Expression | null; + definite?: boolean; +} + +export interface WhileStatement extends _Node { + type: 'WhileStatement'; + test: Expression; + body: Statement; +} + +export interface WithStatement extends _Node { + type: 'WithStatement'; + object: Expression; + body: Statement; +} + +export interface YieldExpression extends _Node { + type: 'YieldExpression'; + delegate: boolean; + argument?: Expression | null; +} diff --git a/node_modules/meriyah/src/lexer/charClassifier.ts b/node_modules/meriyah/src/lexer/charClassifier.ts new file mode 100644 index 0000000..eb31389 --- /dev/null +++ b/node_modules/meriyah/src/lexer/charClassifier.ts @@ -0,0 +1,449 @@ +import { unicodeLookup } from '../unicode'; +import { Chars } from '../chars'; + +export const enum CharFlags { + None = 0, + IdentifierStart = 1 << 0, + IdentifierPart = 1 << 1, + KeywordCandidate = 1 << 2, + LineTerminator = 1 << 3, // ECMA-262 11.3 Line Terminators + Decimal = 1 << 4, + Octal = 1 << 5, + Hex = 1 << 6, + Binary = 1 << 7, + Exponent = 1 << 8, + ImplicitOctalDigits = 1 << 9, + CarriageReturn = 1 << 10, + LineFeed = 1 << 11, + Underscore = 1 << 12, + StringLiteral = 1 << 13, + JSXToken = 1 << 14, + Hyphen = 1 << 15, +} + +/** + * Lookup table for mapping a codepoint to a set of flags + */ +export const CharTypes = [ + CharFlags.None /* 0x00 */, + CharFlags.None /* 0x01 */, + CharFlags.None /* 0x02 */, + CharFlags.None /* 0x03 */, + CharFlags.None /* 0x04 */, + CharFlags.None /* 0x05 */, + CharFlags.None /* 0x06 */, + CharFlags.None /* 0x07 */, + CharFlags.None /* 0x08 */, + CharFlags.None /* 0x09 */, + CharFlags.LineTerminator | CharFlags.CarriageReturn /* 0x0A */, + CharFlags.None /* 0x0B */, + CharFlags.None /* 0x0C */, + CharFlags.LineTerminator | CharFlags.LineFeed /* 0x0D */, + CharFlags.None /* 0x0E */, + CharFlags.None /* 0x0F */, + CharFlags.None /* 0x10 */, + CharFlags.None /* 0x11 */, + CharFlags.None /* 0x12 */, + CharFlags.None /* 0x13 */, + CharFlags.None /* 0x14 */, + CharFlags.None /* 0x15 */, + CharFlags.None /* 0x16 */, + CharFlags.None /* 0x17 */, + CharFlags.None /* 0x18 */, + CharFlags.None /* 0x19 */, + CharFlags.None /* 0x1A */, + CharFlags.None /* 0x1B */, + CharFlags.None /* 0x1C */, + CharFlags.None /* 0x1D */, + CharFlags.None /* 0x1E */, + CharFlags.None /* 0x1F */, + CharFlags.None /* 0x20 */, + CharFlags.None /* 0x21 ! */, + CharFlags.StringLiteral /* 0x22 */, + CharFlags.None /* 0x23 # */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x24 $ */, + CharFlags.None /* 0x25 % */, + CharFlags.None /* 0x26 & */, + CharFlags.StringLiteral /* 0x27 */, + CharFlags.None /* 0x28 */, + CharFlags.None /* 0x29 */, + CharFlags.None /* 0x2A */, + CharFlags.Exponent /* 0x2B */, + CharFlags.None /* 0x2C */, + CharFlags.Exponent | CharFlags.Hyphen /* 0x2D */, + CharFlags.None /* 0x2E */, + CharFlags.None /* 0x2F */, + CharFlags.IdentifierPart | CharFlags.Decimal | CharFlags.Binary | CharFlags.Octal | CharFlags.Hex /* 0x30 0 */, + CharFlags.IdentifierPart | CharFlags.Decimal | CharFlags.Binary | CharFlags.Octal | CharFlags.Hex /* 0x31 1 */, + CharFlags.IdentifierPart | CharFlags.Decimal | CharFlags.Octal | CharFlags.Hex /* 0x32 2 */, + CharFlags.IdentifierPart | CharFlags.Decimal | CharFlags.Octal | CharFlags.Hex /* 0x33 3 */, + CharFlags.IdentifierPart | CharFlags.Decimal | CharFlags.Octal | CharFlags.Hex /* 0x34 4 */, + CharFlags.IdentifierPart | CharFlags.Decimal | CharFlags.Octal | CharFlags.Hex /* 0x35 5 */, + CharFlags.IdentifierPart | CharFlags.Decimal | CharFlags.Octal | CharFlags.Hex /* 0x36 6 */, + CharFlags.IdentifierPart | CharFlags.Decimal | CharFlags.Octal | CharFlags.Hex /* 0x37 7 */, + CharFlags.IdentifierPart | CharFlags.Decimal | CharFlags.ImplicitOctalDigits | CharFlags.Hex /* 0x38 8 */, + CharFlags.IdentifierPart | CharFlags.Decimal | CharFlags.ImplicitOctalDigits | CharFlags.Hex /* 0x39 9 */, + CharFlags.None /* 0x3A */, + CharFlags.None /* 0x3B */, + CharFlags.JSXToken /* 0x3C < */, + CharFlags.None /* 0x3D = */, + CharFlags.None /* 0x3E > */, + CharFlags.None /* 0x3F */, + CharFlags.None /* 0x40 @ */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.Hex /* 0x41 A */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.Hex /* 0x42 B */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.Hex /* 0x43 C */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.Hex /* 0x44 D */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.Hex /* 0x45 E */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.Hex /* 0x46 F */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x47 G */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x48 H */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x49 I */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x4A J */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x4B K */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x4C L */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x4D M */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x4E N */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x4F O */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x50 P */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x51 Q */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x52 R */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x53 S */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x54 T */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x55 U */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x56 V */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x57 W */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x58 X */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x59 Y */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart /* 0x5A Z */, + CharFlags.None /* 0x5B */, + CharFlags.IdentifierStart /* 0x5C */, + CharFlags.None /* 0x5D */, + CharFlags.None /* 0x5E */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.Underscore/* 0x5F _ */, + CharFlags.None /* 0x60 */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate | CharFlags.Hex /* 0x61 a */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate | CharFlags.Hex /* 0x62 b */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate | CharFlags.Hex /* 0x63 c */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate | CharFlags.Hex /* 0x64 d */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate | CharFlags.Hex /* 0x65 e */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate | CharFlags.Hex /* 0x66 f */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x67 g */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x68 h */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x69 i */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x6A j */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x6B k */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x6C l */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x6D m */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x6E n */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x6F o */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x70 p */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x71 q */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x72 r */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x73 s */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x74 t */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x75 u */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x76 v */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x77 w */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x78 x */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x79 y */, + CharFlags.IdentifierStart | CharFlags.IdentifierPart | CharFlags.KeywordCandidate /* 0x7A z */, + CharFlags.JSXToken /* 0x7B */, + CharFlags.None /* 0x7C */, + CharFlags.None /* 0x7D */, + CharFlags.None /* 0x7E */, + CharFlags.None /* 0x7F */ +]; + +export const isIdStart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 +]; + +export const isIdPart = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0 +]; + + +export function isIdentifierStart(code: number): number { + /* + * ES2020 11.6 IdentifierStart + * $ (dollar sign) + * _ (underscore) + * or any character with the Unicode property «ID_Start». + * + * We use a lookup table for small and thus common characters for speed. + */ + return code <= 0x7F + ? isIdStart[code] + : (unicodeLookup[(code >>> 5) + 34816] >>> code) & 31 & 1; +} + +export function isIdentifierPart(code: number): any { + /* + * ES2020 11.6 IdentifierPart + * $ (dollar sign) + * _ (underscore) + * + * + * or any character with the Unicode property «ID_Continue». + * + * We use a lookup table for small and thus common characters for speed. + */ + return code <= 0x7F + ? isIdPart[code] + : (unicodeLookup[(code >>> 5) + 0] >>> code) & 31 & 1 || (code === Chars.ZeroWidthJoiner || code === Chars.ZeroWidthNonJoiner); +} diff --git a/node_modules/meriyah/src/lexer/comments.ts b/node_modules/meriyah/src/lexer/comments.ts new file mode 100644 index 0000000..fc95da2 --- /dev/null +++ b/node_modules/meriyah/src/lexer/comments.ts @@ -0,0 +1,178 @@ +import { advanceChar, LexerState, scanNewLine, consumeLineFeed } from './common'; +import { CharTypes, CharFlags } from './charClassifier'; +import { Chars } from '../chars'; +import { Context, ParserState } from '../common'; +import { report, Errors } from '../errors'; + +export const enum CommentType { + Single, + Multi, + HTMLOpen, + HTMLClose, + HashBang +} + +export const CommentTypes = ['SingleLine', 'MultiLine', 'HTMLOpen', 'HTMLClose', 'HashbangComment']; + +/** + * Skips hasbang (stage 3) + * + * @param parser Parser object + */ +export function skipHashBang(parser: ParserState): void { + // HashbangComment :: + // #! SingleLineCommentChars_opt + const source = parser.source; + if (parser.currentChar === Chars.Hash && source.charCodeAt(parser.index + 1) === Chars.Exclamation) { + advanceChar(parser); + advanceChar(parser); + skipSingleLineComment( + parser, + source, + LexerState.None, + CommentType.HashBang, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + } +} + +export function skipSingleHTMLComment( + parser: ParserState, + source: string, + state: LexerState, + context: Context, + type: CommentType, + start: number, + line: number, + column: number +): LexerState { + if (context & Context.Module) report(parser, Errors.Unexpected); + return skipSingleLineComment(parser, source, state, type, start, line, column); +} + +/** + * Skips single line comment + * + * @param parser Parser object + * @param state Lexer state + */ +export function skipSingleLineComment( + parser: ParserState, + source: string, + state: LexerState, + type: CommentType, + start: number, + line: number, + column: number +): LexerState { + const { index } = parser; + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + while (parser.index < parser.end) { + if (CharTypes[parser.currentChar] & CharFlags.LineTerminator) { + const isCR = parser.currentChar === Chars.CarriageReturn; + scanNewLine(parser); + if (isCR && parser.index < parser.end && parser.currentChar === Chars.LineFeed) + parser.currentChar = source.charCodeAt(++parser.index); + break; + } else if ((parser.currentChar ^ Chars.LineSeparator) <= 1) { + scanNewLine(parser); + break; + } + advanceChar(parser); + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + } + if (parser.onComment) { + const loc = { + start: { + line, + column + }, + end: { + line: parser.linePos, + column: parser.colPos + } + }; + // For Single, start before "//", + // For HTMLOpen, start before "" + parser.onComment(CommentTypes[type & 0xff], source.slice(index, parser.tokenPos), start, parser.tokenPos, loc); + } + return state | LexerState.NewLine; +} + +/** + * Skips multiline comment + * + * @param parser Parser object + * @param state Lexer state + */ +export function skipMultiLineComment(parser: ParserState, source: string, state: LexerState): LexerState | void { + const { index } = parser; + while (parser.index < parser.end) { + if (parser.currentChar < 0x2b) { + let skippedOneAsterisk = false; + while (parser.currentChar === Chars.Asterisk) { + if (!skippedOneAsterisk) { + state &= ~LexerState.LastIsCR; + skippedOneAsterisk = true; + } + if (advanceChar(parser) === Chars.Slash) { + advanceChar(parser); + if (parser.onComment) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onComment( + CommentTypes[CommentType.Multi & 0xff], + source.slice(index, parser.index - 2), + index - 2, // start before '/*' + parser.index, // end after '*/' + loc + ); + } + parser.tokenPos = parser.index; + parser.linePos = parser.line; + parser.colPos = parser.column; + return state; + } + } + + if (skippedOneAsterisk) { + continue; + } + + if (CharTypes[parser.currentChar] & CharFlags.LineTerminator) { + if (parser.currentChar === Chars.CarriageReturn) { + state |= LexerState.NewLine | LexerState.LastIsCR; + scanNewLine(parser); + } else { + consumeLineFeed(parser, state); + state = (state & ~LexerState.LastIsCR) | LexerState.NewLine; + } + } else { + advanceChar(parser); + } + } else if ((parser.currentChar ^ Chars.LineSeparator) <= 1) { + state = (state & ~LexerState.LastIsCR) | LexerState.NewLine; + scanNewLine(parser); + } else { + state &= ~LexerState.LastIsCR; + advanceChar(parser); + } + } + + report(parser, Errors.UnterminatedComment); +} diff --git a/node_modules/meriyah/src/lexer/common.ts b/node_modules/meriyah/src/lexer/common.ts new file mode 100644 index 0000000..de6f28d --- /dev/null +++ b/node_modules/meriyah/src/lexer/common.ts @@ -0,0 +1,140 @@ +import { Token } from '../token'; +import { Chars } from '../chars'; +import { ParserState, Flags } from '../common'; +import { unicodeLookup } from '../unicode'; +import { report, Errors } from '../errors'; + +export const enum LexerState { + None = 0, + NewLine = 1 << 0, + LastIsCR = 1 << 2 +} + +export const enum NumberKind { + ImplicitOctal = 1 << 0, + Binary = 1 << 1, + Octal = 1 << 2, + Hex = 1 << 3, + Decimal = 1 << 4, + NonOctalDecimal = 1 << 5, + Float = 1 << 6, + ValidBigIntKind = 1 << 7, + DecimalNumberKind = Decimal | NonOctalDecimal +} + +/** + * Advances this lexer's current index. + * + * @param parser The parser instance + */ +export function advanceChar(parser: ParserState): number { + parser.column++; + return (parser.currentChar = parser.source.charCodeAt(++parser.index)); +} + +/** + * Consumes multi unit code point + * + * @param parser The parser instance + * @param hi Code point to validate + */ +export function consumeMultiUnitCodePoint(parser: ParserState, hi: number): 0 | 1 { + // See: https://tc39.github.io/ecma262/#sec-ecmascript-language-types-string-type + if ((hi & 0xfc00) !== Chars.LeadSurrogateMin) return 0; + const lo = parser.source.charCodeAt(parser.index + 1); + if ((lo & 0xfc00) !== 0xdc00) return 0; + hi = parser.currentChar = Chars.NonBMPMin + ((hi & 0x3ff) << 10) + (lo & 0x3ff); + if (((unicodeLookup[(hi >>> 5) + 0] >>> hi) & 31 & 1) === 0) { + report(parser, Errors.IllegalCharacter, fromCodePoint(hi)); + } + parser.index++; + parser.column++; + return 1; +} + +/** + * Use to consume a line feed instead of `scanNewLine`. + */ +export function consumeLineFeed(parser: ParserState, state: LexerState): void { + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.flags |= Flags.NewLine; + if ((state & LexerState.LastIsCR) === 0) { + parser.column = 0; + parser.line++; + } +} + +export function scanNewLine(parser: ParserState): void { + parser.flags |= Flags.NewLine; + parser.currentChar = parser.source.charCodeAt(++parser.index); + parser.column = 0; + parser.line++; +} + +// ECMA-262 11.2 White Space +// gC=Zs, U+0009, U+000B, U+000C, U+FEFF +export function isExoticECMAScriptWhitespace(ch: number): boolean { + return ( + ch === Chars.NonBreakingSpace || + ch === Chars.ZeroWidthNoBreakSpace || + ch === Chars.NextLine || + ch === Chars.Ogham || + (ch >= Chars.EnQuad && ch <= Chars.ZeroWidthSpace) || + ch === Chars.NarrowNoBreakSpace || + ch === Chars.MathematicalSpace || + ch === Chars.IdeographicSpace || + ch === Chars.ThinSpace || + ch === Chars.ByteOrderMark + ); +} + +/** + * Optimized version of 'fromCodePoint' + * + * @param {number} code + * @returns {string} + */ +export function fromCodePoint(codePoint: number): string { + return codePoint <= 65535 + ? String.fromCharCode(codePoint) + : String.fromCharCode(codePoint >>> 10) + String.fromCharCode(codePoint & 0x3ff); +} + +/** + * Converts a value to a hex value + * + * @param code CodePoint + */ +export function toHex(code: number): number { + return code < Chars.UpperA ? code - Chars.Zero : (code - Chars.UpperA + 10) & 0xf; +} + +/** + * Converts a token to a string representation + * + * @param t Token + */ +export function convertTokenType(t: Token): string { + switch (t) { + case Token.NumericLiteral: + return 'NumericLiteral'; + case Token.StringLiteral: + return 'StringLiteral'; + case Token.FalseKeyword: + case Token.TrueKeyword: + return 'BooleanLiteral'; + case Token.NullKeyword: + return 'NullLiteral'; + case Token.RegularExpression: + return 'RegularExpression'; + case Token.TemplateContinuation: + case Token.TemplateSpan: + case Token.Template: + return 'TemplateLiteral'; + default: + if ((t & Token.IsIdentifier) === Token.IsIdentifier) return 'Identifier'; + if ((t & Token.Keyword) === Token.Keyword) return 'Keyword'; + + return 'Punctuator'; + } +} diff --git a/node_modules/meriyah/src/lexer/decodeHTML.ts b/node_modules/meriyah/src/lexer/decodeHTML.ts new file mode 100644 index 0000000..61cda52 --- /dev/null +++ b/node_modules/meriyah/src/lexer/decodeHTML.ts @@ -0,0 +1,2186 @@ +// https://html.spec.whatwg.org/entities.json +const entities: { [Identifier: string]: string } = { + AElig: '\u00C6', + AMP: '\u0026', + Aacute: '\u00C1', + Abreve: '\u0102', + Acirc: '\u00C2', + Acy: '\u0410', + Afr: '\uD835\uDD04', + Agrave: '\u00C0', + Alpha: '\u0391', + Amacr: '\u0100', + And: '\u2A53', + Aogon: '\u0104', + Aopf: '\uD835\uDD38', + ApplyFunction: '\u2061', + Aring: '\u00C5', + Ascr: '\uD835\uDC9C', + Assign: '\u2254', + Atilde: '\u00C3', + Auml: '\u00C4', + Backslash: '\u2216', + Barv: '\u2AE7', + Barwed: '\u2306', + Bcy: '\u0411', + Because: '\u2235', + Bernoullis: '\u212C', + Beta: '\u0392', + Bfr: '\uD835\uDD05', + Bopf: '\uD835\uDD39', + Breve: '\u02D8', + Bscr: '\u212C', + Bumpeq: '\u224E', + CHcy: '\u0427', + COPY: '\u00A9', + Cacute: '\u0106', + Cap: '\u22D2', + CapitalDifferentialD: '\u2145', + Cayleys: '\u212D', + Ccaron: '\u010C', + Ccedil: '\u00C7', + Ccirc: '\u0108', + Cconint: '\u2230', + Cdot: '\u010A', + Cedilla: '\u00B8', + CenterDot: '\u00B7', + Cfr: '\u212D', + Chi: '\u03A7', + CircleDot: '\u2299', + CircleMinus: '\u2296', + CirclePlus: '\u2295', + CircleTimes: '\u2297', + ClockwiseContourIntegral: '\u2232', + CloseCurlyDoubleQuote: '\u201D', + CloseCurlyQuote: '\u2019', + Colon: '\u2237', + Colone: '\u2A74', + Congruent: '\u2261', + Conint: '\u222F', + ContourIntegral: '\u222E', + Copf: '\u2102', + Coproduct: '\u2210', + CounterClockwiseContourIntegral: '\u2233', + Cross: '\u2A2F', + Cscr: '\uD835\uDC9E', + Cup: '\u22D3', + CupCap: '\u224D', + DD: '\u2145', + DDotrahd: '\u2911', + DJcy: '\u0402', + DScy: '\u0405', + DZcy: '\u040F', + Dagger: '\u2021', + Darr: '\u21A1', + Dashv: '\u2AE4', + Dcaron: '\u010E', + Dcy: '\u0414', + Del: '\u2207', + Delta: '\u0394', + Dfr: '\uD835\uDD07', + DiacriticalAcute: '\u00B4', + DiacriticalDot: '\u02D9', + DiacriticalDoubleAcute: '\u02DD', + DiacriticalGrave: '\u0060', + DiacriticalTilde: '\u02DC', + Diamond: '\u22C4', + DifferentialD: '\u2146', + Dopf: '\uD835\uDD3B', + Dot: '\u00A8', + DotDot: '\u20DC', + DotEqual: '\u2250', + DoubleContourIntegral: '\u222F', + DoubleDot: '\u00A8', + DoubleDownArrow: '\u21D3', + DoubleLeftArrow: '\u21D0', + DoubleLeftRightArrow: '\u21D4', + DoubleLeftTee: '\u2AE4', + DoubleLongLeftArrow: '\u27F8', + DoubleLongLeftRightArrow: '\u27FA', + DoubleLongRightArrow: '\u27F9', + DoubleRightArrow: '\u21D2', + DoubleRightTee: '\u22A8', + DoubleUpArrow: '\u21D1', + DoubleUpDownArrow: '\u21D5', + DoubleVerticalBar: '\u2225', + DownArrow: '\u2193', + DownArrowBar: '\u2913', + DownArrowUpArrow: '\u21F5', + DownBreve: '\u0311', + DownLeftRightVector: '\u2950', + DownLeftTeeVector: '\u295E', + DownLeftVector: '\u21BD', + DownLeftVectorBar: '\u2956', + DownRightTeeVector: '\u295F', + DownRightVector: '\u21C1', + DownRightVectorBar: '\u2957', + DownTee: '\u22A4', + DownTeeArrow: '\u21A7', + Downarrow: '\u21D3', + Dscr: '\uD835\uDC9F', + Dstrok: '\u0110', + ENG: '\u014A', + ETH: '\u00D0', + Eacute: '\u00C9', + Ecaron: '\u011A', + Ecirc: '\u00CA', + Ecy: '\u042D', + Edot: '\u0116', + Efr: '\uD835\uDD08', + Egrave: '\u00C8', + Element: '\u2208', + Emacr: '\u0112', + EmptySmallSquare: '\u25FB', + EmptyVerySmallSquare: '\u25AB', + Eogon: '\u0118', + Eopf: '\uD835\uDD3C', + Epsilon: '\u0395', + Equal: '\u2A75', + EqualTilde: '\u2242', + Equilibrium: '\u21CC', + Escr: '\u2130', + Esim: '\u2A73', + Eta: '\u0397', + Euml: '\u00CB', + Exists: '\u2203', + ExponentialE: '\u2147', + Fcy: '\u0424', + Ffr: '\uD835\uDD09', + FilledSmallSquare: '\u25FC', + FilledVerySmallSquare: '\u25AA', + Fopf: '\uD835\uDD3D', + ForAll: '\u2200', + Fouriertrf: '\u2131', + Fscr: '\u2131', + GJcy: '\u0403', + GT: '\u003E', + Gamma: '\u0393', + Gammad: '\u03DC', + Gbreve: '\u011E', + Gcedil: '\u0122', + Gcirc: '\u011C', + Gcy: '\u0413', + Gdot: '\u0120', + Gfr: '\uD835\uDD0A', + Gg: '\u22D9', + Gopf: '\uD835\uDD3E', + GreaterEqual: '\u2265', + GreaterEqualLess: '\u22DB', + GreaterFullEqual: '\u2267', + GreaterGreater: '\u2AA2', + GreaterLess: '\u2277', + GreaterSlantEqual: '\u2A7E', + GreaterTilde: '\u2273', + Gscr: '\uD835\uDCA2', + Gt: '\u226B', + HARDcy: '\u042A', + Hacek: '\u02C7', + Hat: '\u005E', + Hcirc: '\u0124', + Hfr: '\u210C', + HilbertSpace: '\u210B', + Hopf: '\u210D', + HorizontalLine: '\u2500', + Hscr: '\u210B', + Hstrok: '\u0126', + HumpDownHump: '\u224E', + HumpEqual: '\u224F', + IEcy: '\u0415', + IJlig: '\u0132', + IOcy: '\u0401', + Iacute: '\u00CD', + Icirc: '\u00CE', + Icy: '\u0418', + Idot: '\u0130', + Ifr: '\u2111', + Igrave: '\u00CC', + Im: '\u2111', + Imacr: '\u012A', + ImaginaryI: '\u2148', + Implies: '\u21D2', + Int: '\u222C', + Integral: '\u222B', + Intersection: '\u22C2', + InvisibleComma: '\u2063', + InvisibleTimes: '\u2062', + Iogon: '\u012E', + Iopf: '\uD835\uDD40', + Iota: '\u0399', + Iscr: '\u2110', + Itilde: '\u0128', + Iukcy: '\u0406', + Iuml: '\u00CF', + Jcirc: '\u0134', + Jcy: '\u0419', + Jfr: '\uD835\uDD0D', + Jopf: '\uD835\uDD41', + Jscr: '\uD835\uDCA5', + Jsercy: '\u0408', + Jukcy: '\u0404', + KHcy: '\u0425', + KJcy: '\u040C', + Kappa: '\u039A', + Kcedil: '\u0136', + Kcy: '\u041A', + Kfr: '\uD835\uDD0E', + Kopf: '\uD835\uDD42', + Kscr: '\uD835\uDCA6', + LJcy: '\u0409', + LT: '\u003C', + Lacute: '\u0139', + Lambda: '\u039B', + Lang: '\u27EA', + Laplacetrf: '\u2112', + Larr: '\u219E', + Lcaron: '\u013D', + Lcedil: '\u013B', + Lcy: '\u041B', + LeftAngleBracket: '\u27E8', + LeftArrow: '\u2190', + LeftArrowBar: '\u21E4', + LeftArrowRightArrow: '\u21C6', + LeftCeiling: '\u2308', + LeftDoubleBracket: '\u27E6', + LeftDownTeeVector: '\u2961', + LeftDownVector: '\u21C3', + LeftDownVectorBar: '\u2959', + LeftFloor: '\u230A', + LeftRightArrow: '\u2194', + LeftRightVector: '\u294E', + LeftTee: '\u22A3', + LeftTeeArrow: '\u21A4', + LeftTeeVector: '\u295A', + LeftTriangle: '\u22B2', + LeftTriangleBar: '\u29CF', + LeftTriangleEqual: '\u22B4', + LeftUpDownVector: '\u2951', + LeftUpTeeVector: '\u2960', + LeftUpVector: '\u21BF', + LeftUpVectorBar: '\u2958', + LeftVector: '\u21BC', + LeftVectorBar: '\u2952', + Leftarrow: '\u21D0', + Leftrightarrow: '\u21D4', + LessEqualGreater: '\u22DA', + LessFullEqual: '\u2266', + LessGreater: '\u2276', + LessLess: '\u2AA1', + LessSlantEqual: '\u2A7D', + LessTilde: '\u2272', + Lfr: '\uD835\uDD0F', + Ll: '\u22D8', + Lleftarrow: '\u21DA', + Lmidot: '\u013F', + LongLeftArrow: '\u27F5', + LongLeftRightArrow: '\u27F7', + LongRightArrow: '\u27F6', + Longleftarrow: '\u27F8', + Longleftrightarrow: '\u27FA', + Longrightarrow: '\u27F9', + Lopf: '\uD835\uDD43', + LowerLeftArrow: '\u2199', + LowerRightArrow: '\u2198', + Lscr: '\u2112', + Lsh: '\u21B0', + Lstrok: '\u0141', + Lt: '\u226A', + Map: '\u2905', + Mcy: '\u041C', + MediumSpace: '\u205F', + Mellintrf: '\u2133', + Mfr: '\uD835\uDD10', + MinusPlus: '\u2213', + Mopf: '\uD835\uDD44', + Mscr: '\u2133', + Mu: '\u039C', + NJcy: '\u040A', + Nacute: '\u0143', + Ncaron: '\u0147', + Ncedil: '\u0145', + Ncy: '\u041D', + NegativeMediumSpace: '\u200B', + NegativeThickSpace: '\u200B', + NegativeThinSpace: '\u200B', + NegativeVeryThinSpace: '\u200B', + NestedGreaterGreater: '\u226B', + NestedLessLess: '\u226A', + NewLine: '\u000A', + Nfr: '\uD835\uDD11', + NoBreak: '\u2060', + NonBreakingSpace: '\u00A0', + Nopf: '\u2115', + Not: '\u2AEC', + NotCongruent: '\u2262', + NotCupCap: '\u226D', + NotDoubleVerticalBar: '\u2226', + NotElement: '\u2209', + NotEqual: '\u2260', + NotEqualTilde: '\u2242\u0338', + NotExists: '\u2204', + NotGreater: '\u226F', + NotGreaterEqual: '\u2271', + NotGreaterFullEqual: '\u2267\u0338', + NotGreaterGreater: '\u226B\u0338', + NotGreaterLess: '\u2279', + NotGreaterSlantEqual: '\u2A7E\u0338', + NotGreaterTilde: '\u2275', + NotHumpDownHump: '\u224E\u0338', + NotHumpEqual: '\u224F\u0338', + NotLeftTriangle: '\u22EA', + NotLeftTriangleBar: '\u29CF\u0338', + NotLeftTriangleEqual: '\u22EC', + NotLess: '\u226E', + NotLessEqual: '\u2270', + NotLessGreater: '\u2278', + NotLessLess: '\u226A\u0338', + NotLessSlantEqual: '\u2A7D\u0338', + NotLessTilde: '\u2274', + NotNestedGreaterGreater: '\u2AA2\u0338', + NotNestedLessLess: '\u2AA1\u0338', + NotPrecedes: '\u2280', + NotPrecedesEqual: '\u2AAF\u0338', + NotPrecedesSlantEqual: '\u22E0', + NotReverseElement: '\u220C', + NotRightTriangle: '\u22EB', + NotRightTriangleBar: '\u29D0\u0338', + NotRightTriangleEqual: '\u22ED', + NotSquareSubset: '\u228F\u0338', + NotSquareSubsetEqual: '\u22E2', + NotSquareSuperset: '\u2290\u0338', + NotSquareSupersetEqual: '\u22E3', + NotSubset: '\u2282\u20D2', + NotSubsetEqual: '\u2288', + NotSucceeds: '\u2281', + NotSucceedsEqual: '\u2AB0\u0338', + NotSucceedsSlantEqual: '\u22E1', + NotSucceedsTilde: '\u227F\u0338', + NotSuperset: '\u2283\u20D2', + NotSupersetEqual: '\u2289', + NotTilde: '\u2241', + NotTildeEqual: '\u2244', + NotTildeFullEqual: '\u2247', + NotTildeTilde: '\u2249', + NotVerticalBar: '\u2224', + Nscr: '\uD835\uDCA9', + Ntilde: '\u00D1', + Nu: '\u039D', + OElig: '\u0152', + Oacute: '\u00D3', + Ocirc: '\u00D4', + Ocy: '\u041E', + Odblac: '\u0150', + Ofr: '\uD835\uDD12', + Ograve: '\u00D2', + Omacr: '\u014C', + Omega: '\u03A9', + Omicron: '\u039F', + Oopf: '\uD835\uDD46', + OpenCurlyDoubleQuote: '\u201C', + OpenCurlyQuote: '\u2018', + Or: '\u2A54', + Oscr: '\uD835\uDCAA', + Oslash: '\u00D8', + Otilde: '\u00D5', + Otimes: '\u2A37', + Ouml: '\u00D6', + OverBar: '\u203E', + OverBrace: '\u23DE', + OverBracket: '\u23B4', + OverParenthesis: '\u23DC', + PartialD: '\u2202', + Pcy: '\u041F', + Pfr: '\uD835\uDD13', + Phi: '\u03A6', + Pi: '\u03A0', + PlusMinus: '\u00B1', + Poincareplane: '\u210C', + Popf: '\u2119', + Pr: '\u2ABB', + Precedes: '\u227A', + PrecedesEqual: '\u2AAF', + PrecedesSlantEqual: '\u227C', + PrecedesTilde: '\u227E', + Prime: '\u2033', + Product: '\u220F', + Proportion: '\u2237', + Proportional: '\u221D', + Pscr: '\uD835\uDCAB', + Psi: '\u03A8', + QUOT: '\u0022', + Qfr: '\uD835\uDD14', + Qopf: '\u211A', + Qscr: '\uD835\uDCAC', + RBarr: '\u2910', + REG: '\u00AE', + Racute: '\u0154', + Rang: '\u27EB', + Rarr: '\u21A0', + Rarrtl: '\u2916', + Rcaron: '\u0158', + Rcedil: '\u0156', + Rcy: '\u0420', + Re: '\u211C', + ReverseElement: '\u220B', + ReverseEquilibrium: '\u21CB', + ReverseUpEquilibrium: '\u296F', + Rfr: '\u211C', + Rho: '\u03A1', + RightAngleBracket: '\u27E9', + RightArrow: '\u2192', + RightArrowBar: '\u21E5', + RightArrowLeftArrow: '\u21C4', + RightCeiling: '\u2309', + RightDoubleBracket: '\u27E7', + RightDownTeeVector: '\u295D', + RightDownVector: '\u21C2', + RightDownVectorBar: '\u2955', + RightFloor: '\u230B', + RightTee: '\u22A2', + RightTeeArrow: '\u21A6', + RightTeeVector: '\u295B', + RightTriangle: '\u22B3', + RightTriangleBar: '\u29D0', + RightTriangleEqual: '\u22B5', + RightUpDownVector: '\u294F', + RightUpTeeVector: '\u295C', + RightUpVector: '\u21BE', + RightUpVectorBar: '\u2954', + RightVector: '\u21C0', + RightVectorBar: '\u2953', + Rightarrow: '\u21D2', + Ropf: '\u211D', + RoundImplies: '\u2970', + Rrightarrow: '\u21DB', + Rscr: '\u211B', + Rsh: '\u21B1', + RuleDelayed: '\u29F4', + SHCHcy: '\u0429', + SHcy: '\u0428', + SOFTcy: '\u042C', + Sacute: '\u015A', + Sc: '\u2ABC', + Scaron: '\u0160', + Scedil: '\u015E', + Scirc: '\u015C', + Scy: '\u0421', + Sfr: '\uD835\uDD16', + ShortDownArrow: '\u2193', + ShortLeftArrow: '\u2190', + ShortRightArrow: '\u2192', + ShortUpArrow: '\u2191', + Sigma: '\u03A3', + SmallCircle: '\u2218', + Sopf: '\uD835\uDD4A', + Sqrt: '\u221A', + Square: '\u25A1', + SquareIntersection: '\u2293', + SquareSubset: '\u228F', + SquareSubsetEqual: '\u2291', + SquareSuperset: '\u2290', + SquareSupersetEqual: '\u2292', + SquareUnion: '\u2294', + Sscr: '\uD835\uDCAE', + Star: '\u22C6', + Sub: '\u22D0', + Subset: '\u22D0', + SubsetEqual: '\u2286', + Succeeds: '\u227B', + SucceedsEqual: '\u2AB0', + SucceedsSlantEqual: '\u227D', + SucceedsTilde: '\u227F', + SuchThat: '\u220B', + Sum: '\u2211', + Sup: '\u22D1', + Superset: '\u2283', + SupersetEqual: '\u2287', + Supset: '\u22D1', + THORN: '\u00DE', + TRADE: '\u2122', + TSHcy: '\u040B', + TScy: '\u0426', + Tab: '\u0009', + Tau: '\u03A4', + Tcaron: '\u0164', + Tcedil: '\u0162', + Tcy: '\u0422', + Tfr: '\uD835\uDD17', + Therefore: '\u2234', + Theta: '\u0398', + ThickSpace: '\u205F\u200A', + ThinSpace: '\u2009', + Tilde: '\u223C', + TildeEqual: '\u2243', + TildeFullEqual: '\u2245', + TildeTilde: '\u2248', + Topf: '\uD835\uDD4B', + TripleDot: '\u20DB', + Tscr: '\uD835\uDCAF', + Tstrok: '\u0166', + Uacute: '\u00DA', + Uarr: '\u219F', + Uarrocir: '\u2949', + Ubrcy: '\u040E', + Ubreve: '\u016C', + Ucirc: '\u00DB', + Ucy: '\u0423', + Udblac: '\u0170', + Ufr: '\uD835\uDD18', + Ugrave: '\u00D9', + Umacr: '\u016A', + UnderBar: '\u005F', + UnderBrace: '\u23DF', + UnderBracket: '\u23B5', + UnderParenthesis: '\u23DD', + Union: '\u22C3', + UnionPlus: '\u228E', + Uogon: '\u0172', + Uopf: '\uD835\uDD4C', + UpArrow: '\u2191', + UpArrowBar: '\u2912', + UpArrowDownArrow: '\u21C5', + UpDownArrow: '\u2195', + UpEquilibrium: '\u296E', + UpTee: '\u22A5', + UpTeeArrow: '\u21A5', + Uparrow: '\u21D1', + Updownarrow: '\u21D5', + UpperLeftArrow: '\u2196', + UpperRightArrow: '\u2197', + Upsi: '\u03D2', + Upsilon: '\u03A5', + Uring: '\u016E', + Uscr: '\uD835\uDCB0', + Utilde: '\u0168', + Uuml: '\u00DC', + VDash: '\u22AB', + Vbar: '\u2AEB', + Vcy: '\u0412', + Vdash: '\u22A9', + Vdashl: '\u2AE6', + Vee: '\u22C1', + Verbar: '\u2016', + Vert: '\u2016', + VerticalBar: '\u2223', + VerticalLine: '\u007C', + VerticalSeparator: '\u2758', + VerticalTilde: '\u2240', + VeryThinSpace: '\u200A', + Vfr: '\uD835\uDD19', + Vopf: '\uD835\uDD4D', + Vscr: '\uD835\uDCB1', + Vvdash: '\u22AA', + Wcirc: '\u0174', + Wedge: '\u22C0', + Wfr: '\uD835\uDD1A', + Wopf: '\uD835\uDD4E', + Wscr: '\uD835\uDCB2', + Xfr: '\uD835\uDD1B', + Xi: '\u039E', + Xopf: '\uD835\uDD4F', + Xscr: '\uD835\uDCB3', + YAcy: '\u042F', + YIcy: '\u0407', + YUcy: '\u042E', + Yacute: '\u00DD', + Ycirc: '\u0176', + Ycy: '\u042B', + Yfr: '\uD835\uDD1C', + Yopf: '\uD835\uDD50', + Yscr: '\uD835\uDCB4', + Yuml: '\u0178', + ZHcy: '\u0416', + Zacute: '\u0179', + Zcaron: '\u017D', + Zcy: '\u0417', + Zdot: '\u017B', + ZeroWidthSpace: '\u200B', + Zeta: '\u0396', + Zfr: '\u2128', + Zopf: '\u2124', + Zscr: '\uD835\uDCB5', + aacute: '\u00E1', + abreve: '\u0103', + ac: '\u223E', + acE: '\u223E\u0333', + acd: '\u223F', + acirc: '\u00E2', + acute: '\u00B4', + acy: '\u0430', + aelig: '\u00E6', + af: '\u2061', + afr: '\uD835\uDD1E', + agrave: '\u00E0', + alefsym: '\u2135', + aleph: '\u2135', + alpha: '\u03B1', + amacr: '\u0101', + amalg: '\u2A3F', + amp: '\u0026', + and: '\u2227', + andand: '\u2A55', + andd: '\u2A5C', + andslope: '\u2A58', + andv: '\u2A5A', + ang: '\u2220', + ange: '\u29A4', + angle: '\u2220', + angmsd: '\u2221', + angmsdaa: '\u29A8', + angmsdab: '\u29A9', + angmsdac: '\u29AA', + angmsdad: '\u29AB', + angmsdae: '\u29AC', + angmsdaf: '\u29AD', + angmsdag: '\u29AE', + angmsdah: '\u29AF', + angrt: '\u221F', + angrtvb: '\u22BE', + angrtvbd: '\u299D', + angsph: '\u2222', + angst: '\u00C5', + angzarr: '\u237C', + aogon: '\u0105', + aopf: '\uD835\uDD52', + ap: '\u2248', + apE: '\u2A70', + apacir: '\u2A6F', + ape: '\u224A', + apid: '\u224B', + apos: '\u0027', + approx: '\u2248', + approxeq: '\u224A', + aring: '\u00E5', + ascr: '\uD835\uDCB6', + ast: '\u002A', + asymp: '\u2248', + asympeq: '\u224D', + atilde: '\u00E3', + auml: '\u00E4', + awconint: '\u2233', + awint: '\u2A11', + bNot: '\u2AED', + backcong: '\u224C', + backepsilon: '\u03F6', + backprime: '\u2035', + backsim: '\u223D', + backsimeq: '\u22CD', + barvee: '\u22BD', + barwed: '\u2305', + barwedge: '\u2305', + bbrk: '\u23B5', + bbrktbrk: '\u23B6', + bcong: '\u224C', + bcy: '\u0431', + bdquo: '\u201E', + becaus: '\u2235', + because: '\u2235', + bemptyv: '\u29B0', + bepsi: '\u03F6', + bernou: '\u212C', + beta: '\u03B2', + beth: '\u2136', + between: '\u226C', + bfr: '\uD835\uDD1F', + bigcap: '\u22C2', + bigcirc: '\u25EF', + bigcup: '\u22C3', + bigodot: '\u2A00', + bigoplus: '\u2A01', + bigotimes: '\u2A02', + bigsqcup: '\u2A06', + bigstar: '\u2605', + bigtriangledown: '\u25BD', + bigtriangleup: '\u25B3', + biguplus: '\u2A04', + bigvee: '\u22C1', + bigwedge: '\u22C0', + bkarow: '\u290D', + blacklozenge: '\u29EB', + blacksquare: '\u25AA', + blacktriangle: '\u25B4', + blacktriangledown: '\u25BE', + blacktriangleleft: '\u25C2', + blacktriangleright: '\u25B8', + blank: '\u2423', + blk12: '\u2592', + blk14: '\u2591', + blk34: '\u2593', + block: '\u2588', + bne: '\u003D\u20E5', + bnequiv: '\u2261\u20E5', + bnot: '\u2310', + bopf: '\uD835\uDD53', + bot: '\u22A5', + bottom: '\u22A5', + bowtie: '\u22C8', + boxDL: '\u2557', + boxDR: '\u2554', + boxDl: '\u2556', + boxDr: '\u2553', + boxH: '\u2550', + boxHD: '\u2566', + boxHU: '\u2569', + boxHd: '\u2564', + boxHu: '\u2567', + boxUL: '\u255D', + boxUR: '\u255A', + boxUl: '\u255C', + boxUr: '\u2559', + boxV: '\u2551', + boxVH: '\u256C', + boxVL: '\u2563', + boxVR: '\u2560', + boxVh: '\u256B', + boxVl: '\u2562', + boxVr: '\u255F', + boxbox: '\u29C9', + boxdL: '\u2555', + boxdR: '\u2552', + boxdl: '\u2510', + boxdr: '\u250C', + boxh: '\u2500', + boxhD: '\u2565', + boxhU: '\u2568', + boxhd: '\u252C', + boxhu: '\u2534', + boxminus: '\u229F', + boxplus: '\u229E', + boxtimes: '\u22A0', + boxuL: '\u255B', + boxuR: '\u2558', + boxul: '\u2518', + boxur: '\u2514', + boxv: '\u2502', + boxvH: '\u256A', + boxvL: '\u2561', + boxvR: '\u255E', + boxvh: '\u253C', + boxvl: '\u2524', + boxvr: '\u251C', + bprime: '\u2035', + breve: '\u02D8', + brvbar: '\u00A6', + bscr: '\uD835\uDCB7', + bsemi: '\u204F', + bsim: '\u223D', + bsime: '\u22CD', + bsol: '\u005C', + bsolb: '\u29C5', + bsolhsub: '\u27C8', + bull: '\u2022', + bullet: '\u2022', + bump: '\u224E', + bumpE: '\u2AAE', + bumpe: '\u224F', + bumpeq: '\u224F', + cacute: '\u0107', + cap: '\u2229', + capand: '\u2A44', + capbrcup: '\u2A49', + capcap: '\u2A4B', + capcup: '\u2A47', + capdot: '\u2A40', + caps: '\u2229\uFE00', + caret: '\u2041', + caron: '\u02C7', + ccaps: '\u2A4D', + ccaron: '\u010D', + ccedil: '\u00E7', + ccirc: '\u0109', + ccups: '\u2A4C', + ccupssm: '\u2A50', + cdot: '\u010B', + cedil: '\u00B8', + cemptyv: '\u29B2', + cent: '\u00A2', + centerdot: '\u00B7', + cfr: '\uD835\uDD20', + chcy: '\u0447', + check: '\u2713', + checkmark: '\u2713', + chi: '\u03C7', + cir: '\u25CB', + cirE: '\u29C3', + circ: '\u02C6', + circeq: '\u2257', + circlearrowleft: '\u21BA', + circlearrowright: '\u21BB', + circledR: '\u00AE', + circledS: '\u24C8', + circledast: '\u229B', + circledcirc: '\u229A', + circleddash: '\u229D', + cire: '\u2257', + cirfnint: '\u2A10', + cirmid: '\u2AEF', + cirscir: '\u29C2', + clubs: '\u2663', + clubsuit: '\u2663', + colon: '\u003A', + colone: '\u2254', + coloneq: '\u2254', + comma: '\u002C', + commat: '\u0040', + comp: '\u2201', + compfn: '\u2218', + complement: '\u2201', + complexes: '\u2102', + cong: '\u2245', + congdot: '\u2A6D', + conint: '\u222E', + copf: '\uD835\uDD54', + coprod: '\u2210', + copy: '\u00A9', + copysr: '\u2117', + crarr: '\u21B5', + cross: '\u2717', + cscr: '\uD835\uDCB8', + csub: '\u2ACF', + csube: '\u2AD1', + csup: '\u2AD0', + csupe: '\u2AD2', + ctdot: '\u22EF', + cudarrl: '\u2938', + cudarrr: '\u2935', + cuepr: '\u22DE', + cuesc: '\u22DF', + cularr: '\u21B6', + cularrp: '\u293D', + cup: '\u222A', + cupbrcap: '\u2A48', + cupcap: '\u2A46', + cupcup: '\u2A4A', + cupdot: '\u228D', + cupor: '\u2A45', + cups: '\u222A\uFE00', + curarr: '\u21B7', + curarrm: '\u293C', + curlyeqprec: '\u22DE', + curlyeqsucc: '\u22DF', + curlyvee: '\u22CE', + curlywedge: '\u22CF', + curren: '\u00A4', + curvearrowleft: '\u21B6', + curvearrowright: '\u21B7', + cuvee: '\u22CE', + cuwed: '\u22CF', + cwconint: '\u2232', + cwint: '\u2231', + cylcty: '\u232D', + dArr: '\u21D3', + dHar: '\u2965', + dagger: '\u2020', + daleth: '\u2138', + darr: '\u2193', + dash: '\u2010', + dashv: '\u22A3', + dbkarow: '\u290F', + dblac: '\u02DD', + dcaron: '\u010F', + dcy: '\u0434', + dd: '\u2146', + ddagger: '\u2021', + ddarr: '\u21CA', + ddotseq: '\u2A77', + deg: '\u00B0', + delta: '\u03B4', + demptyv: '\u29B1', + dfisht: '\u297F', + dfr: '\uD835\uDD21', + dharl: '\u21C3', + dharr: '\u21C2', + diam: '\u22C4', + diamond: '\u22C4', + diamondsuit: '\u2666', + diams: '\u2666', + die: '\u00A8', + digamma: '\u03DD', + disin: '\u22F2', + div: '\u00F7', + divide: '\u00F7', + divideontimes: '\u22C7', + divonx: '\u22C7', + djcy: '\u0452', + dlcorn: '\u231E', + dlcrop: '\u230D', + dollar: '\u0024', + dopf: '\uD835\uDD55', + dot: '\u02D9', + doteq: '\u2250', + doteqdot: '\u2251', + dotminus: '\u2238', + dotplus: '\u2214', + dotsquare: '\u22A1', + doublebarwedge: '\u2306', + downarrow: '\u2193', + downdownarrows: '\u21CA', + downharpoonleft: '\u21C3', + downharpoonright: '\u21C2', + drbkarow: '\u2910', + drcorn: '\u231F', + drcrop: '\u230C', + dscr: '\uD835\uDCB9', + dscy: '\u0455', + dsol: '\u29F6', + dstrok: '\u0111', + dtdot: '\u22F1', + dtri: '\u25BF', + dtrif: '\u25BE', + duarr: '\u21F5', + duhar: '\u296F', + dwangle: '\u29A6', + dzcy: '\u045F', + dzigrarr: '\u27FF', + eDDot: '\u2A77', + eDot: '\u2251', + eacute: '\u00E9', + easter: '\u2A6E', + ecaron: '\u011B', + ecir: '\u2256', + ecirc: '\u00EA', + ecolon: '\u2255', + ecy: '\u044D', + edot: '\u0117', + ee: '\u2147', + efDot: '\u2252', + efr: '\uD835\uDD22', + eg: '\u2A9A', + egrave: '\u00E8', + egs: '\u2A96', + egsdot: '\u2A98', + el: '\u2A99', + elinters: '\u23E7', + ell: '\u2113', + els: '\u2A95', + elsdot: '\u2A97', + emacr: '\u0113', + empty: '\u2205', + emptyset: '\u2205', + emptyv: '\u2205', + emsp13: '\u2004', + emsp14: '\u2005', + emsp: '\u2003', + eng: '\u014B', + ensp: '\u2002', + eogon: '\u0119', + eopf: '\uD835\uDD56', + epar: '\u22D5', + eparsl: '\u29E3', + eplus: '\u2A71', + epsi: '\u03B5', + epsilon: '\u03B5', + epsiv: '\u03F5', + eqcirc: '\u2256', + eqcolon: '\u2255', + eqsim: '\u2242', + eqslantgtr: '\u2A96', + eqslantless: '\u2A95', + equals: '\u003D', + equest: '\u225F', + equiv: '\u2261', + equivDD: '\u2A78', + eqvparsl: '\u29E5', + erDot: '\u2253', + erarr: '\u2971', + escr: '\u212F', + esdot: '\u2250', + esim: '\u2242', + eta: '\u03B7', + eth: '\u00F0', + euml: '\u00EB', + euro: '\u20AC', + excl: '\u0021', + exist: '\u2203', + expectation: '\u2130', + exponentiale: '\u2147', + fallingdotseq: '\u2252', + fcy: '\u0444', + female: '\u2640', + ffilig: '\uFB03', + fflig: '\uFB00', + ffllig: '\uFB04', + ffr: '\uD835\uDD23', + filig: '\uFB01', + fjlig: '\u0066\u006A', + flat: '\u266D', + fllig: '\uFB02', + fltns: '\u25B1', + fnof: '\u0192', + fopf: '\uD835\uDD57', + forall: '\u2200', + fork: '\u22D4', + forkv: '\u2AD9', + fpartint: '\u2A0D', + frac12: '\u00BD', + frac13: '\u2153', + frac14: '\u00BC', + frac15: '\u2155', + frac16: '\u2159', + frac18: '\u215B', + frac23: '\u2154', + frac25: '\u2156', + frac34: '\u00BE', + frac35: '\u2157', + frac38: '\u215C', + frac45: '\u2158', + frac56: '\u215A', + frac58: '\u215D', + frac78: '\u215E', + frasl: '\u2044', + frown: '\u2322', + fscr: '\uD835\uDCBB', + gE: '\u2267', + gEl: '\u2A8C', + gacute: '\u01F5', + gamma: '\u03B3', + gammad: '\u03DD', + gap: '\u2A86', + gbreve: '\u011F', + gcirc: '\u011D', + gcy: '\u0433', + gdot: '\u0121', + ge: '\u2265', + gel: '\u22DB', + geq: '\u2265', + geqq: '\u2267', + geqslant: '\u2A7E', + ges: '\u2A7E', + gescc: '\u2AA9', + gesdot: '\u2A80', + gesdoto: '\u2A82', + gesdotol: '\u2A84', + gesl: '\u22DB\uFE00', + gesles: '\u2A94', + gfr: '\uD835\uDD24', + gg: '\u226B', + ggg: '\u22D9', + gimel: '\u2137', + gjcy: '\u0453', + gl: '\u2277', + glE: '\u2A92', + gla: '\u2AA5', + glj: '\u2AA4', + gnE: '\u2269', + gnap: '\u2A8A', + gnapprox: '\u2A8A', + gne: '\u2A88', + gneq: '\u2A88', + gneqq: '\u2269', + gnsim: '\u22E7', + gopf: '\uD835\uDD58', + grave: '\u0060', + gscr: '\u210A', + gsim: '\u2273', + gsime: '\u2A8E', + gsiml: '\u2A90', + gt: '\u003E', + gtcc: '\u2AA7', + gtcir: '\u2A7A', + gtdot: '\u22D7', + gtlPar: '\u2995', + gtquest: '\u2A7C', + gtrapprox: '\u2A86', + gtrarr: '\u2978', + gtrdot: '\u22D7', + gtreqless: '\u22DB', + gtreqqless: '\u2A8C', + gtrless: '\u2277', + gtrsim: '\u2273', + gvertneqq: '\u2269\uFE00', + gvnE: '\u2269\uFE00', + hArr: '\u21D4', + hairsp: '\u200A', + half: '\u00BD', + hamilt: '\u210B', + hardcy: '\u044A', + harr: '\u2194', + harrcir: '\u2948', + harrw: '\u21AD', + hbar: '\u210F', + hcirc: '\u0125', + hearts: '\u2665', + heartsuit: '\u2665', + hellip: '\u2026', + hercon: '\u22B9', + hfr: '\uD835\uDD25', + hksearow: '\u2925', + hkswarow: '\u2926', + hoarr: '\u21FF', + homtht: '\u223B', + hookleftarrow: '\u21A9', + hookrightarrow: '\u21AA', + hopf: '\uD835\uDD59', + horbar: '\u2015', + hscr: '\uD835\uDCBD', + hslash: '\u210F', + hstrok: '\u0127', + hybull: '\u2043', + hyphen: '\u2010', + iacute: '\u00ED', + ic: '\u2063', + icirc: '\u00EE', + icy: '\u0438', + iecy: '\u0435', + iexcl: '\u00A1', + iff: '\u21D4', + ifr: '\uD835\uDD26', + igrave: '\u00EC', + ii: '\u2148', + iiiint: '\u2A0C', + iiint: '\u222D', + iinfin: '\u29DC', + iiota: '\u2129', + ijlig: '\u0133', + imacr: '\u012B', + image: '\u2111', + imagline: '\u2110', + imagpart: '\u2111', + imath: '\u0131', + imof: '\u22B7', + imped: '\u01B5', + in: '\u2208', + incare: '\u2105', + infin: '\u221E', + infintie: '\u29DD', + inodot: '\u0131', + int: '\u222B', + intcal: '\u22BA', + integers: '\u2124', + intercal: '\u22BA', + intlarhk: '\u2A17', + intprod: '\u2A3C', + iocy: '\u0451', + iogon: '\u012F', + iopf: '\uD835\uDD5A', + iota: '\u03B9', + iprod: '\u2A3C', + iquest: '\u00BF', + iscr: '\uD835\uDCBE', + isin: '\u2208', + isinE: '\u22F9', + isindot: '\u22F5', + isins: '\u22F4', + isinsv: '\u22F3', + isinv: '\u2208', + it: '\u2062', + itilde: '\u0129', + iukcy: '\u0456', + iuml: '\u00EF', + jcirc: '\u0135', + jcy: '\u0439', + jfr: '\uD835\uDD27', + jmath: '\u0237', + jopf: '\uD835\uDD5B', + jscr: '\uD835\uDCBF', + jsercy: '\u0458', + jukcy: '\u0454', + kappa: '\u03BA', + kappav: '\u03F0', + kcedil: '\u0137', + kcy: '\u043A', + kfr: '\uD835\uDD28', + kgreen: '\u0138', + khcy: '\u0445', + kjcy: '\u045C', + kopf: '\uD835\uDD5C', + kscr: '\uD835\uDCC0', + lAarr: '\u21DA', + lArr: '\u21D0', + lAtail: '\u291B', + lBarr: '\u290E', + lE: '\u2266', + lEg: '\u2A8B', + lHar: '\u2962', + lacute: '\u013A', + laemptyv: '\u29B4', + lagran: '\u2112', + lambda: '\u03BB', + lang: '\u27E8', + langd: '\u2991', + langle: '\u27E8', + lap: '\u2A85', + laquo: '\u00AB', + larr: '\u2190', + larrb: '\u21E4', + larrbfs: '\u291F', + larrfs: '\u291D', + larrhk: '\u21A9', + larrlp: '\u21AB', + larrpl: '\u2939', + larrsim: '\u2973', + larrtl: '\u21A2', + lat: '\u2AAB', + latail: '\u2919', + late: '\u2AAD', + lates: '\u2AAD\uFE00', + lbarr: '\u290C', + lbbrk: '\u2772', + lbrace: '\u007B', + lbrack: '\u005B', + lbrke: '\u298B', + lbrksld: '\u298F', + lbrkslu: '\u298D', + lcaron: '\u013E', + lcedil: '\u013C', + lceil: '\u2308', + lcub: '\u007B', + lcy: '\u043B', + ldca: '\u2936', + ldquo: '\u201C', + ldquor: '\u201E', + ldrdhar: '\u2967', + ldrushar: '\u294B', + ldsh: '\u21B2', + le: '\u2264', + leftarrow: '\u2190', + leftarrowtail: '\u21A2', + leftharpoondown: '\u21BD', + leftharpoonup: '\u21BC', + leftleftarrows: '\u21C7', + leftrightarrow: '\u2194', + leftrightarrows: '\u21C6', + leftrightharpoons: '\u21CB', + leftrightsquigarrow: '\u21AD', + leftthreetimes: '\u22CB', + leg: '\u22DA', + leq: '\u2264', + leqq: '\u2266', + leqslant: '\u2A7D', + les: '\u2A7D', + lescc: '\u2AA8', + lesdot: '\u2A7F', + lesdoto: '\u2A81', + lesdotor: '\u2A83', + lesg: '\u22DA\uFE00', + lesges: '\u2A93', + lessapprox: '\u2A85', + lessdot: '\u22D6', + lesseqgtr: '\u22DA', + lesseqqgtr: '\u2A8B', + lessgtr: '\u2276', + lesssim: '\u2272', + lfisht: '\u297C', + lfloor: '\u230A', + lfr: '\uD835\uDD29', + lg: '\u2276', + lgE: '\u2A91', + lhard: '\u21BD', + lharu: '\u21BC', + lharul: '\u296A', + lhblk: '\u2584', + ljcy: '\u0459', + ll: '\u226A', + llarr: '\u21C7', + llcorner: '\u231E', + llhard: '\u296B', + lltri: '\u25FA', + lmidot: '\u0140', + lmoust: '\u23B0', + lmoustache: '\u23B0', + lnE: '\u2268', + lnap: '\u2A89', + lnapprox: '\u2A89', + lne: '\u2A87', + lneq: '\u2A87', + lneqq: '\u2268', + lnsim: '\u22E6', + loang: '\u27EC', + loarr: '\u21FD', + lobrk: '\u27E6', + longleftarrow: '\u27F5', + longleftrightarrow: '\u27F7', + longmapsto: '\u27FC', + longrightarrow: '\u27F6', + looparrowleft: '\u21AB', + looparrowright: '\u21AC', + lopar: '\u2985', + lopf: '\uD835\uDD5D', + loplus: '\u2A2D', + lotimes: '\u2A34', + lowast: '\u2217', + lowbar: '\u005F', + loz: '\u25CA', + lozenge: '\u25CA', + lozf: '\u29EB', + lpar: '\u0028', + lparlt: '\u2993', + lrarr: '\u21C6', + lrcorner: '\u231F', + lrhar: '\u21CB', + lrhard: '\u296D', + lrm: '\u200E', + lrtri: '\u22BF', + lsaquo: '\u2039', + lscr: '\uD835\uDCC1', + lsh: '\u21B0', + lsim: '\u2272', + lsime: '\u2A8D', + lsimg: '\u2A8F', + lsqb: '\u005B', + lsquo: '\u2018', + lsquor: '\u201A', + lstrok: '\u0142', + lt: '\u003C', + ltcc: '\u2AA6', + ltcir: '\u2A79', + ltdot: '\u22D6', + lthree: '\u22CB', + ltimes: '\u22C9', + ltlarr: '\u2976', + ltquest: '\u2A7B', + ltrPar: '\u2996', + ltri: '\u25C3', + ltrie: '\u22B4', + ltrif: '\u25C2', + lurdshar: '\u294A', + luruhar: '\u2966', + lvertneqq: '\u2268\uFE00', + lvnE: '\u2268\uFE00', + mDDot: '\u223A', + macr: '\u00AF', + male: '\u2642', + malt: '\u2720', + maltese: '\u2720', + map: '\u21A6', + mapsto: '\u21A6', + mapstodown: '\u21A7', + mapstoleft: '\u21A4', + mapstoup: '\u21A5', + marker: '\u25AE', + mcomma: '\u2A29', + mcy: '\u043C', + mdash: '\u2014', + measuredangle: '\u2221', + mfr: '\uD835\uDD2A', + mho: '\u2127', + micro: '\u00B5', + mid: '\u2223', + midast: '\u002A', + midcir: '\u2AF0', + middot: '\u00B7', + minus: '\u2212', + minusb: '\u229F', + minusd: '\u2238', + minusdu: '\u2A2A', + mlcp: '\u2ADB', + mldr: '\u2026', + mnplus: '\u2213', + models: '\u22A7', + mopf: '\uD835\uDD5E', + mp: '\u2213', + mscr: '\uD835\uDCC2', + mstpos: '\u223E', + mu: '\u03BC', + multimap: '\u22B8', + mumap: '\u22B8', + nGg: '\u22D9\u0338', + nGt: '\u226B\u20D2', + nGtv: '\u226B\u0338', + nLeftarrow: '\u21CD', + nLeftrightarrow: '\u21CE', + nLl: '\u22D8\u0338', + nLt: '\u226A\u20D2', + nLtv: '\u226A\u0338', + nRightarrow: '\u21CF', + nVDash: '\u22AF', + nVdash: '\u22AE', + nabla: '\u2207', + nacute: '\u0144', + nang: '\u2220\u20D2', + nap: '\u2249', + napE: '\u2A70\u0338', + napid: '\u224B\u0338', + napos: '\u0149', + napprox: '\u2249', + natur: '\u266E', + natural: '\u266E', + naturals: '\u2115', + nbsp: '\u00A0', + nbump: '\u224E\u0338', + nbumpe: '\u224F\u0338', + ncap: '\u2A43', + ncaron: '\u0148', + ncedil: '\u0146', + ncong: '\u2247', + ncongdot: '\u2A6D\u0338', + ncup: '\u2A42', + ncy: '\u043D', + ndash: '\u2013', + ne: '\u2260', + neArr: '\u21D7', + nearhk: '\u2924', + nearr: '\u2197', + nearrow: '\u2197', + nedot: '\u2250\u0338', + nequiv: '\u2262', + nesear: '\u2928', + nesim: '\u2242\u0338', + nexist: '\u2204', + nexists: '\u2204', + nfr: '\uD835\uDD2B', + ngE: '\u2267\u0338', + nge: '\u2271', + ngeq: '\u2271', + ngeqq: '\u2267\u0338', + ngeqslant: '\u2A7E\u0338', + nges: '\u2A7E\u0338', + ngsim: '\u2275', + ngt: '\u226F', + ngtr: '\u226F', + nhArr: '\u21CE', + nharr: '\u21AE', + nhpar: '\u2AF2', + ni: '\u220B', + nis: '\u22FC', + nisd: '\u22FA', + niv: '\u220B', + njcy: '\u045A', + nlArr: '\u21CD', + nlE: '\u2266\u0338', + nlarr: '\u219A', + nldr: '\u2025', + nle: '\u2270', + nleftarrow: '\u219A', + nleftrightarrow: '\u21AE', + nleq: '\u2270', + nleqq: '\u2266\u0338', + nleqslant: '\u2A7D\u0338', + nles: '\u2A7D\u0338', + nless: '\u226E', + nlsim: '\u2274', + nlt: '\u226E', + nltri: '\u22EA', + nltrie: '\u22EC', + nmid: '\u2224', + nopf: '\uD835\uDD5F', + not: '\u00AC', + notin: '\u2209', + notinE: '\u22F9\u0338', + notindot: '\u22F5\u0338', + notinva: '\u2209', + notinvb: '\u22F7', + notinvc: '\u22F6', + notni: '\u220C', + notniva: '\u220C', + notnivb: '\u22FE', + notnivc: '\u22FD', + npar: '\u2226', + nparallel: '\u2226', + nparsl: '\u2AFD\u20E5', + npart: '\u2202\u0338', + npolint: '\u2A14', + npr: '\u2280', + nprcue: '\u22E0', + npre: '\u2AAF\u0338', + nprec: '\u2280', + npreceq: '\u2AAF\u0338', + nrArr: '\u21CF', + nrarr: '\u219B', + nrarrc: '\u2933\u0338', + nrarrw: '\u219D\u0338', + nrightarrow: '\u219B', + nrtri: '\u22EB', + nrtrie: '\u22ED', + nsc: '\u2281', + nsccue: '\u22E1', + nsce: '\u2AB0\u0338', + nscr: '\uD835\uDCC3', + nshortmid: '\u2224', + nshortparallel: '\u2226', + nsim: '\u2241', + nsime: '\u2244', + nsimeq: '\u2244', + nsmid: '\u2224', + nspar: '\u2226', + nsqsube: '\u22E2', + nsqsupe: '\u22E3', + nsub: '\u2284', + nsubE: '\u2AC5\u0338', + nsube: '\u2288', + nsubset: '\u2282\u20D2', + nsubseteq: '\u2288', + nsubseteqq: '\u2AC5\u0338', + nsucc: '\u2281', + nsucceq: '\u2AB0\u0338', + nsup: '\u2285', + nsupE: '\u2AC6\u0338', + nsupe: '\u2289', + nsupset: '\u2283\u20D2', + nsupseteq: '\u2289', + nsupseteqq: '\u2AC6\u0338', + ntgl: '\u2279', + ntilde: '\u00F1', + ntlg: '\u2278', + ntriangleleft: '\u22EA', + ntrianglelefteq: '\u22EC', + ntriangleright: '\u22EB', + ntrianglerighteq: '\u22ED', + nu: '\u03BD', + num: '\u0023', + numero: '\u2116', + numsp: '\u2007', + nvDash: '\u22AD', + nvHarr: '\u2904', + nvap: '\u224D\u20D2', + nvdash: '\u22AC', + nvge: '\u2265\u20D2', + nvgt: '\u003E\u20D2', + nvinfin: '\u29DE', + nvlArr: '\u2902', + nvle: '\u2264\u20D2', + nvlt: '\u003C\u20D2', + nvltrie: '\u22B4\u20D2', + nvrArr: '\u2903', + nvrtrie: '\u22B5\u20D2', + nvsim: '\u223C\u20D2', + nwArr: '\u21D6', + nwarhk: '\u2923', + nwarr: '\u2196', + nwarrow: '\u2196', + nwnear: '\u2927', + oS: '\u24C8', + oacute: '\u00F3', + oast: '\u229B', + ocir: '\u229A', + ocirc: '\u00F4', + ocy: '\u043E', + odash: '\u229D', + odblac: '\u0151', + odiv: '\u2A38', + odot: '\u2299', + odsold: '\u29BC', + oelig: '\u0153', + ofcir: '\u29BF', + ofr: '\uD835\uDD2C', + ogon: '\u02DB', + ograve: '\u00F2', + ogt: '\u29C1', + ohbar: '\u29B5', + ohm: '\u03A9', + oint: '\u222E', + olarr: '\u21BA', + olcir: '\u29BE', + olcross: '\u29BB', + oline: '\u203E', + olt: '\u29C0', + omacr: '\u014D', + omega: '\u03C9', + omicron: '\u03BF', + omid: '\u29B6', + ominus: '\u2296', + oopf: '\uD835\uDD60', + opar: '\u29B7', + operp: '\u29B9', + oplus: '\u2295', + or: '\u2228', + orarr: '\u21BB', + ord: '\u2A5D', + order: '\u2134', + orderof: '\u2134', + ordf: '\u00AA', + ordm: '\u00BA', + origof: '\u22B6', + oror: '\u2A56', + orslope: '\u2A57', + orv: '\u2A5B', + oscr: '\u2134', + oslash: '\u00F8', + osol: '\u2298', + otilde: '\u00F5', + otimes: '\u2297', + otimesas: '\u2A36', + ouml: '\u00F6', + ovbar: '\u233D', + par: '\u2225', + para: '\u00B6', + parallel: '\u2225', + parsim: '\u2AF3', + parsl: '\u2AFD', + part: '\u2202', + pcy: '\u043F', + percnt: '\u0025', + period: '\u002E', + permil: '\u2030', + perp: '\u22A5', + pertenk: '\u2031', + pfr: '\uD835\uDD2D', + phi: '\u03C6', + phiv: '\u03D5', + phmmat: '\u2133', + phone: '\u260E', + pi: '\u03C0', + pitchfork: '\u22D4', + piv: '\u03D6', + planck: '\u210F', + planckh: '\u210E', + plankv: '\u210F', + plus: '\u002B', + plusacir: '\u2A23', + plusb: '\u229E', + pluscir: '\u2A22', + plusdo: '\u2214', + plusdu: '\u2A25', + pluse: '\u2A72', + plusmn: '\u00B1', + plussim: '\u2A26', + plustwo: '\u2A27', + pm: '\u00B1', + pointint: '\u2A15', + popf: '\uD835\uDD61', + pound: '\u00A3', + pr: '\u227A', + prE: '\u2AB3', + prap: '\u2AB7', + prcue: '\u227C', + pre: '\u2AAF', + prec: '\u227A', + precapprox: '\u2AB7', + preccurlyeq: '\u227C', + preceq: '\u2AAF', + precnapprox: '\u2AB9', + precneqq: '\u2AB5', + precnsim: '\u22E8', + precsim: '\u227E', + prime: '\u2032', + primes: '\u2119', + prnE: '\u2AB5', + prnap: '\u2AB9', + prnsim: '\u22E8', + prod: '\u220F', + profalar: '\u232E', + profline: '\u2312', + profsurf: '\u2313', + prop: '\u221D', + propto: '\u221D', + prsim: '\u227E', + prurel: '\u22B0', + pscr: '\uD835\uDCC5', + psi: '\u03C8', + puncsp: '\u2008', + qfr: '\uD835\uDD2E', + qint: '\u2A0C', + qopf: '\uD835\uDD62', + qprime: '\u2057', + qscr: '\uD835\uDCC6', + quaternions: '\u210D', + quatint: '\u2A16', + quest: '\u003F', + questeq: '\u225F', + quot: '\u0022', + rAarr: '\u21DB', + rArr: '\u21D2', + rAtail: '\u291C', + rBarr: '\u290F', + rHar: '\u2964', + race: '\u223D\u0331', + racute: '\u0155', + radic: '\u221A', + raemptyv: '\u29B3', + rang: '\u27E9', + rangd: '\u2992', + range: '\u29A5', + rangle: '\u27E9', + raquo: '\u00BB', + rarr: '\u2192', + rarrap: '\u2975', + rarrb: '\u21E5', + rarrbfs: '\u2920', + rarrc: '\u2933', + rarrfs: '\u291E', + rarrhk: '\u21AA', + rarrlp: '\u21AC', + rarrpl: '\u2945', + rarrsim: '\u2974', + rarrtl: '\u21A3', + rarrw: '\u219D', + ratail: '\u291A', + ratio: '\u2236', + rationals: '\u211A', + rbarr: '\u290D', + rbbrk: '\u2773', + rbrace: '\u007D', + rbrack: '\u005D', + rbrke: '\u298C', + rbrksld: '\u298E', + rbrkslu: '\u2990', + rcaron: '\u0159', + rcedil: '\u0157', + rceil: '\u2309', + rcub: '\u007D', + rcy: '\u0440', + rdca: '\u2937', + rdldhar: '\u2969', + rdquo: '\u201D', + rdquor: '\u201D', + rdsh: '\u21B3', + real: '\u211C', + realine: '\u211B', + realpart: '\u211C', + reals: '\u211D', + rect: '\u25AD', + reg: '\u00AE', + rfisht: '\u297D', + rfloor: '\u230B', + rfr: '\uD835\uDD2F', + rhard: '\u21C1', + rharu: '\u21C0', + rharul: '\u296C', + rho: '\u03C1', + rhov: '\u03F1', + rightarrow: '\u2192', + rightarrowtail: '\u21A3', + rightharpoondown: '\u21C1', + rightharpoonup: '\u21C0', + rightleftarrows: '\u21C4', + rightleftharpoons: '\u21CC', + rightrightarrows: '\u21C9', + rightsquigarrow: '\u219D', + rightthreetimes: '\u22CC', + ring: '\u02DA', + risingdotseq: '\u2253', + rlarr: '\u21C4', + rlhar: '\u21CC', + rlm: '\u200F', + rmoust: '\u23B1', + rmoustache: '\u23B1', + rnmid: '\u2AEE', + roang: '\u27ED', + roarr: '\u21FE', + robrk: '\u27E7', + ropar: '\u2986', + ropf: '\uD835\uDD63', + roplus: '\u2A2E', + rotimes: '\u2A35', + rpar: '\u0029', + rpargt: '\u2994', + rppolint: '\u2A12', + rrarr: '\u21C9', + rsaquo: '\u203A', + rscr: '\uD835\uDCC7', + rsh: '\u21B1', + rsqb: '\u005D', + rsquo: '\u2019', + rsquor: '\u2019', + rthree: '\u22CC', + rtimes: '\u22CA', + rtri: '\u25B9', + rtrie: '\u22B5', + rtrif: '\u25B8', + rtriltri: '\u29CE', + ruluhar: '\u2968', + rx: '\u211E', + sacute: '\u015B', + sbquo: '\u201A', + sc: '\u227B', + scE: '\u2AB4', + scap: '\u2AB8', + scaron: '\u0161', + sccue: '\u227D', + sce: '\u2AB0', + scedil: '\u015F', + scirc: '\u015D', + scnE: '\u2AB6', + scnap: '\u2ABA', + scnsim: '\u22E9', + scpolint: '\u2A13', + scsim: '\u227F', + scy: '\u0441', + sdot: '\u22C5', + sdotb: '\u22A1', + sdote: '\u2A66', + seArr: '\u21D8', + searhk: '\u2925', + searr: '\u2198', + searrow: '\u2198', + sect: '\u00A7', + semi: '\u003B', + seswar: '\u2929', + setminus: '\u2216', + setmn: '\u2216', + sext: '\u2736', + sfr: '\uD835\uDD30', + sfrown: '\u2322', + sharp: '\u266F', + shchcy: '\u0449', + shcy: '\u0448', + shortmid: '\u2223', + shortparallel: '\u2225', + shy: '\u00AD', + sigma: '\u03C3', + sigmaf: '\u03C2', + sigmav: '\u03C2', + sim: '\u223C', + simdot: '\u2A6A', + sime: '\u2243', + simeq: '\u2243', + simg: '\u2A9E', + simgE: '\u2AA0', + siml: '\u2A9D', + simlE: '\u2A9F', + simne: '\u2246', + simplus: '\u2A24', + simrarr: '\u2972', + slarr: '\u2190', + smallsetminus: '\u2216', + smashp: '\u2A33', + smeparsl: '\u29E4', + smid: '\u2223', + smile: '\u2323', + smt: '\u2AAA', + smte: '\u2AAC', + smtes: '\u2AAC\uFE00', + softcy: '\u044C', + sol: '\u002F', + solb: '\u29C4', + solbar: '\u233F', + sopf: '\uD835\uDD64', + spades: '\u2660', + spadesuit: '\u2660', + spar: '\u2225', + sqcap: '\u2293', + sqcaps: '\u2293\uFE00', + sqcup: '\u2294', + sqcups: '\u2294\uFE00', + sqsub: '\u228F', + sqsube: '\u2291', + sqsubset: '\u228F', + sqsubseteq: '\u2291', + sqsup: '\u2290', + sqsupe: '\u2292', + sqsupset: '\u2290', + sqsupseteq: '\u2292', + squ: '\u25A1', + square: '\u25A1', + squarf: '\u25AA', + squf: '\u25AA', + srarr: '\u2192', + sscr: '\uD835\uDCC8', + ssetmn: '\u2216', + ssmile: '\u2323', + sstarf: '\u22C6', + star: '\u2606', + starf: '\u2605', + straightepsilon: '\u03F5', + straightphi: '\u03D5', + strns: '\u00AF', + sub: '\u2282', + subE: '\u2AC5', + subdot: '\u2ABD', + sube: '\u2286', + subedot: '\u2AC3', + submult: '\u2AC1', + subnE: '\u2ACB', + subne: '\u228A', + subplus: '\u2ABF', + subrarr: '\u2979', + subset: '\u2282', + subseteq: '\u2286', + subseteqq: '\u2AC5', + subsetneq: '\u228A', + subsetneqq: '\u2ACB', + subsim: '\u2AC7', + subsub: '\u2AD5', + subsup: '\u2AD3', + succ: '\u227B', + succapprox: '\u2AB8', + succcurlyeq: '\u227D', + succeq: '\u2AB0', + succnapprox: '\u2ABA', + succneqq: '\u2AB6', + succnsim: '\u22E9', + succsim: '\u227F', + sum: '\u2211', + sung: '\u266A', + sup1: '\u00B9', + sup2: '\u00B2', + sup3: '\u00B3', + sup: '\u2283', + supE: '\u2AC6', + supdot: '\u2ABE', + supdsub: '\u2AD8', + supe: '\u2287', + supedot: '\u2AC4', + suphsol: '\u27C9', + suphsub: '\u2AD7', + suplarr: '\u297B', + supmult: '\u2AC2', + supnE: '\u2ACC', + supne: '\u228B', + supplus: '\u2AC0', + supset: '\u2283', + supseteq: '\u2287', + supseteqq: '\u2AC6', + supsetneq: '\u228B', + supsetneqq: '\u2ACC', + supsim: '\u2AC8', + supsub: '\u2AD4', + supsup: '\u2AD6', + swArr: '\u21D9', + swarhk: '\u2926', + swarr: '\u2199', + swarrow: '\u2199', + swnwar: '\u292A', + szlig: '\u00DF', + target: '\u2316', + tau: '\u03C4', + tbrk: '\u23B4', + tcaron: '\u0165', + tcedil: '\u0163', + tcy: '\u0442', + tdot: '\u20DB', + telrec: '\u2315', + tfr: '\uD835\uDD31', + there4: '\u2234', + therefore: '\u2234', + theta: '\u03B8', + thetasym: '\u03D1', + thetav: '\u03D1', + thickapprox: '\u2248', + thicksim: '\u223C', + thinsp: '\u2009', + thkap: '\u2248', + thksim: '\u223C', + thorn: '\u00FE', + tilde: '\u02DC', + times: '\u00D7', + timesb: '\u22A0', + timesbar: '\u2A31', + timesd: '\u2A30', + tint: '\u222D', + toea: '\u2928', + top: '\u22A4', + topbot: '\u2336', + topcir: '\u2AF1', + topf: '\uD835\uDD65', + topfork: '\u2ADA', + tosa: '\u2929', + tprime: '\u2034', + trade: '\u2122', + triangle: '\u25B5', + triangledown: '\u25BF', + triangleleft: '\u25C3', + trianglelefteq: '\u22B4', + triangleq: '\u225C', + triangleright: '\u25B9', + trianglerighteq: '\u22B5', + tridot: '\u25EC', + trie: '\u225C', + triminus: '\u2A3A', + triplus: '\u2A39', + trisb: '\u29CD', + tritime: '\u2A3B', + trpezium: '\u23E2', + tscr: '\uD835\uDCC9', + tscy: '\u0446', + tshcy: '\u045B', + tstrok: '\u0167', + twixt: '\u226C', + twoheadleftarrow: '\u219E', + twoheadrightarrow: '\u21A0', + uArr: '\u21D1', + uHar: '\u2963', + uacute: '\u00FA', + uarr: '\u2191', + ubrcy: '\u045E', + ubreve: '\u016D', + ucirc: '\u00FB', + ucy: '\u0443', + udarr: '\u21C5', + udblac: '\u0171', + udhar: '\u296E', + ufisht: '\u297E', + ufr: '\uD835\uDD32', + ugrave: '\u00F9', + uharl: '\u21BF', + uharr: '\u21BE', + uhblk: '\u2580', + ulcorn: '\u231C', + ulcorner: '\u231C', + ulcrop: '\u230F', + ultri: '\u25F8', + umacr: '\u016B', + uml: '\u00A8', + uogon: '\u0173', + uopf: '\uD835\uDD66', + uparrow: '\u2191', + updownarrow: '\u2195', + upharpoonleft: '\u21BF', + upharpoonright: '\u21BE', + uplus: '\u228E', + upsi: '\u03C5', + upsih: '\u03D2', + upsilon: '\u03C5', + upuparrows: '\u21C8', + urcorn: '\u231D', + urcorner: '\u231D', + urcrop: '\u230E', + uring: '\u016F', + urtri: '\u25F9', + uscr: '\uD835\uDCCA', + utdot: '\u22F0', + utilde: '\u0169', + utri: '\u25B5', + utrif: '\u25B4', + uuarr: '\u21C8', + uuml: '\u00FC', + uwangle: '\u29A7', + vArr: '\u21D5', + vBar: '\u2AE8', + vBarv: '\u2AE9', + vDash: '\u22A8', + vangrt: '\u299C', + varepsilon: '\u03F5', + varkappa: '\u03F0', + varnothing: '\u2205', + varphi: '\u03D5', + varpi: '\u03D6', + varpropto: '\u221D', + varr: '\u2195', + varrho: '\u03F1', + varsigma: '\u03C2', + varsubsetneq: '\u228A\uFE00', + varsubsetneqq: '\u2ACB\uFE00', + varsupsetneq: '\u228B\uFE00', + varsupsetneqq: '\u2ACC\uFE00', + vartheta: '\u03D1', + vartriangleleft: '\u22B2', + vartriangleright: '\u22B3', + vcy: '\u0432', + vdash: '\u22A2', + vee: '\u2228', + veebar: '\u22BB', + veeeq: '\u225A', + vellip: '\u22EE', + verbar: '\u007C', + vert: '\u007C', + vfr: '\uD835\uDD33', + vltri: '\u22B2', + vnsub: '\u2282\u20D2', + vnsup: '\u2283\u20D2', + vopf: '\uD835\uDD67', + vprop: '\u221D', + vrtri: '\u22B3', + vscr: '\uD835\uDCCB', + vsubnE: '\u2ACB\uFE00', + vsubne: '\u228A\uFE00', + vsupnE: '\u2ACC\uFE00', + vsupne: '\u228B\uFE00', + vzigzag: '\u299A', + wcirc: '\u0175', + wedbar: '\u2A5F', + wedge: '\u2227', + wedgeq: '\u2259', + weierp: '\u2118', + wfr: '\uD835\uDD34', + wopf: '\uD835\uDD68', + wp: '\u2118', + wr: '\u2240', + wreath: '\u2240', + wscr: '\uD835\uDCCC', + xcap: '\u22C2', + xcirc: '\u25EF', + xcup: '\u22C3', + xdtri: '\u25BD', + xfr: '\uD835\uDD35', + xhArr: '\u27FA', + xharr: '\u27F7', + xi: '\u03BE', + xlArr: '\u27F8', + xlarr: '\u27F5', + xmap: '\u27FC', + xnis: '\u22FB', + xodot: '\u2A00', + xopf: '\uD835\uDD69', + xoplus: '\u2A01', + xotime: '\u2A02', + xrArr: '\u27F9', + xrarr: '\u27F6', + xscr: '\uD835\uDCCD', + xsqcup: '\u2A06', + xuplus: '\u2A04', + xutri: '\u25B3', + xvee: '\u22C1', + xwedge: '\u22C0', + yacute: '\u00FD', + yacy: '\u044F', + ycirc: '\u0177', + ycy: '\u044B', + yen: '\u00A5', + yfr: '\uD835\uDD36', + yicy: '\u0457', + yopf: '\uD835\uDD6A', + yscr: '\uD835\uDCCE', + yucy: '\u044E', + yuml: '\u00FF', + zacute: '\u017A', + zcaron: '\u017E', + zcy: '\u0437', + zdot: '\u017C', + zeetrf: '\u2128', + zeta: '\u03B6', + zfr: '\uD835\uDD37', + zhcy: '\u0436', + zigrarr: '\u21DD', + zopf: '\uD835\uDD6B', + zscr: '\uD835\uDCCF', + zwj: '\u200D', + zwnj: '\u200C' +}; + +const decodeMap: { [Identifier: string]: number } = { + '0': 65533, + '128': 8364, + '130': 8218, + '131': 402, + '132': 8222, + '133': 8230, + '134': 8224, + '135': 8225, + '136': 710, + '137': 8240, + '138': 352, + '139': 8249, + '140': 338, + '142': 381, + '145': 8216, + '146': 8217, + '147': 8220, + '148': 8221, + '149': 8226, + '150': 8211, + '151': 8212, + '152': 732, + '153': 8482, + '154': 353, + '155': 8250, + '156': 339, + '158': 382, + '159': 376 +}; + +// Used code from https://github.com/fb55/entities (BSD license) +export function decodeHTMLStrict(text: string): string { + return text.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g, (key) => { + if (key.charAt(1) === '#') { + const secondChar = key.charAt(2); + const codePoint = + secondChar === 'X' || secondChar === 'x' + ? parseInt(key.slice(3), 16) + : parseInt(key.slice(2), 10); + return decodeCodePoint(codePoint); + } + return entities[key.slice(1, -1)] || key; + }); +} + +function decodeCodePoint(codePoint: number): string { + if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { + return '\uFFFD'; + } + + if (codePoint in decodeMap) { + codePoint = decodeMap[codePoint]; + } + + return String.fromCodePoint(codePoint); +} diff --git a/node_modules/meriyah/src/lexer/identifier.ts b/node_modules/meriyah/src/lexer/identifier.ts new file mode 100644 index 0000000..ec8a7e4 --- /dev/null +++ b/node_modules/meriyah/src/lexer/identifier.ts @@ -0,0 +1,177 @@ +import { ParserState, Context } from '../common'; +import { Token, descKeywordTable } from '../token'; +import { Chars } from '../chars'; +import { advanceChar, consumeMultiUnitCodePoint, fromCodePoint, toHex } from './common'; +import { CharTypes, CharFlags, isIdentifierPart, isIdentifierStart, isIdPart } from './charClassifier'; +import { report, reportScannerError, Errors } from '../errors'; + +/** + * Scans identifier + * + * @param parser Parser object + * @param context Context masks + */ +export function scanIdentifier(parser: ParserState, context: Context, isValidAsKeyword: 0 | 1): Token { + while (isIdPart[advanceChar(parser)]) {} + parser.tokenValue = parser.source.slice(parser.tokenPos, parser.index); + + return parser.currentChar !== Chars.Backslash && parser.currentChar < 0x7e + ? descKeywordTable[parser.tokenValue] || Token.Identifier + : scanIdentifierSlowCase(parser, context, 0, isValidAsKeyword); +} + +/** + * Scans unicode identifier + * + * @param parser Parser object + * @param context Context masks + */ +export function scanUnicodeIdentifier(parser: ParserState, context: Context): Token { + const cookedChar = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(cookedChar)) report(parser, Errors.InvalidUnicodeEscapeSequence); + parser.tokenValue = fromCodePoint(cookedChar); + return scanIdentifierSlowCase(parser, context, /* hasEscape */ 1, CharTypes[cookedChar] & CharFlags.KeywordCandidate); +} + +/** + * Scans identifier slow case + * + * @param parser Parser object + * @param context Context masks + * @param hasEscape True if contains a unicode sequence + * @param isValidAsKeyword + */ +export function scanIdentifierSlowCase( + parser: ParserState, + context: Context, + hasEscape: 0 | 1, + isValidAsKeyword: number +): Token { + let start = parser.index; + + while (parser.index < parser.end) { + if (parser.currentChar === Chars.Backslash) { + parser.tokenValue += parser.source.slice(start, parser.index); + hasEscape = 1; + const code = scanIdentifierUnicodeEscape(parser); + if (!isIdentifierPart(code)) report(parser, Errors.InvalidUnicodeEscapeSequence); + isValidAsKeyword = isValidAsKeyword && CharTypes[code] & CharFlags.KeywordCandidate; + parser.tokenValue += fromCodePoint(code); + start = parser.index; + } else if (isIdentifierPart(parser.currentChar) || consumeMultiUnitCodePoint(parser, parser.currentChar)) { + advanceChar(parser); + } else { + break; + } + } + + if (parser.index <= parser.end) { + parser.tokenValue += parser.source.slice(start, parser.index); + } + + const length = parser.tokenValue.length; + + if (isValidAsKeyword && length >= 2 && length <= 11) { + const token: Token | undefined = descKeywordTable[parser.tokenValue]; + if (token === void 0) return Token.Identifier; + if (!hasEscape) return token; + + if (context & Context.Strict) { + return token === Token.AwaitKeyword && (context & (Context.Module | Context.InAwaitContext)) === 0 + ? token + : token === Token.StaticKeyword + ? Token.EscapedFutureReserved + : (token & Token.FutureReserved) === Token.FutureReserved + ? Token.EscapedFutureReserved + : Token.EscapedReserved; + } + if ( + context & Context.AllowEscapedKeyword && + (context & Context.InGlobal) === 0 && + (token & Token.Reserved) === Token.Reserved + ) + return token; + if (token === Token.YieldKeyword) { + return context & Context.AllowEscapedKeyword + ? Token.AnyIdentifier + : context & Context.InYieldContext + ? Token.EscapedReserved + : token; + } + + return token === Token.AsyncKeyword && context & Context.AllowEscapedKeyword + ? Token.AnyIdentifier + : (token & Token.FutureReserved) === Token.FutureReserved + ? token + : token === Token.AwaitKeyword && (context & Context.InAwaitContext) === 0 + ? token + : Token.EscapedReserved; + } + return Token.Identifier; +} + +/** + * Scans private name + * + * @param parser Parser object + */ +export function scanPrivateIdentifier(parser: ParserState): Token { + if (!isIdentifierStart(advanceChar(parser))) report(parser, Errors.MissingPrivateIdentifier); + return Token.PrivateField; +} + +/** + * Scans unicode identifier + * + * @param parser Parser object + */ +export function scanIdentifierUnicodeEscape(parser: ParserState): number { + // Check for Unicode escape of the form '\uXXXX' + // and return code point value if valid Unicode escape is found. + if (parser.source.charCodeAt(parser.index + 1) !== Chars.LowerU) { + report(parser, Errors.InvalidUnicodeEscapeSequence); + } + parser.currentChar = parser.source.charCodeAt((parser.index += 2)); + return scanUnicodeEscape(parser); +} + +/** + * Scans unicode escape value + * + * @param parser Parser object + */ +export function scanUnicodeEscape(parser: ParserState): number { + // Accept both \uxxxx and \u{xxxxxx} + let codePoint = 0; + const char = parser.currentChar; + // First handle a delimited Unicode escape, e.g. \u{1F4A9} + if (char === Chars.LeftBrace) { + const begin = parser.index - 2; + while (CharTypes[advanceChar(parser)] & CharFlags.Hex) { + codePoint = (codePoint << 4) | toHex(parser.currentChar); + if (codePoint > Chars.NonBMPMax) reportScannerError(begin, parser.line, parser.index + 1, Errors.UnicodeOverflow); + } + + // At least 4 characters have to be read + if ((parser.currentChar as number) !== Chars.RightBrace) { + reportScannerError(begin, parser.line, parser.index - 1, Errors.InvalidHexEscapeSequence); + } + advanceChar(parser); // consumes '}' + return codePoint; + } + + if ((CharTypes[char] & CharFlags.Hex) === 0) report(parser, Errors.InvalidHexEscapeSequence); // first one is mandatory + + const char2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[char2] & CharFlags.Hex) === 0) report(parser, Errors.InvalidHexEscapeSequence); + const char3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[char3] & CharFlags.Hex) === 0) report(parser, Errors.InvalidHexEscapeSequence); + const char4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[char4] & CharFlags.Hex) === 0) report(parser, Errors.InvalidHexEscapeSequence); + + codePoint = (toHex(char) << 12) | (toHex(char2) << 8) | (toHex(char3) << 4) | toHex(char4); + + parser.currentChar = parser.source.charCodeAt((parser.index += 4)); + + return codePoint; +} diff --git a/node_modules/meriyah/src/lexer/index.ts b/node_modules/meriyah/src/lexer/index.ts new file mode 100644 index 0000000..d86aee6 --- /dev/null +++ b/node_modules/meriyah/src/lexer/index.ts @@ -0,0 +1,32 @@ +export { scanSingleToken, nextToken, TokenLookup } from './scan'; +export { + skipMultiLineComment, + skipSingleLineComment, + skipHashBang, + skipSingleHTMLComment, + CommentType +} from './comments'; +export { + advanceChar, + consumeMultiUnitCodePoint, + isExoticECMAScriptWhitespace, + fromCodePoint, + toHex, + consumeLineFeed, + scanNewLine, + LexerState, + NumberKind, + convertTokenType +} from './common'; +export { CharTypes, CharFlags, isIdentifierStart, isIdentifierPart } from './charClassifier'; +export { + scanIdentifier, + scanIdentifierSlowCase, + scanUnicodeIdentifier, + scanPrivateIdentifier, + scanUnicodeEscape +} from './identifier'; +export { scanString } from './string'; +export { scanNumber } from './numeric'; +export { scanTemplate, scanTemplateTail } from './template'; +export { scanRegularExpression } from './regexp'; diff --git a/node_modules/meriyah/src/lexer/jsx.ts b/node_modules/meriyah/src/lexer/jsx.ts new file mode 100644 index 0000000..7b80184 --- /dev/null +++ b/node_modules/meriyah/src/lexer/jsx.ts @@ -0,0 +1,126 @@ +import { CharFlags, CharTypes } from './charClassifier'; +import { Chars } from '../chars'; +import { Token } from '../token'; +import { ParserState, Context } from '../common'; +import { report, Errors } from '../errors'; +import { advanceChar, LexerState, TokenLookup, scanSingleToken, scanNewLine, consumeLineFeed } from './'; +import { decodeHTMLStrict } from './decodeHTML'; + +/** + * Scans JSX attribute value + * + * @param parser The parser instance + * @param context Context masks + */ +export function scanJSXAttributeValue(parser: ParserState, context: Context): Token { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + parser.token = + CharTypes[parser.currentChar] & CharFlags.StringLiteral + ? scanJSXString(parser, context) + : scanSingleToken(parser, context, LexerState.None); + return parser.token; +} + +/** + * Scans JSX string + * + * @param parser The parser object + */ +export function scanJSXString(parser: ParserState, context: Context): Token { + const quote = parser.currentChar; + let char = advanceChar(parser); + const start = parser.index; + while (char !== quote) { + if (parser.index >= parser.end) report(parser, Errors.UnterminatedString); + char = advanceChar(parser); + } + + // check for unterminated string + if (char !== quote) report(parser, Errors.UnterminatedString); + parser.tokenValue = parser.source.slice(start, parser.index); + advanceChar(parser); // skip the quote + if (context & Context.OptionsRaw) parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return Token.StringLiteral; +} + +/** + * Scans JSX token + * + * @param parser The parser object + */ +export function scanJSXToken(parser: ParserState, context: Context): Token { + parser.startPos = parser.tokenPos = parser.index; + parser.startColumn = parser.colPos = parser.column; + parser.startLine = parser.linePos = parser.line; + + if (parser.index >= parser.end) return (parser.token = Token.EOF); + + const token = TokenLookup[parser.source.charCodeAt(parser.index)]; + + switch (token) { + // '<' + case Token.LessThan: { + advanceChar(parser); + if (parser.currentChar === Chars.Slash) { + advanceChar(parser); + parser.token = Token.JSXClose; + } else { + parser.token = Token.LessThan; + } + + break; + } + // '{' + case Token.LeftBrace: { + advanceChar(parser); + parser.token = Token.LeftBrace; + break; + } + default: { + let state = LexerState.None; + + while (parser.index < parser.end) { + const type = CharTypes[parser.source.charCodeAt(parser.index)]; + + if (type & CharFlags.CarriageReturn) { + state |= LexerState.NewLine | LexerState.LastIsCR; + scanNewLine(parser); + } else if (type & CharFlags.LineFeed) { + consumeLineFeed(parser, state); + state = (state & ~LexerState.LastIsCR) | LexerState.NewLine; + } else { + advanceChar(parser); + } + + if (CharTypes[parser.currentChar] & CharFlags.JSXToken) break; + } + + const raw = parser.source.slice(parser.tokenPos, parser.index); + if (context & Context.OptionsRaw) parser.tokenRaw = raw; + parser.tokenValue = decodeHTMLStrict(raw); + parser.token = Token.JSXText; + } + } + + return parser.token; +} + +/** + * Scans JSX identifier + * + * @param parser The parser instance + */ +export function scanJSXIdentifier(parser: ParserState): Token { + if ((parser.token & Token.IsIdentifier) === Token.IsIdentifier) { + const { index } = parser; + let char = parser.currentChar; + while (CharTypes[char] & (CharFlags.Hyphen | CharFlags.IdentifierPart)) { + char = advanceChar(parser); + } + parser.tokenValue += parser.source.slice(index, parser.index); + } + parser.token = Token.Identifier; + return parser.token; +} diff --git a/node_modules/meriyah/src/lexer/numeric.ts b/node_modules/meriyah/src/lexer/numeric.ts new file mode 100644 index 0000000..95725bb --- /dev/null +++ b/node_modules/meriyah/src/lexer/numeric.ts @@ -0,0 +1,259 @@ +import { ParserState, Context, Flags } from '../common'; +import { Token } from '../token'; +import { advanceChar, toHex, NumberKind } from './common'; +import { CharTypes, CharFlags, isIdentifierStart } from './charClassifier'; +import { Chars } from '../chars'; +import { report, Errors, reportScannerError } from '../errors'; + +/** + * Scans numeric literal + * + * @param parser Parser object + * @param context Context masks + * @param isFloat + */ +export function scanNumber(parser: ParserState, context: Context, kind: NumberKind): Token { + // DecimalLiteral :: + // DecimalIntegerLiteral . DecimalDigits_opt + // . DecimalDigits + let char = parser.currentChar; + let value: any = 0; + let digit = 9; + let atStart = kind & NumberKind.Float ? 0 : 1; + let digits = 0; + let allowSeparator: 0 | 1 = 0; + + if (kind & NumberKind.Float) { + value = '.' + scanDecimalDigitsOrSeparator(parser, char); + char = parser.currentChar; + // It is a Syntax Error if the MV is not an integer. (dot decimalDigits) + if (char === Chars.LowerN) report(parser, Errors.InvalidBigInt); + } else { + if (char === Chars.Zero) { + char = advanceChar(parser); + + // Hex + if ((char | 32) === Chars.LowerX) { + kind = NumberKind.Hex | NumberKind.ValidBigIntKind; + char = advanceChar(parser); // skips 'X', 'x' + while (CharTypes[char] & (CharFlags.Hex | CharFlags.Underscore)) { + if (char === Chars.Underscore) { + if (!allowSeparator) report(parser, Errors.ContinuousNumericSeparator); + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 0x10 + toHex(char); + digits++; + char = advanceChar(parser); + } + + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? Errors.MissingHexDigits : Errors.TrailingNumericSeparator); + } + // Octal + } else if ((char | 32) === Chars.LowerO) { + kind = NumberKind.Octal | NumberKind.ValidBigIntKind; + char = advanceChar(parser); // skips 'X', 'x' + while (CharTypes[char] & (CharFlags.Octal | CharFlags.Underscore)) { + if (char === Chars.Underscore) { + if (!allowSeparator) { + report(parser, Errors.ContinuousNumericSeparator); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 8 + (char - Chars.Zero); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? Errors.Unexpected : Errors.TrailingNumericSeparator); + } + } else if ((char | 32) === Chars.LowerB) { + kind = NumberKind.Binary | NumberKind.ValidBigIntKind; + char = advanceChar(parser); // skips 'B', 'b' + while (CharTypes[char] & (CharFlags.Binary | CharFlags.Underscore)) { + if (char === Chars.Underscore) { + if (!allowSeparator) { + report(parser, Errors.ContinuousNumericSeparator); + } + allowSeparator = 0; + char = advanceChar(parser); + continue; + } + allowSeparator = 1; + value = value * 2 + (char - Chars.Zero); + digits++; + char = advanceChar(parser); + } + if (digits < 1 || !allowSeparator) { + report(parser, digits < 1 ? Errors.Unexpected : Errors.TrailingNumericSeparator); + } + } else if (CharTypes[char] & CharFlags.Octal) { + // Octal integer literals are not permitted in strict mode code + if (context & Context.Strict) report(parser, Errors.StrictOctalEscape); + kind = NumberKind.ImplicitOctal; + while (CharTypes[char] & CharFlags.Decimal) { + if (CharTypes[char] & CharFlags.ImplicitOctalDigits) { + kind = NumberKind.NonOctalDecimal; + atStart = 0; + break; + } + value = value * 8 + (char - Chars.Zero); + char = advanceChar(parser); + } + } else if (CharTypes[char] & CharFlags.ImplicitOctalDigits) { + if (context & Context.Strict) report(parser, Errors.StrictOctalEscape); + parser.flags |= Flags.Octals; + kind = NumberKind.NonOctalDecimal; + } else if (char === Chars.Underscore) { + report(parser, Errors.Unexpected); + } + } + + // Parse decimal digits and allow trailing fractional part + if (kind & NumberKind.DecimalNumberKind) { + if (atStart) { + while (digit >= 0 && CharTypes[char] & (CharFlags.Decimal | CharFlags.Underscore)) { + if (char === Chars.Underscore) { + char = advanceChar(parser); + if (char === Chars.Underscore || kind & NumberKind.NonOctalDecimal) { + reportScannerError( + parser.index, + parser.line, + parser.index + 1 /* skips `_` */, + Errors.ContinuousNumericSeparator + ); + } + allowSeparator = 1; + continue; + } + allowSeparator = 0; + value = 10 * value + (char - Chars.Zero); + char = advanceChar(parser); + --digit; + } + + if (allowSeparator) { + reportScannerError( + parser.index, + parser.line, + parser.index + 1 /* skips `_` */, + Errors.TrailingNumericSeparator + ); + } + + if (digit >= 0 && !isIdentifierStart(char) && char !== Chars.Period) { + // Most numbers are pure decimal integers without fractional component + // or exponential notation. Handle that with optimized code. + parser.tokenValue = value; + if (context & Context.OptionsRaw) parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + return Token.NumericLiteral; + } + } + + value += scanDecimalDigitsOrSeparator(parser, char); + + char = parser.currentChar; + + // Consume any decimal dot and fractional component. + if (char === Chars.Period) { + if (advanceChar(parser) === Chars.Underscore) report(parser, Errors.Unexpected); + kind = NumberKind.Float; + value += '.' + scanDecimalDigitsOrSeparator(parser, parser.currentChar); + char = parser.currentChar; + } + } + } + const end = parser.index; + + let isBigInt: 0 | 1 = 0; + + if (char === Chars.LowerN && kind & NumberKind.ValidBigIntKind) { + isBigInt = 1; + char = advanceChar(parser); + } else { + // Consume any exponential notation. + if ((char | 32) === Chars.LowerE) { + char = advanceChar(parser); + + // '-', '+' + if (CharTypes[char] & CharFlags.Exponent) char = advanceChar(parser); + + const { index } = parser; + + // Exponential notation must contain at least one digit + if ((CharTypes[char] & CharFlags.Decimal) < 1) report(parser, Errors.MissingExponent); + + // Consume exponential digits + value += parser.source.substring(end, index) + scanDecimalDigitsOrSeparator(parser, char); + + char = parser.currentChar; + } + } + + // The source character immediately following a numeric literal must + // not be an identifier start or a decimal digit + if ((parser.index < parser.end && CharTypes[char] & CharFlags.Decimal) || isIdentifierStart(char)) { + report(parser, Errors.IDStartAfterNumber); + } + + if (isBigInt) { + parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + parser.tokenValue = BigInt(value); + return Token.BigIntLiteral; + } + + parser.tokenValue = + kind & (NumberKind.ImplicitOctal | NumberKind.Binary | NumberKind.Hex | NumberKind.Octal) + ? value + : kind & NumberKind.NonOctalDecimal + ? parseFloat(parser.source.substring(parser.tokenPos, parser.index)) + : +value; + + if (context & Context.OptionsRaw) parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + + return Token.NumericLiteral; +} + +/** + * Scans numeric literal and skip underscore '_' if it exist + * + * @param parser Parser object + * @param char Code point + */ +export function scanDecimalDigitsOrSeparator(parser: ParserState, char: number): string { + let allowSeparator: 0 | 1 = 0; + let start = parser.index; + let ret = ''; + while (CharTypes[char] & (CharFlags.Decimal | CharFlags.Underscore)) { + if (char === Chars.Underscore) { + const { index } = parser; + char = advanceChar(parser); + if (char === Chars.Underscore) { + reportScannerError( + parser.index, + parser.line, + parser.index + 1 /* skips `_` */, + Errors.ContinuousNumericSeparator + ); + } + allowSeparator = 1; + ret += parser.source.substring(start, index); + start = parser.index; + continue; + } + allowSeparator = 0; + char = advanceChar(parser); + } + + if (allowSeparator) { + reportScannerError(parser.index, parser.line, parser.index + 1 /* skips `_` */, Errors.TrailingNumericSeparator); + } + + return ret + parser.source.substring(start, parser.index); +} diff --git a/node_modules/meriyah/src/lexer/regexp.ts b/node_modules/meriyah/src/lexer/regexp.ts new file mode 100644 index 0000000..4a48d50 --- /dev/null +++ b/node_modules/meriyah/src/lexer/regexp.ts @@ -0,0 +1,143 @@ +import { Chars } from '../chars'; +import { Context, ParserState } from '../common'; +import { Token } from '../token'; +import { advanceChar } from './common'; +import { isIdentifierPart } from './charClassifier'; +import { report, Errors } from '../errors'; + +/** + * Scans regular expression + * + * @param parser Parser object + * @param context Context masks + */ + +export function scanRegularExpression(parser: ParserState, context: Context): Token { + const enum RegexState { + Empty = 0, + Escape = 0x1, + Class = 0x2 + } + const bodyStart = parser.index; + // Scan: ('/' | '/=') RegularExpressionBody '/' RegularExpressionFlags + let preparseState = RegexState.Empty; + + loop: while (true) { + const ch = parser.currentChar; + advanceChar(parser); + + if (preparseState & RegexState.Escape) { + preparseState &= ~RegexState.Escape; + } else { + switch (ch) { + case Chars.Slash: + if (!preparseState) break loop; + else break; + case Chars.Backslash: + preparseState |= RegexState.Escape; + break; + case Chars.LeftBracket: + preparseState |= RegexState.Class; + break; + case Chars.RightBracket: + preparseState &= RegexState.Escape; + break; + case Chars.CarriageReturn: + case Chars.LineFeed: + case Chars.LineSeparator: + case Chars.ParagraphSeparator: + report(parser, Errors.UnterminatedRegExp); + default: // ignore + } + } + + if (parser.index >= parser.source.length) { + return report(parser, Errors.UnterminatedRegExp); + } + } + + const bodyEnd = parser.index - 1; + + const enum RegexFlags { + Empty = 0b00000, + IgnoreCase = 0b00001, + Global = 0b00010, + Multiline = 0b00100, + Unicode = 0b10000, + Sticky = 0b01000, + DotAll = 0b1100 + } + + let mask = RegexFlags.Empty; + let char = parser.currentChar; + + const { index: flagStart } = parser; + + while (isIdentifierPart(char)) { + switch (char) { + case Chars.LowerG: + if (mask & RegexFlags.Global) report(parser, Errors.DuplicateRegExpFlag, 'g'); + mask |= RegexFlags.Global; + break; + + case Chars.LowerI: + if (mask & RegexFlags.IgnoreCase) report(parser, Errors.DuplicateRegExpFlag, 'i'); + mask |= RegexFlags.IgnoreCase; + break; + + case Chars.LowerM: + if (mask & RegexFlags.Multiline) report(parser, Errors.DuplicateRegExpFlag, 'm'); + mask |= RegexFlags.Multiline; + break; + + case Chars.LowerU: + if (mask & RegexFlags.Unicode) report(parser, Errors.DuplicateRegExpFlag, 'g'); + mask |= RegexFlags.Unicode; + break; + + case Chars.LowerY: + if (mask & RegexFlags.Sticky) report(parser, Errors.DuplicateRegExpFlag, 'y'); + mask |= RegexFlags.Sticky; + break; + + case Chars.LowerS: + if (mask & RegexFlags.DotAll) report(parser, Errors.DuplicateRegExpFlag, 's'); + mask |= RegexFlags.DotAll; + break; + + default: + report(parser, Errors.UnexpectedTokenRegExpFlag); + } + + char = advanceChar(parser); + } + + const flags = parser.source.slice(flagStart, parser.index); + + const pattern = parser.source.slice(bodyStart, bodyEnd); + + parser.tokenRegExp = { pattern, flags }; + + if (context & Context.OptionsRaw) parser.tokenRaw = parser.source.slice(parser.tokenPos, parser.index); + + parser.tokenValue = validate(parser, pattern, flags); + + return Token.RegularExpression; +} + +/** + * Validates regular expressions + * + * + * @param state Parser instance + * @param context Context masks + * @param pattern Regexp body + * @param flags Regexp flags + */ +function validate(parser: ParserState, pattern: string, flags: string): RegExp | null | Token { + try { + return new RegExp(pattern, flags); + } catch (e) { + report(parser, Errors.UnterminatedRegExp); + } +} diff --git a/node_modules/meriyah/src/lexer/scan.ts b/node_modules/meriyah/src/lexer/scan.ts new file mode 100644 index 0000000..25063e7 --- /dev/null +++ b/node_modules/meriyah/src/lexer/scan.ts @@ -0,0 +1,655 @@ +import { Chars } from '../chars'; +import { Token } from '../token'; +import { ParserState, Context, Flags } from '../common'; +import { report, Errors } from '../errors'; +import { unicodeLookup } from '../unicode'; +import { + advanceChar, + LexerState, + isExoticECMAScriptWhitespace, + NumberKind, + fromCodePoint, + consumeLineFeed, + scanNewLine, + convertTokenType +} from './common'; +import { skipSingleLineComment, skipMultiLineComment, skipSingleHTMLComment, CommentType } from './comments'; +import { scanRegularExpression } from './regexp'; +import { scanTemplate } from './template'; +import { scanNumber } from './numeric'; +import { scanString } from './string'; +import { scanIdentifier, scanUnicodeIdentifier, scanIdentifierSlowCase, scanPrivateIdentifier } from './identifier'; + +/* + * OneChar: 40, 41, 44, 58, 59, 63, 91, 93, 123, 125, 126: + * '(', ')', ',', ':', ';', '?', '[', ']', '{', '}', '~' + * PrivateField: 35: '#', + * Identifier: 36, 65..90, 92, 95, 97..122: '$', 'A'..'Z', '_', '\'', 'a'..'z' + * Period: 46: '.' + * StringLiteral: 34, 39: '"', `'` + * NumericLiteral: 48, 49..57: '0'..'9' + * WhiteSpace: 9, 11, 12, 32: '\t', '\v', '\f', ' ' + * LineFeed: 10: '\n' + * CarriageReturn: 13: '\r' + * Template: 96: '`' + */ + +export const TokenLookup = [ + /* 0 - Null */ Token.Illegal, + /* 1 - Start of Heading */ Token.Illegal, + /* 2 - Start of Text */ Token.Illegal, + /* 3 - End of Text */ Token.Illegal, + /* 4 - End of Transm. */ Token.Illegal, + /* 5 - Enquiry */ Token.Illegal, + /* 6 - Acknowledgment */ Token.Illegal, + /* 7 - Bell */ Token.Illegal, + /* 8 - Backspace */ Token.Illegal, + /* 9 - Horizontal Tab */ Token.WhiteSpace, + /* 10 - Line Feed */ Token.LineFeed, + /* 11 - Vertical Tab */ Token.WhiteSpace, + /* 12 - Form Feed */ Token.WhiteSpace, + /* 13 - Carriage Return */ Token.CarriageReturn, + /* 14 - Shift Out */ Token.Illegal, + /* 15 - Shift In */ Token.Illegal, + /* 16 - Data Line Escape */ Token.Illegal, + /* 17 - Device Control 1 */ Token.Illegal, + /* 18 - Device Control 2 */ Token.Illegal, + /* 19 - Device Control 3 */ Token.Illegal, + /* 20 - Device Control 4 */ Token.Illegal, + /* 21 - Negative Ack. */ Token.Illegal, + /* 22 - Synchronous Idle */ Token.Illegal, + /* 23 - End of Transmit */ Token.Illegal, + /* 24 - Cancel */ Token.Illegal, + /* 25 - End of Medium */ Token.Illegal, + /* 26 - Substitute */ Token.Illegal, + /* 27 - Escape */ Token.Illegal, + /* 28 - File Separator */ Token.Illegal, + /* 29 - Group Separator */ Token.Illegal, + /* 30 - Record Separator */ Token.Illegal, + /* 31 - Unit Separator */ Token.Illegal, + /* 32 - Space */ Token.WhiteSpace, + /* 33 - ! */ Token.Negate, + /* 34 - " */ Token.StringLiteral, + /* 35 - # */ Token.PrivateField, + /* 36 - $ */ Token.Identifier, + /* 37 - % */ Token.Modulo, + /* 38 - & */ Token.BitwiseAnd, + /* 39 - ' */ Token.StringLiteral, + /* 40 - ( */ Token.LeftParen, + /* 41 - ) */ Token.RightParen, + /* 42 - * */ Token.Multiply, + /* 43 - + */ Token.Add, + /* 44 - , */ Token.Comma, + /* 45 - - */ Token.Subtract, + /* 46 - . */ Token.Period, + /* 47 - / */ Token.Divide, + /* 48 - 0 */ Token.NumericLiteral, + /* 49 - 1 */ Token.NumericLiteral, + /* 50 - 2 */ Token.NumericLiteral, + /* 51 - 3 */ Token.NumericLiteral, + /* 52 - 4 */ Token.NumericLiteral, + /* 53 - 5 */ Token.NumericLiteral, + /* 54 - 6 */ Token.NumericLiteral, + /* 55 - 7 */ Token.NumericLiteral, + /* 56 - 8 */ Token.NumericLiteral, + /* 57 - 9 */ Token.NumericLiteral, + /* 58 - : */ Token.Colon, + /* 59 - ; */ Token.Semicolon, + /* 60 - < */ Token.LessThan, + /* 61 - = */ Token.Assign, + /* 62 - > */ Token.GreaterThan, + /* 63 - ? */ Token.QuestionMark, + /* 64 - @ */ Token.Decorator, + /* 65 - A */ Token.Identifier, + /* 66 - B */ Token.Identifier, + /* 67 - C */ Token.Identifier, + /* 68 - D */ Token.Identifier, + /* 69 - E */ Token.Identifier, + /* 70 - F */ Token.Identifier, + /* 71 - G */ Token.Identifier, + /* 72 - H */ Token.Identifier, + /* 73 - I */ Token.Identifier, + /* 74 - J */ Token.Identifier, + /* 75 - K */ Token.Identifier, + /* 76 - L */ Token.Identifier, + /* 77 - M */ Token.Identifier, + /* 78 - N */ Token.Identifier, + /* 79 - O */ Token.Identifier, + /* 80 - P */ Token.Identifier, + /* 81 - Q */ Token.Identifier, + /* 82 - R */ Token.Identifier, + /* 83 - S */ Token.Identifier, + /* 84 - T */ Token.Identifier, + /* 85 - U */ Token.Identifier, + /* 86 - V */ Token.Identifier, + /* 87 - W */ Token.Identifier, + /* 88 - X */ Token.Identifier, + /* 89 - Y */ Token.Identifier, + /* 90 - Z */ Token.Identifier, + /* 91 - [ */ Token.LeftBracket, + /* 92 - \ */ Token.EscapedIdentifier, + /* 93 - ] */ Token.RightBracket, + /* 94 - ^ */ Token.BitwiseXor, + /* 95 - _ */ Token.Identifier, + /* 96 - ` */ Token.Template, + /* 97 - a */ Token.Keyword, + /* 98 - b */ Token.Keyword, + /* 99 - c */ Token.Keyword, + /* 100 - d */ Token.Keyword, + /* 101 - e */ Token.Keyword, + /* 102 - f */ Token.Keyword, + /* 103 - g */ Token.Keyword, + /* 104 - h */ Token.Identifier, + /* 105 - i */ Token.Keyword, + /* 106 - j */ Token.Identifier, + /* 107 - k */ Token.Identifier, + /* 108 - l */ Token.Keyword, + /* 109 - m */ Token.Identifier, + /* 110 - n */ Token.Keyword, + /* 111 - o */ Token.Identifier, + /* 112 - p */ Token.Keyword, + /* 113 - q */ Token.Identifier, + /* 114 - r */ Token.Keyword, + /* 115 - s */ Token.Keyword, + /* 116 - t */ Token.Keyword, + /* 117 - u */ Token.Identifier, + /* 118 - v */ Token.Keyword, + /* 119 - w */ Token.Keyword, + /* 120 - x */ Token.Identifier, + /* 121 - y */ Token.Keyword, + /* 122 - z */ Token.Keyword, + /* 123 - { */ Token.LeftBrace, + /* 124 - | */ Token.BitwiseOr, + /* 125 - } */ Token.RightBrace, + /* 126 - ~ */ Token.Complement, + /* 127 - Delete */ Token.Illegal +]; + +/** + * Scans next token in the stream + * + * @param parser Parser object + * @param context Context masks + */ +export function nextToken(parser: ParserState, context: Context): void { + parser.flags = (parser.flags | Flags.NewLine) ^ Flags.NewLine; + parser.startPos = parser.index; + parser.startColumn = parser.column; + parser.startLine = parser.line; + parser.token = scanSingleToken(parser, context, LexerState.None); + if (parser.onToken && parser.token !== Token.EOF) { + const loc = { + start: { + line: parser.linePos, + column: parser.colPos + }, + end: { + line: parser.line, + column: parser.column + } + }; + parser.onToken(convertTokenType(parser.token), parser.tokenPos, parser.index, loc); + } +} + +export function scanSingleToken(parser: ParserState, context: Context, state: LexerState): Token { + const isStartOfLine = parser.index === 0; + + const source = parser.source; + + // These three are only for HTMLClose comment + let startPos = parser.index; + let startLine = parser.line; + let startColumn = parser.column; + + while (parser.index < parser.end) { + parser.tokenPos = parser.index; + parser.colPos = parser.column; + parser.linePos = parser.line; + + let char = parser.currentChar; + + if (char <= 0x7e) { + const token = TokenLookup[char]; + + switch (token) { + case Token.LeftParen: + case Token.RightParen: + case Token.LeftBrace: + case Token.RightBrace: + case Token.LeftBracket: + case Token.RightBracket: + case Token.Colon: + case Token.Semicolon: + case Token.Comma: + case Token.Complement: + case Token.Decorator: + case Token.Illegal: + advanceChar(parser); + return token; + + // Look for an identifier + case Token.Identifier: + return scanIdentifier(parser, context, /* isValidAsKeyword */ 0); + + // Look for identifier or keyword + case Token.Keyword: + return scanIdentifier(parser, context, /* isValidAsKeyword */ 1); + + // Look for a decimal number. + case Token.NumericLiteral: + return scanNumber(parser, context, NumberKind.Decimal | NumberKind.ValidBigIntKind); + + // Look for a string literal + case Token.StringLiteral: + return scanString(parser, context, char); + + // Look for a template string + case Token.Template: + return scanTemplate(parser, context); + + // Look for a escaped identifier + case Token.EscapedIdentifier: + return scanUnicodeIdentifier(parser, context); + + // `#` (private name) + case Token.PrivateField: + return scanPrivateIdentifier(parser); + + case Token.WhiteSpace: + advanceChar(parser); + break; + + case Token.CarriageReturn: + state |= LexerState.NewLine | LexerState.LastIsCR; + scanNewLine(parser); + break; + + case Token.LineFeed: + consumeLineFeed(parser, state); + state = (state & ~LexerState.LastIsCR) | LexerState.NewLine; + break; + + // `<`, `<=`, `<<`, `<<=`, `` + case Token.Assign: { + advanceChar(parser); + + const ch = parser.currentChar; + + if (ch === Chars.EqualSign) { + if (advanceChar(parser) === Chars.EqualSign) { + advanceChar(parser); + return Token.StrictEqual; + } + return Token.LooseEqual; + } + if (ch === Chars.GreaterThan) { + advanceChar(parser); + return Token.Arrow; + } + + return Token.Assign; + } + + // `!`, `!=`, `!==` + case Token.Negate: + if (advanceChar(parser) !== Chars.EqualSign) { + return Token.Negate; + } + if (advanceChar(parser) !== Chars.EqualSign) { + return Token.LooseNotEqual; + } + advanceChar(parser); + return Token.StrictNotEqual; + + // `%`, `%=` + case Token.Modulo: + if (advanceChar(parser) !== Chars.EqualSign) return Token.Modulo; + advanceChar(parser); + return Token.ModuloAssign; + + // `*`, `**`, `*=`, `**=` + case Token.Multiply: { + advanceChar(parser); + + if (parser.index >= parser.end) return Token.Multiply; + + const ch = parser.currentChar; + + if (ch === Chars.EqualSign) { + advanceChar(parser); + return Token.MultiplyAssign; + } + + if (ch !== Chars.Asterisk) return Token.Multiply; + + if (advanceChar(parser) !== Chars.EqualSign) return Token.Exponentiate; + + advanceChar(parser); + + return Token.ExponentiateAssign; + } + + // `^`, `^=` + case Token.BitwiseXor: + if (advanceChar(parser) !== Chars.EqualSign) return Token.BitwiseXor; + advanceChar(parser); + return Token.BitwiseXorAssign; + + // `+`, `++`, `+=` + case Token.Add: { + advanceChar(parser); + + const ch = parser.currentChar; + + if (ch === Chars.Plus) { + advanceChar(parser); + return Token.Increment; + } + + if (ch === Chars.EqualSign) { + advanceChar(parser); + return Token.AddAssign; + } + + return Token.Add; + } + + // `-`, `--`, `-=`, `-->` + case Token.Subtract: { + advanceChar(parser); + + const ch = parser.currentChar; + + if (ch === Chars.Hyphen) { + advanceChar(parser); + if ((state & LexerState.NewLine || isStartOfLine) && parser.currentChar === Chars.GreaterThan) { + if ((context & Context.OptionsWebCompat) === 0) report(parser, Errors.HtmlCommentInWebCompat); + advanceChar(parser); + state = skipSingleHTMLComment( + parser, + source, + state, + context, + CommentType.HTMLClose, + startPos, + startLine, + startColumn + ); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + + return Token.Decrement; + } + + if (ch === Chars.EqualSign) { + advanceChar(parser); + return Token.SubtractAssign; + } + + return Token.Subtract; + } + + // `/`, `/=`, `/>`, '/*..*/' + case Token.Divide: { + advanceChar(parser); + if (parser.index < parser.end) { + const ch = parser.currentChar; + if (ch === Chars.Slash) { + advanceChar(parser); + state = skipSingleLineComment( + parser, + source, + state, + CommentType.Single, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (ch === Chars.Asterisk) { + advanceChar(parser); + state = skipMultiLineComment(parser, source, state) as LexerState; + startPos = parser.tokenPos; + startLine = parser.linePos; + startColumn = parser.colPos; + continue; + } + if (context & Context.AllowRegExp) { + return scanRegularExpression(parser, context); + } + if (ch === Chars.EqualSign) { + advanceChar(parser); + return Token.DivideAssign; + } + } + + return Token.Divide; + } + + // `.`, `...`, `.123` (numeric literal) + case Token.Period: + const next = advanceChar(parser); + if (next >= Chars.Zero && next <= Chars.Nine) + return scanNumber(parser, context, NumberKind.Float | NumberKind.Decimal); + if (next === Chars.Period) { + const index = parser.index + 1; + if (index < parser.end && source.charCodeAt(index) === Chars.Period) { + parser.column += 2; + parser.currentChar = source.charCodeAt((parser.index += 2)); + return Token.Ellipsis; + } + } + return Token.Period; + + // `|`, `||`, `|=`, `||=` + case Token.BitwiseOr: { + advanceChar(parser); + + const ch = parser.currentChar; + + if (ch === Chars.VerticalBar) { + advanceChar(parser); + + if (parser.currentChar === Chars.EqualSign) { + advanceChar(parser); + return Token.LogicalOrAssign; + } + + return Token.LogicalOr; + } + if (ch === Chars.EqualSign) { + advanceChar(parser); + return Token.BitwiseOrAssign; + } + + return Token.BitwiseOr; + } + + // `>`, `>=`, `>>`, `>>>`, `>>=`, `>>>=` + case Token.GreaterThan: { + advanceChar(parser); + + const ch = parser.currentChar; + + if (ch === Chars.EqualSign) { + advanceChar(parser); + return Token.GreaterThanOrEqual; + } + + if (ch !== Chars.GreaterThan) return Token.GreaterThan; + + advanceChar(parser); + + if (parser.index < parser.end) { + const ch = parser.currentChar; + + if (ch === Chars.GreaterThan) { + if (advanceChar(parser) === Chars.EqualSign) { + advanceChar(parser); + return Token.LogicalShiftRightAssign; + } + return Token.LogicalShiftRight; + } + if (ch === Chars.EqualSign) { + advanceChar(parser); + return Token.ShiftRightAssign; + } + } + + return Token.ShiftRight; + } + + // `&`, `&&`, `&=`, `&&=` + case Token.BitwiseAnd: { + advanceChar(parser); + + const ch = parser.currentChar; + + if (ch === Chars.Ampersand) { + advanceChar(parser); + + if (parser.currentChar === Chars.EqualSign) { + advanceChar(parser); + return Token.LogicalAndAssign; + } + + return Token.LogicalAnd; + } + + if (ch === Chars.EqualSign) { + advanceChar(parser); + return Token.BitwiseAndAssign; + } + + return Token.BitwiseAnd; + } + + // `?`, `??`, `?.`, `??=` + case Token.QuestionMark: { + let ch = advanceChar(parser); + if (ch === Chars.QuestionMark) { + advanceChar(parser); + + if (parser.currentChar === Chars.EqualSign) { + advanceChar(parser); + return Token.CoalesceAssign; + } + + return Token.Coalesce; + } + + if (ch === Chars.Period) { + const index = parser.index + 1; + // Check that it's not followed by any numbers + if (index < parser.end) { + ch = source.charCodeAt(index); + if (!(ch >= Chars.Zero && ch <= Chars.Nine)) { + advanceChar(parser); + return Token.QuestionMarkPeriod; + } + } + } + + return Token.QuestionMark; + } + + default: + // unreachable + } + } else { + if ((char ^ Chars.LineSeparator) <= 1) { + state = (state & ~LexerState.LastIsCR) | LexerState.NewLine; + scanNewLine(parser); + continue; + } + + if ((char & 0xfc00) === 0xd800 || ((unicodeLookup[(char >>> 5) + 34816] >>> char) & 31 & 1) !== 0) { + if ((char & 0xfc00) === 0xdc00) { + char = ((char & 0x3ff) << 10) | (char & 0x3ff) | 0x10000; + if (((unicodeLookup[(char >>> 5) + 0] >>> char) & 31 & 1) === 0) { + report(parser, Errors.IllegalCharacter, fromCodePoint(char)); + } + parser.index++; + parser.currentChar = char; + } + + parser.column++; + parser.tokenValue = ''; + return scanIdentifierSlowCase(parser, context, /* hasEscape */ 0, /* canBeKeyword */ 0); + } + + if (isExoticECMAScriptWhitespace(char)) { + advanceChar(parser); + continue; + } + + // Invalid ASCII code point/unit + report(parser, Errors.IllegalCharacter, fromCodePoint(char)); + } + } + return Token.EOF; +} diff --git a/node_modules/meriyah/src/lexer/string.ts b/node_modules/meriyah/src/lexer/string.ts new file mode 100644 index 0000000..2519c38 --- /dev/null +++ b/node_modules/meriyah/src/lexer/string.ts @@ -0,0 +1,242 @@ +import { ParserState, Context, Flags } from '../common'; +import { Token } from '../token'; +import { Chars } from '../chars'; +import { report, Errors } from '../errors'; +import { toHex, advanceChar, fromCodePoint } from './common'; +import { CharTypes, CharFlags } from './charClassifier'; +// Intentionally negative +export const enum Escape { + Empty = -1, + StrictOctal = -2, + EightOrNine = -3, + InvalidHex = -4, + OutOfRange = -5 +} + +/** + * Scan a string token. + */ +export function scanString(parser: ParserState, context: Context, quote: number): Token { + const { index: start } = parser; + + let ret: string | void = ''; + let char = advanceChar(parser); + let marker = parser.index; // Consumes the quote + + while ((CharTypes[char] & CharFlags.LineTerminator) === 0) { + if (char === quote) { + ret += parser.source.slice(marker, parser.index); + advanceChar(parser); // skip closing quote + if (context & Context.OptionsRaw) parser.tokenRaw = parser.source.slice(start, parser.index); + parser.tokenValue = ret; + return Token.StringLiteral; + } + + if ((char & 8) === 8 && char === Chars.Backslash) { + ret += parser.source.slice(marker, parser.index); + char = advanceChar(parser); + + if (char < 0x7f || char === Chars.LineSeparator || char === Chars.ParagraphSeparator) { + const code = parseEscape(parser, context, char); + if (code >= 0) ret += fromCodePoint(code); + else handleStringError(parser, code as Escape, /* isTemplate */ 0); + } else { + ret += fromCodePoint(char); + } + marker = parser.index + 1; + } + + if (parser.index >= parser.end) report(parser, Errors.UnterminatedString); + + char = advanceChar(parser); + } + + report(parser, Errors.UnterminatedString); +} + +// TODO! Use table lookup + +export function parseEscape(parser: ParserState, context: Context, first: number): number { + switch (first) { + // https://tc39.github.io/ecma262/#prod-SingleEscapeCharacter + // one of ' " \ b f n r t v + case Chars.LowerB: + return Chars.Backspace; + case Chars.LowerF: + return Chars.FormFeed; + case Chars.LowerR: + return Chars.CarriageReturn; + case Chars.LowerN: + return Chars.LineFeed; + case Chars.LowerT: + return Chars.Tab; + case Chars.LowerV: + return Chars.VerticalTab; + + // Line continuations + case Chars.CarriageReturn: { + if (parser.index < parser.end) { + const nextChar = parser.source.charCodeAt(parser.index + 1); + if (nextChar === Chars.LineFeed) { + parser.index = parser.index + 1; + parser.currentChar = nextChar; + } + } + } + // falls through + + case Chars.LineFeed: + case Chars.LineSeparator: + case Chars.ParagraphSeparator: + parser.column = -1; + parser.line++; + return Escape.Empty; + + // Null character, octals + case Chars.Zero: + case Chars.One: + case Chars.Two: + case Chars.Three: { + let code = first - Chars.Zero; + let index = parser.index + 1; + let column = parser.column + 1; + + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + + if ((CharTypes[next] & CharFlags.Octal) === 0) { + // Verify that it's `\0` if we're in strict mode. + if ((code !== 0 || CharTypes[next] & CharFlags.ImplicitOctalDigits) && context & Context.Strict) + return Escape.StrictOctal; + } else if (context & Context.Strict) { + return Escape.StrictOctal; + } else { + parser.currentChar = next; + code = (code << 3) | (next - Chars.Zero); + index++; + column++; + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + + if (CharTypes[next] & CharFlags.Octal) { + parser.currentChar = next; + code = (code << 3) | (next - Chars.Zero); + index++; + column++; + } + } + + parser.flags |= Flags.Octals; + + parser.index = index - 1; + parser.column = column - 1; + } + } + + return code; + } + + case Chars.Four: + case Chars.Five: + case Chars.Six: + case Chars.Seven: { + if (context & Context.Strict) return Escape.StrictOctal; + + let code = first - Chars.Zero; + const index = parser.index + 1; + const column = parser.column + 1; + + if (index < parser.end) { + const next = parser.source.charCodeAt(index); + + if (CharTypes[next] & CharFlags.Octal) { + code = (code << 3) | (next - Chars.Zero); + parser.currentChar = next; + parser.index = index; + parser.column = column; + } + } + + parser.flags |= Flags.Octals; + + return code; + } + + // HexEscapeSequence + // \x HexDigit HexDigit + case Chars.LowerX: { + const ch1 = advanceChar(parser); + if ((CharTypes[ch1] & CharFlags.Hex) === 0) return Escape.InvalidHex; + const hi = toHex(ch1); + const ch2 = advanceChar(parser); + if ((CharTypes[ch2] & CharFlags.Hex) === 0) return Escape.InvalidHex; + const lo = toHex(ch2); + + return (hi << 4) | lo; + } + + // UnicodeEscapeSequence + // \u HexDigit HexDigit HexDigit HexDigit + // \u { HexDigit HexDigit HexDigit ... } + case Chars.LowerU: { + const ch = advanceChar(parser); + + if (parser.currentChar === Chars.LeftBrace) { + let code = 0; + while ((CharTypes[advanceChar(parser)] & CharFlags.Hex) !== 0) { + code = (code << 4) | toHex(parser.currentChar); + if (code > Chars.NonBMPMax) return Escape.OutOfRange; + } + + if (parser.currentChar < 1 || (parser.currentChar as number) !== Chars.RightBrace) { + return Escape.InvalidHex; + } + return code; + } else { + if ((CharTypes[ch] & CharFlags.Hex) === 0) return Escape.InvalidHex; // first one is mandatory + const ch2 = parser.source.charCodeAt(parser.index + 1); + if ((CharTypes[ch2] & CharFlags.Hex) === 0) return Escape.InvalidHex; + const ch3 = parser.source.charCodeAt(parser.index + 2); + if ((CharTypes[ch3] & CharFlags.Hex) === 0) return Escape.InvalidHex; + const ch4 = parser.source.charCodeAt(parser.index + 3); + if ((CharTypes[ch4] & CharFlags.Hex) === 0) return Escape.InvalidHex; + + parser.index += 3; + parser.column += 3; + + parser.currentChar = parser.source.charCodeAt(parser.index); + + return (toHex(ch) << 12) | (toHex(ch2) << 8) | (toHex(ch3) << 4) | toHex(ch4); + } + } + + // `8`, `9` (invalid escapes) + case Chars.Eight: + case Chars.Nine: + if ((context & Context.OptionsWebCompat) === 0) return Escape.EightOrNine; + + default: + return first; + } +} + +export function handleStringError(state: ParserState, code: Escape, isTemplate: 0 | 1): void { + switch (code) { + case Escape.Empty: + return; + + case Escape.StrictOctal: + report(state, isTemplate ? Errors.TemplateOctalLiteral : Errors.StrictOctalEscape); + + case Escape.EightOrNine: + report(state, Errors.InvalidEightAndNine); + + case Escape.InvalidHex: + report(state, Errors.InvalidHexEscapeSequence); + + case Escape.OutOfRange: + report(state, Errors.UnicodeOverflow); + + default: + } +} diff --git a/node_modules/meriyah/src/lexer/template.ts b/node_modules/meriyah/src/lexer/template.ts new file mode 100644 index 0000000..0eeda59 --- /dev/null +++ b/node_modules/meriyah/src/lexer/template.ts @@ -0,0 +1,108 @@ +import { ParserState, Context } from '../common'; +import { Token } from '../token'; +import { Chars } from '../chars'; +import { advanceChar, fromCodePoint } from './common'; +import { parseEscape, Escape, handleStringError } from './string'; +import { report, Errors } from '../errors'; + +/** + * Scan a template section. It can start either from the quote or closing brace. + */ +export function scanTemplate(parser: ParserState, context: Context): Token { + const { index: start } = parser; + let token: Token = Token.TemplateSpan; + let ret: string | void = ''; + + let char = advanceChar(parser); + + while (char !== Chars.Backtick) { + if (char === Chars.Dollar && parser.source.charCodeAt(parser.index + 1) === Chars.LeftBrace) { + advanceChar(parser); // Skip: '}' + token = Token.TemplateContinuation; + break; + } else if ((char & 8) === 8 && char === Chars.Backslash) { + char = advanceChar(parser); + if (char > 0x7e) { + ret += fromCodePoint(char); + } else { + const code = parseEscape(parser, context | Context.Strict, char); + if (code >= 0) { + ret += fromCodePoint(code); + } else if (code !== Escape.Empty && context & Context.TaggedTemplate) { + ret = undefined; + char = scanBadTemplate(parser, char); + if (char < 0) token = Token.TemplateContinuation; + break; + } else { + handleStringError(parser, code as Escape, /* isTemplate */ 1); + } + } + } else { + if ( + parser.index < parser.end && + char === Chars.CarriageReturn && + parser.source.charCodeAt(parser.index) === Chars.LineFeed + ) { + ret += fromCodePoint(char); + parser.currentChar = parser.source.charCodeAt(++parser.index); + } + + if (((char & 83) < 3 && char === Chars.LineFeed) || (char ^ Chars.LineSeparator) <= 1) { + parser.column = -1; + parser.line++; + } + ret += fromCodePoint(char); + } + if (parser.index >= parser.end) report(parser, Errors.UnterminatedTemplate); + char = advanceChar(parser); + } + + advanceChar(parser); // Consume the quote or opening brace + parser.tokenValue = ret; + + parser.tokenRaw = parser.source.slice(start + 1, parser.index - (token === Token.TemplateSpan ? 1 : 2)); + + return token; +} + +/** + * Scans looser template segment + * + * @param parser Parser state + * @param ch Code point + */ +function scanBadTemplate(parser: ParserState, ch: number): number { + while (ch !== Chars.Backtick) { + switch (ch) { + case Chars.Dollar: { + const index = parser.index + 1; + if (index < parser.end && parser.source.charCodeAt(index) === Chars.LeftBrace) { + parser.index = index; + parser.column++; + return -ch; + } + break; + } + case Chars.LineFeed: + case Chars.LineSeparator: + case Chars.ParagraphSeparator: + parser.column = -1; + parser.line++; + // falls through + + default: + // do nothing + } + if (parser.index >= parser.end) report(parser, Errors.UnterminatedTemplate); + ch = advanceChar(parser); + } + + return ch; +} + +export function scanTemplateTail(parser: ParserState, context: Context): Token { + if (parser.index >= parser.end) report(parser, Errors.Unexpected); + parser.index--; + parser.column--; + return scanTemplate(parser, context); +} diff --git a/node_modules/meriyah/src/meriyah.ts b/node_modules/meriyah/src/meriyah.ts new file mode 100644 index 0000000..4f762ad --- /dev/null +++ b/node_modules/meriyah/src/meriyah.ts @@ -0,0 +1,29 @@ +import { Context } from './common'; +import { parseSource, Options } from './parser'; +import * as ESTree from './estree'; +// Current version +import * as meta from '../package.json'; +const version: string = meta.version; + +/** + * Parse a script, optionally with various options. + */ +export function parseScript(source: string, options?: Options): ESTree.Program { + return parseSource(source, options, Context.None); +} + +/** + * Parse a module, optionally with various options. + */ +export function parseModule(source: string, options?: Options): ESTree.Program { + return parseSource(source, options, Context.Strict | Context.Module); +} + +/** + * Parse a module or a script, optionally with various options. + */ +export function parse(source: string, options?: Options): ESTree.Program { + return parseSource(source, options, Context.None); +} + +export { Options, ESTree, version }; diff --git a/node_modules/meriyah/src/parser.ts b/node_modules/meriyah/src/parser.ts new file mode 100644 index 0000000..d5b4a51 --- /dev/null +++ b/node_modules/meriyah/src/parser.ts @@ -0,0 +1,9165 @@ +import { nextToken, skipHashBang } from './lexer'; +import { Token, KeywordDescTable } from './token'; +import * as ESTree from './estree'; +import { report, reportMessageAt, reportScopeError, Errors } from './errors'; +import { scanTemplateTail } from './lexer/template'; +import { scanJSXIdentifier, scanJSXToken, scanJSXAttributeValue } from './lexer/jsx'; +import { + Context, + ParserState, + PropertyKind, + Origin, + consumeOpt, + consume, + Flags, + OnComment, + OnToken, + pushComment, + pushToken, + reinterpretToPattern, + DestructuringKind, + AssignmentKind, + BindingKind, + validateBindingIdentifier, + validateFunctionName, + isStrictReservedWord, + optionalBit, + matchOrInsertSemicolon, + isPropertyWithPrivateFieldKey, + isValidLabel, + validateAndDeclareLabel, + finishNode, + HoistedClassFlags, + HoistedFunctionFlags, + createScope, + addChildScope, + ScopeKind, + ScopeState, + addVarName, + addBlockName, + addBindingToExports, + declareUnboundVariable, + isEqualTagName, + isValidStrictMode, + createArrowHeadParsingScope, + addVarOrBlock, + isValidIdentifier, + classifyIdentifier +} from './common'; + +/** + * Create a new parser instance + */ + +export function create( + source: string, + sourceFile: string | void, + onComment: OnComment | void, + onToken: OnToken | void +): ParserState { + return { + /** + * The source code to be parsed + */ + source, + + /** + * The mutable parser flags, in case any flags need passed by reference. + */ + flags: Flags.None, + + /** + * The current index + */ + index: 0, + + /** + * Beginning of current line + */ + line: 1, + + /** + * Beginning of current column + */ + column: 0, + + /** + * Start position of whitespace before current token + */ + startPos: 0, + + /** + * The end of the source code + */ + end: source.length, + + /** + * Start position of text of current token + */ + tokenPos: 0, + + /** + * Start position of the colum before newline + */ + startColumn: 0, + + /** + * Position in the input code of the first character after the last newline + */ + colPos: 0, + + /** + * The number of newlines + */ + linePos: 1, + + /** + * Start position of text of current token + */ + startLine: 1, + + /** + * Used together with source maps. File containing the code being parsed + */ + + sourceFile, + + /** + * Holds the scanned token value + */ + tokenValue: '', + + /** + * The current token in the stream to consume + */ + token: Token.EOF, + + /** + * Holds the raw text that have been scanned by the lexer + */ + tokenRaw: '', + + /** + * Holds the regExp info text that have been collected by the lexer + */ + tokenRegExp: void 0, + + /** + * The code point at the current index + */ + currentChar: source.charCodeAt(0), + + /** + * https://tc39.es/ecma262/#sec-module-semantics-static-semantics-exportednames + */ + exportedNames: [], + + /** + * https://tc39.es/ecma262/#sec-exports-static-semantics-exportedbindings + */ + + exportedBindings: [], + + /** + * Assignable state + */ + assignable: 1, + + /** + * Destructuring state + */ + destructible: 0, + + /** + * Holds either a function or array used on every comment + */ + onComment, + + /** + * Holds either a function or array used on every token + */ + onToken, + + /** + * Holds leading decorators before "export" or "class" keywords + */ + leadingDecorators: [] + }; +} + +/** + * The parser options. + */ +export interface Options { + // Allow module code + module?: boolean; + // Enable stage 3 support (ESNext) + next?: boolean; + // Enable start and end offsets to each node + ranges?: boolean; + // Enable web compatibility + webcompat?: boolean; + // Enable line/column location information to each node + loc?: boolean; + // Attach raw property to each literal and identifier node + raw?: boolean; + // Enabled directives + directives?: boolean; + // Allow return in the global scope + globalReturn?: boolean; + // Enable implied strict mode + impliedStrict?: boolean; + // Enable non-standard parenthesized expression node + preserveParens?: boolean; + // Enable lexical binding and scope tracking + lexical?: boolean; + // Adds a source attribute in every node’s loc object when the locations option is `true` + source?: string; + // Distinguish Identifier from IdentifierPattern + identifierPattern?: boolean; + // Enable React JSX parsing + jsx?: boolean; + // Allow edge cases that deviate from the spec + specDeviation?: boolean; + // Allows comment extraction. Accepts either a a callback function or an array + onComment?: OnComment; + // Allows token extraction. Accepts either a a callback function or an array + onToken?: OnToken; + // Creates unique key for in ObjectPattern when key value are same + uniqueKeyInPattern?: boolean; +} + +/** + * Consumes a sequence of tokens and produces an syntax tree + */ +export function parseSource(source: string, options: Options | void, context: Context): ESTree.Program { + let sourceFile = ''; + let onComment; + let onToken; + if (options != null) { + if (options.module) context |= Context.Module | Context.Strict; + if (options.next) context |= Context.OptionsNext; + if (options.loc) context |= Context.OptionsLoc; + if (options.ranges) context |= Context.OptionsRanges; + if (options.uniqueKeyInPattern) context |= Context.OptionsUniqueKeyInPattern; + if (options.lexical) context |= Context.OptionsLexical; + if (options.webcompat) context |= Context.OptionsWebCompat; + if (options.directives) context |= Context.OptionsDirectives | Context.OptionsRaw; + if (options.globalReturn) context |= Context.OptionsGlobalReturn; + if (options.raw) context |= Context.OptionsRaw; + if (options.preserveParens) context |= Context.OptionsPreserveParens; + if (options.impliedStrict) context |= Context.Strict; + if (options.jsx) context |= Context.OptionsJSX; + if (options.identifierPattern) context |= Context.OptionsIdentifierPattern; + if (options.specDeviation) context |= Context.OptionsSpecDeviation; + if (options.source) sourceFile = options.source; + // Accepts either a callback function to be invoked or an array to collect comments (as the node is constructed) + if (options.onComment != null) { + onComment = Array.isArray(options.onComment) ? pushComment(context, options.onComment) : options.onComment; + } + // Accepts either a callback function to be invoked or an array to collect tokens + if (options.onToken != null) { + onToken = Array.isArray(options.onToken) ? pushToken(context, options.onToken) : options.onToken; + } + } + + // Initialize parser state + const parser = create(source, sourceFile, onComment, onToken); + + // See: https://github.com/tc39/proposal-hashbang + if (context & Context.OptionsNext) skipHashBang(parser); + + const scope: ScopeState | undefined = context & Context.OptionsLexical ? createScope() : void 0; + + let body: (ESTree.Statement | ReturnType)[] = []; + + // https://tc39.es/ecma262/#sec-scripts + // https://tc39.es/ecma262/#sec-modules + + let sourceType: 'module' | 'script' = 'script'; + + if (context & Context.Module) { + sourceType = 'module'; + body = parseModuleItemList(parser, context | Context.InGlobal, scope); + + if (scope) { + for (const key in parser.exportedBindings) { + if (key[0] === '#' && !(scope as any)[key]) report(parser, Errors.UndeclaredExportedBinding, key.slice(1)); + } + } + } else { + body = parseStatementList(parser, context | Context.InGlobal, scope); + } + + const node: ESTree.Program = { + type: 'Program', + sourceType, + body + }; + + if (context & Context.OptionsRanges) { + node.start = 0; + node.end = source.length; + node.range = [0, source.length]; + } + + if (context & Context.OptionsLoc) { + node.loc = { + start: { line: 1, column: 0 }, + end: { line: parser.line, column: parser.column } + }; + + if (parser.sourceFile) node.loc.source = sourceFile; + } + + return node; +} + +/** + * Parses statement list items + * + * @param parser Parser object + * @param context Context masks + */ +export function parseStatementList( + parser: ParserState, + context: Context, + scope: ScopeState | undefined +): ESTree.Statement[] { + // StatementList :: + // (StatementListItem)* + + nextToken(parser, context | Context.AllowRegExp | Context.AllowEscapedKeyword); + + const statements: ESTree.Statement[] = []; + + while (parser.token === Token.StringLiteral) { + // "use strict" must be the exact literal without escape sequences or line continuation. + const { index, tokenPos, tokenValue, linePos, colPos, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) context |= Context.Strict; + statements.push(parseDirective(parser, context, expr, token, tokenPos, linePos, colPos)); + } + + while (parser.token !== Token.EOF) { + statements.push(parseStatementListItem(parser, context, scope, Origin.TopLevel, {}) as ESTree.Statement); + } + return statements; +} + +/** + * Parse module item list + * + * @see [Link](https://tc39.github.io/ecma262/#prod-ModuleItemList) + * + * @param parser Parser object + * @param context Context masks + */ +export function parseModuleItemList( + parser: ParserState, + context: Context, + scope: ScopeState | undefined +): ReturnType[] { + // ecma262/#prod-Module + // Module : + // ModuleBody? + // + // ecma262/#prod-ModuleItemList + // ModuleBody : + // ModuleItem* + + nextToken(parser, context | Context.AllowRegExp); + + const statements: ReturnType[] = []; + + // Avoid this if we're not going to create any directive nodes. This is likely to be the case + // most of the time, considering the prevalence of strict mode and the fact modules + // are already in strict mode. + if (context & Context.OptionsDirectives) { + while (parser.token === Token.StringLiteral) { + const { tokenPos, linePos, colPos, token } = parser; + statements.push(parseDirective(parser, context, parseLiteral(parser, context), token, tokenPos, linePos, colPos)); + } + } + + while (parser.token !== Token.EOF) { + statements.push(parseModuleItem(parser, context, scope) as ESTree.Statement); + } + return statements; +} + +/** + * Parse module item + * + * @see [Link](https://tc39.github.io/ecma262/#prod-ModuleItem) + * + * @param parser Parser object + * @param context Context masks + * @param scope Scope object + */ + +export function parseModuleItem(parser: ParserState, context: Context, scope: ScopeState | undefined): any { + // Support legacy decorators before export keyword. + parser.leadingDecorators = parseDecorators(parser, context); + + // ecma262/#prod-ModuleItem + // ModuleItem : + // ImportDeclaration + // ExportDeclaration + // StatementListItem + + let moduleItem; + switch (parser.token) { + case Token.ExportKeyword: + moduleItem = parseExportDeclaration(parser, context, scope); + break; + case Token.ImportKeyword: + moduleItem = parseImportDeclaration(parser, context, scope); + break; + default: + moduleItem = parseStatementListItem(parser, context, scope, Origin.TopLevel, {}); + } + + if (parser.leadingDecorators.length) { + report(parser, Errors.InvalidLeadingDecorator); + } + return moduleItem; +} + +/** + * Parse statement list + * + * @param parser Parser object + * @param context Context masks + * @param scope Scope object + */ + +export function parseStatementListItem( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + origin: Origin, + labels: ESTree.Labels +): ESTree.Statement | ESTree.Decorator[] { + // ECMA 262 10th Edition + // StatementListItem[Yield, Return] : + // Statement[?Yield, ?Return] + // Declaration[?Yield] + // + // Declaration[Yield] : + // HoistableDeclaration[?Yield] + // ClassDeclaration[?Yield] + // LexicalDeclaration[In, ?Yield] + // + // HoistableDeclaration[Yield, Default] : + // FunctionDeclaration[?Yield, ?Default] + // GeneratorDeclaration[?Yield, ?Default] + // + // LexicalDeclaration[In, Yield] : + // LetOrConst BindingList[?In, ?Yield] ; + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + + switch (parser.token) { + // HoistableDeclaration[?Yield, ~Default] + case Token.FunctionKeyword: + return parseFunctionDeclaration( + parser, + context, + scope, + origin, + 1, + HoistedFunctionFlags.None, + 0, + start, + line, + column + ); + // @decorator + case Token.Decorator: + // ClassDeclaration[?Yield, ~Default] + case Token.ClassKeyword: + return parseClassDeclaration(parser, context, scope, HoistedClassFlags.None, start, line, column); + // LexicalDeclaration[In, ?Yield] + // LetOrConst BindingList[?In, ?Yield] + case Token.ConstKeyword: + return parseLexicalDeclaration(parser, context, scope, BindingKind.Const, Origin.None, start, line, column); + case Token.LetKeyword: + return parseLetIdentOrVarDeclarationStatement(parser, context, scope, origin, start, line, column); + // ExportDeclaration + case Token.ExportKeyword: + report(parser, Errors.InvalidImportExportSloppy, 'export'); + // ImportDeclaration + case Token.ImportKeyword: + nextToken(parser, context); + switch (parser.token) { + case Token.LeftParen: + return parseImportCallDeclaration(parser, context, start, line, column); + case Token.Period: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, Errors.InvalidImportExportSloppy, 'import'); + } + // async [no LineTerminator here] AsyncArrowBindingIdentifier ... + // async [no LineTerminator here] ArrowFormalParameters ... + case Token.AsyncKeyword: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 1, start, line, column); + default: + return parseStatement(parser, context, scope, origin, labels, 1, start, line, column); + } +} + +/** + * Parse statement + * + * @param parser Parser object + * @param context Context masks + * @param allowFuncDecl Allow / disallow func statement + */ + +export function parseStatement( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + origin: Origin, + labels: ESTree.Labels, + allowFuncDecl: 0 | 1, + start: number, + line: number, + column: number +): ESTree.Statement { + // Statement :: + // Block + // VariableStatement + // EmptyStatement + // ExpressionStatement + // IfStatement + // IterationStatement + // ContinueStatement + // BreakStatement + // ReturnStatement + // WithStatement + // LabelledStatement + // SwitchStatement + // ThrowStatement + // TryStatement + // DebuggerStatement + + switch (parser.token) { + // VariableStatement[?Yield] + case Token.VarKeyword: + return parseVariableStatement(parser, context, scope, Origin.None, start, line, column); + // [+Return] ReturnStatement[?Yield] + case Token.ReturnKeyword: + return parseReturnStatement(parser, context, start, line, column); + case Token.IfKeyword: + return parseIfStatement(parser, context, scope, labels, start, line, column); + case Token.ForKeyword: + return parseForStatement(parser, context, scope, labels, start, line, column); + // BreakableStatement[Yield, Return]: + // IterationStatement[?Yield, ?Return] + // SwitchStatement[?Yield, ?Return] + case Token.DoKeyword: + return parseDoWhileStatement(parser, context, scope, labels, start, line, column); + case Token.WhileKeyword: + return parseWhileStatement(parser, context, scope, labels, start, line, column); + case Token.SwitchKeyword: + return parseSwitchStatement(parser, context, scope, labels, start, line, column); + case Token.Semicolon: + // EmptyStatement + return parseEmptyStatement(parser, context, start, line, column); + // BlockStatement[?Yield, ?Return] + case Token.LeftBrace: + return parseBlock( + parser, + context, + scope ? addChildScope(scope, ScopeKind.Block) : scope, + labels, + start, + line, + column + ) as ESTree.Statement; + + // ThrowStatement[?Yield] + case Token.ThrowKeyword: + return parseThrowStatement(parser, context, start, line, column); + case Token.BreakKeyword: + // BreakStatement[?Yield] + return parseBreakStatement(parser, context, labels, start, line, column); + // ContinueStatement[?Yield] + case Token.ContinueKeyword: + return parseContinueStatement(parser, context, labels, start, line, column); + // TryStatement[?Yield, ?Return] + case Token.TryKeyword: + return parseTryStatement(parser, context, scope, labels, start, line, column); + // WithStatement[?Yield, ?Return] + case Token.WithKeyword: + return parseWithStatement(parser, context, scope, labels, start, line, column); + case Token.DebuggerKeyword: + // DebuggerStatement + return parseDebuggerStatement(parser, context, start, line, column); + case Token.AsyncKeyword: + return parseAsyncArrowOrAsyncFunctionDeclaration(parser, context, scope, origin, labels, 0, start, line, column); + // Miscellaneous error cases arguably better caught here than elsewhere + case Token.CatchKeyword: + report(parser, Errors.CatchWithoutTry); + case Token.FinallyKeyword: + report(parser, Errors.FinallyWithoutTry); + case Token.FunctionKeyword: + // FunctionDeclaration & ClassDeclaration is forbidden by lookahead + // restriction in an arbitrary statement position. + report( + parser, + context & Context.Strict + ? Errors.StrictFunction + : (context & Context.OptionsWebCompat) < 1 + ? Errors.WebCompatFunction + : Errors.SloppyFunction + ); + case Token.ClassKeyword: + report(parser, Errors.ClassForbiddenAsStatement); + + default: + return parseExpressionOrLabelledStatement( + parser, + context, + scope, + origin, + labels, + allowFuncDecl, + start, + line, + column + ); + } +} + +/** + * Parses either expression or labeled statement + * + * @param parser Parser object + * @param context Context masks + * @param allowFuncDecl Allow / disallow func statement + */ + +export function parseExpressionOrLabelledStatement( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + origin: Origin, + labels: ESTree.Labels, + allowFuncDecl: 0 | 1, + start: number, + line: number, + column: number +): ESTree.ExpressionStatement | ESTree.LabeledStatement { + // ExpressionStatement | LabelledStatement :: + // Expression ';' + // Identifier ':' Statement + // + // ExpressionStatement[Yield] : + // [lookahead notin {{, function, class, let [}] Expression[In, ?Yield] ; + + const { tokenValue, token } = parser; + + let expr: ESTree.Expression; + + switch (token) { + case Token.LetKeyword: + expr = parseIdentifier(parser, context, 0); + if (context & Context.Strict) report(parser, Errors.UnexpectedLetStrictReserved); + + // "let" followed by either "[", "{" or an identifier means a lexical + // declaration, which should not appear here. + // However, ASI may insert a line break before an identifier or a brace. + if (parser.token === Token.LeftBracket) report(parser, Errors.RestrictedLetProduction); + + break; + + default: + expr = parsePrimaryExpression( + parser, + context, + BindingKind.Empty, + 0, + 1, + 0, + 0, + 1, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + } + + /** LabelledStatement[Yield, Await, Return]: + * + * ExpressionStatement | LabelledStatement :: + * Expression ';' + * Identifier ':' Statement + * + * ExpressionStatement[Yield] : + * [lookahead notin {{, function, class, let [}] Expression[In, ?Yield] ; + */ + if (token & Token.IsIdentifier && parser.token === Token.Colon) { + return parseLabelledStatement( + parser, + context, + scope, + origin, + labels, + tokenValue, + expr, + token, + allowFuncDecl, + start, + line, + column + ); + } + /** MemberExpression : + * 1. PrimaryExpression + * 2. MemberExpression [ AssignmentExpression ] + * 3. MemberExpression . IdentifierName + * 4. MemberExpression TemplateLiteral + * + * CallExpression : + * 1. MemberExpression Arguments + * 2. CallExpression ImportCall + * 3. CallExpression Arguments + * 4. CallExpression [ AssignmentExpression ] + * 5. CallExpression . IdentifierName + * 6. CallExpression TemplateLiteral + * + * UpdateExpression :: + * ('++' | '--')? LeftHandSideExpression + * + */ + + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + + /** AssignmentExpression : + * 1. ConditionalExpression + * 2. LeftHandSideExpression = AssignmentExpression + * + */ + + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr as ESTree.ArgumentExpression); + + /** Sequence expression + * + * Note: The comma operator leads to a sequence expression which is not equivalent + * to the ES Expression, but it's part of the ESTree specs: + * + * https://github.com/estree/estree/blob/master/es5.md#sequenceexpression + * + */ + if (parser.token === Token.Comma) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + + /** + * ExpressionStatement[Yield, Await]: + * [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]Expression[+In, ?Yield, ?Await] + */ + + return parseExpressionStatement(parser, context, expr, start, line, column); +} + +/** + * Parses block statement + * + * @see [Link](https://tc39.github.io/ecma262/#prod-BlockStatement) + * @see [Link](https://tc39.github.io/ecma262/#prod-Block) + * + * @param parser Parser object + * @param context Context masks + * @param scope Scope object + * @param labels Labels object + * @param start + * @param line + * @param column + * + */ +export function parseBlock( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + labels: ESTree.Labels, + start: number, + line: number, + column: number +): ESTree.BlockStatement { + // Block :: + // '{' StatementList '}' + const body: ESTree.Statement[] = []; + consume(parser, context | Context.AllowRegExp, Token.LeftBrace); + while (parser.token !== Token.RightBrace) { + body.push(parseStatementListItem(parser, context, scope, Origin.BlockStatement, { $: labels }) as any); + } + + consume(parser, context | Context.AllowRegExp, Token.RightBrace); + + return finishNode(parser, context, start, line, column, { + type: 'BlockStatement', + body + }); +} + +/** + * Parses return statement + * + * @see [Link](https://tc39.github.io/ecma262/#prod-ReturnStatement) + * + * @param parser Parser object + * @param context Context masks + * @param start + * @param line + * @param column + */ +export function parseReturnStatement( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.ReturnStatement { + // ReturnStatement :: + // 'return' [no line terminator] Expression? ';' + if ((context & Context.OptionsGlobalReturn) < 1 && context & Context.InGlobal) report(parser, Errors.IllegalReturn); + + nextToken(parser, context | Context.AllowRegExp); + + const argument = + parser.flags & Flags.NewLine || parser.token & Token.IsAutoSemicolon + ? null + : parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.column); + + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + + return finishNode(parser, context, start, line, column, { + type: 'ReturnStatement', + argument + }); +} + +/** + * Parses an expression statement + * + * @see [Link](https://tc39.github.io/ecma262/#prod-ExpressionStatement) + * + * @param parser Parser object + * @param context Context masks + * @param expression AST node + * @param start + * @param line + * @param column + */ +export function parseExpressionStatement( + parser: ParserState, + context: Context, + expression: ESTree.Expression, + start: number, + line: number, + column: number +): ESTree.ExpressionStatement { + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + return finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); +} + +/** + * Parses either expression or labeled statement + * + * @param parser Parser object + * @param context Context masks + * @param expr ESTree AST node + * @param token Token to validate + * @param allowFuncDecl Allow / disallow func statement + * @param start + * @param line + * @param column + * + */ +export function parseLabelledStatement( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + origin: Origin, + labels: ESTree.Labels, + value: string, + expr: ESTree.Identifier | ESTree.Expression, + token: Token, + allowFuncDecl: 0 | 1, + start: number, + line: number, + column: number +): ESTree.LabeledStatement { + // LabelledStatement :: + // Expression ';' + // Identifier ':' Statement + + validateBindingIdentifier(parser, context, BindingKind.None, token, 1); + validateAndDeclareLabel(parser, labels, value); + + nextToken(parser, context | Context.AllowRegExp); // skip: ':' + + const body = + allowFuncDecl && + (context & Context.Strict) < 1 && + context & Context.OptionsWebCompat && + // In sloppy mode, Annex B.3.2 allows labelled function declarations. + // Otherwise it's a parse error. + parser.token === Token.FunctionKeyword + ? parseFunctionDeclaration( + parser, + context, + addChildScope(scope, ScopeKind.Block), + origin, + 0, + HoistedFunctionFlags.None, + 0, + parser.tokenPos, + parser.linePos, + parser.colPos + ) + : parseStatement( + parser, + context, + scope, + origin, + labels, + allowFuncDecl, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + + return finishNode(parser, context, start, line, column, { + type: 'LabeledStatement', + label: expr as ESTree.Identifier, + body + }); +} + +/** + * Parses either async ident, async function or async arrow in + * statement position + * + * @param parser Parser object + * @param context Context masks + * @param labels + * @param allowFuncDecl Allow / disallow func statement + * @param start Start position of current AST node + * @param start + * @param line + * @param column + */ + +export function parseAsyncArrowOrAsyncFunctionDeclaration( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + origin: Origin, + labels: ESTree.Labels, + allowFuncDecl: 0 | 1, + start: number, + line: number, + column: number +): ESTree.ExpressionStatement | ESTree.LabeledStatement | ESTree.FunctionDeclaration { + // AsyncArrowFunction[In, Yield, Await]: + // async[no LineTerminator here]AsyncArrowBindingIdentifier[?Yield][no LineTerminator here]=>AsyncConciseBody[?In] + // CoverCallExpressionAndAsyncArrowHead[?Yield, ?Await][no LineTerminator here]=>AsyncConciseBody[?In] + // + // AsyncArrowBindingIdentifier[Yield]: + // BindingIdentifier[?Yield, +Await] + // + // CoverCallExpressionAndAsyncArrowHead[Yield, Await]: + // MemberExpression[?Yield, ?Await]Arguments[?Yield, ?Await] + // + // AsyncFunctionDeclaration[Yield, Await, Default]: + // async[no LineTerminator here]functionBindingIdentifier[?Yield, ?Await](FormalParameters[~Yield, +Await]){AsyncFunctionBody} + // [+Default]async[no LineTerminator here]function(FormalParameters[~Yield, +Await]){AsyncFunctionBody} + // + // AsyncFunctionBody: + // FunctionBody[~Yield, +Await] + + const { token, tokenValue } = parser; + + let expr: ESTree.Expression = parseIdentifier(parser, context, 0); + + if (parser.token === Token.Colon) { + return parseLabelledStatement( + parser, + context, + scope, + origin, + labels, + tokenValue, + expr, + token, + 1, + start, + line, + column + ); + } + + const asyncNewLine = parser.flags & Flags.NewLine; + + if (!asyncNewLine) { + // async function ... + if (parser.token === Token.FunctionKeyword) { + if (!allowFuncDecl) report(parser, Errors.AsyncFunctionInSingleStatementContext); + + return parseFunctionDeclaration( + parser, + context, + scope, + origin, + 1, + HoistedFunctionFlags.None, + 1, + start, + line, + column + ); + } + + // async Identifier => ... + if ((parser.token & Token.IsIdentifier) === Token.IsIdentifier) { + /** ArrowFunction[In, Yield, Await]: + * ArrowParameters[?Yield, ?Await][no LineTerminator here]=>ConciseBody[?In] + */ + expr = parseAsyncArrowAfterIdent(parser, context, /* assignable */ 1, start, line, column); + if (parser.token === Token.Comma) expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + + /** + * ExpressionStatement[Yield, Await]: + * [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]Expression[+In, ?Yield, ?Await] + */ + return parseExpressionStatement(parser, context, expr, start, line, column); + } + } + + /** ArrowFunction[In, Yield, Await]: + * ArrowParameters[?Yield, ?Await][no LineTerminator here]=>ConciseBody[?In] + */ + if (parser.token === Token.LeftParen) { + expr = parseAsyncArrowOrCallExpression( + parser, + context, + expr, + 1, + BindingKind.ArgumentList, + Origin.None, + asyncNewLine, + start, + line, + column + ); + } else { + if (parser.token === Token.Arrow) { + classifyIdentifier(parser, context, token, /* isArrow */ 1); + expr = parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, 0, 1, 0, start, line, column); + } + + parser.assignable = AssignmentKind.Assignable; + } + + /** MemberExpression : + * 1. PrimaryExpression + * 2. MemberExpression [ AssignmentExpression ] + * 3. MemberExpression . IdentifierName + * 4. MemberExpression TemplateLiteral + * + * CallExpression : + * 1. MemberExpression Arguments + * 2. CallExpression ImportCall + * 3. CallExpression Arguments + * 4. CallExpression [ AssignmentExpression ] + * 5. CallExpression . IdentifierName + * 6. CallExpression TemplateLiteral + * + * UpdateExpression :: + * ('++' | '--')? LeftHandSideExpression + */ + + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + /** Sequence expression + * + * Note: The comma operator leads to a sequence expression which is not equivalent + * to the ES Expression, but it's part of the ESTree specs: + * + * https://github.com/estree/estree/blob/master/es5.md#sequenceexpression + * + */ + if (parser.token === Token.Comma) expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + + /** AssignmentExpression : + * + * 1. ConditionalExpression + * 2. LeftHandSideExpression = AssignmentExpression + * + */ + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr as ESTree.ArgumentExpression); + + parser.assignable = AssignmentKind.Assignable; + + /** + * ExpressionStatement[Yield, Await]: + * [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]Expression[+In, ?Yield, ?Await] + */ + return parseExpressionStatement(parser, context, expr, start, line, column); +} + +/** + * Parse directive node + * + * @see [Link](https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive) + * + * @param parser Parser object + * @param context Context masks + * @param expression AST expression node + * @param token + * @param start Start pos of node + * @param line + * @param column + */ + +export function parseDirective( + parser: ParserState, + context: Context, + expression: ESTree.ArgumentExpression | ESTree.SequenceExpression | ESTree.Expression, + token: Token, + start: number, + line: number, + column: number +): ESTree.ExpressionStatement { + if (token !== Token.Semicolon) { + parser.assignable = AssignmentKind.CannotAssign; + + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + + if (parser.token !== Token.Semicolon) { + expression = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expression); + + if (parser.token === Token.Comma) { + expression = parseSequenceExpression(parser, context, 0, start, line, column, expression); + } + } + + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + } + + return context & Context.OptionsDirectives && expression.type === 'Literal' && typeof expression.value === 'string' + ? finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression, + // OptionsRaw is implicitly turned on by OptionsDirectives. + directive: (expression.raw as string).slice(1, -1) + }) + : finishNode(parser, context, start, line, column, { + type: 'ExpressionStatement', + expression + }); +} + +/** + * Parses empty statement + * + * @param parser Parser object + * @param context Context masks + * @param start Start pos of node + * @param line + * @param column + */ + +export function parseEmptyStatement( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.EmptyStatement { + nextToken(parser, context | Context.AllowRegExp); + return finishNode(parser, context, start, line, column, { + type: 'EmptyStatement' + }); +} + +/** + * Parses throw statement + * + * @see [Link](https://tc39.github.io/ecma262/#prod-ThrowStatement) + * + * @param parser Parser object + * @param context Context masks + * @param start Start pos of node +* @param line +* @param column + + */ +export function parseThrowStatement( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.ThrowStatement { + // ThrowStatement :: + // 'throw' Expression ';' + nextToken(parser, context | Context.AllowRegExp); + if (parser.flags & Flags.NewLine) report(parser, Errors.NewlineAfterThrow); + const argument: ESTree.Expression = parseExpressions( + parser, + context, + 0, + 1, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + return finishNode(parser, context, start, line, column, { + type: 'ThrowStatement', + argument + }); +} + +/** + * Parses an if statement with an optional else block + * + * @see [Link](https://tc39.github.io/ecma262/#sec-if-statement) + * + * @param parser Parser object + * @param context Context masks + * @param scope Scope instance + * @param start Start pos of node +* @param line +* @param column + + */ +export function parseIfStatement( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + labels: ESTree.Labels, + start: number, + line: number, + column: number +): ESTree.IfStatement { + // IfStatement :: + // 'if' '(' Expression ')' Statement ('else' Statement)? + nextToken(parser, context); + consume(parser, context | Context.AllowRegExp, Token.LeftParen); + parser.assignable = AssignmentKind.Assignable; + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.line, parser.colPos); + consume(parser, context | Context.AllowRegExp, Token.RightParen); + const consequent = parseConsequentOrAlternative( + parser, + context, + scope, + labels, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + let alternate: ESTree.Statement | null = null; + if (parser.token === Token.ElseKeyword) { + nextToken(parser, context | Context.AllowRegExp); + alternate = parseConsequentOrAlternative( + parser, + context, + scope, + labels, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + } + + return finishNode(parser, context, start, line, column, { + type: 'IfStatement', + test, + consequent, + alternate + }); +} + +/** + * Parse either consequent or alternate. + * + * @param parser Parser object + * @param context Context masks + * @param start Start pos of node + * @param line + * @param column + */ +export function parseConsequentOrAlternative( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + labels: ESTree.Labels, + start: number, + line: number, + column: number +): ESTree.Statement | ESTree.FunctionDeclaration { + return context & Context.Strict || + // Disallow if web compatibility is off + (context & Context.OptionsWebCompat) < 1 || + parser.token !== Token.FunctionKeyword + ? parseStatement( + parser, + context, + scope, + Origin.None, + { $: labels }, + 0, + parser.tokenPos, + parser.linePos, + parser.colPos + ) + : parseFunctionDeclaration( + parser, + context, + addChildScope(scope, ScopeKind.Block), + Origin.None, + 0, + HoistedFunctionFlags.None, + 0, + start, + line, + column + ); +} + +/** + * Parses switch statement + * + * @see [Link](https://tc39.github.io/ecma262/#prod-SwitchStatement) + * + * @param parser Parser object + * @param context Context masks + * @param start Start pos of node + * @param line + * @param column + */ +export function parseSwitchStatement( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + labels: ESTree.Labels, + start: number, + line: number, + column: number +): ESTree.SwitchStatement { + // SwitchStatement :: + // 'switch' '(' Expression ')' '{' CaseClause* '}' + // CaseClause :: + // 'case' Expression ':' StatementList + // 'default' ':' StatementList + nextToken(parser, context); + consume(parser, context | Context.AllowRegExp, Token.LeftParen); + const discriminant = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, Token.RightParen); + consume(parser, context, Token.LeftBrace); + const cases: ESTree.SwitchCase[] = []; + let seenDefault: 0 | 1 = 0; + if (scope) scope = addChildScope(scope, ScopeKind.SwitchStatement); + while (parser.token !== Token.RightBrace) { + const { tokenPos, linePos, colPos } = parser; + let test: ESTree.Expression | null = null; + const consequent: ESTree.Statement[] = []; + if (consumeOpt(parser, context | Context.AllowRegExp, Token.CaseKeyword)) { + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + } else { + consume(parser, context | Context.AllowRegExp, Token.DefaultKeyword); + if (seenDefault) report(parser, Errors.MultipleDefaultsInSwitch); + seenDefault = 1; + } + consume(parser, context | Context.AllowRegExp, Token.Colon); + while ( + parser.token !== Token.CaseKeyword && + parser.token !== Token.RightBrace && + parser.token !== Token.DefaultKeyword + ) { + consequent.push( + parseStatementListItem(parser, context | Context.InSwitch, scope, Origin.BlockStatement, { + $: labels + }) as ESTree.Statement + ); + } + + cases.push( + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'SwitchCase', + test, + consequent + }) + ); + } + + consume(parser, context | Context.AllowRegExp, Token.RightBrace); + return finishNode(parser, context, start, line, column, { + type: 'SwitchStatement', + discriminant, + cases + }); +} + +/** + * Parses while statement + * + * @see [Link](https://tc39.github.io/ecma262/#prod-grammar-notation-WhileStatement) + * + * @param parser Parser object + * @param context Context masks + * @param start + * @param start Start pos of node + * @param line + * @param column + */ +export function parseWhileStatement( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + labels: ESTree.Labels, + start: number, + line: number, + column: number +): ESTree.WhileStatement { + // WhileStatement :: + // 'while' '(' Expression ')' Statement + nextToken(parser, context); + consume(parser, context | Context.AllowRegExp, Token.LeftParen); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | Context.AllowRegExp, Token.RightParen); + const body = parseIterationStatementBody(parser, context, scope, labels); + return finishNode(parser, context, start, line, column, { + type: 'WhileStatement', + test, + body + }); +} + +/** + * Parses iteration statement body + * + * @see [Link](https://tc39.es/ecma262/#sec-iteration-statements) + * + * @param parser Parser object + * @param context Context masks + * @param start Start pos of node + * @param line + * @param column + */ +export function parseIterationStatementBody( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + labels: ESTree.Labels +): ESTree.Statement { + return parseStatement( + parser, + ((context | Context.DisallowIn) ^ Context.DisallowIn) | Context.InIteration, + scope, + Origin.None, + { loop: 1, $: labels }, + 0, + parser.tokenPos, + parser.linePos, + parser.colPos + ); +} + +/** + * Parses the continue statement production + * + * @see [Link](https://tc39.github.io/ecma262/#prod-ContinueStatement) + * + * @param parser Parser object + * @param context Context masks + */ +export function parseContinueStatement( + parser: ParserState, + context: Context, + labels: ESTree.Labels, + start: number, + line: number, + column: number +): ESTree.ContinueStatement { + // ContinueStatement :: + // 'continue' Identifier? ';' + if ((context & Context.InIteration) < 1) report(parser, Errors.IllegalContinue); + nextToken(parser, context); + let label: ESTree.Identifier | undefined | null = null; + if ((parser.flags & Flags.NewLine) < 1 && parser.token & Token.IsIdentifier) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | Context.AllowRegExp, 0); + if (!isValidLabel(parser, labels, tokenValue, /* requireIterationStatement */ 1)) + report(parser, Errors.UnknownLabel, tokenValue); + } + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + return finishNode(parser, context, start, line, column, { + type: 'ContinueStatement', + label + }); +} + +/** + * Parses the break statement production + * + * @see [Link](https://tc39.github.io/ecma262/#prod-BreakStatement) + * + * @param parser Parser object + * @param context Context masks + * @param start Start pos of node + * @param line + * @param column + */ +export function parseBreakStatement( + parser: ParserState, + context: Context, + labels: ESTree.Labels, + start: number, + line: number, + column: number +): ESTree.BreakStatement { + // BreakStatement :: + // 'break' Identifier? ';' + nextToken(parser, context | Context.AllowRegExp); + let label: ESTree.Identifier | undefined | null = null; + if ((parser.flags & Flags.NewLine) < 1 && parser.token & Token.IsIdentifier) { + const { tokenValue } = parser; + label = parseIdentifier(parser, context | Context.AllowRegExp, 0); + if (!isValidLabel(parser, labels, tokenValue, /* requireIterationStatement */ 0)) + report(parser, Errors.UnknownLabel, tokenValue); + } else if ((context & (Context.InSwitch | Context.InIteration)) < 1) { + report(parser, Errors.IllegalBreak); + } + + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + return finishNode(parser, context, start, line, column, { + type: 'BreakStatement', + label + }); +} + +/** + * Parses with statement + * + * @see [Link](https://tc39.github.io/ecma262/#prod-WithStatement) + * + * @param parser Parser object + * @param context Context masks + * @param scope Scope instance + * @param start Start pos of node + * @param line + * @param column + */ +export function parseWithStatement( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + labels: ESTree.Labels, + start: number, + line: number, + column: number +): ESTree.WithStatement { + // WithStatement :: + // 'with' '(' Expression ')' Statement + + nextToken(parser, context); + + if (context & Context.Strict) report(parser, Errors.StrictWith); + + consume(parser, context | Context.AllowRegExp, Token.LeftParen); + const object = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | Context.AllowRegExp, Token.RightParen); + const body = parseStatement( + parser, + context, + scope, + Origin.BlockStatement, + labels, + 0, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + return finishNode(parser, context, start, line, column, { + type: 'WithStatement', + object, + body + }); +} + +/** + * Parses the debugger statement production + * + * @see [Link](https://tc39.github.io/ecma262/#prod-DebuggerStatement) + * + * @param parser Parser object + * @param context Context masks + * @param start Start pos of node + * @param line + * @param column + */ +export function parseDebuggerStatement( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.DebuggerStatement { + // DebuggerStatement :: + // 'debugger' ';' + nextToken(parser, context | Context.AllowRegExp); + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + return finishNode(parser, context, start, line, column, { + type: 'DebuggerStatement' + }); +} + +/** + * Parses try statement + * + * @see [Link](https://tc39.github.io/ecma262/#prod-TryStatement) + * + * @param parser Parser object + * @param context Context masks + * @param scope Scope instance + * @param start Start pos of node + * @param line + * @param column + */ +export function parseTryStatement( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + labels: ESTree.Labels, + start: number, + line: number, + column: number +): ESTree.TryStatement { + // TryStatement :: + // 'try' Block Catch + // 'try' Block Finally + // 'try' Block Catch Finally + // + // Catch :: + // 'catch' '(' Identifier ')' Block + // + // Finally :: + // 'finally' Block + + nextToken(parser, context | Context.AllowRegExp); + + const firstScope = scope ? addChildScope(scope, ScopeKind.TryStatement) : void 0; + + const block = parseBlock(parser, context, firstScope, { $: labels }, parser.tokenPos, parser.linePos, parser.colPos); + const { tokenPos, linePos, colPos } = parser; + const handler = consumeOpt(parser, context | Context.AllowRegExp, Token.CatchKeyword) + ? parseCatchBlock(parser, context, scope, labels, tokenPos, linePos, colPos) + : null; + + let finalizer: ESTree.BlockStatement | null = null; + + if (parser.token === Token.FinallyKeyword) { + nextToken(parser, context | Context.AllowRegExp); + const finalizerScope = firstScope ? addChildScope(scope, ScopeKind.CatchStatement) : void 0; + finalizer = parseBlock( + parser, + context, + finalizerScope, + { $: labels }, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + } + + if (!handler && !finalizer) { + report(parser, Errors.NoCatchOrFinally); + } + + return finishNode(parser, context, start, line, column, { + type: 'TryStatement', + block, + handler, + finalizer + }); +} + +/** + * Parses catch block + * + * @see [Link](https://tc39.github.io/ecma262/#prod-Catch) + * + * @param parser Parser object + * @param context Context masks + * @param scope Scope instance + * @param start Start pos of node + * @param line + * @param column + */ +export function parseCatchBlock( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + labels: ESTree.Labels, + start: number, + line: number, + column: number +): ESTree.CatchClause { + let param: ESTree.BindingPattern | ESTree.Identifier | null = null; + let additionalScope: ScopeState | undefined = scope; + + if (consumeOpt(parser, context, Token.LeftParen)) { + /* + * Create a lexical scope around the whole catch clause, + * including the head. + */ + if (scope) scope = addChildScope(scope, ScopeKind.CatchStatement); + + param = parseBindingPattern( + parser, + context, + scope, + (parser.token & Token.IsPatternStart) === Token.IsPatternStart + ? BindingKind.CatchPattern + : BindingKind.CatchIdentifier, + Origin.None, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + + if (parser.token === Token.Comma) { + report(parser, Errors.InvalidCatchParams); + } else if (parser.token === Token.Assign) { + report(parser, Errors.InvalidCatchParamDefault); + } + + consume(parser, context | Context.AllowRegExp, Token.RightParen); + // ES 13.15.7 CatchClauseEvaluation + // + // Step 8 means that the body of a catch block always has an additional + // lexical scope. + if (scope) additionalScope = addChildScope(scope, ScopeKind.CatchBlock); + } + + const body = parseBlock( + parser, + context, + additionalScope, + { $: labels }, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + + return finishNode(parser, context, start, line, column, { + type: 'CatchClause', + param, + body + }); +} + +/** + * Parses do while statement + * + * @param parser Parser object + * @param context Context masks + * @param scope Scope instance + * @param start Start pos of node + * @param line + * @param column + */ +export function parseDoWhileStatement( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + labels: ESTree.Labels, + start: number, + line: number, + column: number +): ESTree.DoWhileStatement { + // DoStatement :: + // 'do Statement while ( Expression ) ;' + + nextToken(parser, context | Context.AllowRegExp); + const body = parseIterationStatementBody(parser, context, scope, labels); + consume(parser, context, Token.WhileKeyword); + consume(parser, context | Context.AllowRegExp, Token.LeftParen); + const test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context | Context.AllowRegExp, Token.RightParen); + // ECMA-262, section 11.9 + // The previous token is ) and the inserted semicolon would then be parsed as the terminating semicolon of a do-while statement (13.7.2). + // This cannot be implemented in matchOrInsertSemicolon() because it doesn't know + // this RightRaren is the end of a do-while statement. + consumeOpt(parser, context, Token.Semicolon); + return finishNode(parser, context, start, line, column, { + type: 'DoWhileStatement', + body, + test + }); +} + +/** + * Because we are not doing any backtracking - this parses `let` as an identifier + * or a variable declaration statement. + * + * @see [Link](https://tc39.github.io/ecma262/#sec-declarations-and-the-variable-statement) + * + * @param parser Parser object + * @param context Context masks + * @param scope Scope object + * @param origin Binding origin + * @param start Start pos of node + * @param start Start pos of node + * @param line + * @param column + */ +export function parseLetIdentOrVarDeclarationStatement( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + origin: Origin, + start: number, + line: number, + column: number +): ESTree.VariableDeclaration | ESTree.LabeledStatement | ESTree.ExpressionStatement { + const { token, tokenValue } = parser; + let expr: ESTree.Identifier | ESTree.Expression = parseIdentifier(parser, context, 0); + + if (parser.token & (Token.IsIdentifier | Token.IsPatternStart)) { + /* VariableDeclarations :: + * ('let') (Identifier ('=' AssignmentExpression)?)+[','] + */ + + const declarations = parseVariableDeclarationList(parser, context, scope, BindingKind.Let, Origin.None); + + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'let', + declarations + }); + } + // 'Let' as identifier + parser.assignable = AssignmentKind.Assignable; + + if (context & Context.Strict) report(parser, Errors.UnexpectedLetStrictReserved); + + /** LabelledStatement[Yield, Await, Return]: + * + * ExpressionStatement | LabelledStatement :: + * Expression ';' + * Identifier ':' Statement + * + * ExpressionStatement[Yield] : + * [lookahead notin {{, function, class, let [}] Expression[In, ?Yield] ; + */ + + if (parser.token === Token.Colon) { + return parseLabelledStatement(parser, context, scope, origin, {}, tokenValue, expr, token, 0, start, line, column); + } + + /** + * ArrowFunction : + * ArrowParameters => ConciseBody + * + * ConciseBody : + * [lookahead not {] AssignmentExpression + * { FunctionBody } + * + */ + if (parser.token === Token.Arrow) { + let scope: ScopeState | undefined = void 0; + + if (context & Context.OptionsLexical) scope = createArrowHeadParsingScope(parser, context, tokenValue); + + parser.flags = (parser.flags | Flags.SimpleParameterList) ^ Flags.SimpleParameterList; + + expr = parseArrowFunctionExpression(parser, context, scope, [expr], /* isAsync */ 0, start, line, column); + } else { + /** + * UpdateExpression :: + * ('++' | '--')? LeftHandSideExpression + * + * MemberExpression :: + * (PrimaryExpression | FunctionLiteral | ClassLiteral) + * ('[' Expression ']' | '.' Identifier | Arguments | TemplateLiteral)* + * + * CallExpression :: + * (SuperCall | ImportCall) + * ('[' Expression ']' | '.' Identifier | Arguments | TemplateLiteral)* + * + * LeftHandSideExpression :: + * (NewExpression | MemberExpression) ... + */ + + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + + /** + * AssignmentExpression : + * 1. ConditionalExpression + * 2. LeftHandSideExpression = AssignmentExpression + * + */ + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr as ESTree.ArgumentExpression); + } + + /** Sequence expression + */ + if (parser.token === Token.Comma) { + expr = parseSequenceExpression(parser, context, 0, start, line, column, expr); + } + + /** + * ExpressionStatement[Yield, Await]: + * [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]Expression[+In, ?Yield, ?Await] + */ + return parseExpressionStatement(parser, context, expr, start, line, column); +} + +/** + * Parses a `const` or `let` lexical declaration statement + * + * @param parser Parser object + * @param context Context masks + * @param type Binding kind + * @param origin Binding origin + * @param type Binding kind + * @param start Start pos of node + * @param start Start pos of node + * @param line + * @param column + */ +function parseLexicalDeclaration( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + kind: BindingKind, + origin: Origin, + start: number, + line: number, + column: number +): ESTree.VariableDeclaration { + // BindingList :: + // LexicalBinding + // BindingIdentifier + // BindingPattern + nextToken(parser, context); + + const declarations = parseVariableDeclarationList(parser, context, scope, kind, origin); + + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: kind & BindingKind.Let ? 'let' : 'const', + declarations + }); +} + +/** + * Parses a variable declaration statement + * + * @see [Link](https://tc39.github.io/ecma262/#prod-VariableStatement) + * + * @param parser Parser object + * @param context Context masks + * @param scope Scope object + * @param origin Binding origin + * @param start Start pos of node + * @param start Start pos of node + * @param line + * @param column + */ +export function parseVariableStatement( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + origin: Origin, + start: number, + line: number, + column: number +): ESTree.VariableDeclaration { + // VariableDeclarations :: + // ('var') (Identifier ('=' AssignmentExpression)?)+[','] + // + nextToken(parser, context); + const declarations = parseVariableDeclarationList(parser, context, scope, BindingKind.Variable, origin); + + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + return finishNode(parser, context, start, line, column, { + type: 'VariableDeclaration', + kind: 'var', + declarations + }); +} + +/** + * Parses variable declaration list + * + * @see [Link](https://tc39.github.io/ecma262/#prod-VariableDeclarationList) + * + * @param parser Parser object + * @param context Context masks + * @param type Binding kind + * @param origin Binding origin + */ +export function parseVariableDeclarationList( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + kind: BindingKind, + origin: Origin +): ESTree.VariableDeclarator[] { + let bindingCount = 1; + const list: ESTree.VariableDeclarator[] = [parseVariableDeclaration(parser, context, scope, kind, origin)]; + while (consumeOpt(parser, context, Token.Comma)) { + bindingCount++; + list.push(parseVariableDeclaration(parser, context, scope, kind, origin)); + } + + if (bindingCount > 1 && origin & Origin.ForStatement && parser.token & Token.IsInOrOf) { + report(parser, Errors.ForInOfLoopMultiBindings, KeywordDescTable[parser.token & Token.Type]); + } + return list; +} + +/** + * Parses variable declaration + * + * @see [Link](https://tc39.github.io/ecma262/#prod-VariableDeclaration) + * + * @param parser Parser object + * @param context Context masks + * @param start Start pos of node + * @param start Start pos of node + * @param line + * @param column + */ +function parseVariableDeclaration( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + kind: BindingKind, + origin: Origin +): ESTree.VariableDeclarator { + // VariableDeclaration : + // BindingIdentifier Initializeropt + // BindingPattern Initializer + // + // VariableDeclarationNoIn : + // BindingIdentifier InitializerNoInopt + // BindingPattern InitializerNoIn + + const { token, tokenPos, linePos, colPos } = parser; + + let init: ESTree.Expression | ESTree.BindingPattern | ESTree.Identifier | null = null; + + const id = parseBindingPattern(parser, context, scope, kind, origin, tokenPos, linePos, colPos); + + if (parser.token === Token.Assign) { + nextToken(parser, context | Context.AllowRegExp); + init = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + if (origin & Origin.ForStatement || (token & Token.IsPatternStart) < 1) { + // Lexical declarations in for-in / for-of loops can't be initialized + + if ( + parser.token === Token.OfKeyword || + (parser.token === Token.InKeyword && + (token & Token.IsPatternStart || (kind & BindingKind.Variable) < 1 || context & Context.Strict)) + ) { + reportMessageAt( + tokenPos, + parser.line, + parser.index - 3, + Errors.ForInOfLoopInitializer, + parser.token === Token.OfKeyword ? 'of' : 'in' + ); + } + } + // Normal const declarations, and const declarations in for(;;) heads, must be initialized. + } else if ( + (kind & BindingKind.Const || (token & Token.IsPatternStart) > 0) && + (parser.token & Token.IsInOrOf) !== Token.IsInOrOf + ) { + report(parser, Errors.DeclarationMissingInitializer, kind & BindingKind.Const ? 'const' : 'destructuring'); + } + + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclarator', + id, + init + }); +} + +/** + * Parses either For, ForIn or ForOf statement + * + * @see [Link](https://tc39.github.io/ecma262/#sec-for-statement) + * @see [Link](https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements) + * + * @param parser Parser object + * @param context Context masks + * @param start Start pos of node + * @param line + * @param column + + */ +export function parseForStatement( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + labels: ESTree.Labels, + start: number, + line: number, + column: number +): ESTree.ForStatement | ESTree.ForInStatement | ESTree.ForOfStatement { + nextToken(parser, context); + + const forAwait = (context & Context.InAwaitContext) > 0 && consumeOpt(parser, context, Token.AwaitKeyword); + + consume(parser, context | Context.AllowRegExp, Token.LeftParen); + + if (scope) scope = addChildScope(scope, ScopeKind.ForStatement); + + let test: ESTree.Expression | null = null; + let update: ESTree.Expression | null = null; + let destructible: AssignmentKind | DestructuringKind = 0; + let init = null; + let isVarDecl = + parser.token === Token.VarKeyword || parser.token === Token.LetKeyword || parser.token === Token.ConstKeyword; + let right; + + const { token, tokenPos, linePos, colPos } = parser; + + if (isVarDecl) { + if (token === Token.LetKeyword) { + init = parseIdentifier(parser, context, 0); + if (parser.token & (Token.IsIdentifier | Token.IsPatternStart)) { + if (parser.token === Token.InKeyword) { + if (context & Context.Strict) report(parser, Errors.DisallowedLetInStrict); + } else { + init = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'VariableDeclaration', + kind: 'let', + declarations: parseVariableDeclarationList( + parser, + context | Context.DisallowIn, + scope, + BindingKind.Let, + Origin.ForStatement + ) + }); + } + + parser.assignable = AssignmentKind.Assignable; + } else if (context & Context.Strict) { + report(parser, Errors.DisallowedLetInStrict); + } else { + isVarDecl = false; + parser.assignable = AssignmentKind.Assignable; + init = parseMemberOrUpdateExpression(parser, context, init, 0, 0, tokenPos, linePos, colPos); + + // `for of` only allows LeftHandSideExpressions which do not start with `let`, and no other production matches + if (parser.token === Token.OfKeyword) report(parser, Errors.ForOfLet); + } + } else { + nextToken(parser, context); + + init = finishNode( + parser, + context, + tokenPos, + linePos, + colPos, + token === Token.VarKeyword + ? { + type: 'VariableDeclaration', + kind: 'var', + declarations: parseVariableDeclarationList( + parser, + context | Context.DisallowIn, + scope, + BindingKind.Variable, + Origin.ForStatement + ) + } + : { + type: 'VariableDeclaration', + kind: 'const', + declarations: parseVariableDeclarationList( + parser, + context | Context.DisallowIn, + scope, + BindingKind.Const, + Origin.ForStatement + ) + } + ); + + parser.assignable = AssignmentKind.Assignable; + } + } else if (token === Token.Semicolon) { + if (forAwait) report(parser, Errors.InvalidForAwait); + } else if ((token & Token.IsPatternStart) === Token.IsPatternStart) { + init = + token === Token.LeftBrace + ? parseObjectLiteralOrPattern( + parser, + context, + void 0, + 1, + 0, + 0, + BindingKind.Empty, + Origin.ForStatement, + tokenPos, + linePos, + colPos + ) + : parseArrayExpressionOrPattern( + parser, + context, + void 0, + 1, + 0, + 0, + BindingKind.Empty, + Origin.ForStatement, + tokenPos, + linePos, + colPos + ); + + destructible = parser.destructible; + + if (context & Context.OptionsWebCompat && destructible & DestructuringKind.SeenProto) { + report(parser, Errors.DuplicateProto); + } + + parser.assignable = + destructible & DestructuringKind.CannotDestruct ? AssignmentKind.CannotAssign : AssignmentKind.Assignable; + + init = parseMemberOrUpdateExpression( + parser, + context | Context.DisallowIn, + init as ESTree.Expression, + 0, + 0, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + } else { + init = parseLeftHandSideExpression(parser, context | Context.DisallowIn, 1, 0, 1, tokenPos, linePos, colPos); + } + + if ((parser.token & Token.IsInOrOf) === Token.IsInOrOf) { + if (parser.token === Token.OfKeyword) { + if (parser.assignable & AssignmentKind.CannotAssign) + report(parser, Errors.CantAssignToInOfForLoop, forAwait ? 'await' : 'of'); + + reinterpretToPattern(parser, init); + nextToken(parser, context | Context.AllowRegExp); + + // IterationStatement: + // for(LeftHandSideExpression of AssignmentExpression) Statement + // forawait(LeftHandSideExpression of AssignmentExpression) Statement + right = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + + consume(parser, context | Context.AllowRegExp, Token.RightParen); + + const body = parseIterationStatementBody(parser, context, scope, labels); + + return finishNode(parser, context, start, line, column, { + type: 'ForOfStatement', + left: init, + right, + body, + await: forAwait + }); + } + + if (parser.assignable & AssignmentKind.CannotAssign) report(parser, Errors.CantAssignToInOfForLoop, 'in'); + + reinterpretToPattern(parser, init); + nextToken(parser, context | Context.AllowRegExp); + + // `for await` only accepts the `for-of` type + if (forAwait) report(parser, Errors.InvalidForAwait); + + // IterationStatement: + // for(LeftHandSideExpression in Expression) Statement + right = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + + consume(parser, context | Context.AllowRegExp, Token.RightParen); + const body = parseIterationStatementBody(parser, context, scope, labels); + + return finishNode(parser, context, start, line, column, { + type: 'ForInStatement', + body, + left: init, + right + }); + } + + if (forAwait) report(parser, Errors.InvalidForAwait); + + if (!isVarDecl) { + if (destructible & DestructuringKind.HasToDestruct && parser.token !== Token.Assign) { + report(parser, Errors.CantAssignToInOfForLoop, 'loop'); + } + + init = parseAssignmentExpression(parser, context | Context.DisallowIn, 0, 0, tokenPos, linePos, colPos, init); + } + + if (parser.token === Token.Comma) + init = parseSequenceExpression(parser, context, 0, parser.tokenPos, parser.linePos, parser.colPos, init); + + consume(parser, context | Context.AllowRegExp, Token.Semicolon); + + if (parser.token !== Token.Semicolon) + test = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + + consume(parser, context | Context.AllowRegExp, Token.Semicolon); + + if (parser.token !== Token.RightParen) + update = parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + + consume(parser, context | Context.AllowRegExp, Token.RightParen); + + const body = parseIterationStatementBody(parser, context, scope, labels); + + return finishNode(parser, context, start, line, column, { + type: 'ForStatement', + init, + test, + update, + body + }); +} + +/** + * Parses restricted identifier in import & export declaration + * + * @param parser Parser object + * @param context Context masks + * @param scope Scope object + */ + +export function parseRestrictedIdentifier( + parser: ParserState, + context: Context, + scope: ScopeState | undefined +): ESTree.Identifier { + if (!isValidIdentifier(context, parser.token)) report(parser, Errors.UnexpectedStrictReserved); + if ((parser.token & Token.IsEvalOrArguments) === Token.IsEvalOrArguments) report(parser, Errors.StrictEvalArguments); + if (scope) addBlockName(parser, context, scope, parser.tokenValue, BindingKind.Let, Origin.None); + return parseIdentifier(parser, context, 0); +} + +/** + * Parse import declaration + * + * @see [Link](https://tc39.github.io/ecma262/#prod-ImportDeclaration) + * + * @param parser Parser object + * @param context Context masks + * @param scope Scope object + */ +function parseImportDeclaration( + parser: ParserState, + context: Context, + scope: ScopeState | undefined +): ESTree.ImportDeclaration | ESTree.ExpressionStatement { + // ImportDeclaration : + // 'import' ImportClause 'from' ModuleSpecifier ';' + // 'import' ModuleSpecifier ';' + // + // ImportClause : + // ImportedDefaultBinding + // NameSpaceImport + // NamedImports + // ImportedDefaultBinding ',' NameSpaceImport + // ImportedDefaultBinding ',' NamedImports + // + // NameSpaceImport : + // '*' 'as' ImportedBinding + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + + nextToken(parser, context); + + let source: ESTree.Literal | null = null; + + const { tokenPos, linePos, colPos } = parser; + + let specifiers: (ESTree.ImportSpecifier | ESTree.ImportDefaultSpecifier | ESTree.ImportNamespaceSpecifier)[] = []; + + // 'import' ModuleSpecifier ';' + if (parser.token === Token.StringLiteral) { + source = parseLiteral(parser, context); + } else { + if (parser.token & Token.IsIdentifier) { + const local = parseRestrictedIdentifier(parser, context, scope); + specifiers = [ + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportDefaultSpecifier', + local + }) + ]; + + // NameSpaceImport + if (consumeOpt(parser, context, Token.Comma)) { + switch (parser.token) { + case Token.Multiply: + specifiers.push(parseImportNamespaceSpecifier(parser, context, scope)); + break; + + case Token.LeftBrace: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + + default: + report(parser, Errors.InvalidDefaultImport); + } + } + } else { + // Parse NameSpaceImport or NamedImports if present + switch (parser.token) { + case Token.Multiply: + specifiers = [parseImportNamespaceSpecifier(parser, context, scope)]; + break; + case Token.LeftBrace: + parseImportSpecifierOrNamedImports(parser, context, scope, specifiers); + break; + case Token.LeftParen: + return parseImportCallDeclaration(parser, context, start, line, column); + case Token.Period: + return parseImportMetaDeclaration(parser, context, start, line, column); + default: + report(parser, Errors.UnexpectedToken, KeywordDescTable[parser.token & Token.Type]); + } + } + + source = parseModuleSpecifier(parser, context); + } + + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + + return finishNode(parser, context, start, line, column, { + type: 'ImportDeclaration', + specifiers, + source + }); +} + +/** + * Parse binding identifier + * + * @see [Link](https://tc39.github.io/ecma262/#prod-NameSpaceImport) + * + * @param parser Parser object + * @param context Context masks + * @param specifiers Array of import specifiers + */ +function parseImportNamespaceSpecifier( + parser: ParserState, + context: Context, + scope: ScopeState | undefined +): ESTree.ImportNamespaceSpecifier { + // NameSpaceImport: + // * as ImportedBinding + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + consume(parser, context, Token.AsKeyword); + + // 'import * as class from "foo":' + if ((parser.token & Token.IsStringOrNumber) === Token.IsStringOrNumber) { + reportMessageAt( + tokenPos, + parser.line, + parser.index, + Errors.UnexpectedToken, + KeywordDescTable[parser.token & Token.Type] + ); + } + + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportNamespaceSpecifier', + local: parseRestrictedIdentifier(parser, context, scope) + }); +} + +/** + * Parse module specifier + * + * @see [Link](https://tc39.github.io/ecma262/#prod-ModuleSpecifier) + * + * @param parser Parser object + * @param context Context masks + */ +function parseModuleSpecifier(parser: ParserState, context: Context): ESTree.Literal { + // ModuleSpecifier : + // StringLiteral + consumeOpt(parser, context, Token.FromKeyword); + + if (parser.token !== Token.StringLiteral) report(parser, Errors.InvalidExportImportSource, 'Import'); + + return parseLiteral(parser, context); +} + +function parseImportSpecifierOrNamedImports( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + specifiers: (ESTree.ImportSpecifier | ESTree.ImportDefaultSpecifier | ESTree.ImportNamespaceSpecifier)[] +): (ESTree.ImportSpecifier | ESTree.ImportDefaultSpecifier | ESTree.ImportNamespaceSpecifier)[] { + // NamedImports : + // '{' '}' + // '{' ImportsList '}' + // '{' ImportsList ',' '}' + // + // ImportsList : + // ImportSpecifier + // ImportsList ',' ImportSpecifier + // + // ImportSpecifier : + // BindingIdentifier + // IdentifierName 'as' BindingIdentifier + + nextToken(parser, context); + + while (parser.token & Token.IsIdentifier) { + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + const imported = parseIdentifier(parser, context, 0); + let local: ESTree.Identifier; + + if (consumeOpt(parser, context, Token.AsKeyword)) { + if ((parser.token & Token.IsStringOrNumber) === Token.IsStringOrNumber || parser.token === Token.Comma) { + report(parser, Errors.InvalidKeywordAsAlias); + } else { + validateBindingIdentifier(parser, context, BindingKind.Const, parser.token, 0); + } + tokenValue = parser.tokenValue; + local = parseIdentifier(parser, context, 0); + } else { + // Keywords cannot be bound to themselves, so an import name + // that is a keyword is a syntax error if it is not followed + // by the keyword 'as'. + // See the ImportSpecifier production in ES6 section 15.2.2. + validateBindingIdentifier(parser, context, BindingKind.Const, token, 0); + local = imported; + } + + if (scope) addBlockName(parser, context, scope, tokenValue, BindingKind.Let, Origin.None); + + specifiers.push( + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ImportSpecifier', + local, + imported + }) + ); + + if (parser.token !== Token.RightBrace) consume(parser, context, Token.Comma); + } + + consume(parser, context, Token.RightBrace); + + return specifiers; +} + +/** + * Parse import meta declaration + * + * @param parser Parser object + * @param context Context masks + * @param meta ESTree AST node + * @param start + * @param line + * @param column + */ +export function parseImportMetaDeclaration( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.ExpressionStatement { + let expr: ESTree.Expression = parseImportMetaExpression( + parser, + context, + finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: 'import' + }), + start, + line, + column + ); + + /** MemberExpression : + * 1. PrimaryExpression + * 2. MemberExpression [ AssignmentExpression ] + * 3. MemberExpression . IdentifierName + * 4. MemberExpression TemplateLiteral + * + * CallExpression : + * 1. MemberExpression Arguments + * 2. CallExpression ImportCall + * 3. CallExpression Arguments + * 4. CallExpression [ AssignmentExpression ] + * 5. CallExpression . IdentifierName + * 6. CallExpression TemplateLiteral + * + * UpdateExpression :: + * ('++' | '--')? LeftHandSideExpression + * + */ + + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + + /** AssignmentExpression : + * 1. ConditionalExpression + * 2. LeftHandSideExpression = AssignmentExpression + */ + + expr = parseAssignmentExpression(parser, context, 0, 0, start, line, column, expr as ESTree.Expression); + + /** + * ExpressionStatement[Yield, Await]: + * [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]Expression[+In, ?Yield, ?Await] + */ + return parseExpressionStatement(parser, context, expr, start, line, column); +} + +/** + * Parse dynamic import declaration + * + * @see [Link](https://github.com/tc39/proposal-dynamic-import) + * + * @param parser Parser object + * @param context Context masks + * @param number + */ +function parseImportCallDeclaration( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.ExpressionStatement { + let expr = parseImportExpression(parser, context, /* inGroup */ 0, start, line, column); + + /** MemberExpression : + * 1. PrimaryExpression + * 2. MemberExpression [ AssignmentExpression ] + * 3. MemberExpression . IdentifierName + * 4. MemberExpression TemplateLiteral + * + * CallExpression : + * 1. MemberExpression Arguments + * 2. CallExpression ImportCall + * 3. CallExpression Arguments + * 4. CallExpression [ AssignmentExpression ] + * 5. CallExpression . IdentifierName + * 6. CallExpression TemplateLiteral + * + * UpdateExpression :: + * ('++' | '--')? LeftHandSideExpression + * + */ + + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, start, line, column); + + /** + * ExpressionStatement[Yield, Await]: + * [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }]Expression[+In, ?Yield, ?Await] + */ + return parseExpressionStatement(parser, context, expr, start, line, column); +} + +/** + * Parse export declaration + * + * @see [Link](https://tc39.github.io/ecma262/#prod-ExportDeclaration) + * + * @param parser Parser object + * @param context Context masks + */ +function parseExportDeclaration( + parser: ParserState, + context: Context, + scope: ScopeState | undefined +): ESTree.ExportAllDeclaration | ESTree.ExportNamedDeclaration | ESTree.ExportDefaultDeclaration { + // ExportDeclaration: + // 'export' '*' 'from' ModuleSpecifier ';' + // 'export' '*' 'as' IdentifierName 'from' ModuleSpecifier ';' + // 'export' ExportClause ('from' ModuleSpecifier)? ';' + // 'export' VariableStatement + // 'export' Declaration + // 'export' 'default' + const start = parser.tokenPos; + const line = parser.linePos; + const column = parser.colPos; + + // https://tc39.github.io/ecma262/#sec-exports + nextToken(parser, context | Context.AllowRegExp); + + const specifiers: ESTree.ExportSpecifier[] = []; + + let declaration: ESTree.ExportDeclaration | ESTree.Expression | null = null; + let source: ESTree.Literal | null = null; + let key: string; + + if (consumeOpt(parser, context | Context.AllowRegExp, Token.DefaultKeyword)) { + // export default HoistableDeclaration[Default] + // export default ClassDeclaration[Default] + // export default [lookahead not-in {function, class}] AssignmentExpression[In] ; + + switch (parser.token) { + // export default HoistableDeclaration[Default] + case Token.FunctionKeyword: { + declaration = parseFunctionDeclaration( + parser, + context, + scope, + Origin.TopLevel, + 1, + HoistedFunctionFlags.Hoisted, + 0, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + break; + } + // export default ClassDeclaration[Default] + // export default @decl ClassDeclaration[Default] + case Token.Decorator: + case Token.ClassKeyword: + declaration = parseClassDeclaration( + parser, + context, + scope, + HoistedClassFlags.Hoisted, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + break; + + // export default HoistableDeclaration[Default] + case Token.AsyncKeyword: + const { tokenPos, linePos, colPos } = parser; + + declaration = parseIdentifier(parser, context, 0); + + const { flags } = parser; + + if ((flags & Flags.NewLine) < 1) { + if (parser.token === Token.FunctionKeyword) { + declaration = parseFunctionDeclaration( + parser, + context, + scope, + Origin.TopLevel, + 1, + HoistedFunctionFlags.Hoisted, + 1, + tokenPos, + linePos, + colPos + ); + } else { + if (parser.token === Token.LeftParen) { + declaration = parseAsyncArrowOrCallExpression( + parser, + context, + declaration, + 1, + BindingKind.ArgumentList, + Origin.None, + flags, + tokenPos, + linePos, + colPos + ); + declaration = parseMemberOrUpdateExpression( + parser, + context, + declaration as any, + 0, + 0, + tokenPos, + linePos, + colPos + ); + declaration = parseAssignmentExpression( + parser, + context, + 0, + 0, + tokenPos, + linePos, + colPos, + declaration as any + ); + } else if (parser.token & Token.IsIdentifier) { + if (scope) scope = createArrowHeadParsingScope(parser, context, parser.tokenValue); + + declaration = parseIdentifier(parser, context, 0); + declaration = parseArrowFunctionExpression( + parser, + context, + scope, + [declaration], + 1, + tokenPos, + linePos, + colPos + ); + } + } + } + break; + + default: + // export default [lookahead ∉ {function, class}] AssignmentExpression[In] ; + declaration = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + } + + // See: https://www.ecma-international.org/ecma-262/9.0/index.html#sec-exports-static-semantics-exportednames + if (scope) declareUnboundVariable(parser, 'default'); + + return finishNode(parser, context, start, line, column, { + type: 'ExportDefaultDeclaration', + declaration + }); + } + + switch (parser.token) { + case Token.Multiply: { + // + // 'export' '*' 'as' IdentifierName 'from' ModuleSpecifier ';' + // + // See: https://github.com/tc39/ecma262/pull/1174 + nextToken(parser, context); // Skips: '*' + + let exported: ESTree.Identifier | null = null; + const isNamedDeclaration = consumeOpt(parser, context, Token.AsKeyword); + + if (isNamedDeclaration) { + if (scope) declareUnboundVariable(parser, parser.tokenValue); + exported = parseIdentifier(parser, context, 0); + } + + consume(parser, context, Token.FromKeyword); + + if (parser.token !== Token.StringLiteral) report(parser, Errors.InvalidExportImportSource, 'Export'); + + source = parseLiteral(parser, context); + + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + + return finishNode(parser, context, start, line, column, { + type: 'ExportAllDeclaration', + source, + exported + } as any); + } + case Token.LeftBrace: { + // ExportClause : + // '{' '}' + // '{' ExportsList '}' + // '{' ExportsList ',' '}' + // + // ExportsList : + // ExportSpecifier + // ExportsList ',' ExportSpecifier + // + // ExportSpecifier : + // IdentifierName + // IdentifierName 'as' IdentifierName + + nextToken(parser, context); // Skips: '{' + + const tmpExportedNames: string[] = []; + const tmpExportedBindings: string[] = []; + + while (parser.token & Token.IsIdentifier) { + const { tokenPos, tokenValue, linePos, colPos } = parser; + const local = parseIdentifier(parser, context, 0); + + let exported: ESTree.Identifier | null; + + if (parser.token === Token.AsKeyword) { + nextToken(parser, context); + if ((parser.token & Token.IsStringOrNumber) === Token.IsStringOrNumber) { + report(parser, Errors.InvalidKeywordAsAlias); + } + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(tokenValue); + } + exported = parseIdentifier(parser, context, 0); + } else { + if (scope) { + tmpExportedNames.push(parser.tokenValue); + tmpExportedBindings.push(parser.tokenValue); + } + exported = local; + } + + specifiers.push( + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ExportSpecifier', + local, + exported + }) + ); + + if (parser.token !== Token.RightBrace) consume(parser, context, Token.Comma); + } + + consume(parser, context, Token.RightBrace); + + if (consumeOpt(parser, context, Token.FromKeyword)) { + // The left hand side can't be a keyword where there is no + // 'from' keyword since it references a local binding. + if (parser.token !== Token.StringLiteral) report(parser, Errors.InvalidExportImportSource, 'Export'); + + source = parseLiteral(parser, context); + } else if (scope) { + let i = 0; + let iMax = tmpExportedNames.length; + for (; i < iMax; i++) { + declareUnboundVariable(parser, tmpExportedNames[i]); + } + i = 0; + iMax = tmpExportedBindings.length; + + for (; i < iMax; i++) { + addBindingToExports(parser, tmpExportedBindings[i]); + } + } + + matchOrInsertSemicolon(parser, context | Context.AllowRegExp); + + break; + } + + case Token.ClassKeyword: + declaration = parseClassDeclaration( + parser, + context, + scope, + HoistedClassFlags.Export, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + break; + case Token.FunctionKeyword: + declaration = parseFunctionDeclaration( + parser, + context, + scope, + Origin.TopLevel, + 1, + HoistedFunctionFlags.Export, + 0, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + break; + + case Token.LetKeyword: + declaration = parseLexicalDeclaration( + parser, + context, + scope, + BindingKind.Let, + Origin.Export, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + break; + case Token.ConstKeyword: + declaration = parseLexicalDeclaration( + parser, + context, + scope, + BindingKind.Const, + Origin.Export, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + break; + case Token.VarKeyword: + declaration = parseVariableStatement( + parser, + context, + scope, + Origin.Export, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + break; + case Token.AsyncKeyword: + const { tokenPos, linePos, colPos } = parser; + + nextToken(parser, context); + + if ((parser.flags & Flags.NewLine) < 1 && parser.token === Token.FunctionKeyword) { + declaration = parseFunctionDeclaration( + parser, + context, + scope, + Origin.TopLevel, + 1, + HoistedFunctionFlags.Export, + 1, + tokenPos, + linePos, + colPos + ); + if (scope) { + key = declaration.id ? declaration.id.name : ''; + declareUnboundVariable(parser, key); + } + break; + } + // falls through + default: + report(parser, Errors.UnexpectedToken, KeywordDescTable[parser.token & Token.Type]); + } + + return finishNode(parser, context, start, line, column, { + type: 'ExportNamedDeclaration', + declaration, + specifiers, + source + }); +} + +/** + * Parses an expression + * + * @param parser Parser object + * @param context Context masks + * @param assignable + */ +export function parseExpression( + parser: ParserState, + context: Context, + canAssign: 0 | 1, + isPattern: 0 | 1, + inGroup: 0 | 1, + start: number, + line: number, + column: number +): ESTree.Expression { + // Expression :: + // AssignmentExpression + // Expression ',' AssignmentExpression + + let expr = parsePrimaryExpression( + parser, + context, + BindingKind.Empty, + 0, + canAssign, + isPattern, + inGroup, + 1, + start, + line, + column + ); + + expr = parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); + + return parseAssignmentExpression(parser, context, inGroup, 0, start, line, column, expr); +} + +/** + * Parse sequence expression + * + * @param parser Parser object + * @param context Context masks + * @param expr ESTree AST node + */ +export function parseSequenceExpression( + parser: ParserState, + context: Context, + inGroup: 0 | 1, + start: number, + line: number, + column: number, + expr: ESTree.AssignmentExpression | ESTree.Expression +): ESTree.SequenceExpression { + // Expression :: + // AssignmentExpression + // Expression ',' AssignmentExpression + const expressions: ESTree.Expression[] = [expr]; + while (consumeOpt(parser, context | Context.AllowRegExp, Token.Comma)) { + expressions.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + + return finishNode(parser, context, start, line, column, { + type: 'SequenceExpression', + expressions + }); +} + +/** + * Parse expression or sequence expression + * + * @param parser Parser object + * @param context Context masks + * @param canAssign + */ +export function parseExpressions( + parser: ParserState, + context: Context, + inGroup: 0 | 1, + canAssign: 0 | 1, + start: number, + line: number, + column: number +): ESTree.SequenceExpression | ESTree.Expression { + const expr = parseExpression(parser, context, canAssign, 0, inGroup, start, line, column); + return parser.token === Token.Comma + ? parseSequenceExpression(parser, context, inGroup, start, line, column, expr) + : expr; +} + +/** + * Parse assignment expression + * + * @param parser Parser object + * @param context Context masks + * @param inGroup + * @param isPattern + * @param start + * @param line + * @param column + * @param left + * + * * @param left ESTree AST node + */ +export function parseAssignmentExpression( + parser: ParserState, + context: Context, + inGroup: 0 | 1, + isPattern: 0 | 1, + start: number, + line: number, + column: number, + left: ESTree.ArgumentExpression | ESTree.Expression | null +): ESTree.ArgumentExpression | ESTree.Expression { + /** + * AssignmentExpression :: + * ConditionalExpression + * ArrowFunction + * AsyncArrowFunction + * YieldExpression + * LeftHandSideExpression AssignmentOperator AssignmentExpression + */ + + const { token } = parser; + + if ((token & Token.IsAssignOp) === Token.IsAssignOp) { + if (parser.assignable & AssignmentKind.CannotAssign) report(parser, Errors.CantAssignTo); + if ( + (!isPattern && token === Token.Assign && ((left as ESTree.Expression).type as string) === 'ArrayExpression') || + ((left as ESTree.Expression).type as string) === 'ObjectExpression' + ) { + reinterpretToPattern(parser, left); + } + + nextToken(parser, context | Context.AllowRegExp); + + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + + parser.assignable = AssignmentKind.CannotAssign; + + return finishNode( + parser, + context, + start, + line, + column, + isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : ({ + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & Token.Type], + right + } as any) + ); + } + + /** Binary expression + * + * https://tc39.github.io/ecma262/#sec-multiplicative-operators + * + */ + if ((token & Token.IsBinaryOp) === Token.IsBinaryOp) { + // We start using the binary expression parser for prec >= 4 only! + left = parseBinaryExpression(parser, context, inGroup, start, line, column, 4, token, left as ESTree.Expression); + } + + /** + * Conditional expression + * https://tc39.github.io/ecma262/#prod-ConditionalExpression + * + */ + if (consumeOpt(parser, context | Context.AllowRegExp, Token.QuestionMark)) { + left = parseConditionalExpression(parser, context, left as ESTree.Expression, start, line, column); + } + + return left as ESTree.Expression; +} + +/** + * Parse assignment expression or assignment pattern + * + * @param parser Parser object + * @param context Context masks + * @param inGroup + * @param isPattern + * @param start + * @param line + * @param column + * @param left + */ + +export function parseAssignmentExpressionOrPattern( + parser: ParserState, + context: Context, + inGroup: 0 | 1, + isPattern: 0 | 1, + start: number, + line: number, + column: number, + left: any +): any { + const { token } = parser; + + nextToken(parser, context | Context.AllowRegExp); + + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + + left = finishNode( + parser, + context, + start, + line, + column, + isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : ({ + type: 'AssignmentExpression', + left, + operator: KeywordDescTable[token & Token.Type], + right + } as any) + ); + + parser.assignable = AssignmentKind.CannotAssign; + + return left as ESTree.Expression; +} + +/** + * Parse conditional expression + * + * @param parser Parser object + * @param context Context masks + * @param test ESTree AST node + */ +export function parseConditionalExpression( + parser: ParserState, + context: Context, + test: ESTree.Expression, + start: number, + line: number, + column: number +): ESTree.ConditionalExpression { + // ConditionalExpression :: + // LogicalOrExpression + // LogicalOrExpression '?' AssignmentExpression ':' AssignmentExpression + const consequent = parseExpression( + parser, + (context | Context.DisallowIn) ^ Context.DisallowIn, + 1, + 0, + 0, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + consume(parser, context | Context.AllowRegExp, Token.Colon); + parser.assignable = AssignmentKind.Assignable; + // In parsing the first assignment expression in conditional + // expressions we always accept the 'in' keyword; see ECMA-262, + // section 11.12, page 58. + const alternate = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = AssignmentKind.CannotAssign; + return finishNode(parser, context, start, line, column, { + type: 'ConditionalExpression', + test, + consequent, + alternate + }); +} + +/** + * Parses binary and unary expressions recursively + * based on the precedence of the operators encountered. + * + * @param parser Parser object + * @param context Context masks + * @param minPrec The precedence of the last binary expression parsed + * @param left ESTree AST node + */ +export function parseBinaryExpression( + parser: ParserState, + context: Context, + inGroup: 0 | 1, + start: number, + line: number, + column: number, + minPrec: number, + operator: Token, + left: ESTree.ArgumentExpression | ESTree.Expression +): ESTree.ArgumentExpression | ESTree.Expression { + const bit = -((context & Context.DisallowIn) > 0) & Token.InKeyword; + let t: Token; + let prec: number; + + parser.assignable = AssignmentKind.CannotAssign; + + while (parser.token & Token.IsBinaryOp) { + t = parser.token; + prec = t & Token.Precedence; + + if ((t & Token.IsLogical && operator & Token.IsCoalesc) || (operator & Token.IsLogical && t & Token.IsCoalesc)) { + report(parser, Errors.InvalidCoalescing); + } + + // 0 precedence will terminate binary expression parsing + + if (prec + (((t === Token.Exponentiate) as any) << 8) - (((bit === t) as any) << 12) <= minPrec) break; + nextToken(parser, context | Context.AllowRegExp); + + left = finishNode(parser, context, start, line, column, { + type: t & Token.IsLogical || t & Token.IsCoalesc ? 'LogicalExpression' : 'BinaryExpression', + left, + right: parseBinaryExpression( + parser, + context, + inGroup, + parser.tokenPos, + parser.linePos, + parser.colPos, + prec, + t, + parseLeftHandSideExpression(parser, context, 0, inGroup, 1, parser.tokenPos, parser.linePos, parser.colPos) + ), + operator: KeywordDescTable[t & Token.Type] + }); + } + + if (parser.token === Token.Assign) report(parser, Errors.CantAssignTo); + + return left; +} + +/** + * Parses unary expression + * + * @param parser Parser object + * @param context Context masks + */ +export function parseUnaryExpression( + parser: ParserState, + context: Context, + isLHS: 0 | 1, + start: number, + line: number, + column: number, + inGroup: 0 | 1 +): ESTree.UnaryExpression { + /** + * UnaryExpression :: + * 1) UpdateExpression + * 2) delete UnaryExpression + * 3) void UnaryExpression + * 4) typeof UnaryExpression + * 5) + UnaryExpression + * 6) - UnaryExpression + * 7) ~ UnaryExpression + * 8) ! UnaryExpression + * 9) AwaitExpression + */ + if (!isLHS) report(parser, Errors.Unexpected); + const unaryOperator = parser.token; + nextToken(parser, context | Context.AllowRegExp); + const arg = parseLeftHandSideExpression( + parser, + context, + 0, + inGroup, + 1, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + if (parser.token === Token.Exponentiate) report(parser, Errors.InvalidExponentiationLHS); + if (context & Context.Strict && unaryOperator === Token.DeleteKeyword) { + if (arg.type === 'Identifier') { + report(parser, Errors.StrictDelete); + // Prohibit delete of private class elements + } else if (isPropertyWithPrivateFieldKey(arg)) { + report(parser, Errors.DeletePrivateField); + } + } + + parser.assignable = AssignmentKind.CannotAssign; + + return finishNode(parser, context, start, line, column, { + type: 'UnaryExpression', + operator: KeywordDescTable[unaryOperator & Token.Type] as ESTree.UnaryOperator, + argument: arg, + prefix: true + }); +} + +/** + * Parse async expression + * + * @param parser Parser object + * @param context Context masks + */ +export function parseAsyncExpression( + parser: ParserState, + context: Context, + inGroup: 0 | 1, + isLHS: 0 | 1, + canAssign: 0 | 1, + isPattern: 0 | 1, + inNew: 0 | 1, + start: number, + line: number, + column: number +): ESTree.FunctionExpression | ESTree.ArrowFunctionExpression | ESTree.CallExpression | ESTree.Identifier { + const { token } = parser; + const expr = parseIdentifier(parser, context, isPattern); + const { flags } = parser; + + if ((flags & Flags.NewLine) < 1) { + // async function ... + if (parser.token === Token.FunctionKeyword) { + return parseFunctionExpression(parser, context, /* isAsync */ 1, inGroup, start, line, column); + } + + // async Identifier => ... + if ((parser.token & Token.IsIdentifier) === Token.IsIdentifier) { + if (!isLHS) report(parser, Errors.Unexpected); + return parseAsyncArrowAfterIdent(parser, context, canAssign, start, line, column); + } + } + + // async (...) => ... + if (!inNew && parser.token === Token.LeftParen) { + return parseAsyncArrowOrCallExpression( + parser, + context, + expr, + canAssign, + BindingKind.ArgumentList, + Origin.None, + flags, + start, + line, + column + ); + } + + if (parser.token === Token.Arrow) { + classifyIdentifier(parser, context, token, /* isArrow */ 1); + if (inNew) report(parser, Errors.InvalidAsyncArrow); + return parseArrowFromIdentifier(parser, context, parser.tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + return expr; +} + +/** + * Parse yield expression + * + * @param parser Parser object + * @param context Context masks + */ +export function parseYieldExpression( + parser: ParserState, + context: Context, + inGroup: 0 | 1, + canAssign: 0 | 1, + start: number, + line: number, + column: number +): ESTree.YieldExpression | ESTree.Identifier | ESTree.ArrowFunctionExpression { + // YieldExpression[In] : + // yield + // yield [no LineTerminator here] AssignmentExpression[?In, Yield] + // yield [no LineTerminator here] * AssignmentExpression[?In, Yield] + + if (inGroup) parser.destructible |= DestructuringKind.Yield; + if (context & Context.InYieldContext) { + nextToken(parser, context | Context.AllowRegExp); + if (context & Context.InArgumentList) report(parser, Errors.YieldInParameter); + if (!canAssign) report(parser, Errors.CantAssignTo); + if (parser.token === Token.QuestionMark) report(parser, Errors.InvalidTernaryYield); + + let argument: ESTree.Expression | null = null; + let delegate = false; // yield* + + if ((parser.flags & Flags.NewLine) < 1) { + delegate = consumeOpt(parser, context | Context.AllowRegExp, Token.Multiply); + if (parser.token & (Token.Contextual | Token.IsExpressionStart) || delegate) { + argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } + } + + parser.assignable = AssignmentKind.CannotAssign; + + return finishNode(parser, context, start, line, column, { + type: 'YieldExpression', + argument, + delegate + }); + } + + if (context & Context.Strict) report(parser, Errors.DisallowedInContext, 'yield'); + + return parseIdentifierOrArrow(parser, context, start, line, column); +} + +/** + * Parse await expression + * + * @param parser Parser object + * @param context Context masks + * @param inNew + */ +export function parseAwaitExpression( + parser: ParserState, + context: Context, + inNew: 0 | 1, + inGroup: 0 | 1, + start: number, + line: number, + column: number +): ESTree.IdentifierOrExpression | ESTree.AwaitExpression { + if (inGroup) parser.destructible |= DestructuringKind.Await; + if (context & Context.InAwaitContext || (context & Context.Module && context & Context.InGlobal)) { + if (inNew) report(parser, Errors.Unexpected); + + if (context & Context.InArgumentList) { + reportMessageAt(parser.index, parser.line, parser.index, Errors.AwaitInParameter); + } + + nextToken(parser, context | Context.AllowRegExp); + + const argument = parseLeftHandSideExpression( + parser, + context, + 0, + 0, + 1, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + + if (parser.token === Token.Exponentiate) report(parser, Errors.InvalidExponentiationLHS); + + parser.assignable = AssignmentKind.CannotAssign; + + return finishNode(parser, context, start, line, column, { + type: 'AwaitExpression', + argument + }); + } + + if (context & Context.Module) report(parser, Errors.AwaitOutsideAsync); + return parseIdentifierOrArrow(parser, context, start, line, column); +} + +/** + * Parses function body + * + * @param parser Parser object + * @param context Context masks + * @param scope Scope object | null + * @param origin Binding origin + * @param firstRestricted + * @param scopeError + */ +export function parseFunctionBody( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + origin: Origin, + firstRestricted: Token | undefined, + scopeError: any +): ESTree.BlockStatement { + const { tokenPos, linePos, colPos } = parser; + + consume(parser, context | Context.AllowRegExp, Token.LeftBrace); + + const body: ESTree.Statement[] = []; + const prevContext = context; + + if (parser.token !== Token.RightBrace) { + while (parser.token === Token.StringLiteral) { + const { index, tokenPos, tokenValue, token } = parser; + const expr = parseLiteral(parser, context); + if (isValidStrictMode(parser, index, tokenPos, tokenValue)) { + context |= Context.Strict; + // TC39 deemed "use strict" directives to be an error when occurring + // in the body of a function with non-simple parameter list, on + // 29/7/2015. https://goo.gl/ueA7Ln + if (parser.flags & Flags.SimpleParameterList) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, Errors.IllegalUseStrict); + } + + if (parser.flags & Flags.Octals) { + reportMessageAt(parser.index, parser.line, parser.tokenPos, Errors.StrictOctalLiteral); + } + } + body.push(parseDirective(parser, context, expr, token, tokenPos, parser.linePos, parser.colPos)); + } + if (context & Context.Strict) { + if (firstRestricted) { + if ((firstRestricted & Token.IsEvalOrArguments) === Token.IsEvalOrArguments) { + report(parser, Errors.StrictEvalArguments); + } + if ((firstRestricted & Token.FutureReserved) === Token.FutureReserved) { + report(parser, Errors.StrictFunctionName); + } + } + if (parser.flags & Flags.StrictEvalArguments) report(parser, Errors.StrictEvalArguments); + if (parser.flags & Flags.HasStrictReserved) report(parser, Errors.UnexpectedStrictReserved); + } + + if ( + context & Context.OptionsLexical && + scope && + scopeError !== void 0 && + (prevContext & Context.Strict) < 1 && + (context & Context.InGlobal) < 1 + ) { + reportScopeError(scopeError); + } + } + + parser.flags = + (parser.flags | Flags.StrictEvalArguments | Flags.HasStrictReserved | Flags.Octals) ^ + (Flags.StrictEvalArguments | Flags.HasStrictReserved | Flags.Octals); + + parser.destructible = (parser.destructible | DestructuringKind.Yield) ^ DestructuringKind.Yield; + + while (parser.token !== Token.RightBrace) { + body.push(parseStatementListItem(parser, context, scope, Origin.TopLevel, {}) as ESTree.Statement); + } + + consume( + parser, + origin & (Origin.Arrow | Origin.Declaration) ? context | Context.AllowRegExp : context, + Token.RightBrace + ); + + parser.flags &= ~(Flags.SimpleParameterList | Flags.Octals); + + if (parser.token === Token.Assign) report(parser, Errors.CantAssignTo); + + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'BlockStatement', + body + }); +} + +/** + * Parse super expression + * + * @param parser Parser object + * @param context Context masks + */ +export function parseSuperExpression( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.Super { + nextToken(parser, context); + + switch (parser.token) { + case Token.QuestionMarkPeriod: + report(parser, Errors.OptionalChainingNoSuper); + case Token.LeftParen: { + // The super property has to be within a class constructor + if ((context & Context.SuperCall) < 1) report(parser, Errors.SuperNoConstructor); + if (context & Context.InClass) report(parser, Errors.UnexpectedPrivateField); + parser.assignable = AssignmentKind.CannotAssign; + break; + } + case Token.LeftBracket: + case Token.Period: { + // new super() is never allowed. + // super() is only allowed in derived constructor + if ((context & Context.SuperProperty) < 1) report(parser, Errors.InvalidSuperProperty); + if (context & Context.InClass) report(parser, Errors.UnexpectedPrivateField); + parser.assignable = AssignmentKind.Assignable; + break; + } + default: + report(parser, Errors.UnexpectedToken, 'super'); + } + + return finishNode(parser, context, start, line, column, { type: 'Super' }); +} + +/** + * Parses left hand side + * + * @param parser Parser object + * @param context Context masks + * @param canAssign + * @param start + * @param line + * @param column + */ +export function parseLeftHandSideExpression( + parser: ParserState, + context: Context, + canAssign: 0 | 1, + inGroup: 0 | 1, + isLHS: 0 | 1, + start: number, + line: number, + column: number +): ESTree.Expression { + // LeftHandSideExpression :: + // (PrimaryExpression | MemberExpression) ... + + const expression = parsePrimaryExpression( + parser, + context, + BindingKind.Empty, + 0, + canAssign, + 0, + inGroup, + isLHS, + start, + line, + column + ); + + return parseMemberOrUpdateExpression(parser, context, expression, inGroup, 0, start, line, column); +} + +/** + * Parse update expression + * + * @param parser Parser object + * @param context Context masks + * @param inNew + * @param start + * @param line + * @param column + */ +function parseUpdateExpression( + parser: ParserState, + context: Context, + expr: ESTree.Expression, + start: number, + line: number, + column: number +) { + if (parser.assignable & AssignmentKind.CannotAssign) report(parser, Errors.InvalidIncDecTarget); + + const { token } = parser; + + nextToken(parser, context); + + parser.assignable = AssignmentKind.CannotAssign; + + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: expr, + operator: KeywordDescTable[token & Token.Type] as ESTree.UpdateOperator, + prefix: false + }); +} +/** + * Parses member or update expression + * + * @param parser Parser object + * @param context Context masks + * @param expr ESTree AST node + * @param inGroup + * @param start + * @param line + * @param column + */ +export function parseMemberOrUpdateExpression( + parser: ParserState, + context: Context, + expr: ESTree.Expression, + inGroup: 0 | 1, + inChain: 0 | 1, + start: number, + line: number, + column: number +): any { + if ((parser.token & Token.IsUpdateOp) === Token.IsUpdateOp && (parser.flags & Flags.NewLine) < 1) { + expr = parseUpdateExpression(parser, context, expr, start, line, column); + } else if ((parser.token & Token.IsMemberOrCallExpression) === Token.IsMemberOrCallExpression) { + context = (context | Context.DisallowIn | Context.InGlobal) ^ (Context.DisallowIn | Context.InGlobal); + + switch (parser.token) { + /* Property */ + case Token.Period: { + nextToken(parser, context | Context.AllowEscapedKeyword); + + parser.assignable = AssignmentKind.Assignable; + + const property = parsePropertyOrPrivatePropertyName(parser, context); + + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }); + break; + } + + /* Property */ + case Token.LeftBracket: { + let restoreHasOptionalChaining = false; + if ((parser.flags & Flags.HasOptionalChaining) === Flags.HasOptionalChaining) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | Flags.HasOptionalChaining) ^ Flags.HasOptionalChaining; + } + + nextToken(parser, context | Context.AllowRegExp); + + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + + consume(parser, context, Token.RightBracket); + + parser.assignable = AssignmentKind.Assignable; + + expr = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }); + + if (restoreHasOptionalChaining) { + parser.flags |= Flags.HasOptionalChaining; + } + break; + } + + /* Call */ + case Token.LeftParen: { + if ((parser.flags & Flags.DisallowCall) === Flags.DisallowCall) { + parser.flags = (parser.flags | Flags.DisallowCall) ^ Flags.DisallowCall; + return expr; + } + + let restoreHasOptionalChaining = false; + if ((parser.flags & Flags.HasOptionalChaining) === Flags.HasOptionalChaining) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | Flags.HasOptionalChaining) ^ Flags.HasOptionalChaining; + } + + const args = parseArguments(parser, context, inGroup); + + parser.assignable = AssignmentKind.CannotAssign; + + expr = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args + }); + + if (restoreHasOptionalChaining) { + parser.flags |= Flags.HasOptionalChaining; + } + break; + } + + /* Optional chaining */ + case Token.QuestionMarkPeriod: { + nextToken(parser, context); // skips: '?.' + parser.flags |= Flags.HasOptionalChaining; + parser.assignable = AssignmentKind.CannotAssign; + expr = parseOptionalChain(parser, context, expr, start, line, column); + break; + } + + default: + if ((parser.flags & Flags.HasOptionalChaining) === Flags.HasOptionalChaining) { + report(parser, Errors.OptionalChainingNoTemplate); + } + /* Tagged Template */ + parser.assignable = AssignmentKind.CannotAssign; + + expr = finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: + parser.token === Token.TemplateContinuation + ? parseTemplate(parser, context | Context.TaggedTemplate) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }); + } + + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 1, start, line, column); + } + + // Finalize ChainExpression + // FIXME: current implementation does not invalidate destructuring like `({ a: x?.obj['a'] } = {})` + if (inChain === 0 && (parser.flags & Flags.HasOptionalChaining) === Flags.HasOptionalChaining) { + parser.flags = (parser.flags | Flags.HasOptionalChaining) ^ Flags.HasOptionalChaining; + + expr = finishNode(parser, context, start, line, column, { + type: 'ChainExpression', + expression: expr as ESTree.CallExpression | ESTree.MemberExpression + }); + } + + return expr; +} + +/** + * Parses optional chain + * + * @param parser Parser object + * @param context Context masks + * @param expr ESTree AST node + */ +export function parseOptionalChain( + parser: ParserState, + context: Context, + expr: ESTree.Expression, + start: number, + line: number, + column: number +): ESTree.MemberExpression | ESTree.CallExpression { + let restoreHasOptionalChaining = false; + let node; + if (parser.token === Token.LeftBracket || parser.token === Token.LeftParen) { + if ((parser.flags & Flags.HasOptionalChaining) === Flags.HasOptionalChaining) { + restoreHasOptionalChaining = true; + parser.flags = (parser.flags | Flags.HasOptionalChaining) ^ Flags.HasOptionalChaining; + } + } + if (parser.token === Token.LeftBracket) { + nextToken(parser, context | Context.AllowRegExp); + const { tokenPos, linePos, colPos } = parser; + const property = parseExpressions(parser, context, 0, 1, tokenPos, linePos, colPos); + consume(parser, context, Token.RightBracket); + parser.assignable = AssignmentKind.CannotAssign; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + optional: true, + property + }); + } else if (parser.token === Token.LeftParen) { + const args = parseArguments(parser, context, 0); + + parser.assignable = AssignmentKind.CannotAssign; + + node = finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee: expr, + arguments: args, + optional: true + }); + } else { + if ((parser.token & (Token.IsIdentifier | Token.Keyword)) < 1) report(parser, Errors.InvalidDotProperty); + const property = parseIdentifier(parser, context, 0); + parser.assignable = AssignmentKind.CannotAssign; + node = finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + optional: true, + property + }); + } + + if (restoreHasOptionalChaining) { + parser.flags |= Flags.HasOptionalChaining; + } + return node; +} + +/** + * Parses property or private property name + * + * @param parser Parser object + * @param context Context masks + */ +export function parsePropertyOrPrivatePropertyName(parser: ParserState, context: Context): any { + if ((parser.token & (Token.IsIdentifier | Token.Keyword)) < 1 && parser.token !== Token.PrivateField) { + report(parser, Errors.InvalidDotProperty); + } + + return context & Context.OptionsNext && parser.token === Token.PrivateField + ? parsePrivateIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + : parseIdentifier(parser, context, 0); +} + +/** + * Parse update expression + * + * @param parser Parser object + * @param context Context masks + * @param inNew + * @param start + * @param line + * @param column + */ +export function parseUpdateExpressionPrefixed( + parser: ParserState, + context: Context, + inNew: 0 | 1, + isLHS: 0 | 1, + start: number, + line: number, + column: number +): ESTree.UpdateExpression { + // UpdateExpression :: + // LeftHandSideExpression ('++' | '--')? + + if (inNew) report(parser, Errors.InvalidIncDecNew); + if (!isLHS) report(parser, Errors.Unexpected); + + const { token } = parser; + + nextToken(parser, context | Context.AllowRegExp); + + const arg = parseLeftHandSideExpression(parser, context, 0, 0, 1, parser.tokenPos, parser.linePos, parser.colPos); + + if (parser.assignable & AssignmentKind.CannotAssign) { + report(parser, Errors.InvalidIncDecTarget); + } + + parser.assignable = AssignmentKind.CannotAssign; + + return finishNode(parser, context, start, line, column, { + type: 'UpdateExpression', + argument: arg, + operator: KeywordDescTable[token & Token.Type] as ESTree.UpdateOperator, + prefix: true + }); +} + +/** + * Parses expressions such as a literal expression + * and update expression. + * + * @param parser Parser object + * @param context Context masks + * @param kind Binding kind + * @param inNew + * @param canAssign + * @param isPattern + * @param inGroup + * @param start + * @param line + * @param column + */ + +export function parsePrimaryExpression( + parser: ParserState, + context: Context, + kind: BindingKind, + inNew: 0 | 1, + canAssign: 0 | 1, + isPattern: 0 | 1, + inGroup: 0 | 1, + isLHS: 0 | 1, + start: number, + line: number, + column: number +): any { + // PrimaryExpression :: + // 'this' + // 'null' + // 'true' + // 'false' + // Identifier + // Number + // String + // BigIntLiteral + // ArrayLiteral + // ObjectLiteral + // RegExpLiteral + // ClassLiteral + // ImportCall + // ImportMeta + // '(' Expression ')' + // TemplateLiteral + // AsyncFunctionLiteral + // YieldExpression + // AwaitExpression + // PrivateField + // Decorator + // Intrinsic + // JSX + + if ((parser.token & Token.IsIdentifier) === Token.IsIdentifier) { + switch (parser.token) { + case Token.AwaitKeyword: + return parseAwaitExpression(parser, context, inNew, inGroup, start, line, column); + case Token.YieldKeyword: + return parseYieldExpression(parser, context, inGroup, canAssign, start, line, column); + case Token.AsyncKeyword: + return parseAsyncExpression(parser, context, inGroup, isLHS, canAssign, isPattern, inNew, start, line, column); + default: // ignore + } + + const { token, tokenValue } = parser; + + const expr = parseIdentifier(parser, context | Context.TaggedTemplate, isPattern); + + if (parser.token === Token.Arrow) { + if (!isLHS) report(parser, Errors.Unexpected); + classifyIdentifier(parser, context, token, /* isArrow */ 1); + return parseArrowFromIdentifier(parser, context, tokenValue, expr, inNew, canAssign, 0, start, line, column); + } + + if (context & Context.InClass && token === Token.Arguments) report(parser, Errors.InvalidClassFieldArgEval); + + // Only a "simple validation" is done here to handle 'let' edge cases + + if (token === Token.LetKeyword) { + if (context & Context.Strict) report(parser, Errors.StrictInvalidLetInExprPos); + if (kind & (BindingKind.Let | BindingKind.Const)) report(parser, Errors.InvalidLetConstBinding); + } + + parser.assignable = + context & Context.Strict && (token & Token.IsEvalOrArguments) === Token.IsEvalOrArguments + ? AssignmentKind.CannotAssign + : AssignmentKind.Assignable; + + return expr; + } + + if ((parser.token & Token.IsStringOrNumber) === Token.IsStringOrNumber) { + return parseLiteral(parser, context); + } + + // Update + Unary + Primary expression + switch (parser.token) { + case Token.Increment: + case Token.Decrement: + return parseUpdateExpressionPrefixed(parser, context, inNew, isLHS, start, line, column); + case Token.DeleteKeyword: + case Token.Negate: + case Token.Complement: + case Token.Add: + case Token.Subtract: + case Token.TypeofKeyword: + case Token.VoidKeyword: + return parseUnaryExpression(parser, context, isLHS, start, line, column, inGroup); + case Token.FunctionKeyword: + return parseFunctionExpression(parser, context, /* isAsync */ 0, inGroup, start, line, column); + case Token.LeftBrace: + return parseObjectLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case Token.LeftBracket: + return parseArrayLiteral(parser, context, canAssign ? 0 : 1, inGroup, start, line, column); + case Token.LeftParen: + return parseParenthesizedExpression( + parser, + context, + canAssign, + BindingKind.ArgumentList, + Origin.None, + start, + line, + column + ); + case Token.FalseKeyword: + case Token.TrueKeyword: + case Token.NullKeyword: + return parseNullOrTrueOrFalseLiteral(parser, context, start, line, column); + case Token.ThisKeyword: + return parseThisExpression(parser, context); + case Token.RegularExpression: + return parseRegExpLiteral(parser, context, start, line, column); + case Token.Decorator: + case Token.ClassKeyword: + return parseClassExpression(parser, context, inGroup, start, line, column); + case Token.SuperKeyword: + return parseSuperExpression(parser, context, start, line, column); + case Token.TemplateSpan: + return parseTemplateLiteral(parser, context, start, line, column); + case Token.TemplateContinuation: + return parseTemplate(parser, context); + case Token.NewKeyword: + return parseNewExpression(parser, context, inGroup, start, line, column); + case Token.BigIntLiteral: + return parseBigIntLiteral(parser, context, start, line, column); + case Token.PrivateField: + return parsePrivateIdentifier(parser, context, start, line, column); + case Token.ImportKeyword: + return parseImportCallOrMetaExpression(parser, context, inNew, inGroup, start, line, column); + case Token.LessThan: + if (context & Context.OptionsJSX) + return parseJSXRootElementOrFragment(parser, context, /*inJSXChild*/ 1, start, line, column); + default: + if (isValidIdentifier(context, parser.token)) return parseIdentifierOrArrow(parser, context, start, line, column); + report(parser, Errors.UnexpectedToken, KeywordDescTable[parser.token & Token.Type]); + } +} + +/** + * Parses Import call expression + * + * @param parser Parser object + * @param context Context masks + * @param inGroup + * @param start + * @param line + * @param column + */ +function parseImportCallOrMetaExpression( + parser: ParserState, + context: Context, + inNew: 0 | 1, + inGroup: 0 | 1, + start: number, + line: number, + column: number +): ESTree.ImportExpression | ESTree.MetaProperty { + // ImportCall[Yield, Await]: + // import(AssignmentExpression[+In, ?Yield, ?Await]) + + let expr: ESTree.Identifier | ESTree.ImportExpression = parseIdentifier(parser, context, 0); + + if (parser.token === Token.Period) { + return parseImportMetaExpression(parser, context, expr, start, line, column); + } + + if (inNew) report(parser, Errors.InvalidImportNew); + + expr = parseImportExpression(parser, context, inGroup, start, line, column); + + parser.assignable = AssignmentKind.CannotAssign; + + return parseMemberOrUpdateExpression(parser, context, expr, inGroup, 0, start, line, column); +} + +/** + * Parses import meta expression + * + * @param parser Parser object + * @param context Context masks + * @param meta ESTree AST node + * @param start + * @param line + * @param column + */ + +export function parseImportMetaExpression( + parser: ParserState, + context: Context, + meta: ESTree.Identifier, + start: number, + line: number, + column: number +): ESTree.MetaProperty { + if ((context & Context.Module) === 0) report(parser, Errors.ImportMetaOutsideModule); + + nextToken(parser, context); // skips: '.' + + if (parser.token !== Token.Meta && parser.tokenValue !== 'meta') + report(parser, Errors.UnexpectedToken, KeywordDescTable[parser.token & Token.Type]); + + parser.assignable = AssignmentKind.CannotAssign; + + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property: parseIdentifier(parser, context, 0) + }); +} + +/** + * Parses import expression + * + * @param parser Parser object + * @param context Context masks + * @param inGroup + * @param start + * @param line + * @param column + */ + +export function parseImportExpression( + parser: ParserState, + context: Context, + inGroup: 0 | 1, + start: number, + line: number, + column: number +): ESTree.ImportExpression { + consume(parser, context | Context.AllowRegExp, Token.LeftParen); + + if (parser.token === Token.Ellipsis) report(parser, Errors.InvalidSpreadInImport); + + const source = parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + + consume(parser, context, Token.RightParen); + + return finishNode(parser, context, start, line, column, { + type: 'ImportExpression', + source + }); +} + +/** + * Parses BigInt literal + * + * @param parser Parser object + * @param context Context masks + */ +export function parseBigIntLiteral( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.BigIntLiteral { + const { tokenRaw, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = AssignmentKind.CannotAssign; + return finishNode( + parser, + context, + start, + line, + column, + context & Context.OptionsRaw + ? { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1), // without the ending "n" + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue, + bigint: tokenRaw.slice(0, -1) // without the ending "n" + } + ); +} + +/** + * Parses template literal + * + * @param parser Parser object + * @param context Context masks + */ +export function parseTemplateLiteral( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.TemplateLiteral { + /** + * Template Literals + * + * Template :: + * FullTemplate + * TemplateHead + * + * FullTemplate :: + * `TemplateCharactersopt` + * + * TemplateHead :: + * ` TemplateCharactersopt ${ + * + * TemplateSubstitutionTail :: + * TemplateMiddle + * TemplateTail + * + * TemplateMiddle :: + * } TemplateCharactersopt ${ + * + * TemplateTail :: + * } TemplateCharactersopt ` + * + * TemplateCharacters :: + * TemplateCharacter TemplateCharactersopt + * + * TemplateCharacter :: + * SourceCharacter but not one of ` or \ or $ + * $ [lookahead not { ] + * \ EscapeSequence + * LineContinuation + */ + + parser.assignable = AssignmentKind.CannotAssign; + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, Token.TemplateSpan); + const quasis = [parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, true)]; + + return finishNode(parser, context, start, line, column, { + type: 'TemplateLiteral', + expressions: [], + quasis + }); +} + +/** + * Parses template + * + * @param parser Parser object + * @param context Context masks + */ +export function parseTemplate(parser: ParserState, context: Context): ESTree.TemplateLiteral { + context = (context | Context.DisallowIn) ^ Context.DisallowIn; + + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | Context.AllowRegExp, Token.TemplateContinuation); + const quasis = [ + parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, /* tail */ false) + ]; + + const expressions = [parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)]; + + if (parser.token !== Token.RightBrace) report(parser, Errors.InvalidTemplateContinuation); + + while ((parser.token = scanTemplateTail(parser, context)) !== Token.TemplateSpan) { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context | Context.AllowRegExp, Token.TemplateContinuation); + quasis.push( + parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, /* tail */ false) + ); + + expressions.push(parseExpressions(parser, context, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + if (parser.token !== Token.RightBrace) report(parser, Errors.InvalidTemplateContinuation); + } + + { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + consume(parser, context, Token.TemplateSpan); + quasis.push( + parseTemplateElement(parser, context, tokenValue, tokenRaw, tokenPos, linePos, colPos, /* tail */ true) + ); + } + + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'TemplateLiteral', + expressions, + quasis + }); +} + +/** + * Parses template spans + * + * @param parser Parser object + * @param tail + */ +export function parseTemplateElement( + parser: ParserState, + context: Context, + cooked: string | null, + raw: string, + start: number, + line: number, + col: number, + tail: boolean +): ESTree.TemplateElement { + const node = finishNode(parser, context, start, line, col, { + type: 'TemplateElement', + value: { + cooked, + raw + }, + tail + }) as ESTree.TemplateElement; + + const tailSize = tail ? 1 : 2; + + // Patch range + if (context & Context.OptionsRanges) { + // skip the front "`" or "}" + (node.start as number) += 1; + (node.range as [number, number])[0] += 1; + // skip the tail "`" or "${" + (node.end as number) -= tailSize; + (node.range as [number, number])[1] -= tailSize; + } + + // Patch loc + if (context & Context.OptionsLoc) { + // skip the front "`" or "}" + (node.loc as ESTree.SourceLocation).start.column += 1; + // skip the tail "`" or "${" + (node.loc as ESTree.SourceLocation).end.column -= tailSize; + } + + return node; +} + +/** + * Parses spread element + * + * @param parser Parser object + * @param context Context masks + */ +function parseSpreadElement( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.SpreadElement { + context = (context | Context.DisallowIn) ^ Context.DisallowIn; + consume(parser, context | Context.AllowRegExp, Token.Ellipsis); + const argument = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + parser.assignable = AssignmentKind.Assignable; + return finishNode(parser, context, start, line, column, { + type: 'SpreadElement', + argument + }); +} + +/** + * Parses arguments + * + * @param parser Parser object + * @param context Context masks + */ +export function parseArguments( + parser: ParserState, + context: Context, + inGroup: 0 | 1 +): (ESTree.SpreadElement | ESTree.Expression)[] { + // Arguments :: + // '(' (AssignmentExpression)*[','] ')' + nextToken(parser, context | Context.AllowRegExp); + + const args: (ESTree.Expression | ESTree.SpreadElement)[] = []; + + if (parser.token === Token.RightParen) { + nextToken(parser, context); + return args; + } + + while (parser.token !== Token.RightParen) { + if (parser.token === Token.Ellipsis) { + args.push(parseSpreadElement(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } else { + args.push(parseExpression(parser, context, 1, 0, inGroup, parser.tokenPos, parser.linePos, parser.colPos)); + } + + if (parser.token !== Token.Comma) break; + + nextToken(parser, context | Context.AllowRegExp); + + if (parser.token === Token.RightParen) break; + } + + consume(parser, context, Token.RightParen); + + return args; +} + +/** + * Parses an identifier expression + * + * @param parser Parser object + * @param context Context masks + */ +export function parseIdentifier(parser: ParserState, context: Context, isPattern: 0 | 1): ESTree.Identifier { + const { tokenValue, tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + + return finishNode( + parser, + context, + tokenPos, + linePos, + colPos, + context & Context.OptionsIdentifierPattern + ? { + type: 'Identifier', + name: tokenValue, + pattern: isPattern === 1 + } + : { + type: 'Identifier', + name: tokenValue + } + ); +} + +/** + * Parses an literal expression such as string literal + * + * @param parser Parser object + * @param context Context masks + */ +export function parseLiteral(parser: ParserState, context: Context): ESTree.Literal { + const { tokenValue, tokenRaw, tokenPos, linePos, colPos } = parser; + if (parser.token === Token.BigIntLiteral) { + return parseBigIntLiteral(parser, context, tokenPos, linePos, colPos); + } + + nextToken(parser, context); + parser.assignable = AssignmentKind.CannotAssign; + return finishNode( + parser, + context, + tokenPos, + linePos, + colPos, + context & Context.OptionsRaw + ? { + type: 'Literal', + value: tokenValue, + raw: tokenRaw + } + : { + type: 'Literal', + value: tokenValue + } + ); +} + +/** + * Parses null and boolean expressions + * + * @param parser Parser object + * @param context Context masks + */ +export function parseNullOrTrueOrFalseLiteral( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.Literal { + const raw = KeywordDescTable[parser.token & Token.Type]; + const value = parser.token === Token.NullKeyword ? null : raw === 'true'; + + nextToken(parser, context); + parser.assignable = AssignmentKind.CannotAssign; + return finishNode( + parser, + context, + start, + line, + column, + context & Context.OptionsRaw + ? { + type: 'Literal', + value, + raw + } + : { + type: 'Literal', + value + } + ); +} + +/** + * Parses this expression + * + * @param parser Parser object + * @param context Context masks + */ +export function parseThisExpression(parser: ParserState, context: Context): ESTree.ThisExpression { + const { tokenPos, linePos, colPos } = parser; + nextToken(parser, context); + parser.assignable = AssignmentKind.CannotAssign; + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ThisExpression' + }); +} + +/** + * Parse function declaration + * + * @param parser Parser object + * @param context Context masks + * @param scope + * @param allowGen + * @param ExportDefault + * @param isAsync + * @param start + */ +export function parseFunctionDeclaration( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + origin: Origin, + allowGen: 0 | 1, + flags: HoistedFunctionFlags, + isAsync: 0 | 1, + start: number, + line: number, + column: number +): ESTree.FunctionDeclaration { + // FunctionDeclaration :: + // function BindingIdentifier ( FormalParameters ) { FunctionBody } + // function ( FormalParameters ) { FunctionBody } + // + // GeneratorDeclaration :: + // function * BindingIdentifier ( FormalParameters ) { FunctionBody } + // function * ( FormalParameters ) { FunctionBody } + // + // AsyncFunctionDeclaration :: + // async function BindingIdentifier ( FormalParameters ) { FunctionBody } + // async function ( FormalParameters ) { FunctionBody } + // + // AsyncGeneratorDeclaration :: + // async function * BindingIdentifier ( FormalParameters ) { FunctionBody } + // async function * ( FormalParameters ) { FunctionBody } + + nextToken(parser, context | Context.AllowRegExp); + + const isGenerator = allowGen ? optionalBit(parser, context, Token.Multiply) : 0; + + let id: ESTree.Identifier | null = null; + let firstRestricted: Token | undefined; + + // Create a new function scope + let functionScope = scope ? createScope() : void 0; + + if (parser.token === Token.LeftParen) { + if ((flags & HoistedClassFlags.Hoisted) < 1) report(parser, Errors.DeclNoName, 'Function'); + } else { + // In ES6, a function behaves as a lexical binding, except in + // a script scope, or the initial scope of eval or another function. + const kind = + origin & Origin.TopLevel && ((context & Context.InGlobal) < 1 || (context & Context.Module) < 1) + ? BindingKind.Variable + : BindingKind.FunctionLexical; + + validateFunctionName(parser, context | ((context & 0b0000000000000000000_1100_00000000) << 11), parser.token); + + if (scope) { + if (kind & BindingKind.Variable) { + addVarName(parser, context, scope as ScopeState, parser.tokenValue, kind); + } else { + addBlockName(parser, context, scope, parser.tokenValue, kind, origin); + } + + functionScope = addChildScope(functionScope, ScopeKind.FunctionRoot); + + if (flags) { + if (flags & HoistedClassFlags.Export) { + declareUnboundVariable(parser, parser.tokenValue); + } + } + } + + firstRestricted = parser.token; + + if (parser.token & Token.IsIdentifier) { + id = parseIdentifier(parser, context, 0); + } else { + report(parser, Errors.UnexpectedToken, KeywordDescTable[parser.token & Token.Type]); + } + } + + context = + ((context | 0b0000001111011000000_0000_00000000) ^ 0b0000001111011000000_0000_00000000) | + Context.AllowNewTarget | + ((isAsync * 2 + isGenerator) << 21) | + (isGenerator ? 0 : Context.AllowEscapedKeyword); + + if (scope) functionScope = addChildScope(functionScope, ScopeKind.FunctionParams); + + const params = parseFormalParametersOrFormalList( + parser, + context | Context.InArgumentList, + functionScope, + 0, + BindingKind.ArgumentList + ); + + const body = parseFunctionBody( + parser, + (context | Context.InGlobal | Context.InSwitch | Context.InIteration) ^ + (Context.InGlobal | Context.InSwitch | Context.InIteration), + scope ? addChildScope(functionScope, ScopeKind.FunctionBody) : functionScope, + Origin.Declaration, + firstRestricted, + scope ? (functionScope as ScopeState).scopeError : void 0 + ); + + return finishNode(parser, context, start, line, column, { + type: 'FunctionDeclaration', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); +} + +/** + * Parse function expression + * + * @param parser Parser object + * @param context Context masks + * @param isAsync + */ +export function parseFunctionExpression( + parser: ParserState, + context: Context, + isAsync: 0 | 1, + inGroup: 0 | 1, + start: number, + line: number, + column: number +): ESTree.FunctionExpression { + // GeneratorExpression: + // function* BindingIdentifier [Yield][opt](FormalParameters[Yield]){ GeneratorBody } + // + // FunctionExpression: + // function BindingIdentifier[opt](FormalParameters){ FunctionBody } + + nextToken(parser, context | Context.AllowRegExp); + + const isGenerator = optionalBit(parser, context, Token.Multiply); + const generatorAndAsyncFlags = (isAsync * 2 + isGenerator) << 21; + + let id: ESTree.Identifier | null = null; + let firstRestricted: Token | undefined; + + // Create a new function scope + let scope = context & Context.OptionsLexical ? createScope() : void 0; + + if ((parser.token & (Token.IsIdentifier | Token.Keyword | Token.FutureReserved)) > 0) { + validateFunctionName(parser, ((context | 0x1ec0000) ^ 0x1ec0000) | generatorAndAsyncFlags, parser.token); + + if (scope) scope = addChildScope(scope, ScopeKind.FunctionRoot); + + firstRestricted = parser.token; + id = parseIdentifier(parser, context, /* isPattern */ 0); + } + + context = + ((context | 0b0000001111011000000_0000_00000000) ^ 0b0000001111011000000_0000_00000000) | + Context.AllowNewTarget | + generatorAndAsyncFlags | + (isGenerator ? 0 : Context.AllowEscapedKeyword); + + if (scope) scope = addChildScope(scope, ScopeKind.FunctionParams); + + const params = parseFormalParametersOrFormalList( + parser, + context | Context.InArgumentList, + scope, + inGroup, + BindingKind.ArgumentList + ); + + const body = parseFunctionBody( + parser, + context & ~(0x8001000 | Context.InGlobal | Context.InSwitch | Context.InIteration | Context.InClass), + scope ? addChildScope(scope, ScopeKind.FunctionBody) : scope, + 0, + firstRestricted, + void 0 + ); + + parser.assignable = AssignmentKind.CannotAssign; + + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + id, + params, + body, + async: isAsync === 1, + generator: isGenerator === 1 + }); +} + +/** + * Parses array literal expression + * + * @param parser Parser object + * @param context Context masks + * @param skipInitializer + */ +function parseArrayLiteral( + parser: ParserState, + context: Context, + skipInitializer: 0 | 1, + inGroup: 0 | 1, + start: number, + line: number, + column: number +): ESTree.ArrayExpression { + /* ArrayLiteral : + * [ Elisionopt ] + * [ ElementList ] + * [ ElementList , Elisionopt ] + * + * ElementList : + * Elisionopt AssignmentExpression + * Elisionopt ... AssignmentExpression + * ElementList , Elisionopt AssignmentExpression + * ElementList , Elisionopt SpreadElement + * + * Elision : + * , + * Elision , + * + * SpreadElement : + * ... AssignmentExpression + * + */ + const expr = parseArrayExpressionOrPattern( + parser, + context, + void 0, + skipInitializer, + inGroup, + 0, + BindingKind.Empty, + Origin.None, + start, + line, + column + ); + + if (context & Context.OptionsWebCompat && parser.destructible & DestructuringKind.SeenProto) { + report(parser, Errors.DuplicateProto); + } + + if (parser.destructible & DestructuringKind.HasToDestruct) { + report(parser, Errors.InvalidShorthandPropInit); + } + + return expr as ESTree.ArrayExpression; +} + +/** + * Parse array expression or pattern + * + * @param parser Parser object + * @param context Context masks + * @param skipInitializer + * @param BindingKind + */ + +export function parseArrayExpressionOrPattern( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + skipInitializer: 0 | 1, + inGroup: 0 | 1, + isPattern: 0 | 1, + kind: BindingKind, + origin: Origin, + start: number, + line: number, + column: number +): ESTree.ArrayExpression | ESTree.ArrayPattern | ESTree.AssignmentExpression { + /* ArrayLiteral : + * [ Elisionopt ] + * [ ElementList ] + * [ ElementList , Elisionopt ] + * + * ElementList : + * Elisionopt AssignmentExpression + * Elisionopt ... AssignmentExpression + * ElementList , Elisionopt AssignmentExpression + * ElementList , Elisionopt SpreadElement + * + * Elision : + * , + * Elision , + * + * SpreadElement : + * ... AssignmentExpression + * + * ArrayAssignmentPattern[Yield] : + * [ Elisionopt AssignmentRestElement[?Yield]opt ] + * [ AssignmentElementList[?Yield] ] + * [ AssignmentElementList[?Yield] , Elisionopt AssignmentRestElement[?Yield]opt ] + * + * AssignmentRestElement[Yield] : + * ... DestructuringAssignmentTarget[?Yield] + * + * AssignmentElementList[Yield] : + * AssignmentElisionElement[?Yield] + * AssignmentElementList[?Yield] , AssignmentElisionElement[?Yield] + * + * AssignmentElisionElement[Yield] : + * Elisionopt AssignmentElement[?Yield] + * + * AssignmentElement[Yield] : + * DestructuringAssignmentTarget[?Yield] Initializer[In,?Yield]opt + * + * DestructuringAssignmentTarget[Yield] : + * LeftHandSideExpression[?Yield] + */ + + nextToken(parser, context | Context.AllowRegExp); + + const elements: (ESTree.Identifier | ESTree.AssignmentExpression | null)[] = []; + let destructible: AssignmentKind | DestructuringKind = 0; + + context = (context | Context.DisallowIn) ^ Context.DisallowIn; + + while (parser.token !== Token.RightBracket) { + if (consumeOpt(parser, context | Context.AllowRegExp, Token.Comma)) { + elements.push(null); + } else { + let left: any; + + const { token, tokenPos, linePos, colPos, tokenValue } = parser; + + if (token & Token.IsIdentifier) { + left = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + + if (parser.token === Token.Assign) { + if (parser.assignable & AssignmentKind.CannotAssign) report(parser, Errors.CantAssignTo); + + nextToken(parser, context | Context.AllowRegExp); + + if (scope) addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + + left = finishNode( + parser, + context, + tokenPos, + linePos, + colPos, + isPattern + ? { + type: 'AssignmentPattern', + left, + right + } + : ({ + type: 'AssignmentExpression', + operator: '=', + left, + right + } as any) + ); + + destructible |= + parser.destructible & DestructuringKind.Yield + ? DestructuringKind.Yield + : 0 | (parser.destructible & DestructuringKind.Await) + ? DestructuringKind.Await + : 0; + } else if (parser.token === Token.Comma || parser.token === Token.RightBracket) { + if (parser.assignable & AssignmentKind.CannotAssign) { + destructible |= DestructuringKind.CannotDestruct; + } else if (scope) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + destructible |= + parser.destructible & DestructuringKind.Yield + ? DestructuringKind.Yield + : 0 | (parser.destructible & DestructuringKind.Await) + ? DestructuringKind.Await + : 0; + } else { + destructible |= + kind & BindingKind.ArgumentList + ? DestructuringKind.Assignable + : (kind & BindingKind.Empty) < 1 + ? DestructuringKind.CannotDestruct + : 0; + + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + + if (parser.token !== Token.Comma && parser.token !== Token.RightBracket) { + if (parser.token !== Token.Assign) destructible |= DestructuringKind.CannotDestruct; + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } else if (parser.token !== Token.Assign) { + destructible |= + parser.assignable & AssignmentKind.CannotAssign + ? DestructuringKind.CannotDestruct + : DestructuringKind.Assignable; + } + } + } else if (token & Token.IsPatternStart) { + left = + parser.token === Token.LeftBrace + ? parseObjectLiteralOrPattern( + parser, + context, + scope, + 0, + inGroup, + isPattern, + kind, + origin, + tokenPos, + linePos, + colPos + ) + : parseArrayExpressionOrPattern( + parser, + context, + scope, + 0, + inGroup, + isPattern, + kind, + origin, + tokenPos, + linePos, + colPos + ); + + destructible |= parser.destructible; + + parser.assignable = + parser.destructible & DestructuringKind.CannotDestruct + ? AssignmentKind.CannotAssign + : AssignmentKind.Assignable; + + if (parser.token === Token.Comma || parser.token === Token.RightBracket) { + if (parser.assignable & AssignmentKind.CannotAssign) { + destructible |= DestructuringKind.CannotDestruct; + } + } else if (parser.destructible & DestructuringKind.HasToDestruct) { + report(parser, Errors.InvalidDestructuringTarget); + } else { + left = parseMemberOrUpdateExpression(parser, context, left, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & AssignmentKind.CannotAssign ? DestructuringKind.CannotDestruct : 0; + + if (parser.token !== Token.Comma && parser.token !== Token.RightBracket) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + } else if (parser.token !== Token.Assign) { + destructible |= + parser.assignable & AssignmentKind.CannotAssign + ? DestructuringKind.CannotDestruct + : DestructuringKind.Assignable; + } + } + } else if (token === Token.Ellipsis) { + left = parseSpreadOrRestElement( + parser, + context, + scope, + Token.RightBracket, + kind, + origin, + 0, + inGroup, + isPattern, + tokenPos, + linePos, + colPos + ); + destructible |= parser.destructible; + if (parser.token !== Token.Comma && parser.token !== Token.RightBracket) + report(parser, Errors.UnexpectedToken, KeywordDescTable[parser.token & Token.Type]); + } else { + left = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + + if (parser.token !== Token.Comma && parser.token !== Token.RightBracket) { + left = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, left); + if ((kind & (BindingKind.Empty | BindingKind.ArgumentList)) < 1 && token === Token.LeftParen) + destructible |= DestructuringKind.CannotDestruct; + } else if (parser.assignable & AssignmentKind.CannotAssign) { + destructible |= DestructuringKind.CannotDestruct; + } else if (token === Token.LeftParen) { + destructible |= + parser.assignable & AssignmentKind.Assignable && kind & (BindingKind.Empty | BindingKind.ArgumentList) + ? DestructuringKind.Assignable + : DestructuringKind.CannotDestruct; + } + } + + elements.push(left); + + if (consumeOpt(parser, context | Context.AllowRegExp, Token.Comma)) { + if (parser.token === Token.RightBracket) break; + } else break; + } + } + + consume(parser, context, Token.RightBracket); + + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ArrayPattern' : 'ArrayExpression', + elements + } as any); + + if (!skipInitializer && parser.token & Token.IsAssignOp) { + return parseArrayOrObjectAssignmentPattern( + parser, + context, + destructible, + inGroup, + isPattern, + start, + line, + column, + node + ); + } + + parser.destructible = destructible; + + return node; +} + +/** + * Parses array or object assignment pattern + * + * @param parser Parser object + * @param context Context masks + * @param destructible + * @param inGroup + * @param start Start index + * @param line Start line + * @param column Start of column + * @param node ESTree AST node + */ + +function parseArrayOrObjectAssignmentPattern( + parser: ParserState, + context: Context, + destructible: AssignmentKind | DestructuringKind, + inGroup: 0 | 1, + isPattern: 0 | 1, + start: number, + line: number, + column: number, + node: ESTree.ArrayExpression | ESTree.ObjectExpression | ESTree.ObjectPattern +): ESTree.AssignmentExpression { + // 12.15.5 Destructuring Assignment + // + // AssignmentElement[Yield, Await]: + // DestructuringAssignmentTarget[?Yield, ?Await] + // DestructuringAssignmentTarget[?Yield, ?Await] Initializer[+In, ?Yield, ?Await] + // + + if (parser.token !== Token.Assign) report(parser, Errors.CantAssignTo); + + nextToken(parser, context | Context.AllowRegExp); + + if (destructible & DestructuringKind.CannotDestruct) report(parser, Errors.CantAssignTo); + + if (!isPattern) reinterpretToPattern(parser, node); + + const { tokenPos, linePos, colPos } = parser; + + const right = parseExpression(parser, context, 1, 1, inGroup, tokenPos, linePos, colPos); + + parser.destructible = + ((destructible | DestructuringKind.SeenProto | DestructuringKind.HasToDestruct) ^ + (DestructuringKind.HasToDestruct | DestructuringKind.SeenProto)) | + (parser.destructible & DestructuringKind.Await ? DestructuringKind.Await : 0) | + (parser.destructible & DestructuringKind.Yield ? DestructuringKind.Yield : 0); + + return finishNode( + parser, + context, + start, + line, + column, + isPattern + ? { + type: 'AssignmentPattern', + left: node, + right + } + : ({ + type: 'AssignmentExpression', + left: node, + operator: '=', + right + } as any) + ); +} + +/** + * Parses rest or spread element + * + * @param parser Parser object + * @param context Context masks + * @param closingToken + * @param type Binding kind + * @param origin Binding origin + * @param isAsync + * @param isGroup + * @param start Start index + * @param line Start line + * @param column Start of column + */ +function parseSpreadOrRestElement( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + closingToken: Token, + kind: BindingKind, + origin: Origin, + isAsync: 0 | 1, + inGroup: 0 | 1, + isPattern: 0 | 1, + start: number, + line: number, + column: number +): ESTree.SpreadElement | ESTree.RestElement { + nextToken(parser, context | Context.AllowRegExp); // skip '...' + + let argument: ESTree.Expression | null = null; + let destructible: AssignmentKind | DestructuringKind = DestructuringKind.None; + + let { token, tokenValue, tokenPos, linePos, colPos } = parser; + + if (token & (Token.Keyword | Token.IsIdentifier)) { + parser.assignable = AssignmentKind.Assignable; + + argument = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + + token = parser.token; + + argument = parseMemberOrUpdateExpression( + parser, + context, + argument as ESTree.Expression, + inGroup, + 0, + tokenPos, + linePos, + colPos + ); + + if (parser.token !== Token.Comma && parser.token !== closingToken) { + if (parser.assignable & AssignmentKind.CannotAssign && parser.token === Token.Assign) + report(parser, Errors.InvalidDestructuringTarget); + + destructible |= DestructuringKind.CannotDestruct; + + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + + if (parser.assignable & AssignmentKind.CannotAssign) { + destructible |= DestructuringKind.CannotDestruct; + } else if (token === closingToken || token === Token.Comma) { + if (scope) addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } else { + destructible |= DestructuringKind.Assignable; + } + + destructible |= parser.destructible & DestructuringKind.Await ? DestructuringKind.Await : 0; + } else if (token === closingToken) { + report(parser, Errors.RestMissingArg); + } else if (token & Token.IsPatternStart) { + argument = + parser.token === Token.LeftBrace + ? parseObjectLiteralOrPattern( + parser, + context, + scope, + 1, + inGroup, + isPattern, + kind, + origin, + tokenPos, + linePos, + colPos + ) + : parseArrayExpressionOrPattern( + parser, + context, + scope, + 1, + inGroup, + isPattern, + kind, + origin, + tokenPos, + linePos, + colPos + ); + + token = parser.token; + + if (token !== Token.Assign && token !== closingToken && token !== Token.Comma) { + if (parser.destructible & DestructuringKind.HasToDestruct) report(parser, Errors.InvalidDestructuringTarget); + + argument = parseMemberOrUpdateExpression(parser, context, argument, inGroup, 0, tokenPos, linePos, colPos); + + destructible |= parser.assignable & AssignmentKind.CannotAssign ? DestructuringKind.CannotDestruct : 0; + + if ((parser.token & Token.IsAssignOp) === Token.IsAssignOp) { + if (parser.token !== Token.Assign) destructible |= DestructuringKind.CannotDestruct; + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } else { + if ((parser.token & Token.IsBinaryOp) === Token.IsBinaryOp) { + argument = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, argument as any); + } + if (consumeOpt(parser, context | Context.AllowRegExp, Token.QuestionMark)) { + argument = parseConditionalExpression(parser, context, argument as any, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & AssignmentKind.CannotAssign + ? DestructuringKind.CannotDestruct + : DestructuringKind.Assignable; + } + } else { + destructible |= + closingToken === Token.RightBrace && token !== Token.Assign + ? DestructuringKind.CannotDestruct + : parser.destructible; + } + } else { + destructible |= DestructuringKind.Assignable; + + argument = parseLeftHandSideExpression( + parser, + context, + 1, + inGroup, + 1, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + + const { token, tokenPos, linePos, colPos } = parser; + + if (token === Token.Assign && token !== closingToken && token !== Token.Comma) { + if (parser.assignable & AssignmentKind.CannotAssign) report(parser, Errors.CantAssignTo); + + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + + destructible |= DestructuringKind.CannotDestruct; + } else { + if (token === Token.Comma) { + destructible |= DestructuringKind.CannotDestruct; + } else if (token !== closingToken) { + argument = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, argument); + } + + destructible |= + parser.assignable & AssignmentKind.Assignable ? DestructuringKind.Assignable : DestructuringKind.CannotDestruct; + } + + parser.destructible = destructible; + + if (parser.token !== closingToken && parser.token !== Token.Comma) report(parser, Errors.UnclosedSpreadElement); + + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument as ESTree.SpreadArgument + } as any); + } + + if (parser.token !== closingToken) { + if (kind & BindingKind.ArgumentList) + destructible |= isAsync ? DestructuringKind.CannotDestruct : DestructuringKind.Assignable; + + if (consumeOpt(parser, context | Context.AllowRegExp, Token.Assign)) { + if (destructible & DestructuringKind.CannotDestruct) report(parser, Errors.CantAssignTo); + + reinterpretToPattern(parser, argument); + + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + + argument = finishNode( + parser, + context, + tokenPos, + linePos, + colPos, + isPattern + ? { + type: 'AssignmentPattern', + left: argument as ESTree.SpreadArgument, + right + } + : ({ + type: 'AssignmentExpression', + left: argument as ESTree.SpreadArgument, + operator: '=', + right + } as any) + ); + + destructible = DestructuringKind.CannotDestruct; + } else { + // Note the difference between '|=' and '=' above + destructible |= DestructuringKind.CannotDestruct; + } + } + + parser.destructible = destructible; + + return finishNode(parser, context, start, line, column, { + type: isPattern ? 'RestElement' : 'SpreadElement', + argument: argument as ESTree.SpreadArgument + } as any); +} + +/** + * Parses method definition + * + * @param parser Parser object + * @param context Context masks + * @param kind + * @param inGroup + * @param start Start index + * @param line Start line + * @param column Start of column + */ +export function parseMethodDefinition( + parser: ParserState, + context: Context, + kind: PropertyKind, + inGroup: 0 | 1, + start: number, + line: number, + column: number +): ESTree.FunctionExpression { + const modifierFlags = + (kind & PropertyKind.Constructor) < 1 ? 0b0000001111010000000_0000_00000000 : 0b0000000111000000000_0000_00000000; + + context = + ((context | modifierFlags) ^ modifierFlags) | + ((kind & 0b0000000000000000000_0000_01011000) << 18) | + 0b0000110000001000000_0000_00000000; + + let scope = context & Context.OptionsLexical ? addChildScope(createScope(), ScopeKind.FunctionParams) : void 0; + + const params = parseMethodFormals( + parser, + context | Context.InArgumentList, + scope, + kind, + BindingKind.ArgumentList, + inGroup + ); + + if (scope) scope = addChildScope(scope, ScopeKind.FunctionBody); + + const body = parseFunctionBody(parser, context & ~(0x8001000 | Context.InGlobal), scope, Origin.None, void 0, void 0); + + return finishNode(parser, context, start, line, column, { + type: 'FunctionExpression', + params, + body, + async: (kind & PropertyKind.Async) > 0, + generator: (kind & PropertyKind.Generator) > 0, + id: null + }); +} + +/** + * Parse object literal or object pattern + * + * @param parser Parser object + * @param context Context masks + * @param skipInitializer + * @param inGroup + * @param start Start index + * @param line Start line + * @param column Start of column + + */ +function parseObjectLiteral( + parser: ParserState, + context: Context, + skipInitializer: 0 | 1, + inGroup: 0 | 1, + start: number, + line: number, + column: number +): ESTree.ObjectExpression { + /** + * ObjectLiteral + * {} + * {PropertyDefinitionList } + * + * {PropertyDefinitionList } + * + * PropertyDefinitionList: + * PropertyDefinition + * PropertyDefinitionList, PropertyDefinition + * + * PropertyDefinition: + * { IdentifierReference } + * { CoverInitializedName } + * { PropertyName:AssignmentExpression } + * + * MethodDefinition: + * ...AssignmentExpression + * + * PropertyName: + * LiteralPropertyName + * ComputedPropertyName + * LiteralPropertyName: + * IdentifierName + * StringLiteral + * NumericLiteral + * + * ComputedPropertyName: AssignmentExpression + * + * CoverInitializedName: + * IdentifierReference , Initializer + * + * Initializer: + * =AssignmentExpression + */ + const expr = parseObjectLiteralOrPattern( + parser, + context, + void 0, + skipInitializer, + inGroup, + 0, + BindingKind.Empty, + Origin.None, + start, + line, + column + ); + + if (context & Context.OptionsWebCompat && parser.destructible & DestructuringKind.SeenProto) { + report(parser, Errors.DuplicateProto); + } + + if (parser.destructible & DestructuringKind.HasToDestruct) { + report(parser, Errors.InvalidShorthandPropInit); + } + + return expr as ESTree.ObjectExpression; +} + +/** + * Parse object literal or object pattern + * + * @param parser Parser object + * @param context Context masks + * @param skipInitializer Context masks + * @param inGroup + * @param kind Binding kind + * @param origin Binding origin + * @param start + * @param line + * @param column + */ +export function parseObjectLiteralOrPattern( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + skipInitializer: 0 | 1, + inGroup: 0 | 1, + isPattern: 0 | 1, + kind: BindingKind, + origin: Origin, + start: number, + line: number, + column: number +): ESTree.ObjectExpression | ESTree.ObjectPattern | ESTree.AssignmentExpression { + /** + * + * ObjectLiteral : + * { } + * { PropertyDefinitionList } + * + * PropertyDefinitionList : + * PropertyDefinition + * PropertyDefinitionList, PropertyDefinition + * + * PropertyDefinition : + * IdentifierName + * PropertyName : AssignmentExpression + * + * PropertyName : + * IdentifierName + * StringLiteral + * NumericLiteral + * + * + * ObjectBindingPattern : + * {} + * { BindingPropertyList } + * { BindingPropertyList , } + * + * BindingPropertyList : + * BindingProperty + * BindingPropertyList , BindingProperty + * + * BindingProperty : + * SingleNameBinding + * PropertyName : BindingElement + * + * SingleNameBinding : + * BindingIdentifier Initializeropt + * + * PropertyDefinition : + * IdentifierName + * CoverInitializedName + * PropertyName : AssignmentExpression + * MethodDefinition + */ + + nextToken(parser, context); + + const properties: (ESTree.Property | ESTree.SpreadElement | ESTree.RestElement)[] = []; + let destructible: DestructuringKind | AssignmentKind = 0; + let prototypeCount = 0; + + context = (context | Context.DisallowIn) ^ Context.DisallowIn; + + while (parser.token !== Token.RightBrace) { + const { token, tokenValue, linePos, colPos, tokenPos } = parser; + + if (token === Token.Ellipsis) { + properties.push( + parseSpreadOrRestElement( + parser, + context, + scope, + Token.RightBrace, + kind, + origin, + 0, + inGroup, + isPattern, + tokenPos, + linePos, + colPos + ) + ); + } else { + let state = PropertyKind.None; + let key: ESTree.Expression | null = null; + let value; + const t = parser.token; + if (parser.token & (Token.IsIdentifier | Token.Keyword) || parser.token === Token.EscapedReserved) { + key = parseIdentifier(parser, context, 0); + + if (parser.token === Token.Comma || parser.token === Token.RightBrace || parser.token === Token.Assign) { + state |= PropertyKind.Shorthand; + + if (context & Context.Strict && (token & Token.IsEvalOrArguments) === Token.IsEvalOrArguments) { + destructible |= DestructuringKind.CannotDestruct; + } else { + validateBindingIdentifier(parser, context, kind, token, 0); + } + + if (scope) addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + + if (consumeOpt(parser, context | Context.AllowRegExp, Token.Assign)) { + destructible |= DestructuringKind.HasToDestruct; + + const right = parseExpression( + parser, + context, + 1, + 1, + inGroup, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + + destructible |= + parser.destructible & DestructuringKind.Yield + ? DestructuringKind.Yield + : 0 | (parser.destructible & DestructuringKind.Await) + ? DestructuringKind.Await + : 0; + + value = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: context & Context.OptionsUniqueKeyInPattern ? Object.assign({}, key) : key, + right + }); + } else { + destructible |= + (token === Token.AwaitKeyword ? DestructuringKind.Await : 0) | + (token === Token.EscapedReserved ? DestructuringKind.CannotDestruct : 0); + value = context & Context.OptionsUniqueKeyInPattern ? Object.assign({}, key) : key; + } + } else if (consumeOpt(parser, context | Context.AllowRegExp, Token.Colon)) { + const { tokenPos, linePos, colPos } = parser; + + if (tokenValue === '__proto__') prototypeCount++; + + if (parser.token & Token.IsIdentifier) { + const tokenAfterColon = parser.token; + const valueAfterColon = parser.tokenValue; + // A reserved word is an IdentifierName that cannot be used as an Identifier + destructible |= t === Token.EscapedReserved ? DestructuringKind.CannotDestruct : 0; + + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + + const { token } = parser; + + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + + if (parser.token === Token.Comma || parser.token === Token.RightBrace) { + if (token === Token.Assign || token === Token.RightBrace || token === Token.Comma) { + destructible |= parser.destructible & DestructuringKind.Await ? DestructuringKind.Await : 0; + if (parser.assignable & AssignmentKind.CannotAssign) { + destructible |= DestructuringKind.CannotDestruct; + } else if (scope && (tokenAfterColon & Token.IsIdentifier) === Token.IsIdentifier) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } else { + destructible |= + parser.assignable & AssignmentKind.Assignable + ? DestructuringKind.Assignable + : DestructuringKind.CannotDestruct; + } + } else if ((parser.token & Token.IsAssignOp) === Token.IsAssignOp) { + if (parser.assignable & AssignmentKind.CannotAssign) { + destructible |= DestructuringKind.CannotDestruct; + } else if (token !== Token.Assign) { + destructible |= DestructuringKind.Assignable; + } else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } else { + destructible |= DestructuringKind.CannotDestruct; + if ((parser.token & Token.IsBinaryOp) === Token.IsBinaryOp) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | Context.AllowRegExp, Token.QuestionMark)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + } + } else if ((parser.token & Token.IsPatternStart) === Token.IsPatternStart) { + value = + parser.token === Token.LeftBracket + ? parseArrayExpressionOrPattern( + parser, + context, + scope, + 0, + inGroup, + isPattern, + kind, + origin, + tokenPos, + linePos, + colPos + ) + : parseObjectLiteralOrPattern( + parser, + context, + scope, + 0, + inGroup, + isPattern, + kind, + origin, + tokenPos, + linePos, + colPos + ); + + destructible = parser.destructible; + + parser.assignable = + destructible & DestructuringKind.CannotDestruct ? AssignmentKind.CannotAssign : AssignmentKind.Assignable; + + if (parser.token === Token.Comma || parser.token === Token.RightBrace) { + if (parser.assignable & AssignmentKind.CannotAssign) destructible |= DestructuringKind.CannotDestruct; + } else if (parser.destructible & DestructuringKind.HasToDestruct) { + report(parser, Errors.InvalidDestructuringTarget); + } else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + + destructible = parser.assignable & AssignmentKind.CannotAssign ? DestructuringKind.CannotDestruct : 0; + + if ((parser.token & Token.IsAssignOp) === Token.IsAssignOp) { + value = parseAssignmentExpressionOrPattern( + parser, + context, + inGroup, + isPattern, + tokenPos, + linePos, + colPos, + value + ); + } else { + if ((parser.token & Token.IsBinaryOp) === Token.IsBinaryOp) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | Context.AllowRegExp, Token.QuestionMark)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & AssignmentKind.CannotAssign + ? DestructuringKind.CannotDestruct + : DestructuringKind.Assignable; + } + } + } else { + value = parseLeftHandSideExpression(parser, context, 1, inGroup, 1, tokenPos, linePos, colPos); + + destructible |= + parser.assignable & AssignmentKind.Assignable + ? DestructuringKind.Assignable + : DestructuringKind.CannotDestruct; + + if (parser.token === Token.Comma || parser.token === Token.RightBrace) { + if (parser.assignable & AssignmentKind.CannotAssign) destructible |= DestructuringKind.CannotDestruct; + } else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + + destructible = parser.assignable & AssignmentKind.CannotAssign ? DestructuringKind.CannotDestruct : 0; + + if (parser.token !== Token.Comma && token !== Token.RightBrace) { + if (parser.token !== Token.Assign) destructible |= DestructuringKind.CannotDestruct; + value = parseAssignmentExpression( + parser, + context, + inGroup, + isPattern, + tokenPos, + linePos, + colPos, + value + ); + } + } + } + } else if (parser.token === Token.LeftBracket) { + destructible |= DestructuringKind.CannotDestruct; + if (token === Token.AsyncKeyword) state |= PropertyKind.Async; + + state |= + (token === Token.GetKeyword + ? PropertyKind.Getter + : token === Token.SetKeyword + ? PropertyKind.Setter + : PropertyKind.Method) | PropertyKind.Computed; + + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + + value = parseMethodDefinition( + parser, + context, + state, + inGroup, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + } else if (parser.token & (Token.IsIdentifier | Token.Keyword)) { + destructible |= DestructuringKind.CannotDestruct; + if (token === Token.EscapedReserved) report(parser, Errors.InvalidEscapedKeyword); + if (token === Token.AsyncKeyword) { + if (parser.flags & Flags.NewLine) report(parser, Errors.AsyncRestrictedProd); + state |= PropertyKind.Async; + } + key = parseIdentifier(parser, context, 0); + + state |= + token === Token.GetKeyword + ? PropertyKind.Getter + : token === Token.SetKeyword + ? PropertyKind.Setter + : PropertyKind.Method; + + value = parseMethodDefinition( + parser, + context, + state, + inGroup, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + } else if (parser.token === Token.LeftParen) { + destructible |= DestructuringKind.CannotDestruct; + state |= PropertyKind.Method; + value = parseMethodDefinition( + parser, + context, + state, + inGroup, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + } else if (parser.token === Token.Multiply) { + destructible |= DestructuringKind.CannotDestruct; + + if (token === Token.GetKeyword || token === Token.SetKeyword) { + report(parser, Errors.InvalidGeneratorGetter); + } else if (token === Token.AnyIdentifier) { + report(parser, Errors.InvalidEscapedKeyword); + } + + nextToken(parser, context); + + state |= + PropertyKind.Generator | PropertyKind.Method | (token === Token.AsyncKeyword ? PropertyKind.Async : 0); + + if (parser.token & Token.IsIdentifier) { + key = parseIdentifier(parser, context, 0); + } else if ((parser.token & Token.IsStringOrNumber) === Token.IsStringOrNumber) { + key = parseLiteral(parser, context); + } else if (parser.token === Token.LeftBracket) { + state |= PropertyKind.Computed; + key = parseComputedPropertyName(parser, context, inGroup); + destructible |= parser.assignable; + } else { + report(parser, Errors.UnexpectedToken, KeywordDescTable[parser.token & Token.Type]); + } + value = parseMethodDefinition( + parser, + context, + state, + inGroup, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + } else if ((parser.token & Token.IsStringOrNumber) === Token.IsStringOrNumber) { + if (token === Token.AsyncKeyword) state |= PropertyKind.Async; + + state |= + token === Token.GetKeyword + ? PropertyKind.Getter + : token === Token.SetKeyword + ? PropertyKind.Setter + : PropertyKind.Method; + + destructible |= DestructuringKind.CannotDestruct; + + key = parseLiteral(parser, context); + + value = parseMethodDefinition( + parser, + context, + state, + inGroup, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + } else { + report(parser, Errors.UnexpectedCharAfterObjLit); + } + } else if ((parser.token & Token.IsStringOrNumber) === Token.IsStringOrNumber) { + key = parseLiteral(parser, context); + + if (parser.token === Token.Colon) { + consume(parser, context | Context.AllowRegExp, Token.Colon); + + const { tokenPos, linePos, colPos } = parser; + + if (tokenValue === '__proto__') prototypeCount++; + + if (parser.token & Token.IsIdentifier) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + + const { token, tokenValue: valueAfterColon } = parser; + + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + + if (parser.token === Token.Comma || parser.token === Token.RightBrace) { + if (token === Token.Assign || token === Token.RightBrace || token === Token.Comma) { + if (parser.assignable & AssignmentKind.CannotAssign) { + destructible |= DestructuringKind.CannotDestruct; + } else if (scope) { + addVarOrBlock(parser, context, scope, valueAfterColon, kind, origin); + } + } else { + destructible |= + parser.assignable & AssignmentKind.Assignable + ? DestructuringKind.Assignable + : DestructuringKind.CannotDestruct; + } + } else if (parser.token === Token.Assign) { + if (parser.assignable & AssignmentKind.CannotAssign) destructible |= DestructuringKind.CannotDestruct; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } else { + destructible |= DestructuringKind.CannotDestruct; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } else if ((parser.token & Token.IsPatternStart) === Token.IsPatternStart) { + value = + parser.token === Token.LeftBracket + ? parseArrayExpressionOrPattern( + parser, + context, + scope, + 0, + inGroup, + isPattern, + kind, + origin, + tokenPos, + linePos, + colPos + ) + : parseObjectLiteralOrPattern( + parser, + context, + scope, + 0, + inGroup, + isPattern, + kind, + origin, + tokenPos, + linePos, + colPos + ); + + destructible = parser.destructible; + + parser.assignable = + destructible & DestructuringKind.CannotDestruct ? AssignmentKind.CannotAssign : AssignmentKind.Assignable; + + if (parser.token === Token.Comma || parser.token === Token.RightBrace) { + if (parser.assignable & AssignmentKind.CannotAssign) { + destructible |= DestructuringKind.CannotDestruct; + } + } else if ((parser.destructible & DestructuringKind.HasToDestruct) !== DestructuringKind.HasToDestruct) { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + destructible = parser.assignable & AssignmentKind.CannotAssign ? DestructuringKind.CannotDestruct : 0; + + if ((parser.token & Token.IsAssignOp) === Token.IsAssignOp) { + value = parseAssignmentExpressionOrPattern( + parser, + context, + inGroup, + isPattern, + tokenPos, + linePos, + colPos, + value + ); + } else { + if ((parser.token & Token.IsBinaryOp) === Token.IsBinaryOp) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | Context.AllowRegExp, Token.QuestionMark)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & AssignmentKind.CannotAssign + ? DestructuringKind.CannotDestruct + : DestructuringKind.Assignable; + } + } + } else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + + destructible |= + parser.assignable & AssignmentKind.Assignable + ? DestructuringKind.Assignable + : DestructuringKind.CannotDestruct; + + if (parser.token === Token.Comma || parser.token === Token.RightBrace) { + if (parser.assignable & AssignmentKind.CannotAssign) { + destructible |= DestructuringKind.CannotDestruct; + } + } else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + + destructible = parser.assignable & AssignmentKind.Assignable ? 0 : DestructuringKind.CannotDestruct; + + if (parser.token !== Token.Comma && parser.token !== Token.RightBrace) { + if (parser.token !== Token.Assign) destructible |= DestructuringKind.CannotDestruct; + value = parseAssignmentExpression( + parser, + context, + inGroup, + isPattern, + tokenPos, + linePos, + colPos, + value + ); + } + } + } + } else if (parser.token === Token.LeftParen) { + state |= PropertyKind.Method; + value = parseMethodDefinition( + parser, + context, + state, + inGroup, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + destructible = parser.assignable | DestructuringKind.CannotDestruct; + } else { + report(parser, Errors.InvalidObjLitKey); + } + } else if (parser.token === Token.LeftBracket) { + key = parseComputedPropertyName(parser, context, inGroup); + + destructible |= parser.destructible & DestructuringKind.Yield ? DestructuringKind.Yield : 0; + + state |= PropertyKind.Computed; + + if (parser.token === Token.Colon) { + nextToken(parser, context | Context.AllowRegExp); // skip ':' + + const { tokenPos, linePos, colPos, tokenValue, token: tokenAfterColon } = parser; + + if (parser.token & Token.IsIdentifier) { + value = parsePrimaryExpression(parser, context, kind, 0, 1, 0, inGroup, 1, tokenPos, linePos, colPos); + + const { token } = parser; + + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + + if ((parser.token & Token.IsAssignOp) === Token.IsAssignOp) { + destructible |= + parser.assignable & AssignmentKind.CannotAssign + ? DestructuringKind.CannotDestruct + : token === Token.Assign + ? 0 + : DestructuringKind.Assignable; + value = parseAssignmentExpressionOrPattern( + parser, + context, + inGroup, + isPattern, + tokenPos, + linePos, + colPos, + value + ); + } else if (parser.token === Token.Comma || parser.token === Token.RightBrace) { + if (token === Token.Assign || token === Token.RightBrace || token === Token.Comma) { + if (parser.assignable & AssignmentKind.CannotAssign) { + destructible |= DestructuringKind.CannotDestruct; + } else if (scope && (tokenAfterColon & Token.IsIdentifier) === Token.IsIdentifier) { + addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + } + } else { + destructible |= + parser.assignable & AssignmentKind.Assignable + ? DestructuringKind.Assignable + : DestructuringKind.CannotDestruct; + } + } else { + destructible |= DestructuringKind.CannotDestruct; + value = parseAssignmentExpression(parser, context, inGroup, isPattern, tokenPos, linePos, colPos, value); + } + } else if ((parser.token & Token.IsPatternStart) === Token.IsPatternStart) { + value = + parser.token === Token.LeftBracket + ? parseArrayExpressionOrPattern( + parser, + context, + scope, + 0, + inGroup, + isPattern, + kind, + origin, + tokenPos, + linePos, + colPos + ) + : parseObjectLiteralOrPattern( + parser, + context, + scope, + 0, + inGroup, + isPattern, + kind, + origin, + tokenPos, + linePos, + colPos + ); + + destructible = parser.destructible; + + parser.assignable = + destructible & DestructuringKind.CannotDestruct ? AssignmentKind.CannotAssign : AssignmentKind.Assignable; + + if (parser.token === Token.Comma || parser.token === Token.RightBrace) { + if (parser.assignable & AssignmentKind.CannotAssign) destructible |= DestructuringKind.CannotDestruct; + } else if (destructible & DestructuringKind.HasToDestruct) { + report(parser, Errors.InvalidShorthandPropInit); + } else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + + destructible = + parser.assignable & AssignmentKind.CannotAssign ? destructible | DestructuringKind.CannotDestruct : 0; + + if ((parser.token & Token.IsAssignOp) === Token.IsAssignOp) { + if (parser.token !== Token.Assign) destructible |= DestructuringKind.CannotDestruct; + value = parseAssignmentExpressionOrPattern( + parser, + context, + inGroup, + isPattern, + tokenPos, + linePos, + colPos, + value + ); + } else { + if ((parser.token & Token.IsBinaryOp) === Token.IsBinaryOp) { + value = parseBinaryExpression(parser, context, 1, tokenPos, linePos, colPos, 4, token, value); + } + if (consumeOpt(parser, context | Context.AllowRegExp, Token.QuestionMark)) { + value = parseConditionalExpression(parser, context, value, tokenPos, linePos, colPos); + } + destructible |= + parser.assignable & AssignmentKind.CannotAssign + ? DestructuringKind.CannotDestruct + : DestructuringKind.Assignable; + } + } + } else { + value = parseLeftHandSideExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + + destructible |= + parser.assignable & AssignmentKind.Assignable + ? DestructuringKind.Assignable + : DestructuringKind.CannotDestruct; + + if (parser.token === Token.Comma || parser.token === Token.RightBrace) { + if (parser.assignable & AssignmentKind.CannotAssign) destructible |= DestructuringKind.CannotDestruct; + } else { + value = parseMemberOrUpdateExpression(parser, context, value, inGroup, 0, tokenPos, linePos, colPos); + + destructible = parser.assignable & AssignmentKind.Assignable ? 0 : DestructuringKind.CannotDestruct; + + if (parser.token !== Token.Comma && parser.token !== Token.RightBrace) { + if (parser.token !== Token.Assign) destructible |= DestructuringKind.CannotDestruct; + value = parseAssignmentExpression( + parser, + context, + inGroup, + isPattern, + tokenPos, + linePos, + colPos, + value + ); + } + } + } + } else if (parser.token === Token.LeftParen) { + state |= PropertyKind.Method; + + value = parseMethodDefinition(parser, context, state, inGroup, parser.tokenPos, linePos, colPos); + + destructible = DestructuringKind.CannotDestruct; + } else { + report(parser, Errors.InvalidComputedPropName); + } + } else if (token === Token.Multiply) { + consume(parser, context | Context.AllowRegExp, Token.Multiply); + + state |= PropertyKind.Generator; + + if (parser.token & Token.IsIdentifier) { + const { token, line, index } = parser; + + key = parseIdentifier(parser, context, 0); + + state |= PropertyKind.Method; + + if (parser.token === Token.LeftParen) { + destructible |= DestructuringKind.CannotDestruct; + value = parseMethodDefinition( + parser, + context, + state, + inGroup, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + } else { + reportMessageAt( + index, + line, + index, + token === Token.AsyncKeyword + ? Errors.InvalidAsyncGetter + : token === Token.GetKeyword || parser.token === Token.SetKeyword + ? Errors.InvalidGetSetGenerator + : Errors.InvalidGenMethodShorthand, + KeywordDescTable[token & Token.Type] + ); + } + } else if ((parser.token & Token.IsStringOrNumber) === Token.IsStringOrNumber) { + destructible |= DestructuringKind.CannotDestruct; + key = parseLiteral(parser, context); + state |= PropertyKind.Method; + value = parseMethodDefinition(parser, context, state, inGroup, tokenPos, linePos, colPos); + } else if (parser.token === Token.LeftBracket) { + destructible |= DestructuringKind.CannotDestruct; + state |= PropertyKind.Computed | PropertyKind.Method; + key = parseComputedPropertyName(parser, context, inGroup); + value = parseMethodDefinition( + parser, + context, + state, + inGroup, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + } else { + report(parser, Errors.InvalidObjLitKeyStar); + } + } else { + report(parser, Errors.UnexpectedToken, KeywordDescTable[token & Token.Type]); + } + + destructible |= parser.destructible & DestructuringKind.Await ? DestructuringKind.Await : 0; + + parser.destructible = destructible; + + properties.push( + finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'Property', + key: key as ESTree.Expression, + value, + kind: !(state & PropertyKind.GetSet) ? 'init' : state & PropertyKind.Setter ? 'set' : 'get', + computed: (state & PropertyKind.Computed) > 0, + method: (state & PropertyKind.Method) > 0, + shorthand: (state & PropertyKind.Shorthand) > 0 + }) + ); + } + + destructible |= parser.destructible; + if (parser.token !== Token.Comma) break; + nextToken(parser, context); + } + + consume(parser, context, Token.RightBrace); + + if (prototypeCount > 1) destructible |= DestructuringKind.SeenProto; + + const node = finishNode(parser, context, start, line, column, { + type: isPattern ? 'ObjectPattern' : 'ObjectExpression', + properties + }); + + if (!skipInitializer && parser.token & Token.IsAssignOp) { + return parseArrayOrObjectAssignmentPattern( + parser, + context, + destructible, + inGroup, + isPattern, + start, + line, + column, + node + ); + } + + parser.destructible = destructible; + + return node; +} + +/** + * Parses method formals + * + * @param parser parser object + * @param context context masks + * @param kind + * @param type Binding kind + * @param inGroup + */ +export function parseMethodFormals( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + kind: PropertyKind, + type: BindingKind, + inGroup: 0 | 1 +): ESTree.Parameter[] { + // FormalParameter[Yield,GeneratorParameter] : + // BindingElement[?Yield, ?GeneratorParameter] + + consume(parser, context, Token.LeftParen); + + const params: (ESTree.AssignmentPattern | ESTree.Parameter)[] = []; + + parser.flags = (parser.flags | Flags.SimpleParameterList) ^ Flags.SimpleParameterList; + + if (parser.token === Token.RightParen) { + if (kind & PropertyKind.Setter) { + report(parser, Errors.AccessorWrongArgs, 'Setter', 'one', ''); + } + nextToken(parser, context); + return params; + } + + if (kind & PropertyKind.Getter) { + report(parser, Errors.AccessorWrongArgs, 'Getter', 'no', 's'); + } + if (kind & PropertyKind.Setter && parser.token === Token.Ellipsis) { + report(parser, Errors.BadSetterRestParameter); + } + + context = (context | Context.DisallowIn) ^ Context.DisallowIn; + + let setterArgs = 0; + let isSimpleParameterList: 0 | 1 = 0; + + while (parser.token !== Token.Comma) { + let left = null; + const { tokenPos, linePos, colPos } = parser; + + if (parser.token & Token.IsIdentifier) { + if ((context & Context.Strict) < 1) { + if ((parser.token & Token.FutureReserved) === Token.FutureReserved) { + parser.flags |= Flags.HasStrictReserved; + } + + if ((parser.token & Token.IsEvalOrArguments) === Token.IsEvalOrArguments) { + parser.flags |= Flags.StrictEvalArguments; + } + } + + left = parseAndClassifyIdentifier( + parser, + context, + scope, + kind | BindingKind.ArgumentList, + Origin.None, + tokenPos, + linePos, + colPos + ); + } else { + if (parser.token === Token.LeftBrace) { + left = parseObjectLiteralOrPattern( + parser, + context, + scope, + 1, + inGroup, + 1, + type, + Origin.None, + tokenPos, + linePos, + colPos + ); + } else if (parser.token === Token.LeftBracket) { + left = parseArrayExpressionOrPattern( + parser, + context, + scope, + 1, + inGroup, + 1, + type, + Origin.None, + tokenPos, + linePos, + colPos + ); + } else if (parser.token === Token.Ellipsis) { + left = parseSpreadOrRestElement( + parser, + context, + scope, + Token.RightParen, + type, + Origin.None, + 0, + inGroup, + 1, + tokenPos, + linePos, + colPos + ); + } + + isSimpleParameterList = 1; + + if (parser.destructible & (DestructuringKind.Assignable | DestructuringKind.CannotDestruct)) + report(parser, Errors.InvalidBindingDestruct); + } + + if (parser.token === Token.Assign) { + nextToken(parser, context | Context.AllowRegExp); + + isSimpleParameterList = 1; + + const right = parseExpression(parser, context, 1, 1, 0, parser.tokenPos, parser.linePos, parser.colPos); + + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left: left as ESTree.BindingPattern | ESTree.Identifier, + right + }); + } + + setterArgs++; + + params.push(left as any); + + if (!consumeOpt(parser, context, Token.Comma)) break; + if (parser.token === Token.RightParen) { + // allow the trailing comma + break; + } + } + + if (kind & PropertyKind.Setter && setterArgs !== 1) { + report(parser, Errors.AccessorWrongArgs, 'Setter', 'one', ''); + } + + if (scope && scope.scopeError !== void 0) reportScopeError(scope.scopeError); + + if (isSimpleParameterList) parser.flags |= Flags.SimpleParameterList; + + consume(parser, context, Token.RightParen); + + return params; +} + +/** + * Parse computed property name + * + * @param parser Parser object + * @param context Context masks + */ +export function parseComputedPropertyName(parser: ParserState, context: Context, inGroup: 0 | 1): ESTree.Expression { + // ComputedPropertyName : + // [ AssignmentExpression ] + nextToken(parser, context | Context.AllowRegExp); + const key = parseExpression( + parser, + (context | Context.DisallowIn) ^ Context.DisallowIn, + 1, + 0, + inGroup, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + consume(parser, context, Token.RightBracket); + return key; +} + +/** + * Parses an expression which has been parenthesised, or arrow head + * + * @param parser Parser object + * @param context Context masks + * @param assignable + * @param start Start index + * @param line Start line + * @param column Start of column + */ +export function parseParenthesizedExpression( + parser: ParserState, + context: Context, + canAssign: 0 | 1, + kind: BindingKind, + origin: Origin, + start: number, + line: number, + column: number +): any { + parser.flags = (parser.flags | Flags.SimpleParameterList) ^ Flags.SimpleParameterList; + + const { tokenPos: piStart, linePos: plStart, colPos: pcStart } = parser; + + nextToken(parser, context | Context.AllowRegExp | Context.AllowEscapedKeyword); + + const scope = context & Context.OptionsLexical ? addChildScope(createScope(), ScopeKind.ArrowParams) : void 0; + + context = (context | Context.DisallowIn) ^ Context.DisallowIn; + + if (consumeOpt(parser, context, Token.RightParen)) { + // Not valid expression syntax, but this is valid in an arrow function + // with no params: `() => body`. + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 0, start, line, column); + } + + let destructible: AssignmentKind | DestructuringKind = 0; + + parser.destructible &= ~(DestructuringKind.Yield | DestructuringKind.Await); + + let expr; + let expressions: ESTree.Expression[] = []; + let isSequence: 0 | 1 = 0; + let isSimpleParameterList: 0 | 1 = 0; + + const { tokenPos: iStart, linePos: lStart, colPos: cStart } = parser; + + parser.assignable = AssignmentKind.Assignable; + + while (parser.token !== Token.RightParen) { + const { token, tokenPos, linePos, colPos } = parser; + + if (token & (Token.IsIdentifier | Token.Keyword)) { + if (scope) addBlockName(parser, context, scope, parser.tokenValue, BindingKind.ArgumentList, Origin.None); + + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + + if (parser.token === Token.RightParen || parser.token === Token.Comma) { + if (parser.assignable & AssignmentKind.CannotAssign) { + destructible |= DestructuringKind.CannotDestruct; + isSimpleParameterList = 1; + } else if ( + (token & Token.IsEvalOrArguments) === Token.IsEvalOrArguments || + (token & Token.FutureReserved) === Token.FutureReserved + ) { + isSimpleParameterList = 1; + } + } else { + if (parser.token === Token.Assign) { + isSimpleParameterList = 1; + } else { + destructible |= DestructuringKind.CannotDestruct; + } + + expr = parseMemberOrUpdateExpression(parser, context, expr, /* inGroup */ 1, 0, tokenPos, linePos, colPos); + + if (parser.token !== Token.RightParen && parser.token !== Token.Comma) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr); + } + } + } else if ((token & Token.IsPatternStart) === Token.IsPatternStart) { + expr = + token === Token.LeftBrace + ? parseObjectLiteralOrPattern( + parser, + context | Context.AllowEscapedKeyword, + scope, + 0, + 1, + 0, + kind, + origin, + tokenPos, + linePos, + colPos + ) + : parseArrayExpressionOrPattern( + parser, + context | Context.AllowEscapedKeyword, + scope, + 0, + 1, + 0, + kind, + origin, + tokenPos, + linePos, + colPos + ); + + destructible |= parser.destructible; + + isSimpleParameterList = 1; + + parser.assignable = AssignmentKind.CannotAssign; + + if (parser.token !== Token.RightParen && parser.token !== Token.Comma) { + if (destructible & DestructuringKind.HasToDestruct) report(parser, Errors.InvalidPatternTail); + + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + + destructible |= DestructuringKind.CannotDestruct; + + if (parser.token !== Token.RightParen && parser.token !== Token.Comma) { + expr = parseAssignmentExpression(parser, context, 0, 0, tokenPos, linePos, colPos, expr); + } + } + } else if (token === Token.Ellipsis) { + expr = parseSpreadOrRestElement( + parser, + context, + scope, + Token.RightParen, + kind, + origin, + 0, + 1, + 0, + tokenPos, + linePos, + colPos + ); + + if (parser.destructible & DestructuringKind.CannotDestruct) report(parser, Errors.InvalidRestArg); + + isSimpleParameterList = 1; + + if (isSequence && (parser.token === Token.RightParen || parser.token === Token.Comma)) { + expressions.push(expr); + } + destructible |= DestructuringKind.HasToDestruct; + break; + } else { + destructible |= DestructuringKind.CannotDestruct; + + expr = parseExpression(parser, context, 1, 0, 1, tokenPos, linePos, colPos); + + if (isSequence && (parser.token === Token.RightParen || parser.token === Token.Comma)) { + expressions.push(expr); + } + + if (parser.token === Token.Comma) { + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + } + + if (isSequence) { + while (consumeOpt(parser, context | Context.AllowRegExp, Token.Comma)) { + expressions.push(parseExpression(parser, context, 1, 0, 1, parser.tokenPos, parser.linePos, parser.colPos)); + } + + parser.assignable = AssignmentKind.CannotAssign; + + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + + consume(parser, context, Token.RightParen); + + parser.destructible = destructible; + + return expr; + } + + if (isSequence && (parser.token === Token.RightParen || parser.token === Token.Comma)) { + expressions.push(expr); + } + + if (!consumeOpt(parser, context | Context.AllowRegExp, Token.Comma)) break; + + if (!isSequence) { + isSequence = 1; + expressions = [expr]; + } + + if (parser.token === Token.RightParen) { + destructible |= DestructuringKind.HasToDestruct; + break; + } + } + + if (isSequence) { + parser.assignable = AssignmentKind.CannotAssign; + + expr = finishNode(parser, context, iStart, lStart, cStart, { + type: 'SequenceExpression', + expressions + }); + } + + consume(parser, context, Token.RightParen); + + if (destructible & DestructuringKind.CannotDestruct && destructible & DestructuringKind.HasToDestruct) + report(parser, Errors.CantAssignToValidRHS); + + destructible |= + parser.destructible & DestructuringKind.Yield + ? DestructuringKind.Yield + : 0 | (parser.destructible & DestructuringKind.Await) + ? DestructuringKind.Await + : 0; + + if (parser.token === Token.Arrow) { + if (destructible & (DestructuringKind.Assignable | DestructuringKind.CannotDestruct)) + report(parser, Errors.InvalidArrowDestructLHS); + if (context & (Context.InAwaitContext | Context.Module) && destructible & DestructuringKind.Await) + report(parser, Errors.AwaitInParameter); + if (context & (Context.Strict | Context.InYieldContext) && destructible & DestructuringKind.Yield) { + report(parser, Errors.YieldInParameter); + } + if (isSimpleParameterList) parser.flags |= Flags.SimpleParameterList; + return parseParenthesizedArrow( + parser, + context, + scope, + isSequence ? expressions : [expr], + canAssign, + 0, + start, + line, + column + ); + } else if (destructible & DestructuringKind.HasToDestruct) { + report(parser, Errors.UncompleteArrow); + } + + parser.destructible = ((parser.destructible | DestructuringKind.Yield) ^ DestructuringKind.Yield) | destructible; + + return context & Context.OptionsPreserveParens + ? finishNode(parser, context, piStart, plStart, pcStart, { + type: 'ParenthesizedExpression', + expression: expr + }) + : expr; +} + +/** + * Parses either an identifier or an arrow function + * + * @param parser Parser object + * @param context Context masks + * @param start Start index + * @param line Start line + * @param column Start of column + + */ +export function parseIdentifierOrArrow( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.Identifier | ESTree.ArrowFunctionExpression { + const { tokenValue } = parser; + + const expr = parseIdentifier(parser, context, 0); + parser.assignable = AssignmentKind.Assignable; + if (parser.token === Token.Arrow) { + let scope: ScopeState | undefined = void 0; + + if (context & Context.OptionsLexical) scope = createArrowHeadParsingScope(parser, context, tokenValue); + + parser.flags = (parser.flags | Flags.SimpleParameterList) ^ Flags.SimpleParameterList; + + return parseArrowFunctionExpression(parser, context, scope, [expr], /* isAsync */ 0, start, line, column); + } + return expr; +} + +/** + * Parse arrow function expression + * + * @param parser Parser object + * @param context Context masks + * @param params + * @param isAsync + * @param start Start index + * @param line Start line + * @param column Start of column + */ +function parseArrowFromIdentifier( + parser: ParserState, + context: Context, + value: any, + expr: ESTree.Expression, + inNew: 0 | 1, + canAssign: 0 | 1, + isAsync: 0 | 1, + start: number, + line: number, + column: number +): ESTree.ArrowFunctionExpression { + if (!canAssign) report(parser, Errors.InvalidAssignmentTarget); + if (inNew) report(parser, Errors.InvalidAsyncArrow); + parser.flags &= ~Flags.SimpleParameterList; + const scope = context & Context.OptionsLexical ? createArrowHeadParsingScope(parser, context, value) : void 0; + + return parseArrowFunctionExpression(parser, context, scope, [expr], isAsync, start, line, column); +} + +/** + * Parse arrow function expression + * + * @param parser Parser object + * @param context Context masks + * @param params + * @param isAsync + * @param start Start index + * @param line Start line + * @param column Start of column + */ +function parseParenthesizedArrow( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + params: any, + canAssign: 0 | 1, + isAsync: 0 | 1, + start: number, + line: number, + column: number +): ESTree.ArrowFunctionExpression { + if (!canAssign) report(parser, Errors.InvalidAssignmentTarget); + + for (let i = 0; i < params.length; ++i) reinterpretToPattern(parser, params[i]); + + return parseArrowFunctionExpression(parser, context, scope, params, isAsync, start, line, column); +} + +/** + * Parse arrow function expression + * + * @param parser Parser object + * @param context Context masks + * @param params + * @param isAsync + * @param start Start index + * @param line Start line + * @param column Start of column + */ +export function parseArrowFunctionExpression( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + params: any, + isAsync: 0 | 1, + start: number, + line: number, + column: number +): ESTree.ArrowFunctionExpression { + /** + * ArrowFunction : + * ArrowParameters => ConciseBody + * + * ArrowParameters : + * BindingIdentifer + * CoverParenthesizedExpressionAndArrowParameterList + * + * CoverParenthesizedExpressionAndArrowParameterList : + * ( Expression ) + * ( ) + * ( ... BindingIdentifier ) + * ( Expression , ... BindingIdentifier ) + * + * ConciseBody : + * [lookahead not {] AssignmentExpression + * { FunctionBody } + * + */ + + if (parser.flags & Flags.NewLine) report(parser, Errors.InvalidLineBreak); + + consume(parser, context | Context.AllowRegExp, Token.Arrow); + + context = ((context | 0b0000000111100000000_0000_00000000) ^ 0b0000000111100000000_0000_00000000) | (isAsync << 22); + + const expression = parser.token !== Token.LeftBrace; + + let body: ESTree.BlockStatement | ESTree.Expression; + + if (scope && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + + if (expression) { + // Single-expression body + body = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + } else { + if (scope) scope = addChildScope(scope, ScopeKind.FunctionBody); + + body = parseFunctionBody( + parser, + (context | 0b0001000000000000001_0000_00000000 | Context.InGlobal | Context.InClass) ^ + (0b0001000000000000001_0000_00000000 | Context.InGlobal | Context.InClass), + scope, + Origin.Arrow, + void 0, + void 0 + ); + + switch (parser.token) { + case Token.LeftBracket: + if ((parser.flags & Flags.NewLine) < 1) { + report(parser, Errors.InvalidInvokedBlockBodyArrow); + } + break; + case Token.Period: + case Token.TemplateSpan: + case Token.QuestionMark: + report(parser, Errors.InvalidAccessedBlockBodyArrow); + case Token.LeftParen: + if ((parser.flags & Flags.NewLine) < 1) { + report(parser, Errors.InvalidInvokedBlockBodyArrow); + } + parser.flags |= Flags.DisallowCall; + break; + default: // ignore + } + if ((parser.token & Token.IsBinaryOp) === Token.IsBinaryOp && (parser.flags & Flags.NewLine) < 1) + report(parser, Errors.UnexpectedToken, KeywordDescTable[parser.token & Token.Type]); + if ((parser.token & Token.IsUpdateOp) === Token.IsUpdateOp) report(parser, Errors.InvalidArrowPostfix); + } + + parser.assignable = AssignmentKind.CannotAssign; + + return finishNode(parser, context, start, line, column, { + type: 'ArrowFunctionExpression', + params, + body, + async: isAsync === 1, + expression + }); +} + +/** + * Parses formal parameters + * + * @param parser Parser object + * @param context Context masks + */ +export function parseFormalParametersOrFormalList( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + inGroup: 0 | 1, + kind: BindingKind +): ESTree.Parameter[] { + /** + * FormalParameter : + * BindingElement + * + * FormalParameterList : + * [empty] + * FunctionRestParameter + * FormalsList + * FormalsList , FunctionRestParameter + * + * FunctionRestParameter : + * ... BindingIdentifier + * + * FormalsList : + * FormalParameter + * FormalsList , FormalParameter + * + * FormalParameter : + * BindingElement + * + * BindingElement : + * SingleNameBinding + * BindingPattern Initializeropt + * + */ + consume(parser, context, Token.LeftParen); + + parser.flags = (parser.flags | Flags.SimpleParameterList) ^ Flags.SimpleParameterList; + + const params: ESTree.Parameter[] = []; + + if (consumeOpt(parser, context, Token.RightParen)) return params; + + context = (context | Context.DisallowIn) ^ Context.DisallowIn; + + let isSimpleParameterList: 0 | 1 = 0; + + while (parser.token !== Token.Comma) { + let left: any; + + const { tokenPos, linePos, colPos } = parser; + + if (parser.token & Token.IsIdentifier) { + if ((context & Context.Strict) < 1) { + if ((parser.token & Token.FutureReserved) === Token.FutureReserved) { + parser.flags |= Flags.HasStrictReserved; + } + if ((parser.token & Token.IsEvalOrArguments) === Token.IsEvalOrArguments) { + parser.flags |= Flags.StrictEvalArguments; + } + } + + left = parseAndClassifyIdentifier( + parser, + context, + scope, + kind | BindingKind.ArgumentList, + Origin.None, + tokenPos, + linePos, + colPos + ); + } else { + if (parser.token === Token.LeftBrace) { + left = parseObjectLiteralOrPattern( + parser, + context, + scope, + 1, + inGroup, + 1, + kind, + Origin.None, + tokenPos, + linePos, + colPos + ); + } else if (parser.token === Token.LeftBracket) { + left = parseArrayExpressionOrPattern( + parser, + context, + scope, + 1, + inGroup, + 1, + kind, + Origin.None, + tokenPos, + linePos, + colPos + ); + } else if (parser.token === Token.Ellipsis) { + left = parseSpreadOrRestElement( + parser, + context, + scope, + Token.RightParen, + kind, + Origin.None, + 0, + inGroup, + 1, + tokenPos, + linePos, + colPos + ); + } else { + report(parser, Errors.UnexpectedToken, KeywordDescTable[parser.token & Token.Type]); + } + + isSimpleParameterList = 1; + + if (parser.destructible & (DestructuringKind.Assignable | DestructuringKind.CannotDestruct)) { + report(parser, Errors.InvalidBindingDestruct); + } + } + + if (parser.token === Token.Assign) { + nextToken(parser, context | Context.AllowRegExp); + + isSimpleParameterList = 1; + + const right = parseExpression(parser, context, 1, 1, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + + left = finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'AssignmentPattern', + left, + right + }); + } + + params.push(left); + + if (!consumeOpt(parser, context, Token.Comma)) break; + if (parser.token === Token.RightParen) { + // allow the trailing comma + break; + } + } + + if (isSimpleParameterList) parser.flags |= Flags.SimpleParameterList; + + if (scope && (isSimpleParameterList || context & Context.Strict) && scope.scopeError !== void 0) { + reportScopeError(scope.scopeError); + } + + consume(parser, context, Token.RightParen); + + return params; +} + +/** + * Parses member or update expression without call expression + * + * @param parser Parser object + * @param context Context masks + * @param expr ESTree AST node + * @param inGroup + * @param start + * @param line + * @param column + */ +export function parseMembeExpressionNoCall( + parser: ParserState, + context: Context, + expr: ESTree.Expression, + inGroup: 0 | 1, + start: number, + line: number, + column: number +): any { + const { token } = parser; + + if (token & Token.IsMemberOrCallExpression) { + /* Property */ + if (token === Token.Period) { + nextToken(parser, context | Context.AllowEscapedKeyword); + + parser.assignable = AssignmentKind.Assignable; + + const property = parsePropertyOrPrivatePropertyName(parser, context); + + return parseMembeExpressionNoCall( + parser, + context, + finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: false, + property + }), + 0, + start, + line, + column + ); + /* Property */ + } else if (token === Token.LeftBracket) { + nextToken(parser, context | Context.AllowRegExp); + + const { tokenPos, linePos, colPos } = parser; + + const property = parseExpressions(parser, context, inGroup, 1, tokenPos, linePos, colPos); + + consume(parser, context, Token.RightBracket); + + parser.assignable = AssignmentKind.Assignable; + + return parseMembeExpressionNoCall( + parser, + context, + finishNode(parser, context, start, line, column, { + type: 'MemberExpression', + object: expr, + computed: true, + property + }), + 0, + start, + line, + column + ); + /* Template */ + } else if (token === Token.TemplateContinuation || token === Token.TemplateSpan) { + parser.assignable = AssignmentKind.CannotAssign; + + return parseMembeExpressionNoCall( + parser, + context, + finishNode(parser, context, start, line, column, { + type: 'TaggedTemplateExpression', + tag: expr, + quasi: + parser.token === Token.TemplateContinuation + ? parseTemplate(parser, context | Context.TaggedTemplate) + : parseTemplateLiteral(parser, context, parser.tokenPos, parser.linePos, parser.colPos) + }), + 0, + start, + line, + column + ); + } + } + return expr; +} + +/** + * Parses new or new target expression + * + * @param parser Parser object + * @param context Context masks + * @returns {(ESTree.Expression | ESTree.MetaProperty)} + */ +export function parseNewExpression( + parser: ParserState, + context: Context, + inGroup: 0 | 1, + start: number, + line: number, + column: number +): ESTree.NewExpression | ESTree.Expression | ESTree.MetaProperty { + // NewExpression :: + // ('new')+ MemberExpression + // + // NewTarget :: + // 'new' '.' 'target' + // + // Examples of new expression: + // - new foo.bar().baz + // - new foo()() + // - new new foo()() + // - new new foo + // - new new foo() + // - new new foo().bar().baz + // - `new.target[await x]` + // - `new (foo);` + // - `new (foo)();` + // - `new foo()();` + // - `new (await foo);` + // - `new x(await foo);` + const id = parseIdentifier(parser, context | Context.AllowRegExp, 0); + const { tokenPos, linePos, colPos } = parser; + + if (consumeOpt(parser, context, Token.Period)) { + if (context & Context.AllowNewTarget && parser.token === Token.Target) { + parser.assignable = AssignmentKind.CannotAssign; + return parseMetaProperty(parser, context, id, start, line, column); + } + + report(parser, Errors.InvalidNewTarget); + } + + parser.assignable = AssignmentKind.CannotAssign; + + if ((parser.token & Token.IsUnaryOp) === Token.IsUnaryOp) { + report(parser, Errors.InvalidNewUnary, KeywordDescTable[parser.token & Token.Type]); + } + + const expr = parsePrimaryExpression( + parser, + context, + BindingKind.Empty, + 1, + 0, + 0, + inGroup, + 1, + tokenPos, + linePos, + colPos + ); + + context = (context | Context.DisallowIn) ^ Context.DisallowIn; + + if (parser.token === Token.QuestionMarkPeriod) report(parser, Errors.OptionalChainingNoNew); + + // NewExpression without arguments. + const callee = parseMembeExpressionNoCall(parser, context, expr, inGroup, tokenPos, linePos, colPos); + + parser.assignable = AssignmentKind.CannotAssign; + + return finishNode(parser, context, start, line, column, { + type: 'NewExpression', + callee, + arguments: parser.token === Token.LeftParen ? parseArguments(parser, context, inGroup) : [] + }); +} + +/** + * Parse meta property + * + * @see [Link](https://tc39.github.io/ecma262/#prod-StatementList) + * + * @param parser Parser object + * @param context Context masks + * @param meta ESTree AST node + */ +export function parseMetaProperty( + parser: ParserState, + context: Context, + meta: ESTree.Identifier, + start: number, + line: number, + column: number +): ESTree.MetaProperty { + const property = parseIdentifier(parser, context, 0); + return finishNode(parser, context, start, line, column, { + type: 'MetaProperty', + meta, + property + }); +} + +/** + * Parses async expression + * + * @param parser Parser object + * @param context Context masks + * @param inNew + * @param assignable + */ + +/** + * Parses async arrow after identifier + * + * @param parser Parser object + * @param context Context masks + * @param canAssign Either true or false + * @param start Start pos of node + * @param line Line pos of node + * @param column Column pos of node + */ +function parseAsyncArrowAfterIdent( + parser: ParserState, + context: Context, + canAssign: 0 | 1, + start: number, + line: number, + column: number +) { + if (parser.token === Token.AwaitKeyword) report(parser, Errors.AwaitInParameter); + + if (context & (Context.Strict | Context.InYieldContext) && parser.token === Token.YieldKeyword) { + report(parser, Errors.YieldInParameter); + } + + if ((parser.token & Token.IsEvalOrArguments) === Token.IsEvalOrArguments) { + parser.flags |= Flags.StrictEvalArguments; + } + + return parseArrowFromIdentifier( + parser, + context, + parser.tokenValue, + parseIdentifier(parser, context, 0), + 0, + canAssign, + 1, + start, + line, + column + ); +} + +/** + * Parses async arrow or call expressions + * + * @param parser Parser object + * @param context Context masks + * @param callee ESTree AST node + * @param assignable + * @param kind Binding kind + * @param origin Binding origin + * @param flags Mutual parser flags + * @param start Start pos of node + * @param line Line pos of node + * @param column Column pos of node + */ + +export function parseAsyncArrowOrCallExpression( + parser: ParserState, + context: Context, + callee: ESTree.Identifier | void, + canAssign: 0 | 1, + kind: BindingKind, + origin: Origin, + flags: Flags, + start: number, + line: number, + column: number +): ESTree.CallExpression | ESTree.ArrowFunctionExpression { + nextToken(parser, context | Context.AllowRegExp); + + const scope = context & Context.OptionsLexical ? addChildScope(createScope(), ScopeKind.ArrowParams) : void 0; + + context = (context | Context.DisallowIn) ^ Context.DisallowIn; + + if (consumeOpt(parser, context, Token.RightParen)) { + if (parser.token === Token.Arrow) { + if (flags & Flags.NewLine) report(parser, Errors.InvalidLineBreak); + return parseParenthesizedArrow(parser, context, scope, [], canAssign, 1, start, line, column); + } + + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: [] + }); + } + + let destructible: AssignmentKind | DestructuringKind = 0; + let expr: ESTree.Expression | null = null; + let isSimpleParameterList: 0 | 1 = 0; + + parser.destructible = + (parser.destructible | DestructuringKind.Yield | DestructuringKind.Await) ^ + (DestructuringKind.Yield | DestructuringKind.Await); + + const params: ESTree.Expression[] = []; + + while (parser.token !== Token.RightParen) { + const { token, tokenPos, linePos, colPos } = parser; + + if (token & (Token.IsIdentifier | Token.Keyword)) { + if (scope) addBlockName(parser, context, scope, parser.tokenValue, kind, Origin.None); + + expr = parsePrimaryExpression(parser, context, kind, 0, 1, 0, 1, 1, tokenPos, linePos, colPos); + + if (parser.token === Token.RightParen || parser.token === Token.Comma) { + if (parser.assignable & AssignmentKind.CannotAssign) { + destructible |= DestructuringKind.CannotDestruct; + isSimpleParameterList = 1; + } else if ((token & Token.IsEvalOrArguments) === Token.IsEvalOrArguments) { + parser.flags |= Flags.StrictEvalArguments; + } else if ((token & Token.FutureReserved) === Token.FutureReserved) { + parser.flags |= Flags.HasStrictReserved; + } + } else { + if (parser.token === Token.Assign) { + isSimpleParameterList = 1; + } else { + destructible |= DestructuringKind.CannotDestruct; + } + + expr = parseMemberOrUpdateExpression( + parser, + context, + expr as ESTree.Expression, + 1, + 0, + tokenPos, + linePos, + colPos + ); + + if (parser.token !== Token.RightParen && parser.token !== Token.Comma) { + expr = parseAssignmentExpression(parser, context, 1, 0, tokenPos, linePos, colPos, expr as ESTree.Expression); + } + } + } else if (token & Token.IsPatternStart) { + expr = + token === Token.LeftBrace + ? parseObjectLiteralOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos) + : parseArrayExpressionOrPattern(parser, context, scope, 0, 1, 0, kind, origin, tokenPos, linePos, colPos); + + destructible |= parser.destructible; + + isSimpleParameterList = 1; + + if (parser.token !== Token.RightParen && parser.token !== Token.Comma) { + if (destructible & DestructuringKind.HasToDestruct) report(parser, Errors.InvalidPatternTail); + + expr = parseMemberOrUpdateExpression(parser, context, expr, 0, 0, tokenPos, linePos, colPos); + + destructible |= DestructuringKind.CannotDestruct; + + if ((parser.token & Token.IsBinaryOp) === Token.IsBinaryOp) { + expr = parseBinaryExpression(parser, context, 1, start, line, column, 4, token, expr as ESTree.Expression); + } + if (consumeOpt(parser, context | Context.AllowRegExp, Token.QuestionMark)) { + expr = parseConditionalExpression(parser, context, expr as ESTree.Expression, start, line, column); + } + } + } else if (token === Token.Ellipsis) { + expr = parseSpreadOrRestElement( + parser, + context, + scope, + Token.RightParen, + kind, + origin, + 1, + 1, + 0, + tokenPos, + linePos, + colPos + ); + + destructible |= (parser.token === Token.RightParen ? 0 : DestructuringKind.CannotDestruct) | parser.destructible; + + isSimpleParameterList = 1; + } else { + expr = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + + destructible = parser.assignable; + + params.push(expr); + + while (consumeOpt(parser, context | Context.AllowRegExp, Token.Comma)) { + params.push(parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos)); + } + + destructible |= parser.assignable; + + consume(parser, context, Token.RightParen); + + parser.destructible = destructible | DestructuringKind.CannotDestruct; + + parser.assignable = AssignmentKind.CannotAssign; + + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); + } + + params.push(expr as ESTree.Expression); + + if (!consumeOpt(parser, context | Context.AllowRegExp, Token.Comma)) break; + } + + consume(parser, context, Token.RightParen); + + destructible |= + parser.destructible & DestructuringKind.Yield + ? DestructuringKind.Yield + : 0 | (parser.destructible & DestructuringKind.Await) + ? DestructuringKind.Await + : 0; + + if (parser.token === Token.Arrow) { + if (destructible & (DestructuringKind.Assignable | DestructuringKind.CannotDestruct)) + report(parser, Errors.InvalidLHSAsyncArrow); + if (parser.flags & Flags.NewLine || flags & Flags.NewLine) report(parser, Errors.InvalidLineBreak); + if (destructible & DestructuringKind.Await) report(parser, Errors.AwaitInParameter); + if (context & (Context.Strict | Context.InYieldContext) && destructible & DestructuringKind.Yield) + report(parser, Errors.YieldInParameter); + if (isSimpleParameterList) parser.flags |= Flags.SimpleParameterList; + + return parseParenthesizedArrow(parser, context, scope, params, canAssign, 1, start, line, column); + } else if (destructible & DestructuringKind.HasToDestruct) { + report(parser, Errors.InvalidShorthandPropInit); + } + + parser.assignable = AssignmentKind.CannotAssign; + + return finishNode(parser, context, start, line, column, { + type: 'CallExpression', + callee, + arguments: params + }); +} + +/** + * Parse regular expression literal + * + * @see [Link](https://tc39.github.io/ecma262/#sec-literals-regular-expression-literals) + * + * @param parser Parser object + * @param context Context masks + */ + +/** + * Parses reguar expression literal AST node + * + * @param parser Parser object + * @param context Context masks + */ +export function parseRegExpLiteral( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.RegExpLiteral { + const { tokenRaw, tokenRegExp, tokenValue } = parser; + nextToken(parser, context); + parser.assignable = AssignmentKind.CannotAssign; + return context & Context.OptionsRaw + ? finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp as { pattern: string; flags: string }, + raw: tokenRaw + }) + : finishNode(parser, context, start, line, column, { + type: 'Literal', + value: tokenValue, + regex: tokenRegExp as { pattern: string; flags: string } + }); +} + +/** + * Parse class expression + * + * @param parser Parser object + * @param context Context masks + * @param ExportDefault + */ +export function parseClassDeclaration( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + flags: HoistedClassFlags, + start: number, + line: number, + column: number +): ESTree.ClassDeclaration { + // ClassDeclaration :: + // 'class' Identifier ('extends' LeftHandSideExpression)? '{' ClassBody '}' + // 'class' ('extends' LeftHandSideExpression)? '{' ClassBody '}' + // DecoratorList[?Yield, ?Await]optclassBindingIdentifier[?Yield, ?Await]ClassTail[?Yield, ?Await] + // DecoratorList[?Yield, ?Await]optclassClassTail[?Yield, ?Await] + // + context = (context | Context.InConstructor | Context.Strict) ^ Context.InConstructor; + + let decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + + if (parser.leadingDecorators.length) { + parser.leadingDecorators.push(...decorators); + decorators = parser.leadingDecorators; + parser.leadingDecorators = []; + } + + nextToken(parser, context); + let id: ESTree.Expression | null = null; + let superClass: ESTree.Expression | null = null; + + const { tokenValue } = parser; + + if (parser.token & Token.Keyword && parser.token !== Token.ExtendsKeyword) { + if (isStrictReservedWord(parser, context, parser.token)) { + report(parser, Errors.UnexpectedStrictReserved); + } + + if ((parser.token & Token.IsEvalOrArguments) === Token.IsEvalOrArguments) { + report(parser, Errors.StrictEvalArguments); + } + + if (scope) { + // A named class creates a new lexical scope with a const binding of the + // class name for the "inner name". + addBlockName(parser, context, scope, tokenValue, BindingKind.Class, Origin.None); + + if (flags) { + if (flags & HoistedClassFlags.Export) { + declareUnboundVariable(parser, tokenValue); + } + } + } + + id = parseIdentifier(parser, context, 0); + } else { + // Only under the "export default" context, class declaration does not require the class name. + // + // ExportDeclaration: + // ... + // export default ClassDeclaration[~Yield, +Default] + // ... + // + // ClassDeclaration[Yield, Default]: + // ... + // [+Default] class ClassTail[?Yield] + // + if ((flags & HoistedClassFlags.Hoisted) < 1) report(parser, Errors.DeclNoName, 'Class'); + } + let inheritedContext = context; + + if (consumeOpt(parser, context | Context.AllowRegExp, Token.ExtendsKeyword)) { + superClass = parseLeftHandSideExpression(parser, context, 0, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + inheritedContext |= Context.SuperCall; + } else { + inheritedContext = (inheritedContext | Context.SuperCall) ^ Context.SuperCall; + } + + const body = parseClassBody(parser, inheritedContext, context, scope, BindingKind.Empty, Origin.Declaration, 0); + + return finishNode( + parser, + context, + start, + line, + column, + context & Context.OptionsNext + ? { + type: 'ClassDeclaration', + id, + superClass, + decorators, + body + } + : { + type: 'ClassDeclaration', + id, + superClass, + body + } + ); +} + +/** + * Parse class expression + * + * @param parser Parser object + * @param context Context masks + */ +export function parseClassExpression( + parser: ParserState, + context: Context, + inGroup: 0 | 1, + start: number, + line: number, + column: number +): ESTree.ClassExpression { + // ClassExpression :: + // 'class' Identifier ('extends' LeftHandSideExpression)? '{' ClassBody '}' + // 'class' ('extends' LeftHandSideExpression)? '{' ClassBody '}' + // DecoratorList[?Yield, ?Await]optclassBindingIdentifier[?Yield, ?Await]ClassTail[?Yield, ?Await] + // + + let id: ESTree.Expression | null = null; + let superClass: ESTree.Expression | null = null; + + // All class code is always strict mode implicitly + context = (context | Context.Strict | Context.InConstructor) ^ Context.InConstructor; + + const decorators = parseDecorators(parser, context); + if (decorators.length) { + start = parser.tokenPos; + line = parser.linePos; + column = parser.colPos; + } + + nextToken(parser, context); + + if (parser.token & Token.Keyword && parser.token !== Token.ExtendsKeyword) { + if (isStrictReservedWord(parser, context, parser.token)) report(parser, Errors.UnexpectedStrictReserved); + if ((parser.token & Token.IsEvalOrArguments) === Token.IsEvalOrArguments) { + report(parser, Errors.StrictEvalArguments); + } + + id = parseIdentifier(parser, context, 0); + } + + // Second set of context masks to fix 'super' edge cases + let inheritedContext = context; + + if (consumeOpt(parser, context | Context.AllowRegExp, Token.ExtendsKeyword)) { + superClass = parseLeftHandSideExpression( + parser, + context, + 0, + inGroup, + 0, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + inheritedContext |= Context.SuperCall; + } else { + inheritedContext = (inheritedContext | Context.SuperCall) ^ Context.SuperCall; + } + + const body = parseClassBody(parser, inheritedContext, context, void 0, BindingKind.Empty, Origin.None, inGroup); + + parser.assignable = AssignmentKind.CannotAssign; + + return finishNode( + parser, + context, + start, + line, + column, + context & Context.OptionsNext + ? { + type: 'ClassExpression', + id, + superClass, + decorators, + body + } + : { + type: 'ClassExpression', + id, + superClass, + body + } + ); +} + +/** + * Parses a list of decorators + * + * @param parser Parser object + * @param context Context masks + */ +export function parseDecorators(parser: ParserState, context: Context): ESTree.Decorator[] { + const list: ESTree.Decorator[] = []; + + if (context & Context.OptionsNext) { + while (parser.token === Token.Decorator) { + list.push(parseDecoratorList(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + } + + return list; +} + +/** + * Parses a list of decorators + * + * @param parser Parser object + * @param context Context masks + * @param start + */ + +export function parseDecoratorList( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.Decorator { + nextToken(parser, context | Context.AllowRegExp); + + let expression = parsePrimaryExpression(parser, context, BindingKind.Empty, 0, 1, 0, 0, 1, start, line, column); + + expression = parseMemberOrUpdateExpression(parser, context, expression, 0, 0, start, line, column); + + return finishNode(parser, context, start, line, column, { + type: 'Decorator', + expression + }); +} +/** + * Parses class body + * + * @param parser Parser object + * @param context Context masks + * @param inheritedContext Second set of context masks + * @param type Binding kind + * @param origin Binding origin + * @param decorators + */ + +export function parseClassBody( + parser: ParserState, + context: Context, + inheritedContext: Context, + scope: ScopeState | undefined, + kind: BindingKind, + origin: Origin, + inGroup: 0 | 1 +): ESTree.ClassBody { + /** + * ClassElement : + * static MethodDefinition + * MethodDefinition + * DecoratorList + * DecoratorList static MethodDefinition + * DecoratorList PropertyDefinition + * DecoratorList static PropertyDefinition + * + * MethodDefinition : + * ClassElementName ( FormalParameterList ) { FunctionBody } + * get ClassElementName ( ) { FunctionBody } + * set ClassElementName ( PropertySetParameterList ) { FunctionBody } + * + * ClassElementName : + * PropertyName + * PrivateIdentifier + * + * PrivateIdentifier :: + * # IdentifierName + * + * IdentifierName :: + * IdentifierStart + * IdentifierName IdentifierPart + * + * IdentifierStart :: + * UnicodeIDStart + * $ + * _ + * \ UnicodeEscapeSequence + * IdentifierPart:: + * UnicodeIDContinue + * $ + * \ UnicodeEscapeSequence + * + * + * UnicodeIDStart:: + * any Unicode code point with the Unicode property "ID_Start" + * + * UnicodeIDContinue:: + * any Unicode code point with the Unicode property "ID_Continue" + * + * GeneratorMethod : + * * ClassElementName ( UniqueFormalParameters ){GeneratorBody} + * + * AsyncMethod : + * async [no LineTerminator here] ClassElementName ( UniqueFormalParameters ) { AsyncFunctionBody } + * + * AsyncGeneratorMethod : + * async [no LineTerminator here]* ClassElementName ( UniqueFormalParameters ) { AsyncGeneratorBody } + */ + + const { tokenPos, linePos, colPos } = parser; + + consume(parser, context | Context.AllowRegExp, Token.LeftBrace); + context = (context | Context.DisallowIn) ^ Context.DisallowIn; + parser.flags = (parser.flags | Flags.HasConstructor) ^ Flags.HasConstructor; + + const body: (ESTree.MethodDefinition | ESTree.PropertyDefinition)[] = []; + let decorators: ESTree.Decorator[]; + + while (parser.token !== Token.RightBrace) { + let length = 0; + + // See: https://github.com/tc39/proposal-decorators + + decorators = parseDecorators(parser, context); + + length = decorators.length; + + if (length > 0 && parser.tokenValue === 'constructor') { + report(parser, Errors.GeneratorConstructor); + } + + if (parser.token === Token.RightBrace) report(parser, Errors.TrailingDecorators); + + if (consumeOpt(parser, context, Token.Semicolon)) { + if (length > 0) report(parser, Errors.InvalidDecoratorSemicolon); + continue; + } + body.push( + parseClassElementList( + parser, + context, + scope, + inheritedContext, + kind, + decorators, + 0, + inGroup, + parser.tokenPos, + parser.linePos, + parser.colPos + ) + ); + } + consume(parser, origin & Origin.Declaration ? context | Context.AllowRegExp : context, Token.RightBrace); + + return finishNode(parser, context, tokenPos, linePos, colPos, { + type: 'ClassBody', + body + }); +} + +/** + * Parses class element list + * + * @param parser Parser object + * @param context Context masks + * @param inheritedContext Second set of context masks + * @param type Binding type + * @param decorators + * @param isStatic + */ +function parseClassElementList( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + inheritedContext: Context, + type: BindingKind, + decorators: ESTree.Decorator[], + isStatic: 0 | 1, + inGroup: 0 | 1, + start: number, + line: number, + column: number +): ESTree.MethodDefinition | ESTree.PropertyDefinition { + let kind: PropertyKind = isStatic ? PropertyKind.Static : PropertyKind.None; + let key: ESTree.Expression | ESTree.PrivateIdentifier | null = null; + + const { token, tokenPos, linePos, colPos } = parser; + + if (token & (Token.IsIdentifier | Token.FutureReserved)) { + key = parseIdentifier(parser, context, 0); + + switch (token) { + case Token.StaticKeyword: + if (!isStatic && parser.token !== Token.LeftParen) { + return parseClassElementList( + parser, + context, + scope, + inheritedContext, + type, + decorators, + 1, + inGroup, + start, + line, + column + ); + } + break; + + case Token.AsyncKeyword: + if (parser.token !== Token.LeftParen && (parser.flags & Flags.NewLine) < 1) { + if (context & Context.OptionsNext && (parser.token & Token.IsClassField) === Token.IsClassField) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + + kind |= PropertyKind.Async | (optionalBit(parser, context, Token.Multiply) ? PropertyKind.Generator : 0); + } + break; + + case Token.GetKeyword: + if (parser.token !== Token.LeftParen) { + if (context & Context.OptionsNext && (parser.token & Token.IsClassField) === Token.IsClassField) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= PropertyKind.Getter; + } + break; + + case Token.SetKeyword: + if (parser.token !== Token.LeftParen) { + if (context & Context.OptionsNext && (parser.token & Token.IsClassField) === Token.IsClassField) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + kind |= PropertyKind.Setter; + } + break; + + default: // ignore + } + } else if (token === Token.LeftBracket) { + kind |= PropertyKind.Computed; + key = parseComputedPropertyName(parser, inheritedContext, inGroup); + } else if ((token & Token.IsStringOrNumber) === Token.IsStringOrNumber) { + key = parseLiteral(parser, context); + } else if (token === Token.Multiply) { + kind |= PropertyKind.Generator; + nextToken(parser, context); // skip: '*' + } else if (context & Context.OptionsNext && parser.token === Token.PrivateField) { + kind |= PropertyKind.PrivateField; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + context = context | Context.InClass; + } else if (context & Context.OptionsNext && (parser.token & Token.IsClassField) === Token.IsClassField) { + kind |= PropertyKind.ClassField; + context = context | Context.InClass; + } else if (token === Token.EscapedFutureReserved) { + key = parseIdentifier(parser, context, 0); + if (parser.token !== Token.LeftParen) + report(parser, Errors.UnexpectedToken, KeywordDescTable[parser.token & Token.Type]); + } else { + report(parser, Errors.UnexpectedToken, KeywordDescTable[parser.token & Token.Type]); + } + + if (kind & (PropertyKind.Generator | PropertyKind.Async | PropertyKind.GetSet)) { + if (parser.token & Token.IsIdentifier) { + key = parseIdentifier(parser, context, 0); + } else if ((parser.token & Token.IsStringOrNumber) === Token.IsStringOrNumber) { + key = parseLiteral(parser, context); + } else if (parser.token === Token.LeftBracket) { + kind |= PropertyKind.Computed; + key = parseComputedPropertyName(parser, context, /* inGroup */ 0); + } else if (parser.token === Token.EscapedFutureReserved) { + key = parseIdentifier(parser, context, 0); + } else if (context & Context.OptionsNext && parser.token === Token.PrivateField) { + kind |= PropertyKind.PrivateField; + key = parsePrivateIdentifier(parser, context, tokenPos, linePos, colPos); + } else report(parser, Errors.InvalidKeyToken); + } + + if ((kind & PropertyKind.Computed) < 1) { + if (parser.tokenValue === 'constructor') { + if ((parser.token & Token.IsClassField) === Token.IsClassField) { + report(parser, Errors.InvalidClassFieldConstructor); + } else if ((kind & PropertyKind.Static) < 1 && parser.token === Token.LeftParen) { + if (kind & (PropertyKind.GetSet | PropertyKind.Async | PropertyKind.ClassField | PropertyKind.Generator)) { + report(parser, Errors.InvalidConstructor, 'accessor'); + } else if ((context & Context.SuperCall) < 1) { + if (parser.flags & Flags.HasConstructor) report(parser, Errors.DuplicateConstructor); + else parser.flags |= Flags.HasConstructor; + } + } + kind |= PropertyKind.Constructor; + } else if ( + // Static Async Generator Private Methods can be named "#prototype" (class declaration) + (kind & PropertyKind.PrivateField) < 1 && + kind & (PropertyKind.Static | PropertyKind.GetSet | PropertyKind.Generator | PropertyKind.Async) && + parser.tokenValue === 'prototype' + ) { + report(parser, Errors.StaticPrototype); + } + } + + if (context & Context.OptionsNext && parser.token !== Token.LeftParen) { + return parsePropertyDefinition(parser, context, key, kind, decorators, tokenPos, linePos, colPos); + } + + const value = parseMethodDefinition(parser, context, kind, inGroup, parser.tokenPos, parser.linePos, parser.colPos); + + return finishNode( + parser, + context, + start, + line, + column, + context & Context.OptionsNext + ? { + type: 'MethodDefinition', + kind: + (kind & PropertyKind.Static) < 1 && kind & PropertyKind.Constructor + ? 'constructor' + : kind & PropertyKind.Getter + ? 'get' + : kind & PropertyKind.Setter + ? 'set' + : 'method', + static: (kind & PropertyKind.Static) > 0, + computed: (kind & PropertyKind.Computed) > 0, + key, + decorators, + value + } + : { + type: 'MethodDefinition', + kind: + (kind & PropertyKind.Static) < 1 && kind & PropertyKind.Constructor + ? 'constructor' + : kind & PropertyKind.Getter + ? 'get' + : kind & PropertyKind.Setter + ? 'set' + : 'method', + static: (kind & PropertyKind.Static) > 0, + computed: (kind & PropertyKind.Computed) > 0, + key, + value + } + ); +} + +/** + * Parses private name + * + * @param parser Parser object + * @param context Context masks + */ +function parsePrivateIdentifier( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.PrivateIdentifier { + // PrivateIdentifier:: + // #IdentifierName + nextToken(parser, context); // skip: '#' + const { tokenValue } = parser; + if (tokenValue === 'constructor') report(parser, Errors.InvalidStaticClassFieldConstructor); + nextToken(parser, context); + + return finishNode(parser, context, start, line, column, { + type: 'PrivateIdentifier', + name: tokenValue + }); +} + +/** + * Parses field definition + * + * @param parser Parser object + * @param context Context masks + * @param key ESTree AST node + * @param state + * @param decorators + */ + +export function parsePropertyDefinition( + parser: ParserState, + context: Context, + key: ESTree.PrivateIdentifier | ESTree.Expression | null, + state: PropertyKind, + decorators: ESTree.Decorator[] | null, + start: number, + line: number, + column: number +): ESTree.PropertyDefinition { + // ClassElement : + // MethodDefinition + // static MethodDefinition + // PropertyDefinition ; + // ; + let value: ESTree.Expression | null = null; + + if (state & PropertyKind.Generator) report(parser, Errors.Unexpected); + + if (parser.token === Token.Assign) { + nextToken(parser, context | Context.AllowRegExp); + + const { tokenPos, linePos, colPos } = parser; + + if (parser.token === Token.Arguments) report(parser, Errors.StrictEvalArguments); + + value = parsePrimaryExpression( + parser, + context | Context.InClass, + BindingKind.Empty, + 0, + 1, + 0, + 0, + 1, + tokenPos, + linePos, + colPos + ); + + if ((parser.token & Token.IsClassField) !== Token.IsClassField) { + value = parseMemberOrUpdateExpression( + parser, + context | Context.InClass, + value as ESTree.Expression, + 0, + 0, + tokenPos, + linePos, + colPos + ); + + value = parseAssignmentExpression(parser, context | Context.InClass, 0, 0, tokenPos, linePos, colPos, value); + if (parser.token === Token.Comma) { + value = parseSequenceExpression(parser, context, 0, start, line, column, value as any); + } + } + } + + return finishNode(parser, context, start, line, column, { + type: 'PropertyDefinition', + key, + value, + static: (state & PropertyKind.Static) > 0, + computed: (state & PropertyKind.Computed) > 0, + decorators + } as any); +} + +/** + * Parses binding pattern + * + * @param parser Parser object + * @param context Context masks + * @param type Binding kind + */ +export function parseBindingPattern( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + type: BindingKind, + origin: Origin, + start: number, + line: number, + column: number +): ESTree.BindingPattern { + // Pattern :: + // Identifier + // ArrayLiteral + // ObjectLiteral + + if (parser.token & Token.IsIdentifier) + return parseAndClassifyIdentifier(parser, context, scope, type, origin, start, line, column); + + if ((parser.token & Token.IsPatternStart) !== Token.IsPatternStart) + report(parser, Errors.UnexpectedToken, KeywordDescTable[parser.token & Token.Type]); + + const left: any = + parser.token === Token.LeftBracket + ? parseArrayExpressionOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column) + : parseObjectLiteralOrPattern(parser, context, scope, 1, 0, 1, type, origin, start, line, column); + + if (parser.destructible & DestructuringKind.CannotDestruct) report(parser, Errors.InvalidBindingDestruct); + + if (parser.destructible & DestructuringKind.Assignable) report(parser, Errors.InvalidBindingDestruct); + + return left; +} + +/** + * Classify and parse identifier if of valid type + * + * @param parser Parser object + * @param context Context masks + * @param type Binding kind + */ +function parseAndClassifyIdentifier( + parser: ParserState, + context: Context, + scope: ScopeState | undefined, + kind: BindingKind, + origin: Origin, + start: number, + line: number, + column: number +): ESTree.Identifier { + const { tokenValue, token } = parser; + + if (context & Context.Strict) { + if ((token & Token.IsEvalOrArguments) === Token.IsEvalOrArguments) { + report(parser, Errors.StrictEvalArguments); + } else if ((token & Token.FutureReserved) === Token.FutureReserved) { + report(parser, Errors.UnexpectedStrictReserved); + } + } + + if ((token & Token.Reserved) === Token.Reserved) { + report(parser, Errors.KeywordNotId); + } + + if (context & (Context.Module | Context.InYieldContext) && token === Token.YieldKeyword) { + report(parser, Errors.YieldInParameter); + } + if (token === Token.LetKeyword) { + if (kind & (BindingKind.Let | BindingKind.Const)) report(parser, Errors.InvalidLetConstBinding); + } + if (context & (Context.InAwaitContext | Context.Module) && token === Token.AwaitKeyword) { + report(parser, Errors.AwaitOutsideAsync); + } + + nextToken(parser, context); + + if (scope) addVarOrBlock(parser, context, scope, tokenValue, kind, origin); + + return finishNode(parser, context, start, line, column, { + type: 'Identifier', + name: tokenValue + }); +} + +/** + * Parses either a JSX element or JSX Fragment + * + * @param parser Parser object + * @param context Context masks + * @param inJSXChild + * @param start + * @param line + * @param column + */ + +function parseJSXRootElementOrFragment( + parser: ParserState, + context: Context, + inJSXChild: 0 | 1, + start: number, + line: number, + column: number +): ESTree.JSXElement | ESTree.JSXFragment { + nextToken(parser, context); + + // JSX fragments + if (parser.token === Token.GreaterThan) { + return finishNode(parser, context, start, line, column, { + type: 'JSXFragment', + openingFragment: parseOpeningFragment(parser, context, start, line, column), + children: parseJSXChildren(parser, context), + closingFragment: parseJSXClosingFragment( + parser, + context, + inJSXChild, + parser.tokenPos, + parser.linePos, + parser.colPos + ) + }); + } + + let closingElement: ESTree.JSXClosingElement | null = null; + let children: ESTree.JSXChild[] = []; + + const openingElement: ESTree.JSXOpeningElement = parseJSXOpeningFragmentOrSelfCloseElement( + parser, + context, + inJSXChild, + start, + line, + column + ); + + if (!openingElement.selfClosing) { + children = parseJSXChildren(parser, context); + closingElement = parseJSXClosingElement( + parser, + context, + inJSXChild, + parser.tokenPos, + parser.linePos, + parser.colPos + ); + const close = isEqualTagName(closingElement.name); + if (isEqualTagName(openingElement.name) !== close) report(parser, Errors.ExpectedJSXClosingTag, close); + } + + return finishNode(parser, context, start, line, column, { + type: 'JSXElement', + children, + openingElement, + closingElement + }); +} + +/** + * Parses JSX opening fragment + * + * @param parser Parser object + * @param context Context masks + * @param start + * @param line + * @param column + */ +export function parseOpeningFragment( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.JSXOpeningFragment { + scanJSXToken(parser, context); + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningFragment' + }); +} + +/** + * Parses JSX Closing element + * + * @param parser Parser object + * @param context Context masks + * @param inJSXChild + * @param start + * @param line + * @param column + */ +function parseJSXClosingElement( + parser: ParserState, + context: Context, + inJSXChild: 0 | 1, + start: number, + line: number, + column: number +): ESTree.JSXClosingElement { + consume(parser, context, Token.JSXClose); + const name = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + if (inJSXChild) { + consume(parser, context, Token.GreaterThan); + } else { + parser.token = scanJSXToken(parser, context); + } + + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingElement', + name + }); +} + +/** + * Parses JSX closing fragment + * + * @param parser Parser object + * @param context Context masks + * @param inJSXChild + * @param start + * @param line + * @param column + */ +export function parseJSXClosingFragment( + parser: ParserState, + context: Context, + inJSXChild: 0 | 1, + start: number, + line: number, + column: number +): ESTree.JSXClosingFragment { + consume(parser, context, Token.JSXClose); + + if (inJSXChild) { + consume(parser, context, Token.GreaterThan); + } else { + consume(parser, context, Token.GreaterThan); + } + + return finishNode(parser, context, start, line, column, { + type: 'JSXClosingFragment' + }); +} + +/** + * Parses JSX children + * + * @param parser Parser object + * @param context Context masks + */ +export function parseJSXChildren(parser: ParserState, context: Context): ESTree.JSXChild[] { + const children: ESTree.JSXChild[] = []; + while (parser.token !== Token.JSXClose) { + parser.index = parser.tokenPos = parser.startPos; + parser.column = parser.colPos = parser.startColumn; + parser.line = parser.linePos = parser.startLine; + scanJSXToken(parser, context); + children.push(parseJSXChild(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return children; +} + +/** + * Parses a JSX child node + * + * @param parser Parser object + * @param context Context masks + * @param start + * @param line + * @param column + */ +function parseJSXChild(parser: ParserState, context: Context, start: number, line: number, column: number): any { + if (parser.token === Token.JSXText) return parseJSXText(parser, context, start, line, column); + if (parser.token === Token.LeftBrace) + return parseJSXExpressionContainer(parser, context, /*inJSXChild*/ 0, /* isAttr */ 0, start, line, column); + if (parser.token === Token.LessThan) + return parseJSXRootElementOrFragment(parser, context, /*inJSXChild*/ 0, start, line, column); + report(parser, Errors.Unexpected); +} + +/** + * Parses JSX Text + * + * @param parser Parser object + * @param context Context masks + * @param start + * @param line + * @param column + */ +export function parseJSXText( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.JSXText { + scanJSXToken(parser, context); + + const node = { + type: 'JSXText', + value: parser.tokenValue as string + } as ESTree.JSXText; + + if (context & Context.OptionsRaw) { + node.raw = parser.tokenRaw; + } + + return finishNode(parser, context, start, line, column, node); +} + +/** + * Parses either a JSX element, JSX Fragment or JSX self close element + * + * @param parser Parser object + * @param context Context masks + * @param inJSXChild + * @param start + * @param line + * @param column + */ +function parseJSXOpeningFragmentOrSelfCloseElement( + parser: ParserState, + context: Context, + inJSXChild: 0 | 1, + start: number, + line: number, + column: number +): ESTree.JSXOpeningElement { + if ((parser.token & Token.IsIdentifier) !== Token.IsIdentifier && (parser.token & Token.Keyword) !== Token.Keyword) + report(parser, Errors.Unexpected); + + const tagName = parseJSXElementName(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + const attributes = parseJSXAttributes(parser, context); + const selfClosing = parser.token === Token.Divide; + + if (parser.token === Token.GreaterThan) { + scanJSXToken(parser, context); + } else { + consume(parser, context, Token.Divide); + if (inJSXChild) { + consume(parser, context, Token.GreaterThan); + } else { + scanJSXToken(parser, context); + } + } + + return finishNode(parser, context, start, line, column, { + type: 'JSXOpeningElement', + name: tagName, + attributes, + selfClosing + }); +} + +/** + * Parses JSX element name + * + * @param parser Parser object + * @param context Context masks + * @param start + * @param line + * @param column + */ +function parseJSXElementName( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.JSXIdentifier | ESTree.JSXMemberExpression | ESTree.JSXNamespacedName { + scanJSXIdentifier(parser); + + let key: ESTree.JSXIdentifier | ESTree.JSXMemberExpression = parseJSXIdentifier(parser, context, start, line, column); + + // Namespace + if (parser.token === Token.Colon) return parseJSXNamespacedName(parser, context, key, start, line, column); + + // Member expression + while (consumeOpt(parser, context, Token.Period)) { + scanJSXIdentifier(parser); + key = parseJSXMemberExpression(parser, context, key, start, line, column); + } + return key; +} + +/** + * Parses JSX member expression + * + * @param parser Parser object + * @param context Context masks + * @param start + * @param line + * @param column + */ +export function parseJSXMemberExpression( + parser: ParserState, + context: Context, + object: ESTree.JSXIdentifier | ESTree.JSXMemberExpression, + start: number, + line: number, + column: number +): ESTree.JSXMemberExpression { + const property = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXMemberExpression', + object, + property + }); +} + +/** + * Parses JSX attributes + * + * @param parser Parser object + * @param context Context masks + * @param start + * @param line + * @param column + */ +export function parseJSXAttributes( + parser: ParserState, + context: Context +): (ESTree.JSXAttribute | ESTree.JSXSpreadAttribute)[] { + const attributes: (ESTree.JSXAttribute | ESTree.JSXSpreadAttribute)[] = []; + while (parser.token !== Token.Divide && parser.token !== Token.GreaterThan && parser.token !== Token.EOF) { + attributes.push(parseJsxAttribute(parser, context, parser.tokenPos, parser.linePos, parser.colPos)); + } + return attributes; +} + +/** + * Parses JSX Spread attribute + * + * @param parser Parser object + * @param context Context masks + * @param start + * @param line + * @param column + */ +export function parseJSXSpreadAttribute( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.JSXSpreadAttribute { + nextToken(parser, context); // skips: '{' + consume(parser, context, Token.Ellipsis); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, Token.RightBrace); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadAttribute', + argument: expression + }); +} + +/** + * Parses JSX attribute + * + * @param parser Parser object + * @param context Context masks + * @param start + * @param line + * @param column + */ +function parseJsxAttribute( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.JSXAttribute | ESTree.JSXSpreadAttribute { + if (parser.token === Token.LeftBrace) return parseJSXSpreadAttribute(parser, context, start, line, column); + scanJSXIdentifier(parser); + let value: ESTree.JSXAttributeValue | null = null; + let name: ESTree.JSXNamespacedName | ESTree.JSXIdentifier = parseJSXIdentifier(parser, context, start, line, column); + + if (parser.token === Token.Colon) { + name = parseJSXNamespacedName(parser, context, name, start, line, column); + } + + // HTML empty attribute + if (parser.token === Token.Assign) { + const token = scanJSXAttributeValue(parser, context); + const { tokenPos, linePos, colPos } = parser; + switch (token) { + case Token.StringLiteral: + value = parseLiteral(parser, context); + break; + case Token.LessThan: + value = parseJSXRootElementOrFragment(parser, context, /*inJSXChild*/ 1, tokenPos, linePos, colPos); + break; + case Token.LeftBrace: + value = parseJSXExpressionContainer(parser, context, 1, 1, tokenPos, linePos, colPos); + break; + default: + report(parser, Errors.InvalidJSXAttributeValue); + } + } + + return finishNode(parser, context, start, line, column, { + type: 'JSXAttribute', + value, + name + }); +} + +/** + * Parses JSX namespace name + * + * @param parser Parser object + * @param context Context masks + * @param namespace + * @param start + * @param line + * @param column + */ + +function parseJSXNamespacedName( + parser: ParserState, + context: Context, + namespace: ESTree.JSXIdentifier | ESTree.JSXMemberExpression, + start: number, + line: number, + column: number +): ESTree.JSXNamespacedName { + consume(parser, context, Token.Colon); + const name = parseJSXIdentifier(parser, context, parser.tokenPos, parser.linePos, parser.colPos); + return finishNode(parser, context, start, line, column, { + type: 'JSXNamespacedName', + namespace, + name + }); +} + +/** + * Parses JSX Expression container + * + * @param parser Parser object + * @param context Context masks + * @param inJSXChild + * @param start + * @param line + * @param column + */ +function parseJSXExpressionContainer( + parser: ParserState, + context: Context, + inJSXChild: 0 | 1, + isAttr: 0 | 1, + start: number, + line: number, + column: number +): ESTree.JSXExpressionContainer | ESTree.JSXSpreadChild { + nextToken(parser, context); + const { tokenPos, linePos, colPos } = parser; + if (parser.token === Token.Ellipsis) return parseJSXSpreadChild(parser, context, tokenPos, linePos, colPos); + + let expression: ESTree.Expression | ESTree.JSXEmptyExpression | null = null; + + if (parser.token === Token.RightBrace) { + // JSX attributes must only be assigned a non-empty 'expression' + if (isAttr) report(parser, Errors.InvalidNonEmptyJSXExpr); + expression = parseJSXEmptyExpression(parser, context, parser.startPos, parser.startLine, parser.startColumn); + } else { + expression = parseExpression(parser, context, 1, 0, 0, tokenPos, linePos, colPos); + } + if (inJSXChild) { + consume(parser, context, Token.RightBrace); + } else { + scanJSXToken(parser, context); + } + + return finishNode(parser, context, start, line, column, { + type: 'JSXExpressionContainer', + expression + }); +} + +/** + * Parses JSX spread child + * + * @param parser Parser object + * @param context Context masks + * @param start + * @param line + * @param column + */ +function parseJSXSpreadChild( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.JSXSpreadChild { + consume(parser, context, Token.Ellipsis); + const expression = parseExpression(parser, context, 1, 0, 0, parser.tokenPos, parser.linePos, parser.colPos); + consume(parser, context, Token.RightBrace); + return finishNode(parser, context, start, line, column, { + type: 'JSXSpreadChild', + expression + }); +} + +/** + * Parses JSX empty expression + * + * @param parser Parser object + * @param context Context masks + * @param start + * @param line + * @param column + */ +function parseJSXEmptyExpression( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.JSXEmptyExpression { + // Since " }" is treated as single token, we have to artificially break + // it into " " and "}". + // Move token start from beginning of whitespace(s) to beginning of "}", + // so JSXEmptyExpression can have correct end loc. + parser.startPos = parser.tokenPos; + parser.startLine = parser.linePos; + parser.startColumn = parser.colPos; + return finishNode(parser, context, start, line, column, { + type: 'JSXEmptyExpression' + }); +} + +/** + * Parses JSX Identifier + * + * @param parser Parser object + * @param context Context masks + * @param start + * @param line + * @param column + */ +export function parseJSXIdentifier( + parser: ParserState, + context: Context, + start: number, + line: number, + column: number +): ESTree.JSXIdentifier { + const { tokenValue } = parser; + nextToken(parser, context); + + return finishNode(parser, context, start, line, column, { + type: 'JSXIdentifier', + name: tokenValue + }); +} diff --git a/node_modules/meriyah/src/token.ts b/node_modules/meriyah/src/token.ts new file mode 100644 index 0000000..0527d81 --- /dev/null +++ b/node_modules/meriyah/src/token.ts @@ -0,0 +1,307 @@ +export const enum Token { + Type = 0xFF, + + /* Precedence for binary operators (always positive) */ + PrecStart = 8, + Precedence = 15 << PrecStart, // 8-11 + + /* Attribute names */ + Keyword = 1 << 12, + Contextual = 1 << 13 | Keyword, + Reserved = 1 << 14 | Keyword, + FutureReserved = 1 << 15 | Keyword, + + IsExpressionStart = 1 << 16, + IsIdentifier = 1 << 17 | Contextual, + IsInOrOf = 1 << 18, // 'in' or 'of' + IsLogical = 1 << 19, + IsAutoSemicolon = 1 << 20, + IsPatternStart = 1 << 21, // Start of pattern, '[' or '{' + IsAssignOp = 1 << 22, + IsBinaryOp = 1 << 23 | IsExpressionStart, + IsUnaryOp = 1 << 24 | IsExpressionStart, + IsUpdateOp = 1 << 25 | IsExpressionStart, + IsMemberOrCallExpression = 1 << 26, + IsStringOrNumber = 1 << 27, + IsCoalesc = 1 << 28, + IsEvalOrArguments = 1 << 29 | IsExpressionStart | IsIdentifier, + IsClassField = 1 << 30, + + // Note: 1 << 31... turns to negative + + /* Node types */ + EOF = 0 | IsAutoSemicolon, + + /* Constants/Bindings */ + Identifier = 1 | IsExpressionStart | IsIdentifier, + NumericLiteral = 2 | IsExpressionStart | IsStringOrNumber, + StringLiteral = 3 | IsExpressionStart | IsStringOrNumber, + RegularExpression = 4 | IsExpressionStart, + FalseKeyword = 5 | Reserved | IsExpressionStart, + TrueKeyword = 6 | Reserved | IsExpressionStart, + NullKeyword = 7 | Reserved | IsExpressionStart, + + /* Template nodes */ + TemplateContinuation = 8 | IsExpressionStart | IsMemberOrCallExpression, + TemplateSpan = 9 | IsExpressionStart | IsMemberOrCallExpression, + + /* Punctuators */ + Arrow = 10, // => + LeftParen = 11 | IsExpressionStart | IsMemberOrCallExpression, // ( + LeftBrace = 12 | IsExpressionStart | IsPatternStart, // { + Period = 13 | IsMemberOrCallExpression, // . + Ellipsis = 14, // ... + RightBrace = 15 | IsAutoSemicolon | IsClassField, // } + RightParen = 16, // ) + Semicolon = 17 | IsAutoSemicolon | IsClassField, // ; + Comma = 18, // , + LeftBracket = 19 | IsExpressionStart | IsPatternStart | IsMemberOrCallExpression, // [ + RightBracket = 20, // ] + Colon = 21, // : + QuestionMark = 22, // ? + SingleQuote = 23, // ' + DoubleQuote = 24, // " + JSXClose = 25, // + + /* Update operators */ + Increment = 27 | IsUpdateOp, // ++ + Decrement = 28 | IsUpdateOp, // -- + + /* Assign operators */ + Assign = 29 | IsAssignOp | IsClassField, // = + ShiftLeftAssign = 30 | IsAssignOp, // <<= + ShiftRightAssign = 31 | IsAssignOp, // >>= + LogicalShiftRightAssign = 32 | IsAssignOp, // >>>= + ExponentiateAssign = 33 | IsAssignOp, // **= + AddAssign = 34 | IsAssignOp, // += + SubtractAssign = 35 | IsAssignOp, // -= + MultiplyAssign = 36 | IsAssignOp, // *= + DivideAssign = 37 | IsAssignOp | IsExpressionStart, // /= + ModuloAssign = 38 | IsAssignOp, // %= + BitwiseXorAssign = 39 | IsAssignOp, // ^= + BitwiseOrAssign = 40 | IsAssignOp, // |= + BitwiseAndAssign = 41 | IsAssignOp, // &= + LogicalOrAssign = 42 | IsAssignOp, // ||= + LogicalAndAssign = 43 | IsAssignOp, // &&= + CoalesceAssign = 44 | IsAssignOp, // ??= + + /* Unary/binary operators */ + TypeofKeyword = 45 | IsUnaryOp | Reserved, + DeleteKeyword = 46 | IsUnaryOp | Reserved, + VoidKeyword = 47 | IsUnaryOp | Reserved, + Negate = 48 | IsUnaryOp, // ! + Complement = 49 | IsUnaryOp, // ~ + Add = 50 | IsUnaryOp | IsBinaryOp | 10 << PrecStart, // + + Subtract = 51 | IsUnaryOp | IsBinaryOp | 10 << PrecStart, // - + InKeyword = 52 | IsBinaryOp | 8 << PrecStart | Reserved | IsInOrOf, + InstanceofKeyword = 53 | IsBinaryOp | 8 << PrecStart | Reserved, + Multiply = 54 | IsBinaryOp | 11 << PrecStart, // * + Modulo = 55 | IsBinaryOp | 11 << PrecStart, // % + Divide = 56 | IsBinaryOp | IsExpressionStart | 11 << PrecStart, // / + Exponentiate = 57 | IsBinaryOp | 12 << PrecStart, // ** + LogicalAnd = 58 | IsBinaryOp | IsLogical | 3 << PrecStart, // && + LogicalOr = 59 | IsBinaryOp | IsLogical | 2 << PrecStart, // || + StrictEqual = 60 | IsBinaryOp | 7 << PrecStart, // === + StrictNotEqual = 61 | IsBinaryOp | 7 << PrecStart, // !== + LooseEqual = 62 | IsBinaryOp | 7 << PrecStart, // == + LooseNotEqual = 63 | IsBinaryOp | 7 << PrecStart, // != + LessThanOrEqual = 64 | IsBinaryOp | 7 << PrecStart, // <= + GreaterThanOrEqual = 65 | IsBinaryOp | 7 << PrecStart, // >= + LessThan = 66 | IsBinaryOp | IsExpressionStart | 8 << PrecStart, // < + GreaterThan = 67 | IsBinaryOp | 8 << PrecStart, // > + ShiftLeft = 68 | IsBinaryOp | 9 << PrecStart, // << + ShiftRight = 69 | IsBinaryOp | 9 << PrecStart, // >> + LogicalShiftRight = 70 | IsBinaryOp | 9 << PrecStart, // >>> + BitwiseAnd = 71 | IsBinaryOp | 6 << PrecStart, // & + BitwiseOr = 72 | IsBinaryOp | 4 << PrecStart, // | + BitwiseXor = 73 | IsBinaryOp | 5 << PrecStart, // ^ + + /* Variable declaration kinds */ + VarKeyword = 74 | IsExpressionStart | Reserved, + LetKeyword = 75 | IsExpressionStart | FutureReserved | IsIdentifier, + ConstKeyword = 76 | IsExpressionStart | Reserved, + + /* Other reserved words */ + BreakKeyword = 77 | Reserved, + CaseKeyword = 78 | Reserved, + CatchKeyword = 79 | Reserved, + ClassKeyword = 80 | IsExpressionStart | Reserved, + ContinueKeyword = 81 | Reserved, + DebuggerKeyword = 82 | Reserved, + DefaultKeyword = 83 | Reserved, + DoKeyword = 84 | Reserved, + ElseKeyword = 85 | Reserved, + ExportKeyword = 86 | Reserved, + ExtendsKeyword = 87 | Reserved, + FinallyKeyword = 88 | Reserved, + ForKeyword = 89 | Reserved, + FunctionKeyword = 90 | IsExpressionStart | Reserved, + IfKeyword = 91 | Reserved, + ImportKeyword = 92 | IsExpressionStart | Reserved, + NewKeyword = 93 | IsExpressionStart | Reserved, + ReturnKeyword = 94 | Reserved, + SuperKeyword = 95 | IsExpressionStart | Reserved, + SwitchKeyword = 96 | IsExpressionStart | Reserved, + ThisKeyword = 97 | IsExpressionStart | Reserved, + ThrowKeyword = 98 | IsExpressionStart | Reserved, + TryKeyword = 99 | Reserved, + WhileKeyword = 100 | Reserved, + WithKeyword = 101 | Reserved, + + /* Strict mode reserved words */ + ImplementsKeyword = 102 | FutureReserved, + InterfaceKeyword = 103 | FutureReserved, + PackageKeyword = 104 | FutureReserved, + PrivateKeyword = 105 | FutureReserved, + ProtectedKeyword = 106 | FutureReserved, + PublicKeyword = 107 | FutureReserved, + StaticKeyword = 108 | FutureReserved, + YieldKeyword = 109 | FutureReserved | IsExpressionStart | IsIdentifier, + + /* Contextual keywords */ + AsKeyword = 110 | Contextual | IsExpressionStart, + AsyncKeyword = 111 | Contextual | IsIdentifier | IsExpressionStart, + AwaitKeyword = 112 | Contextual | IsExpressionStart | IsIdentifier, + ConstructorKeyword = 113 | Contextual, + GetKeyword = 114 | Contextual, + SetKeyword = 115 | Contextual, + FromKeyword = 116 | Contextual, + OfKeyword = 117 | Contextual | IsInOrOf, + EnumKeyword = 118 | Reserved | IsExpressionStart, + + Eval = 119 | IsEvalOrArguments, + Arguments = 120 | IsEvalOrArguments, + + EscapedReserved = 121, + EscapedFutureReserved = 122, + AnyIdentifier = 123 | IsIdentifier, + + // Stage #3 proposals + PrivateIdentifier = 124, + BigIntLiteral = 125 | IsExpressionStart | IsStringOrNumber, + Coalesce = 126 | IsBinaryOp | IsCoalesc | 1 << PrecStart, // ?? + QuestionMarkPeriod = 127 | IsMemberOrCallExpression, // ?. + + // Others + WhiteSpace = 128, + Illegal = 129, + CarriageReturn = 130, + PrivateField = 131, + Template = 132, + Decorator = 133, + Target = 134 | IsIdentifier, + Meta = 135 | IsIdentifier, + LineFeed = 136, + EscapedIdentifier = 137, + + // JSX + JSXText = 138, +} + +export const KeywordDescTable = [ + 'end of source', + + /* Constants/Bindings */ + 'identifier', 'number', 'string', 'regular expression', + 'false', 'true', 'null', + + /* Template nodes */ + 'template continuation', 'template tail', + + /* Punctuators */ + '=>', '(', '{', '.', '...', '}', ')', ';', ',', '[', ']', ':', '?', '\'', '"', '', + + /* Update operators */ + '++', '--', + + /* Assign operators */ + '=', '<<=', '>>=', '>>>=', '**=', '+=', '-=', '*=', '/=', '%=', '^=', '|=', + '&=', '||=', '&&=', '??=', + + /* Unary/binary operators */ + 'typeof', 'delete', 'void', '!', '~', '+', '-', 'in', 'instanceof', '*', '%', '/', '**', '&&', + '||', '===', '!==', '==', '!=', '<=', '>=', '<', '>', '<<', '>>', '>>>', '&', '|', '^', + + /* Variable declaration kinds */ + 'var', 'let', 'const', + + /* Other reserved words */ + 'break', 'case', 'catch', 'class', 'continue', 'debugger', 'default', 'do', 'else', 'export', + 'extends', 'finally', 'for', 'function', 'if', 'import', 'new', 'return', 'super', 'switch', + 'this', 'throw', 'try', 'while', 'with', + + /* Strict mode reserved words */ + 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield', + + /* Contextual keywords */ + 'as', 'async', 'await', 'constructor', 'get', 'set', 'from', 'of', + + /* Others */ + 'enum', 'eval', 'arguments', 'escaped keyword', 'escaped future reserved keyword', 'reserved if strict', '#', + + 'BigIntLiteral', '??', '?.', 'WhiteSpace', 'Illegal', 'LineTerminator', 'PrivateField', + + 'Template', '@', 'target', 'meta', 'LineFeed', 'Escaped', 'JSXText' +]; + +// Normal object is much faster than Object.create(null), even with typeof check to avoid Object.prototype interference +export const descKeywordTable: { [key: string]: Token } = Object.create(null, { + this: { value: Token.ThisKeyword }, + function: { value: Token.FunctionKeyword }, + if: { value: Token.IfKeyword }, + return: { value: Token.ReturnKeyword }, + var: { value: Token.VarKeyword }, + else: { value: Token.ElseKeyword }, + for: { value: Token.ForKeyword }, + new: { value: Token.NewKeyword }, + in: { value: Token.InKeyword }, + typeof: { value: Token.TypeofKeyword }, + while: { value: Token.WhileKeyword }, + case: { value: Token.CaseKeyword }, + break: { value: Token.BreakKeyword }, + try: { value: Token.TryKeyword }, + catch: { value: Token.CatchKeyword }, + delete: { value: Token.DeleteKeyword }, + throw: { value: Token.ThrowKeyword }, + switch: { value: Token.SwitchKeyword }, + continue: { value: Token.ContinueKeyword }, + default: { value: Token.DefaultKeyword }, + instanceof: { value: Token.InstanceofKeyword }, + do: { value: Token.DoKeyword }, + void: { value: Token.VoidKeyword }, + finally: { value: Token.FinallyKeyword }, + async: { value: Token.AsyncKeyword }, + await: { value: Token.AwaitKeyword }, + class: { value: Token.ClassKeyword }, + const: { value: Token.ConstKeyword }, + constructor: { value: Token.ConstructorKeyword }, + debugger: { value: Token.DebuggerKeyword }, + export: { value: Token.ExportKeyword }, + extends: { value: Token.ExtendsKeyword }, + false: { value: Token.FalseKeyword }, + from: { value: Token.FromKeyword }, + get: { value: Token.GetKeyword }, + implements: { value: Token.ImplementsKeyword }, + import: { value: Token.ImportKeyword }, + interface: { value: Token.InterfaceKeyword }, + let: { value: Token.LetKeyword }, + null: { value: Token.NullKeyword }, + of: { value: Token.OfKeyword }, + package: { value: Token.PackageKeyword }, + private: { value: Token.PrivateKeyword }, + protected: { value: Token.ProtectedKeyword }, + public: { value: Token.PublicKeyword }, + set: { value: Token.SetKeyword }, + static: { value: Token.StaticKeyword }, + super: { value: Token.SuperKeyword }, + true: { value: Token.TrueKeyword }, + with: { value: Token.WithKeyword }, + yield: { value: Token.YieldKeyword }, + enum: { value: Token.EnumKeyword }, + eval: { value: Token.Eval }, + as: { value: Token.AsKeyword }, + arguments: { value: Token.Arguments }, + target: { value: Token.Target }, + meta: { value: Token.Meta }, +}); diff --git a/node_modules/meriyah/src/unicode.ts b/node_modules/meriyah/src/unicode.ts new file mode 100644 index 0000000..0e9083a --- /dev/null +++ b/node_modules/meriyah/src/unicode.ts @@ -0,0 +1,36 @@ +// Unicode v. 13 support +/*eslint-disable*/ + +function isIDContinue(code:number) { + return (unicodeLookup[(code >>> 5) + 0] >>> code & 31 & 1) !== 0 +} +function isIDStart(code:number) { + return (unicodeLookup[(code >>> 5) + 34816] >>> code & 31 & 1) !== 0 +} +function mustEscape(code:number) { + return (unicodeLookup[(code >>> 5) + 69632] >>> code & 31 & 1) !== 0 +} +export const unicodeLookup = ((compressed, lookup) => { + const result = new Uint32Array(104448) + let index = 0; + let subIndex = 0 + while (index < 3540) { + const inst = compressed[index++] + if (inst < 0) { + subIndex -= inst + } else { + let code = compressed[index++] + if (inst & 2) code = lookup[code] + if (inst & 1) { + result.fill(code, subIndex, subIndex += compressed[index++]) + } else { + result[subIndex++] = code + } + } + } + return result +})( + [-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828000,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132000,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128], + [4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902000,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532] +) +export {isIDContinue,isIDStart,mustEscape}; -- cgit