Ignore:
Timestamp:
11/25/21 22:08:24 (3 years ago)
Author:
Ema <ema_spirova@…>
Branches:
master
Children:
8d391a1
Parents:
59329aa
Message:

primeNG components

Location:
trip-planner-front/node_modules/acorn/dist
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trip-planner-front/node_modules/acorn/dist/acorn.js

    r59329aa re29cc2e  
    22  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
    33  typeof define === 'function' && define.amd ? define(['exports'], factory) :
    4   (global = global || self, factory(global.acorn = {}));
    5 }(this, (function (exports) { 'use strict';
     4  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.acorn = {}));
     5})(this, (function (exports) { 'use strict';
    66
    77  // Reserved word lists for various dialects of the language
     
    1919  var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this";
    2020
    21   var keywords = {
     21  var keywords$1 = {
    2222    5: ecma5AndLessKeywords,
    2323    "5module": ecma5AndLessKeywords + " export import",
     
    138138  // Map keyword names to token types.
    139139
    140   var keywords$1 = {};
     140  var keywords = {};
    141141
    142142  // Succinct definitions of keyword token types
     
    145145
    146146    options.keyword = name;
    147     return keywords$1[name] = new TokenType(name, options)
     147    return keywords[name] = new TokenType(name, options)
    148148  }
    149149
    150   var types = {
     150  var types$1 = {
    151151    num: new TokenType("num", startsExpr),
    152152    regexp: new TokenType("regexp", startsExpr),
     
    490490    this.options = options = getOptions(options);
    491491    this.sourceFile = options.sourceFile;
    492     this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]);
     492    this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]);
    493493    var reserved = "";
    494494    if (options.allowReserved !== true) {
     
    521521    // Properties of the current token:
    522522    // Its type
    523     this.type = types.eof;
     523    this.type = types$1.eof;
    524524    // For tokens that include more information than their type, the value
    525525    this.value = null;
     
    581581
    582582  prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };
     583
    583584  prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit };
     585
    584586  prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit };
     587
    585588  prototypeAccessors.canAwait.get = function () {
    586589    for (var i = this.scopeStack.length - 1; i >= 0; i--) {
     
    591594    return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction
    592595  };
     596
    593597  prototypeAccessors.allowSuper.get = function () {
    594598    var ref = this.currentThisScope();
     
    597601    return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod
    598602  };
     603
    599604  prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };
     605
    600606  prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };
     607
    601608  prototypeAccessors.allowNewDotTarget.get = function () {
    602609    var ref = this.currentThisScope();
     
    605612    return (flags & (SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK)) > 0 || inClassFieldInit
    606613  };
     614
    607615  prototypeAccessors.inClassStaticBlock.get = function () {
    608616    return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0
     
    634642  Object.defineProperties( Parser.prototype, prototypeAccessors );
    635643
    636   var pp = Parser.prototype;
     644  var pp$9 = Parser.prototype;
    637645
    638646  // ## Parser utilities
    639647
    640648  var literal = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;
    641   pp.strictDirective = function(start) {
     649  pp$9.strictDirective = function(start) {
    642650    for (;;) {
    643651      // Try to find string literal.
     
    667675  // type, and if yes, consumes it as a side effect.
    668676
    669   pp.eat = function(type) {
     677  pp$9.eat = function(type) {
    670678    if (this.type === type) {
    671679      this.next();
     
    678686  // Tests whether parsed token is a contextual keyword.
    679687
    680   pp.isContextual = function(name) {
    681     return this.type === types.name && this.value === name && !this.containsEsc
     688  pp$9.isContextual = function(name) {
     689    return this.type === types$1.name && this.value === name && !this.containsEsc
    682690  };
    683691
    684692  // Consumes contextual keyword if possible.
    685693
    686   pp.eatContextual = function(name) {
     694  pp$9.eatContextual = function(name) {
    687695    if (!this.isContextual(name)) { return false }
    688696    this.next();
     
    692700  // Asserts that following token is given contextual keyword.
    693701
    694   pp.expectContextual = function(name) {
     702  pp$9.expectContextual = function(name) {
    695703    if (!this.eatContextual(name)) { this.unexpected(); }
    696704  };
     
    698706  // Test whether a semicolon can be inserted at the current position.
    699707
    700   pp.canInsertSemicolon = function() {
    701     return this.type === types.eof ||
    702       this.type === types.braceR ||
     708  pp$9.canInsertSemicolon = function() {
     709    return this.type === types$1.eof ||
     710      this.type === types$1.braceR ||
    703711      lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
    704712  };
    705713
    706   pp.insertSemicolon = function() {
     714  pp$9.insertSemicolon = function() {
    707715    if (this.canInsertSemicolon()) {
    708716      if (this.options.onInsertedSemicolon)
     
    715723  // pretend that there is a semicolon at this position.
    716724
    717   pp.semicolon = function() {
    718     if (!this.eat(types.semi) && !this.insertSemicolon()) { this.unexpected(); }
    719   };
    720 
    721   pp.afterTrailingComma = function(tokType, notNext) {
     725  pp$9.semicolon = function() {
     726    if (!this.eat(types$1.semi) && !this.insertSemicolon()) { this.unexpected(); }
     727  };
     728
     729  pp$9.afterTrailingComma = function(tokType, notNext) {
    722730    if (this.type === tokType) {
    723731      if (this.options.onTrailingComma)
     
    732740  // raise an unexpected token error.
    733741
    734   pp.expect = function(type) {
     742  pp$9.expect = function(type) {
    735743    this.eat(type) || this.unexpected();
    736744  };
     
    738746  // Raise an unexpected token error.
    739747
    740   pp.unexpected = function(pos) {
     748  pp$9.unexpected = function(pos) {
    741749    this.raise(pos != null ? pos : this.start, "Unexpected token");
    742750  };
     
    751759  }
    752760
    753   pp.checkPatternErrors = function(refDestructuringErrors, isAssign) {
     761  pp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) {
    754762    if (!refDestructuringErrors) { return }
    755763    if (refDestructuringErrors.trailingComma > -1)
     
    759767  };
    760768
    761   pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {
     769  pp$9.checkExpressionErrors = function(refDestructuringErrors, andThrow) {
    762770    if (!refDestructuringErrors) { return false }
    763771    var shorthandAssign = refDestructuringErrors.shorthandAssign;
     
    770778  };
    771779
    772   pp.checkYieldAwaitInDefaultParams = function() {
     780  pp$9.checkYieldAwaitInDefaultParams = function() {
    773781    if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))
    774782      { this.raise(this.yieldPos, "Yield expression cannot be a default value"); }
     
    777785  };
    778786
    779   pp.isSimpleAssignTarget = function(expr) {
     787  pp$9.isSimpleAssignTarget = function(expr) {
    780788    if (expr.type === "ParenthesizedExpression")
    781789      { return this.isSimpleAssignTarget(expr.expression) }
     
    783791  };
    784792
    785   var pp$1 = Parser.prototype;
     793  var pp$8 = Parser.prototype;
    786794
    787795  // ### Statement parsing
     
    792800  // to its body instead of creating a new node.
    793801
    794   pp$1.parseTopLevel = function(node) {
     802  pp$8.parseTopLevel = function(node) {
    795803    var exports = Object.create(null);
    796804    if (!node.body) { node.body = []; }
    797     while (this.type !== types.eof) {
     805    while (this.type !== types$1.eof) {
    798806      var stmt = this.parseStatement(null, true, exports);
    799807      node.body.push(stmt);
     
    814822  var loopLabel = {kind: "loop"}, switchLabel = {kind: "switch"};
    815823
    816   pp$1.isLet = function(context) {
     824  pp$8.isLet = function(context) {
    817825    if (this.options.ecmaVersion < 6 || !this.isContextual("let")) { return false }
    818826    skipWhiteSpace.lastIndex = this.pos;
     
    840848  // - 'async /*foo*/ function' is OK.
    841849  // - 'async /*\n*/ function' is invalid.
    842   pp$1.isAsyncFunction = function() {
     850  pp$8.isAsyncFunction = function() {
    843851    if (this.options.ecmaVersion < 8 || !this.isContextual("async"))
    844852      { return false }
     
    860868  // does not help.
    861869
    862   pp$1.parseStatement = function(context, topLevel, exports) {
     870  pp$8.parseStatement = function(context, topLevel, exports) {
    863871    var starttype = this.type, node = this.startNode(), kind;
    864872
    865873    if (this.isLet(context)) {
    866       starttype = types._var;
     874      starttype = types$1._var;
    867875      kind = "let";
    868876    }
     
    873881
    874882    switch (starttype) {
    875     case types._break: case types._continue: return this.parseBreakContinueStatement(node, starttype.keyword)
    876     case types._debugger: return this.parseDebuggerStatement(node)
    877     case types._do: return this.parseDoStatement(node)
    878     case types._for: return this.parseForStatement(node)
    879     case types._function:
     883    case types$1._break: case types$1._continue: return this.parseBreakContinueStatement(node, starttype.keyword)
     884    case types$1._debugger: return this.parseDebuggerStatement(node)
     885    case types$1._do: return this.parseDoStatement(node)
     886    case types$1._for: return this.parseForStatement(node)
     887    case types$1._function:
    880888      // Function as sole body of either an if statement or a labeled statement
    881889      // works, but not when it is part of a labeled statement that is the sole
     
    883891      if ((context && (this.strict || context !== "if" && context !== "label")) && this.options.ecmaVersion >= 6) { this.unexpected(); }
    884892      return this.parseFunctionStatement(node, false, !context)
    885     case types._class:
     893    case types$1._class:
    886894      if (context) { this.unexpected(); }
    887895      return this.parseClass(node, true)
    888     case types._if: return this.parseIfStatement(node)
    889     case types._return: return this.parseReturnStatement(node)
    890     case types._switch: return this.parseSwitchStatement(node)
    891     case types._throw: return this.parseThrowStatement(node)
    892     case types._try: return this.parseTryStatement(node)
    893     case types._const: case types._var:
     896    case types$1._if: return this.parseIfStatement(node)
     897    case types$1._return: return this.parseReturnStatement(node)
     898    case types$1._switch: return this.parseSwitchStatement(node)
     899    case types$1._throw: return this.parseThrowStatement(node)
     900    case types$1._try: return this.parseTryStatement(node)
     901    case types$1._const: case types$1._var:
    894902      kind = kind || this.value;
    895903      if (context && kind !== "var") { this.unexpected(); }
    896904      return this.parseVarStatement(node, kind)
    897     case types._while: return this.parseWhileStatement(node)
    898     case types._with: return this.parseWithStatement(node)
    899     case types.braceL: return this.parseBlock(true, node)
    900     case types.semi: return this.parseEmptyStatement(node)
    901     case types._export:
    902     case types._import:
    903       if (this.options.ecmaVersion > 10 && starttype === types._import) {
     905    case types$1._while: return this.parseWhileStatement(node)
     906    case types$1._with: return this.parseWithStatement(node)
     907    case types$1.braceL: return this.parseBlock(true, node)
     908    case types$1.semi: return this.parseEmptyStatement(node)
     909    case types$1._export:
     910    case types$1._import:
     911      if (this.options.ecmaVersion > 10 && starttype === types$1._import) {
    904912        skipWhiteSpace.lastIndex = this.pos;
    905913        var skip = skipWhiteSpace.exec(this.input);
     
    915923          { this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); }
    916924      }
    917       return starttype === types._import ? this.parseImport(node) : this.parseExport(node, exports)
     925      return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports)
    918926
    919927      // If the statement does not start with a statement keyword or a
     
    930938
    931939      var maybeName = this.value, expr = this.parseExpression();
    932       if (starttype === types.name && expr.type === "Identifier" && this.eat(types.colon))
     940      if (starttype === types$1.name && expr.type === "Identifier" && this.eat(types$1.colon))
    933941        { return this.parseLabeledStatement(node, maybeName, expr, context) }
    934942      else { return this.parseExpressionStatement(node, expr) }
     
    936944  };
    937945
    938   pp$1.parseBreakContinueStatement = function(node, keyword) {
     946  pp$8.parseBreakContinueStatement = function(node, keyword) {
    939947    var isBreak = keyword === "break";
    940948    this.next();
    941     if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; }
    942     else if (this.type !== types.name) { this.unexpected(); }
     949    if (this.eat(types$1.semi) || this.insertSemicolon()) { node.label = null; }
     950    else if (this.type !== types$1.name) { this.unexpected(); }
    943951    else {
    944952      node.label = this.parseIdent();
     
    960968  };
    961969
    962   pp$1.parseDebuggerStatement = function(node) {
     970  pp$8.parseDebuggerStatement = function(node) {
    963971    this.next();
    964972    this.semicolon();
     
    966974  };
    967975
    968   pp$1.parseDoStatement = function(node) {
     976  pp$8.parseDoStatement = function(node) {
    969977    this.next();
    970978    this.labels.push(loopLabel);
    971979    node.body = this.parseStatement("do");
    972980    this.labels.pop();
    973     this.expect(types._while);
     981    this.expect(types$1._while);
    974982    node.test = this.parseParenExpression();
    975983    if (this.options.ecmaVersion >= 6)
    976       { this.eat(types.semi); }
     984      { this.eat(types$1.semi); }
    977985    else
    978986      { this.semicolon(); }
     
    988996  // is a regular `for` loop.
    989997
    990   pp$1.parseForStatement = function(node) {
     998  pp$8.parseForStatement = function(node) {
    991999    this.next();
    9921000    var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await")) ? this.lastTokStart : -1;
    9931001    this.labels.push(loopLabel);
    9941002    this.enterScope(0);
    995     this.expect(types.parenL);
    996     if (this.type === types.semi) {
     1003    this.expect(types$1.parenL);
     1004    if (this.type === types$1.semi) {
    9971005      if (awaitAt > -1) { this.unexpected(awaitAt); }
    9981006      return this.parseFor(node, null)
    9991007    }
    10001008    var isLet = this.isLet();
    1001     if (this.type === types._var || this.type === types._const || isLet) {
     1009    if (this.type === types$1._var || this.type === types$1._const || isLet) {
    10021010      var init$1 = this.startNode(), kind = isLet ? "let" : this.value;
    10031011      this.next();
    10041012      this.parseVar(init$1, true, kind);
    10051013      this.finishNode(init$1, "VariableDeclaration");
    1006       if ((this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1) {
     1014      if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1) {
    10071015        if (this.options.ecmaVersion >= 9) {
    1008           if (this.type === types._in) {
     1016          if (this.type === types$1._in) {
    10091017            if (awaitAt > -1) { this.unexpected(awaitAt); }
    10101018          } else { node.await = awaitAt > -1; }
     
    10181026    var refDestructuringErrors = new DestructuringErrors;
    10191027    var init = this.parseExpression(awaitAt > -1 ? "await" : true, refDestructuringErrors);
    1020     if (this.type === types._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) {
     1028    if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) {
    10211029      if (this.options.ecmaVersion >= 9) {
    1022         if (this.type === types._in) {
     1030        if (this.type === types$1._in) {
    10231031          if (awaitAt > -1) { this.unexpected(awaitAt); }
    10241032        } else { node.await = awaitAt > -1; }
     
    10351043  };
    10361044
    1037   pp$1.parseFunctionStatement = function(node, isAsync, declarationPosition) {
     1045  pp$8.parseFunctionStatement = function(node, isAsync, declarationPosition) {
    10381046    this.next();
    10391047    return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)
    10401048  };
    10411049
    1042   pp$1.parseIfStatement = function(node) {
     1050  pp$8.parseIfStatement = function(node) {
    10431051    this.next();
    10441052    node.test = this.parseParenExpression();
    10451053    // allow function declarations in branches, but only in non-strict mode
    10461054    node.consequent = this.parseStatement("if");
    1047     node.alternate = this.eat(types._else) ? this.parseStatement("if") : null;
     1055    node.alternate = this.eat(types$1._else) ? this.parseStatement("if") : null;
    10481056    return this.finishNode(node, "IfStatement")
    10491057  };
    10501058
    1051   pp$1.parseReturnStatement = function(node) {
     1059  pp$8.parseReturnStatement = function(node) {
    10521060    if (!this.inFunction && !this.options.allowReturnOutsideFunction)
    10531061      { this.raise(this.start, "'return' outside of function"); }
     
    10581066    // possibility to insert one.
    10591067
    1060     if (this.eat(types.semi) || this.insertSemicolon()) { node.argument = null; }
     1068    if (this.eat(types$1.semi) || this.insertSemicolon()) { node.argument = null; }
    10611069    else { node.argument = this.parseExpression(); this.semicolon(); }
    10621070    return this.finishNode(node, "ReturnStatement")
    10631071  };
    10641072
    1065   pp$1.parseSwitchStatement = function(node) {
     1073  pp$8.parseSwitchStatement = function(node) {
    10661074    this.next();
    10671075    node.discriminant = this.parseParenExpression();
    10681076    node.cases = [];
    1069     this.expect(types.braceL);
     1077    this.expect(types$1.braceL);
    10701078    this.labels.push(switchLabel);
    10711079    this.enterScope(0);
     
    10761084
    10771085    var cur;
    1078     for (var sawDefault = false; this.type !== types.braceR;) {
    1079       if (this.type === types._case || this.type === types._default) {
    1080         var isCase = this.type === types._case;
     1086    for (var sawDefault = false; this.type !== types$1.braceR;) {
     1087      if (this.type === types$1._case || this.type === types$1._default) {
     1088        var isCase = this.type === types$1._case;
    10811089        if (cur) { this.finishNode(cur, "SwitchCase"); }
    10821090        node.cases.push(cur = this.startNode());
     
    10901098          cur.test = null;
    10911099        }
    1092         this.expect(types.colon);
     1100        this.expect(types$1.colon);
    10931101      } else {
    10941102        if (!cur) { this.unexpected(); }
     
    11031111  };
    11041112
    1105   pp$1.parseThrowStatement = function(node) {
     1113  pp$8.parseThrowStatement = function(node) {
    11061114    this.next();
    11071115    if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))
     
    11141122  // Reused empty array added for node fields that are always empty.
    11151123
    1116   var empty = [];
    1117 
    1118   pp$1.parseTryStatement = function(node) {
     1124  var empty$1 = [];
     1125
     1126  pp$8.parseTryStatement = function(node) {
    11191127    this.next();
    11201128    node.block = this.parseBlock();
    11211129    node.handler = null;
    1122     if (this.type === types._catch) {
     1130    if (this.type === types$1._catch) {
    11231131      var clause = this.startNode();
    11241132      this.next();
    1125       if (this.eat(types.parenL)) {
     1133      if (this.eat(types$1.parenL)) {
    11261134        clause.param = this.parseBindingAtom();
    11271135        var simple = clause.param.type === "Identifier";
    11281136        this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);
    11291137        this.checkLValPattern(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);
    1130         this.expect(types.parenR);
     1138        this.expect(types$1.parenR);
    11311139      } else {
    11321140        if (this.options.ecmaVersion < 10) { this.unexpected(); }
     
    11381146      node.handler = this.finishNode(clause, "CatchClause");
    11391147    }
    1140     node.finalizer = this.eat(types._finally) ? this.parseBlock() : null;
     1148    node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null;
    11411149    if (!node.handler && !node.finalizer)
    11421150      { this.raise(node.start, "Missing catch or finally clause"); }
     
    11441152  };
    11451153
    1146   pp$1.parseVarStatement = function(node, kind) {
     1154  pp$8.parseVarStatement = function(node, kind) {
    11471155    this.next();
    11481156    this.parseVar(node, false, kind);
     
    11511159  };
    11521160
    1153   pp$1.parseWhileStatement = function(node) {
     1161  pp$8.parseWhileStatement = function(node) {
    11541162    this.next();
    11551163    node.test = this.parseParenExpression();
     
    11601168  };
    11611169
    1162   pp$1.parseWithStatement = function(node) {
     1170  pp$8.parseWithStatement = function(node) {
    11631171    if (this.strict) { this.raise(this.start, "'with' in strict mode"); }
    11641172    this.next();
     
    11681176  };
    11691177
    1170   pp$1.parseEmptyStatement = function(node) {
     1178  pp$8.parseEmptyStatement = function(node) {
    11711179    this.next();
    11721180    return this.finishNode(node, "EmptyStatement")
    11731181  };
    11741182
    1175   pp$1.parseLabeledStatement = function(node, maybeName, expr, context) {
     1183  pp$8.parseLabeledStatement = function(node, maybeName, expr, context) {
    11761184    for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)
    11771185      {
     
    11811189        { this.raise(expr.start, "Label '" + maybeName + "' is already declared");
    11821190    } }
    1183     var kind = this.type.isLoop ? "loop" : this.type === types._switch ? "switch" : null;
     1191    var kind = this.type.isLoop ? "loop" : this.type === types$1._switch ? "switch" : null;
    11841192    for (var i = this.labels.length - 1; i >= 0; i--) {
    11851193      var label$1 = this.labels[i];
     
    11971205  };
    11981206
    1199   pp$1.parseExpressionStatement = function(node, expr) {
     1207  pp$8.parseExpressionStatement = function(node, expr) {
    12001208    node.expression = expr;
    12011209    this.semicolon();
     
    12071215  // function bodies).
    12081216
    1209   pp$1.parseBlock = function(createNewLexicalScope, node, exitStrict) {
     1217  pp$8.parseBlock = function(createNewLexicalScope, node, exitStrict) {
    12101218    if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;
    12111219    if ( node === void 0 ) node = this.startNode();
    12121220
    12131221    node.body = [];
    1214     this.expect(types.braceL);
     1222    this.expect(types$1.braceL);
    12151223    if (createNewLexicalScope) { this.enterScope(0); }
    1216     while (this.type !== types.braceR) {
     1224    while (this.type !== types$1.braceR) {
    12171225      var stmt = this.parseStatement(null);
    12181226      node.body.push(stmt);
     
    12281236  // expression.
    12291237
    1230   pp$1.parseFor = function(node, init) {
     1238  pp$8.parseFor = function(node, init) {
    12311239    node.init = init;
    1232     this.expect(types.semi);
    1233     node.test = this.type === types.semi ? null : this.parseExpression();
    1234     this.expect(types.semi);
    1235     node.update = this.type === types.parenR ? null : this.parseExpression();
    1236     this.expect(types.parenR);
     1240    this.expect(types$1.semi);
     1241    node.test = this.type === types$1.semi ? null : this.parseExpression();
     1242    this.expect(types$1.semi);
     1243    node.update = this.type === types$1.parenR ? null : this.parseExpression();
     1244    this.expect(types$1.parenR);
    12371245    node.body = this.parseStatement("for");
    12381246    this.exitScope();
     
    12441252  // same from parser's perspective.
    12451253
    1246   pp$1.parseForIn = function(node, init) {
    1247     var isForIn = this.type === types._in;
     1254  pp$8.parseForIn = function(node, init) {
     1255    var isForIn = this.type === types$1._in;
    12481256    this.next();
    12491257
     
    12661274    node.left = init;
    12671275    node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();
    1268     this.expect(types.parenR);
     1276    this.expect(types$1.parenR);
    12691277    node.body = this.parseStatement("for");
    12701278    this.exitScope();
     
    12751283  // Parse a list of variable declarations.
    12761284
    1277   pp$1.parseVar = function(node, isFor, kind) {
     1285  pp$8.parseVar = function(node, isFor, kind) {
    12781286    node.declarations = [];
    12791287    node.kind = kind;
     
    12811289      var decl = this.startNode();
    12821290      this.parseVarId(decl, kind);
    1283       if (this.eat(types.eq)) {
     1291      if (this.eat(types$1.eq)) {
    12841292        decl.init = this.parseMaybeAssign(isFor);
    1285       } else if (kind === "const" && !(this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) {
     1293      } else if (kind === "const" && !(this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) {
    12861294        this.unexpected();
    1287       } else if (decl.id.type !== "Identifier" && !(isFor && (this.type === types._in || this.isContextual("of")))) {
     1295      } else if (decl.id.type !== "Identifier" && !(isFor && (this.type === types$1._in || this.isContextual("of")))) {
    12881296        this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value");
    12891297      } else {
     
    12911299      }
    12921300      node.declarations.push(this.finishNode(decl, "VariableDeclarator"));
    1293       if (!this.eat(types.comma)) { break }
     1301      if (!this.eat(types$1.comma)) { break }
    12941302    }
    12951303    return node
    12961304  };
    12971305
    1298   pp$1.parseVarId = function(decl, kind) {
     1306  pp$8.parseVarId = function(decl, kind) {
    12991307    decl.id = this.parseBindingAtom();
    13001308    this.checkLValPattern(decl.id, kind === "var" ? BIND_VAR : BIND_LEXICAL, false);
     
    13071315
    13081316  // Remove `allowExpressionBody` for 7.0.0, as it is only called with false
    1309   pp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) {
     1317  pp$8.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) {
    13101318    this.initFunction(node);
    13111319    if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {
    1312       if (this.type === types.star && (statement & FUNC_HANGING_STATEMENT))
     1320      if (this.type === types$1.star && (statement & FUNC_HANGING_STATEMENT))
    13131321        { this.unexpected(); }
    1314       node.generator = this.eat(types.star);
     1322      node.generator = this.eat(types$1.star);
    13151323    }
    13161324    if (this.options.ecmaVersion >= 8)
     
    13181326
    13191327    if (statement & FUNC_STATEMENT) {
    1320       node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types.name ? null : this.parseIdent();
     1328      node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types$1.name ? null : this.parseIdent();
    13211329      if (node.id && !(statement & FUNC_HANGING_STATEMENT))
    13221330        // If it is a regular function declaration in sloppy mode, then it is
     
    13341342
    13351343    if (!(statement & FUNC_STATEMENT))
    1336       { node.id = this.type === types.name ? this.parseIdent() : null; }
     1344      { node.id = this.type === types$1.name ? this.parseIdent() : null; }
    13371345
    13381346    this.parseFunctionParams(node);
     
    13451353  };
    13461354
    1347   pp$1.parseFunctionParams = function(node) {
    1348     this.expect(types.parenL);
    1349     node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);
     1355  pp$8.parseFunctionParams = function(node) {
     1356    this.expect(types$1.parenL);
     1357    node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);
    13501358    this.checkYieldAwaitInDefaultParams();
    13511359  };
     
    13541362  // `isStatement` parameter).
    13551363
    1356   pp$1.parseClass = function(node, isStatement) {
     1364  pp$8.parseClass = function(node, isStatement) {
    13571365    this.next();
    13581366
     
    13681376    var hadConstructor = false;
    13691377    classBody.body = [];
    1370     this.expect(types.braceL);
    1371     while (this.type !== types.braceR) {
     1378    this.expect(types$1.braceL);
     1379    while (this.type !== types$1.braceR) {
    13721380      var element = this.parseClassElement(node.superClass !== null);
    13731381      if (element) {
     
    13881396  };
    13891397
    1390   pp$1.parseClassElement = function(constructorAllowsSuper) {
    1391     if (this.eat(types.semi)) { return null }
     1398  pp$8.parseClassElement = function(constructorAllowsSuper) {
     1399    if (this.eat(types$1.semi)) { return null }
    13921400
    13931401    var ecmaVersion = this.options.ecmaVersion;
     
    14011409    if (this.eatContextual("static")) {
    14021410      // Parse static init block
    1403       if (ecmaVersion >= 13 && this.eat(types.braceL)) {
     1411      if (ecmaVersion >= 13 && this.eat(types$1.braceL)) {
    14041412        this.parseClassStaticBlock(node);
    14051413        return node
    14061414      }
    1407       if (this.isClassElementNameStart() || this.type === types.star) {
     1415      if (this.isClassElementNameStart() || this.type === types$1.star) {
    14081416        isStatic = true;
    14091417      } else {
     
    14131421    node.static = isStatic;
    14141422    if (!keyName && ecmaVersion >= 8 && this.eatContextual("async")) {
    1415       if ((this.isClassElementNameStart() || this.type === types.star) && !this.canInsertSemicolon()) {
     1423      if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) {
    14161424        isAsync = true;
    14171425      } else {
     
    14191427      }
    14201428    }
    1421     if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types.star)) {
     1429    if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) {
    14221430      isGenerator = true;
    14231431    }
     
    14461454
    14471455    // Parse element value
    1448     if (ecmaVersion < 13 || this.type === types.parenL || kind !== "method" || isGenerator || isAsync) {
     1456    if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== "method" || isGenerator || isAsync) {
    14491457      var isConstructor = !node.static && checkKeyName(node, "constructor");
    14501458      var allowsDirectSuper = isConstructor && constructorAllowsSuper;
     
    14601468  };
    14611469
    1462   pp$1.isClassElementNameStart = function() {
     1470  pp$8.isClassElementNameStart = function() {
    14631471    return (
    1464       this.type === types.name ||
    1465       this.type === types.privateId ||
    1466       this.type === types.num ||
    1467       this.type === types.string ||
    1468       this.type === types.bracketL ||
     1472      this.type === types$1.name ||
     1473      this.type === types$1.privateId ||
     1474      this.type === types$1.num ||
     1475      this.type === types$1.string ||
     1476      this.type === types$1.bracketL ||
    14691477      this.type.keyword
    14701478    )
    14711479  };
    14721480
    1473   pp$1.parseClassElementName = function(element) {
    1474     if (this.type === types.privateId) {
     1481  pp$8.parseClassElementName = function(element) {
     1482    if (this.type === types$1.privateId) {
    14751483      if (this.value === "constructor") {
    14761484        this.raise(this.start, "Classes can't have an element named '#constructor'");
     
    14831491  };
    14841492
    1485   pp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {
     1493  pp$8.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {
    14861494    // Check key and flags
    14871495    var key = method.key;
     
    15071515  };
    15081516
    1509   pp$1.parseClassField = function(field) {
     1517  pp$8.parseClassField = function(field) {
    15101518    if (checkKeyName(field, "constructor")) {
    15111519      this.raise(field.key.start, "Classes can't have a field named 'constructor'");
     
    15141522    }
    15151523
    1516     if (this.eat(types.eq)) {
     1524    if (this.eat(types$1.eq)) {
    15171525      // To raise SyntaxError if 'arguments' exists in the initializer.
    15181526      var scope = this.currentThisScope();
     
    15291537  };
    15301538
    1531   pp$1.parseClassStaticBlock = function(node) {
     1539  pp$8.parseClassStaticBlock = function(node) {
    15321540    node.body = [];
    15331541
     
    15351543    this.labels = [];
    15361544    this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER);
    1537     while (this.type !== types.braceR) {
     1545    while (this.type !== types$1.braceR) {
    15381546      var stmt = this.parseStatement(null);
    15391547      node.body.push(stmt);
     
    15461554  };
    15471555
    1548   pp$1.parseClassId = function(node, isStatement) {
    1549     if (this.type === types.name) {
     1556  pp$8.parseClassId = function(node, isStatement) {
     1557    if (this.type === types$1.name) {
    15501558      node.id = this.parseIdent();
    15511559      if (isStatement)
     
    15581566  };
    15591567
    1560   pp$1.parseClassSuper = function(node) {
    1561     node.superClass = this.eat(types._extends) ? this.parseExprSubscripts(false) : null;
    1562   };
    1563 
    1564   pp$1.enterClassBody = function() {
     1568  pp$8.parseClassSuper = function(node) {
     1569    node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(false) : null;
     1570  };
     1571
     1572  pp$8.enterClassBody = function() {
    15651573    var element = {declared: Object.create(null), used: []};
    15661574    this.privateNameStack.push(element);
     
    15681576  };
    15691577
    1570   pp$1.exitClassBody = function() {
     1578  pp$8.exitClassBody = function() {
    15711579    var ref = this.privateNameStack.pop();
    15721580    var declared = ref.declared;
     
    16231631  // Parses module export declaration.
    16241632
    1625   pp$1.parseExport = function(node, exports) {
     1633  pp$8.parseExport = function(node, exports) {
    16261634    this.next();
    16271635    // export * from '...'
    1628     if (this.eat(types.star)) {
     1636    if (this.eat(types$1.star)) {
    16291637      if (this.options.ecmaVersion >= 11) {
    16301638        if (this.eatContextual("as")) {
     
    16361644      }
    16371645      this.expectContextual("from");
    1638       if (this.type !== types.string) { this.unexpected(); }
     1646      if (this.type !== types$1.string) { this.unexpected(); }
    16391647      node.source = this.parseExprAtom();
    16401648      this.semicolon();
    16411649      return this.finishNode(node, "ExportAllDeclaration")
    16421650    }
    1643     if (this.eat(types._default)) { // export default ...
     1651    if (this.eat(types$1._default)) { // export default ...
    16441652      this.checkExport(exports, "default", this.lastTokStart);
    16451653      var isAsync;
    1646       if (this.type === types._function || (isAsync = this.isAsyncFunction())) {
     1654      if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) {
    16471655        var fNode = this.startNode();
    16481656        this.next();
    16491657        if (isAsync) { this.next(); }
    16501658        node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync);
    1651       } else if (this.type === types._class) {
     1659      } else if (this.type === types$1._class) {
    16521660        var cNode = this.startNode();
    16531661        node.declaration = this.parseClass(cNode, "nullableID");
     
    16711679      node.specifiers = this.parseExportSpecifiers(exports);
    16721680      if (this.eatContextual("from")) {
    1673         if (this.type !== types.string) { this.unexpected(); }
     1681        if (this.type !== types$1.string) { this.unexpected(); }
    16741682        node.source = this.parseExprAtom();
    16751683      } else {
     
    16901698  };
    16911699
    1692   pp$1.checkExport = function(exports, name, pos) {
     1700  pp$8.checkExport = function(exports, name, pos) {
    16931701    if (!exports) { return }
    16941702    if (has(exports, name))
     
    16971705  };
    16981706
    1699   pp$1.checkPatternExport = function(exports, pat) {
     1707  pp$8.checkPatternExport = function(exports, pat) {
    17001708    var type = pat.type;
    17011709    if (type === "Identifier")
     
    17241732  };
    17251733
    1726   pp$1.checkVariableExport = function(exports, decls) {
     1734  pp$8.checkVariableExport = function(exports, decls) {
    17271735    if (!exports) { return }
    17281736    for (var i = 0, list = decls; i < list.length; i += 1)
     
    17341742  };
    17351743
    1736   pp$1.shouldParseExportStatement = function() {
     1744  pp$8.shouldParseExportStatement = function() {
    17371745    return this.type.keyword === "var" ||
    17381746      this.type.keyword === "const" ||
     
    17451753  // Parses a comma-separated list of module exports.
    17461754
    1747   pp$1.parseExportSpecifiers = function(exports) {
     1755  pp$8.parseExportSpecifiers = function(exports) {
    17481756    var nodes = [], first = true;
    17491757    // export { x, y as z } [from '...']
    1750     this.expect(types.braceL);
    1751     while (!this.eat(types.braceR)) {
     1758    this.expect(types$1.braceL);
     1759    while (!this.eat(types$1.braceR)) {
    17521760      if (!first) {
    1753         this.expect(types.comma);
    1754         if (this.afterTrailingComma(types.braceR)) { break }
     1761        this.expect(types$1.comma);
     1762        if (this.afterTrailingComma(types$1.braceR)) { break }
    17551763      } else { first = false; }
    17561764
     
    17661774  // Parses import declaration.
    17671775
    1768   pp$1.parseImport = function(node) {
     1776  pp$8.parseImport = function(node) {
    17691777    this.next();
    17701778    // import '...'
    1771     if (this.type === types.string) {
    1772       node.specifiers = empty;
     1779    if (this.type === types$1.string) {
     1780      node.specifiers = empty$1;
    17731781      node.source = this.parseExprAtom();
    17741782    } else {
    17751783      node.specifiers = this.parseImportSpecifiers();
    17761784      this.expectContextual("from");
    1777       node.source = this.type === types.string ? this.parseExprAtom() : this.unexpected();
     1785      node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected();
    17781786    }
    17791787    this.semicolon();
     
    17831791  // Parses a comma-separated list of module imports.
    17841792
    1785   pp$1.parseImportSpecifiers = function() {
     1793  pp$8.parseImportSpecifiers = function() {
    17861794    var nodes = [], first = true;
    1787     if (this.type === types.name) {
     1795    if (this.type === types$1.name) {
    17881796      // import defaultObj, { x, y as z } from '...'
    17891797      var node = this.startNode();
     
    17911799      this.checkLValSimple(node.local, BIND_LEXICAL);
    17921800      nodes.push(this.finishNode(node, "ImportDefaultSpecifier"));
    1793       if (!this.eat(types.comma)) { return nodes }
    1794     }
    1795     if (this.type === types.star) {
     1801      if (!this.eat(types$1.comma)) { return nodes }
     1802    }
     1803    if (this.type === types$1.star) {
    17961804      var node$1 = this.startNode();
    17971805      this.next();
     
    18021810      return nodes
    18031811    }
    1804     this.expect(types.braceL);
    1805     while (!this.eat(types.braceR)) {
     1812    this.expect(types$1.braceL);
     1813    while (!this.eat(types$1.braceR)) {
    18061814      if (!first) {
    1807         this.expect(types.comma);
    1808         if (this.afterTrailingComma(types.braceR)) { break }
     1815        this.expect(types$1.comma);
     1816        if (this.afterTrailingComma(types$1.braceR)) { break }
    18091817      } else { first = false; }
    18101818
     
    18241832
    18251833  // Set `ExpressionStatement#directive` property for directive prologues.
    1826   pp$1.adaptDirectivePrologue = function(statements) {
     1834  pp$8.adaptDirectivePrologue = function(statements) {
    18271835    for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {
    18281836      statements[i].directive = statements[i].expression.raw.slice(1, -1);
    18291837    }
    18301838  };
    1831   pp$1.isDirectiveCandidate = function(statement) {
     1839  pp$8.isDirectiveCandidate = function(statement) {
    18321840    return (
    18331841      statement.type === "ExpressionStatement" &&
     
    18391847  };
    18401848
    1841   var pp$2 = Parser.prototype;
     1849  var pp$7 = Parser.prototype;
    18421850
    18431851  // Convert existing expression atom to assignable pattern
    18441852  // if possible.
    18451853
    1846   pp$2.toAssignable = function(node, isBinding, refDestructuringErrors) {
     1854  pp$7.toAssignable = function(node, isBinding, refDestructuringErrors) {
    18471855    if (this.options.ecmaVersion >= 6 && node) {
    18481856      switch (node.type) {
     
    19251933  // Convert list of expression atoms to binding list.
    19261934
    1927   pp$2.toAssignableList = function(exprList, isBinding) {
     1935  pp$7.toAssignableList = function(exprList, isBinding) {
    19281936    var end = exprList.length;
    19291937    for (var i = 0; i < end; i++) {
     
    19411949  // Parses spread element.
    19421950
    1943   pp$2.parseSpread = function(refDestructuringErrors) {
     1951  pp$7.parseSpread = function(refDestructuringErrors) {
    19441952    var node = this.startNode();
    19451953    this.next();
     
    19481956  };
    19491957
    1950   pp$2.parseRestBinding = function() {
     1958  pp$7.parseRestBinding = function() {
    19511959    var node = this.startNode();
    19521960    this.next();
    19531961
    19541962    // RestElement inside of a function parameter must be an identifier
    1955     if (this.options.ecmaVersion === 6 && this.type !== types.name)
     1963    if (this.options.ecmaVersion === 6 && this.type !== types$1.name)
    19561964      { this.unexpected(); }
    19571965
     
    19631971  // Parses lvalue (assignable) atom.
    19641972
    1965   pp$2.parseBindingAtom = function() {
     1973  pp$7.parseBindingAtom = function() {
    19661974    if (this.options.ecmaVersion >= 6) {
    19671975      switch (this.type) {
    1968       case types.bracketL:
     1976      case types$1.bracketL:
    19691977        var node = this.startNode();
    19701978        this.next();
    1971         node.elements = this.parseBindingList(types.bracketR, true, true);
     1979        node.elements = this.parseBindingList(types$1.bracketR, true, true);
    19721980        return this.finishNode(node, "ArrayPattern")
    19731981
    1974       case types.braceL:
     1982      case types$1.braceL:
    19751983        return this.parseObj(true)
    19761984      }
     
    19791987  };
    19801988
    1981   pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) {
     1989  pp$7.parseBindingList = function(close, allowEmpty, allowTrailingComma) {
    19821990    var elts = [], first = true;
    19831991    while (!this.eat(close)) {
    19841992      if (first) { first = false; }
    1985       else { this.expect(types.comma); }
    1986       if (allowEmpty && this.type === types.comma) {
     1993      else { this.expect(types$1.comma); }
     1994      if (allowEmpty && this.type === types$1.comma) {
    19871995        elts.push(null);
    19881996      } else if (allowTrailingComma && this.afterTrailingComma(close)) {
    19891997        break
    1990       } else if (this.type === types.ellipsis) {
     1998      } else if (this.type === types$1.ellipsis) {
    19911999        var rest = this.parseRestBinding();
    19922000        this.parseBindingListItem(rest);
    19932001        elts.push(rest);
    1994         if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); }
     2002        if (this.type === types$1.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); }
    19952003        this.expect(close);
    19962004        break
     
    20042012  };
    20052013
    2006   pp$2.parseBindingListItem = function(param) {
     2014  pp$7.parseBindingListItem = function(param) {
    20072015    return param
    20082016  };
     
    20102018  // Parses assignment pattern around given atom if possible.
    20112019
    2012   pp$2.parseMaybeDefault = function(startPos, startLoc, left) {
     2020  pp$7.parseMaybeDefault = function(startPos, startLoc, left) {
    20132021    left = left || this.parseBindingAtom();
    2014     if (this.options.ecmaVersion < 6 || !this.eat(types.eq)) { return left }
     2022    if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { return left }
    20152023    var node = this.startNodeAt(startPos, startLoc);
    20162024    node.left = left;
     
    20832091  // is an assignment (i.e., bindingType is BIND_NONE).
    20842092
    2085   pp$2.checkLValSimple = function(expr, bindingType, checkClashes) {
     2093  pp$7.checkLValSimple = function(expr, bindingType, checkClashes) {
    20862094    if ( bindingType === void 0 ) bindingType = BIND_NONE;
    20872095
     
    21212129  };
    21222130
    2123   pp$2.checkLValPattern = function(expr, bindingType, checkClashes) {
     2131  pp$7.checkLValPattern = function(expr, bindingType, checkClashes) {
    21242132    if ( bindingType === void 0 ) bindingType = BIND_NONE;
    21252133
     
    21462154  };
    21472155
    2148   pp$2.checkLValInnerPattern = function(expr, bindingType, checkClashes) {
     2156  pp$7.checkLValInnerPattern = function(expr, bindingType, checkClashes) {
    21492157    if ( bindingType === void 0 ) bindingType = BIND_NONE;
    21502158
     
    21782186  };
    21792187
    2180   var types$1 = {
     2188  var types = {
    21812189    b_stat: new TokContext("{", false),
    21822190    b_expr: new TokContext("{", true),
     
    21912199  };
    21922200
    2193   var pp$3 = Parser.prototype;
    2194 
    2195   pp$3.initialContext = function() {
    2196     return [types$1.b_stat]
    2197   };
    2198 
    2199   pp$3.curContext = function() {
     2201  var pp$6 = Parser.prototype;
     2202
     2203  pp$6.initialContext = function() {
     2204    return [types.b_stat]
     2205  };
     2206
     2207  pp$6.curContext = function() {
    22002208    return this.context[this.context.length - 1]
    22012209  };
    22022210
    2203   pp$3.braceIsBlock = function(prevType) {
     2211  pp$6.braceIsBlock = function(prevType) {
    22042212    var parent = this.curContext();
    2205     if (parent === types$1.f_expr || parent === types$1.f_stat)
     2213    if (parent === types.f_expr || parent === types.f_stat)
    22062214      { return true }
    2207     if (prevType === types.colon && (parent === types$1.b_stat || parent === types$1.b_expr))
     2215    if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr))
    22082216      { return !parent.isExpr }
    22092217
     
    22112219    // after a `yield` or `of` construct. See the `updateContext` for
    22122220    // `tt.name`.
    2213     if (prevType === types._return || prevType === types.name && this.exprAllowed)
     2221    if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed)
    22142222      { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }
    2215     if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow)
     2223    if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow)
    22162224      { return true }
    2217     if (prevType === types.braceL)
    2218       { return parent === types$1.b_stat }
    2219     if (prevType === types._var || prevType === types._const || prevType === types.name)
     2225    if (prevType === types$1.braceL)
     2226      { return parent === types.b_stat }
     2227    if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name)
    22202228      { return false }
    22212229    return !this.exprAllowed
    22222230  };
    22232231
    2224   pp$3.inGeneratorContext = function() {
     2232  pp$6.inGeneratorContext = function() {
    22252233    for (var i = this.context.length - 1; i >= 1; i--) {
    22262234      var context = this.context[i];
     
    22312239  };
    22322240
    2233   pp$3.updateContext = function(prevType) {
     2241  pp$6.updateContext = function(prevType) {
    22342242    var update, type = this.type;
    2235     if (type.keyword && prevType === types.dot)
     2243    if (type.keyword && prevType === types$1.dot)
    22362244      { this.exprAllowed = false; }
    22372245    else if (update = type.updateContext)
     
    22422250
    22432251  // Used to handle egde case when token context could not be inferred correctly in tokenize phase
    2244   pp$3.overrideContext = function(tokenCtx) {
     2252  pp$6.overrideContext = function(tokenCtx) {
    22452253    if (this.curContext() !== tokenCtx) {
    22462254      this.context[this.context.length - 1] = tokenCtx;
     
    22502258  // Token-specific context update code
    22512259
    2252   types.parenR.updateContext = types.braceR.updateContext = function() {
     2260  types$1.parenR.updateContext = types$1.braceR.updateContext = function() {
    22532261    if (this.context.length === 1) {
    22542262      this.exprAllowed = true;
     
    22562264    }
    22572265    var out = this.context.pop();
    2258     if (out === types$1.b_stat && this.curContext().token === "function") {
     2266    if (out === types.b_stat && this.curContext().token === "function") {
    22592267      out = this.context.pop();
    22602268    }
     
    22622270  };
    22632271
    2264   types.braceL.updateContext = function(prevType) {
    2265     this.context.push(this.braceIsBlock(prevType) ? types$1.b_stat : types$1.b_expr);
     2272  types$1.braceL.updateContext = function(prevType) {
     2273    this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);
    22662274    this.exprAllowed = true;
    22672275  };
    22682276
    2269   types.dollarBraceL.updateContext = function() {
    2270     this.context.push(types$1.b_tmpl);
     2277  types$1.dollarBraceL.updateContext = function() {
     2278    this.context.push(types.b_tmpl);
    22712279    this.exprAllowed = true;
    22722280  };
    22732281
    2274   types.parenL.updateContext = function(prevType) {
    2275     var statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while;
    2276     this.context.push(statementParens ? types$1.p_stat : types$1.p_expr);
     2282  types$1.parenL.updateContext = function(prevType) {
     2283    var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while;
     2284    this.context.push(statementParens ? types.p_stat : types.p_expr);
    22772285    this.exprAllowed = true;
    22782286  };
    22792287
    2280   types.incDec.updateContext = function() {
     2288  types$1.incDec.updateContext = function() {
    22812289    // tokExprAllowed stays unchanged
    22822290  };
    22832291
    2284   types._function.updateContext = types._class.updateContext = function(prevType) {
    2285     if (prevType.beforeExpr && prevType !== types._else &&
    2286         !(prevType === types.semi && this.curContext() !== types$1.p_stat) &&
    2287         !(prevType === types._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&
    2288         !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat))
    2289       { this.context.push(types$1.f_expr); }
     2292  types$1._function.updateContext = types$1._class.updateContext = function(prevType) {
     2293    if (prevType.beforeExpr && prevType !== types$1._else &&
     2294        !(prevType === types$1.semi && this.curContext() !== types.p_stat) &&
     2295        !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&
     2296        !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat))
     2297      { this.context.push(types.f_expr); }
    22902298    else
    2291       { this.context.push(types$1.f_stat); }
     2299      { this.context.push(types.f_stat); }
    22922300    this.exprAllowed = false;
    22932301  };
    22942302
    2295   types.backQuote.updateContext = function() {
    2296     if (this.curContext() === types$1.q_tmpl)
     2303  types$1.backQuote.updateContext = function() {
     2304    if (this.curContext() === types.q_tmpl)
    22972305      { this.context.pop(); }
    22982306    else
    2299       { this.context.push(types$1.q_tmpl); }
     2307      { this.context.push(types.q_tmpl); }
    23002308    this.exprAllowed = false;
    23012309  };
    23022310
    2303   types.star.updateContext = function(prevType) {
    2304     if (prevType === types._function) {
     2311  types$1.star.updateContext = function(prevType) {
     2312    if (prevType === types$1._function) {
    23052313      var index = this.context.length - 1;
    2306       if (this.context[index] === types$1.f_expr)
    2307         { this.context[index] = types$1.f_expr_gen; }
     2314      if (this.context[index] === types.f_expr)
     2315        { this.context[index] = types.f_expr_gen; }
    23082316      else
    2309         { this.context[index] = types$1.f_gen; }
     2317        { this.context[index] = types.f_gen; }
    23102318    }
    23112319    this.exprAllowed = true;
    23122320  };
    23132321
    2314   types.name.updateContext = function(prevType) {
     2322  types$1.name.updateContext = function(prevType) {
    23152323    var allowed = false;
    2316     if (this.options.ecmaVersion >= 6 && prevType !== types.dot) {
     2324    if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) {
    23172325      if (this.value === "of" && !this.exprAllowed ||
    23182326          this.value === "yield" && this.inGeneratorContext())
     
    23242332  // A recursive descent parser operates by defining functions for all
    23252333
    2326   var pp$4 = Parser.prototype;
     2334  var pp$5 = Parser.prototype;
    23272335
    23282336  // Check if property name clashes with already added.
     
    23312339  // strict mode, init properties are also not allowed to be repeated.
    23322340
    2333   pp$4.checkPropClash = function(prop, propHash, refDestructuringErrors) {
     2341  pp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) {
    23342342    if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement")
    23352343      { return }
     
    23482356        if (propHash.proto) {
    23492357          if (refDestructuringErrors) {
    2350             if (refDestructuringErrors.doubleProto < 0)
    2351               { refDestructuringErrors.doubleProto = key.start; }
    2352             // Backwards-compat kludge. Can be removed in version 6.0
    2353           } else { this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); }
     2358            if (refDestructuringErrors.doubleProto < 0) {
     2359              refDestructuringErrors.doubleProto = key.start;
     2360            }
     2361          } else {
     2362            this.raiseRecoverable(key.start, "Redefinition of __proto__ property");
     2363          }
    23542364        }
    23552365        propHash.proto = true;
     
    23932403  // delayed syntax error at correct position).
    23942404
    2395   pp$4.parseExpression = function(forInit, refDestructuringErrors) {
     2405  pp$5.parseExpression = function(forInit, refDestructuringErrors) {
    23962406    var startPos = this.start, startLoc = this.startLoc;
    23972407    var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);
    2398     if (this.type === types.comma) {
     2408    if (this.type === types$1.comma) {
    23992409      var node = this.startNodeAt(startPos, startLoc);
    24002410      node.expressions = [expr];
    2401       while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }
     2411      while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }
    24022412      return this.finishNode(node, "SequenceExpression")
    24032413    }
     
    24082418  // operators like `+=`.
    24092419
    2410   pp$4.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {
     2420  pp$5.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {
    24112421    if (this.isContextual("yield")) {
    24122422      if (this.inGenerator) { return this.parseYield(forInit) }
     
    24162426    }
    24172427
    2418     var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1;
     2428    var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1;
    24192429    if (refDestructuringErrors) {
    24202430      oldParenAssign = refDestructuringErrors.parenthesizedAssign;
    24212431      oldTrailingComma = refDestructuringErrors.trailingComma;
     2432      oldDoubleProto = refDestructuringErrors.doubleProto;
    24222433      refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;
    24232434    } else {
     
    24272438
    24282439    var startPos = this.start, startLoc = this.startLoc;
    2429     if (this.type === types.parenL || this.type === types.name) {
     2440    if (this.type === types$1.parenL || this.type === types$1.name) {
    24302441      this.potentialArrowAt = this.start;
    24312442      this.potentialArrowInForAwait = forInit === "await";
     
    24362447      var node = this.startNodeAt(startPos, startLoc);
    24372448      node.operator = this.value;
    2438       if (this.type === types.eq)
     2449      if (this.type === types$1.eq)
    24392450        { left = this.toAssignable(left, false, refDestructuringErrors); }
    24402451      if (!ownDestructuringErrors) {
     
    24432454      if (refDestructuringErrors.shorthandAssign >= left.start)
    24442455        { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly
    2445       if (this.type === types.eq)
     2456      if (this.type === types$1.eq)
    24462457        { this.checkLValPattern(left); }
    24472458      else
     
    24502461      this.next();
    24512462      node.right = this.parseMaybeAssign(forInit);
     2463      if (oldDoubleProto > -1) { refDestructuringErrors.doubleProto = oldDoubleProto; }
    24522464      return this.finishNode(node, "AssignmentExpression")
    24532465    } else {
     
    24612473  // Parse a ternary conditional (`?:`) operator.
    24622474
    2463   pp$4.parseMaybeConditional = function(forInit, refDestructuringErrors) {
     2475  pp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) {
    24642476    var startPos = this.start, startLoc = this.startLoc;
    24652477    var expr = this.parseExprOps(forInit, refDestructuringErrors);
    24662478    if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }
    2467     if (this.eat(types.question)) {
     2479    if (this.eat(types$1.question)) {
    24682480      var node = this.startNodeAt(startPos, startLoc);
    24692481      node.test = expr;
    24702482      node.consequent = this.parseMaybeAssign();
    2471       this.expect(types.colon);
     2483      this.expect(types$1.colon);
    24722484      node.alternate = this.parseMaybeAssign(forInit);
    24732485      return this.finishNode(node, "ConditionalExpression")
     
    24782490  // Start the precedence parser.
    24792491
    2480   pp$4.parseExprOps = function(forInit, refDestructuringErrors) {
     2492  pp$5.parseExprOps = function(forInit, refDestructuringErrors) {
    24812493    var startPos = this.start, startLoc = this.startLoc;
    24822494    var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit);
     
    24912503  // operator that has a lower precedence than the set it is parsing.
    24922504
    2493   pp$4.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {
     2505  pp$5.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {
    24942506    var prec = this.type.binop;
    2495     if (prec != null && (!forInit || this.type !== types._in)) {
     2507    if (prec != null && (!forInit || this.type !== types$1._in)) {
    24962508      if (prec > minPrec) {
    2497         var logical = this.type === types.logicalOR || this.type === types.logicalAND;
    2498         var coalesce = this.type === types.coalesce;
     2509        var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND;
     2510        var coalesce = this.type === types$1.coalesce;
    24992511        if (coalesce) {
    25002512          // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.
    25012513          // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.
    2502           prec = types.logicalAND.binop;
     2514          prec = types$1.logicalAND.binop;
    25032515        }
    25042516        var op = this.value;
     
    25072519        var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit);
    25082520        var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);
    2509         if ((logical && this.type === types.coalesce) || (coalesce && (this.type === types.logicalOR || this.type === types.logicalAND))) {
     2521        if ((logical && this.type === types$1.coalesce) || (coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND))) {
    25102522          this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses");
    25112523        }
     
    25162528  };
    25172529
    2518   pp$4.buildBinary = function(startPos, startLoc, left, right, op, logical) {
     2530  pp$5.buildBinary = function(startPos, startLoc, left, right, op, logical) {
     2531    if (right.type === "PrivateIdentifier") { this.raise(right.start, "Private identifier can only be left side of binary expression"); }
    25192532    var node = this.startNodeAt(startPos, startLoc);
    25202533    node.left = left;
     
    25262539  // Parse unary operators, both prefix and postfix.
    25272540
    2528   pp$4.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) {
     2541  pp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) {
    25292542    var startPos = this.start, startLoc = this.startLoc, expr;
    25302543    if (this.isContextual("await") && this.canAwait) {
     
    25322545      sawUnary = true;
    25332546    } else if (this.type.prefix) {
    2534       var node = this.startNode(), update = this.type === types.incDec;
     2547      var node = this.startNode(), update = this.type === types$1.incDec;
    25352548      node.operator = this.value;
    25362549      node.prefix = true;
     
    25462559      else { sawUnary = true; }
    25472560      expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression");
     2561    } else if (!sawUnary && this.type === types$1.privateId) {
     2562      if (forInit || this.privateNameStack.length === 0) { this.unexpected(); }
     2563      expr = this.parsePrivateIdent();
     2564      // only could be private fields in 'in', such as #x in obj
     2565      if (this.type !== types$1._in) { this.unexpected(); }
    25482566    } else {
    25492567      expr = this.parseExprSubscripts(refDestructuringErrors, forInit);
     
    25602578    }
    25612579
    2562     if (!incDec && this.eat(types.starstar)) {
     2580    if (!incDec && this.eat(types$1.starstar)) {
    25632581      if (sawUnary)
    25642582        { this.unexpected(this.lastTokStart); }
     
    25792597  // Parse call, dot, and `[]`-subscript expressions.
    25802598
    2581   pp$4.parseExprSubscripts = function(refDestructuringErrors, forInit) {
     2599  pp$5.parseExprSubscripts = function(refDestructuringErrors, forInit) {
    25822600    var startPos = this.start, startLoc = this.startLoc;
    25832601    var expr = this.parseExprAtom(refDestructuringErrors, forInit);
     
    25932611  };
    25942612
    2595   pp$4.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) {
     2613  pp$5.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) {
    25962614    var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" &&
    25972615        this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&
     
    26162634  };
    26172635
    2618   pp$4.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) {
     2636  pp$5.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) {
    26192637    var optionalSupported = this.options.ecmaVersion >= 11;
    2620     var optional = optionalSupported && this.eat(types.questionDot);
     2638    var optional = optionalSupported && this.eat(types$1.questionDot);
    26212639    if (noCalls && optional) { this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); }
    26222640
    2623     var computed = this.eat(types.bracketL);
    2624     if (computed || (optional && this.type !== types.parenL && this.type !== types.backQuote) || this.eat(types.dot)) {
     2641    var computed = this.eat(types$1.bracketL);
     2642    if (computed || (optional && this.type !== types$1.parenL && this.type !== types$1.backQuote) || this.eat(types$1.dot)) {
    26252643      var node = this.startNodeAt(startPos, startLoc);
    26262644      node.object = base;
    26272645      if (computed) {
    26282646        node.property = this.parseExpression();
    2629         this.expect(types.bracketR);
    2630       } else if (this.type === types.privateId && base.type !== "Super") {
     2647        this.expect(types$1.bracketR);
     2648      } else if (this.type === types$1.privateId && base.type !== "Super") {
    26312649        node.property = this.parsePrivateIdent();
    26322650      } else {
     
    26382656      }
    26392657      base = this.finishNode(node, "MemberExpression");
    2640     } else if (!noCalls && this.eat(types.parenL)) {
     2658    } else if (!noCalls && this.eat(types$1.parenL)) {
    26412659      var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
    26422660      this.yieldPos = 0;
    26432661      this.awaitPos = 0;
    26442662      this.awaitIdentPos = 0;
    2645       var exprList = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);
    2646       if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types.arrow)) {
     2663      var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);
     2664      if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types$1.arrow)) {
    26472665        this.checkPatternErrors(refDestructuringErrors, false);
    26482666        this.checkYieldAwaitInDefaultParams();
     
    26652683      }
    26662684      base = this.finishNode(node$1, "CallExpression");
    2667     } else if (this.type === types.backQuote) {
     2685    } else if (this.type === types$1.backQuote) {
    26682686      if (optional || optionalChained) {
    26692687        this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions");
     
    26822700  // or `{}`.
    26832701
    2684   pp$4.parseExprAtom = function(refDestructuringErrors, forInit) {
     2702  pp$5.parseExprAtom = function(refDestructuringErrors, forInit) {
    26852703    // If a division operator appears in an expression position, the
    26862704    // tokenizer got confused, and we force it to read a regexp instead.
    2687     if (this.type === types.slash) { this.readRegexp(); }
     2705    if (this.type === types$1.slash) { this.readRegexp(); }
    26882706
    26892707    var node, canBeArrow = this.potentialArrowAt === this.start;
    26902708    switch (this.type) {
    2691     case types._super:
     2709    case types$1._super:
    26922710      if (!this.allowSuper)
    26932711        { this.raise(this.start, "'super' keyword outside a method"); }
    26942712      node = this.startNode();
    26952713      this.next();
    2696       if (this.type === types.parenL && !this.allowDirectSuper)
     2714      if (this.type === types$1.parenL && !this.allowDirectSuper)
    26972715        { this.raise(node.start, "super() call outside constructor of a subclass"); }
    26982716      // The `super` keyword can appear at below:
     
    27022720      // SuperCall:
    27032721      //     super ( Arguments )
    2704       if (this.type !== types.dot && this.type !== types.bracketL && this.type !== types.parenL)
     2722      if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL)
    27052723        { this.unexpected(); }
    27062724      return this.finishNode(node, "Super")
    27072725
    2708     case types._this:
     2726    case types$1._this:
    27092727      node = this.startNode();
    27102728      this.next();
    27112729      return this.finishNode(node, "ThisExpression")
    27122730
    2713     case types.name:
     2731    case types$1.name:
    27142732      var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;
    27152733      var id = this.parseIdent(false);
    2716       if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types._function)) {
    2717         this.overrideContext(types$1.f_expr);
     2734      if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types$1._function)) {
     2735        this.overrideContext(types.f_expr);
    27182736        return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit)
    27192737      }
    27202738      if (canBeArrow && !this.canInsertSemicolon()) {
    2721         if (this.eat(types.arrow))
     2739        if (this.eat(types$1.arrow))
    27222740          { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit) }
    2723         if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types.name && !containsEsc &&
     2741        if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types$1.name && !containsEsc &&
    27242742            (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc)) {
    27252743          id = this.parseIdent(false);
    2726           if (this.canInsertSemicolon() || !this.eat(types.arrow))
     2744          if (this.canInsertSemicolon() || !this.eat(types$1.arrow))
    27272745            { this.unexpected(); }
    27282746          return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit)
     
    27312749      return id
    27322750
    2733     case types.regexp:
     2751    case types$1.regexp:
    27342752      var value = this.value;
    27352753      node = this.parseLiteral(value.value);
     
    27372755      return node
    27382756
    2739     case types.num: case types.string:
     2757    case types$1.num: case types$1.string:
    27402758      return this.parseLiteral(this.value)
    27412759
    2742     case types._null: case types._true: case types._false:
     2760    case types$1._null: case types$1._true: case types$1._false:
    27432761      node = this.startNode();
    2744       node.value = this.type === types._null ? null : this.type === types._true;
     2762      node.value = this.type === types$1._null ? null : this.type === types$1._true;
    27452763      node.raw = this.type.keyword;
    27462764      this.next();
    27472765      return this.finishNode(node, "Literal")
    27482766
    2749     case types.parenL:
     2767    case types$1.parenL:
    27502768      var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit);
    27512769      if (refDestructuringErrors) {
     
    27572775      return expr
    27582776
    2759     case types.bracketL:
     2777    case types$1.bracketL:
    27602778      node = this.startNode();
    27612779      this.next();
    2762       node.elements = this.parseExprList(types.bracketR, true, true, refDestructuringErrors);
     2780      node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors);
    27632781      return this.finishNode(node, "ArrayExpression")
    27642782
    2765     case types.braceL:
    2766       this.overrideContext(types$1.b_expr);
     2783    case types$1.braceL:
     2784      this.overrideContext(types.b_expr);
    27672785      return this.parseObj(false, refDestructuringErrors)
    27682786
    2769     case types._function:
     2787    case types$1._function:
    27702788      node = this.startNode();
    27712789      this.next();
    27722790      return this.parseFunction(node, 0)
    27732791
    2774     case types._class:
     2792    case types$1._class:
    27752793      return this.parseClass(this.startNode(), false)
    27762794
    2777     case types._new:
     2795    case types$1._new:
    27782796      return this.parseNew()
    27792797
    2780     case types.backQuote:
     2798    case types$1.backQuote:
    27812799      return this.parseTemplate()
    27822800
    2783     case types._import:
     2801    case types$1._import:
    27842802      if (this.options.ecmaVersion >= 11) {
    27852803        return this.parseExprImport()
     
    27932811  };
    27942812
    2795   pp$4.parseExprImport = function() {
     2813  pp$5.parseExprImport = function() {
    27962814    var node = this.startNode();
    27972815
     
    28022820
    28032821    switch (this.type) {
    2804     case types.parenL:
     2822    case types$1.parenL:
    28052823      return this.parseDynamicImport(node)
    2806     case types.dot:
     2824    case types$1.dot:
    28072825      node.meta = meta;
    28082826      return this.parseImportMeta(node)
     
    28122830  };
    28132831
    2814   pp$4.parseDynamicImport = function(node) {
     2832  pp$5.parseDynamicImport = function(node) {
    28152833    this.next(); // skip `(`
    28162834
     
    28192837
    28202838    // Verify ending.
    2821     if (!this.eat(types.parenR)) {
     2839    if (!this.eat(types$1.parenR)) {
    28222840      var errorPos = this.start;
    2823       if (this.eat(types.comma) && this.eat(types.parenR)) {
     2841      if (this.eat(types$1.comma) && this.eat(types$1.parenR)) {
    28242842        this.raiseRecoverable(errorPos, "Trailing comma is not allowed in import()");
    28252843      } else {
     
    28312849  };
    28322850
    2833   pp$4.parseImportMeta = function(node) {
     2851  pp$5.parseImportMeta = function(node) {
    28342852    this.next(); // skip `.`
    28352853
     
    28472865  };
    28482866
    2849   pp$4.parseLiteral = function(value) {
     2867  pp$5.parseLiteral = function(value) {
    28502868    var node = this.startNode();
    28512869    node.value = value;
     
    28562874  };
    28572875
    2858   pp$4.parseParenExpression = function() {
    2859     this.expect(types.parenL);
     2876  pp$5.parseParenExpression = function() {
     2877    this.expect(types$1.parenL);
    28602878    var val = this.parseExpression();
    2861     this.expect(types.parenR);
     2879    this.expect(types$1.parenR);
    28622880    return val
    28632881  };
    28642882
    2865   pp$4.parseParenAndDistinguishExpression = function(canBeArrow, forInit) {
     2883  pp$5.parseParenAndDistinguishExpression = function(canBeArrow, forInit) {
    28662884    var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;
    28672885    if (this.options.ecmaVersion >= 6) {
     
    28742892      this.awaitPos = 0;
    28752893      // Do not save awaitIdentPos to allow checking awaits nested in parameters
    2876       while (this.type !== types.parenR) {
    2877         first ? first = false : this.expect(types.comma);
    2878         if (allowTrailingComma && this.afterTrailingComma(types.parenR, true)) {
     2894      while (this.type !== types$1.parenR) {
     2895        first ? first = false : this.expect(types$1.comma);
     2896        if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) {
    28792897          lastIsComma = true;
    28802898          break
    2881         } else if (this.type === types.ellipsis) {
     2899        } else if (this.type === types$1.ellipsis) {
    28822900          spreadStart = this.start;
    28832901          exprList.push(this.parseParenItem(this.parseRestBinding()));
    2884           if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); }
     2902          if (this.type === types$1.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); }
    28852903          break
    28862904        } else {
     
    28892907      }
    28902908      var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc;
    2891       this.expect(types.parenR);
    2892 
    2893       if (canBeArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) {
     2909      this.expect(types$1.parenR);
     2910
     2911      if (canBeArrow && !this.canInsertSemicolon() && this.eat(types$1.arrow)) {
    28942912        this.checkPatternErrors(refDestructuringErrors, false);
    28952913        this.checkYieldAwaitInDefaultParams();
     
    29252943  };
    29262944
    2927   pp$4.parseParenItem = function(item) {
     2945  pp$5.parseParenItem = function(item) {
    29282946    return item
    29292947  };
    29302948
    2931   pp$4.parseParenArrowList = function(startPos, startLoc, exprList, forInit) {
    2932     return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, forInit)
     2949  pp$5.parseParenArrowList = function(startPos, startLoc, exprList, forInit) {
     2950    return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit)
    29332951  };
    29342952
     
    29392957  // argument list.
    29402958
    2941   var empty$1 = [];
    2942 
    2943   pp$4.parseNew = function() {
     2959  var empty = [];
     2960
     2961  pp$5.parseNew = function() {
    29442962    if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword new"); }
    29452963    var node = this.startNode();
    29462964    var meta = this.parseIdent(true);
    2947     if (this.options.ecmaVersion >= 6 && this.eat(types.dot)) {
     2965    if (this.options.ecmaVersion >= 6 && this.eat(types$1.dot)) {
    29482966      node.meta = meta;
    29492967      var containsEsc = this.containsEsc;
     
    29572975      return this.finishNode(node, "MetaProperty")
    29582976    }
    2959     var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types._import;
     2977    var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types$1._import;
    29602978    node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true, false);
    29612979    if (isImport && node.callee.type === "ImportExpression") {
    29622980      this.raise(startPos, "Cannot use new with import()");
    29632981    }
    2964     if (this.eat(types.parenL)) { node.arguments = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false); }
    2965     else { node.arguments = empty$1; }
     2982    if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); }
     2983    else { node.arguments = empty; }
    29662984    return this.finishNode(node, "NewExpression")
    29672985  };
     
    29692987  // Parse template expression.
    29702988
    2971   pp$4.parseTemplateElement = function(ref) {
     2989  pp$5.parseTemplateElement = function(ref) {
    29722990    var isTagged = ref.isTagged;
    29732991
    29742992    var elem = this.startNode();
    2975     if (this.type === types.invalidTemplate) {
     2993    if (this.type === types$1.invalidTemplate) {
    29762994      if (!isTagged) {
    29772995        this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal");
     
    29883006    }
    29893007    this.next();
    2990     elem.tail = this.type === types.backQuote;
     3008    elem.tail = this.type === types$1.backQuote;
    29913009    return this.finishNode(elem, "TemplateElement")
    29923010  };
    29933011
    2994   pp$4.parseTemplate = function(ref) {
     3012  pp$5.parseTemplate = function(ref) {
    29953013    if ( ref === void 0 ) ref = {};
    29963014    var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;
     
    30023020    node.quasis = [curElt];
    30033021    while (!curElt.tail) {
    3004       if (this.type === types.eof) { this.raise(this.pos, "Unterminated template literal"); }
    3005       this.expect(types.dollarBraceL);
     3022      if (this.type === types$1.eof) { this.raise(this.pos, "Unterminated template literal"); }
     3023      this.expect(types$1.dollarBraceL);
    30063024      node.expressions.push(this.parseExpression());
    3007       this.expect(types.braceR);
     3025      this.expect(types$1.braceR);
    30083026      node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));
    30093027    }
     
    30123030  };
    30133031
    3014   pp$4.isAsyncProp = function(prop) {
     3032  pp$5.isAsyncProp = function(prop) {
    30153033    return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" &&
    3016       (this.type === types.name || this.type === types.num || this.type === types.string || this.type === types.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types.star)) &&
     3034      (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types$1.star)) &&
    30173035      !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
    30183036  };
     
    30203038  // Parse an object literal or binding pattern.
    30213039
    3022   pp$4.parseObj = function(isPattern, refDestructuringErrors) {
     3040  pp$5.parseObj = function(isPattern, refDestructuringErrors) {
    30233041    var node = this.startNode(), first = true, propHash = {};
    30243042    node.properties = [];
    30253043    this.next();
    3026     while (!this.eat(types.braceR)) {
     3044    while (!this.eat(types$1.braceR)) {
    30273045      if (!first) {
    3028         this.expect(types.comma);
    3029         if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types.braceR)) { break }
     3046        this.expect(types$1.comma);
     3047        if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { break }
    30303048      } else { first = false; }
    30313049
     
    30373055  };
    30383056
    3039   pp$4.parseProperty = function(isPattern, refDestructuringErrors) {
     3057  pp$5.parseProperty = function(isPattern, refDestructuringErrors) {
    30403058    var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;
    3041     if (this.options.ecmaVersion >= 9 && this.eat(types.ellipsis)) {
     3059    if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) {
    30423060      if (isPattern) {
    30433061        prop.argument = this.parseIdent(false);
    3044         if (this.type === types.comma) {
     3062        if (this.type === types$1.comma) {
    30453063          this.raise(this.start, "Comma is not permitted after the rest element");
    30463064        }
     
    30483066      }
    30493067      // To disallow parenthesized identifier via `this.toAssignable()`.
    3050       if (this.type === types.parenL && refDestructuringErrors) {
     3068      if (this.type === types$1.parenL && refDestructuringErrors) {
    30513069        if (refDestructuringErrors.parenthesizedAssign < 0) {
    30523070          refDestructuringErrors.parenthesizedAssign = this.start;
     
    30593077      prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);
    30603078      // To disallow trailing comma via `this.toAssignable()`.
    3061       if (this.type === types.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {
     3079      if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {
    30623080        refDestructuringErrors.trailingComma = this.start;
    30633081      }
     
    30733091      }
    30743092      if (!isPattern)
    3075         { isGenerator = this.eat(types.star); }
     3093        { isGenerator = this.eat(types$1.star); }
    30763094    }
    30773095    var containsEsc = this.containsEsc;
     
    30793097    if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {
    30803098      isAsync = true;
    3081       isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star);
     3099      isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star);
    30823100      this.parsePropertyName(prop, refDestructuringErrors);
    30833101    } else {
     
    30883106  };
    30893107
    3090   pp$4.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {
    3091     if ((isGenerator || isAsync) && this.type === types.colon)
     3108  pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {
     3109    if ((isGenerator || isAsync) && this.type === types$1.colon)
    30923110      { this.unexpected(); }
    30933111
    3094     if (this.eat(types.colon)) {
     3112    if (this.eat(types$1.colon)) {
    30953113      prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);
    30963114      prop.kind = "init";
    3097     } else if (this.options.ecmaVersion >= 6 && this.type === types.parenL) {
     3115    } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {
    30983116      if (isPattern) { this.unexpected(); }
    30993117      prop.kind = "init";
     
    31033121               this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" &&
    31043122               (prop.key.name === "get" || prop.key.name === "set") &&
    3105                (this.type !== types.comma && this.type !== types.braceR && this.type !== types.eq)) {
     3123               (this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq)) {
    31063124      if (isGenerator || isAsync) { this.unexpected(); }
    31073125      prop.kind = prop.key.name;
     
    31273145      if (isPattern) {
    31283146        prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));
    3129       } else if (this.type === types.eq && refDestructuringErrors) {
     3147      } else if (this.type === types$1.eq && refDestructuringErrors) {
    31303148        if (refDestructuringErrors.shorthandAssign < 0)
    31313149          { refDestructuringErrors.shorthandAssign = this.start; }
     
    31383156  };
    31393157
    3140   pp$4.parsePropertyName = function(prop) {
     3158  pp$5.parsePropertyName = function(prop) {
    31413159    if (this.options.ecmaVersion >= 6) {
    3142       if (this.eat(types.bracketL)) {
     3160      if (this.eat(types$1.bracketL)) {
    31433161        prop.computed = true;
    31443162        prop.key = this.parseMaybeAssign();
    3145         this.expect(types.bracketR);
     3163        this.expect(types$1.bracketR);
    31463164        return prop.key
    31473165      } else {
     
    31493167      }
    31503168    }
    3151     return prop.key = this.type === types.num || this.type === types.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never")
     3169    return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never")
    31523170  };
    31533171
    31543172  // Initialize empty function node.
    31553173
    3156   pp$4.initFunction = function(node) {
     3174  pp$5.initFunction = function(node) {
    31573175    node.id = null;
    31583176    if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }
     
    31623180  // Parse object or class method.
    31633181
    3164   pp$4.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {
     3182  pp$5.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {
    31653183    var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
    31663184
     
    31763194    this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));
    31773195
    3178     this.expect(types.parenL);
    3179     node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);
     3196    this.expect(types$1.parenL);
     3197    node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);
    31803198    this.checkYieldAwaitInDefaultParams();
    31813199    this.parseFunctionBody(node, false, true, false);
     
    31893207  // Parse arrow function expression with given parameters.
    31903208
    3191   pp$4.parseArrowExpression = function(node, params, isAsync, forInit) {
     3209  pp$5.parseArrowExpression = function(node, params, isAsync, forInit) {
    31923210    var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
    31933211
     
    32113229  // Parse function body and check parameters.
    32123230
    3213   pp$4.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) {
    3214     var isExpression = isArrowFunction && this.type !== types.braceL;
     3231  pp$5.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) {
     3232    var isExpression = isArrowFunction && this.type !== types$1.braceL;
    32153233    var oldStrict = this.strict, useStrict = false;
    32163234
     
    32483266  };
    32493267
    3250   pp$4.isSimpleParamList = function(params) {
     3268  pp$5.isSimpleParamList = function(params) {
    32513269    for (var i = 0, list = params; i < list.length; i += 1)
    32523270      {
     
    32613279  // or "arguments" and duplicate parameters.
    32623280
    3263   pp$4.checkParams = function(node, allowDuplicates) {
     3281  pp$5.checkParams = function(node, allowDuplicates) {
    32643282    var nameHash = Object.create(null);
    32653283    for (var i = 0, list = node.params; i < list.length; i += 1)
     
    32773295  // for array literals).
    32783296
    3279   pp$4.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {
     3297  pp$5.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {
    32803298    var elts = [], first = true;
    32813299    while (!this.eat(close)) {
    32823300      if (!first) {
    3283         this.expect(types.comma);
     3301        this.expect(types$1.comma);
    32843302        if (allowTrailingComma && this.afterTrailingComma(close)) { break }
    32853303      } else { first = false; }
    32863304
    32873305      var elt = (void 0);
    3288       if (allowEmpty && this.type === types.comma)
     3306      if (allowEmpty && this.type === types$1.comma)
    32893307        { elt = null; }
    3290       else if (this.type === types.ellipsis) {
     3308      else if (this.type === types$1.ellipsis) {
    32913309        elt = this.parseSpread(refDestructuringErrors);
    3292         if (refDestructuringErrors && this.type === types.comma && refDestructuringErrors.trailingComma < 0)
     3310        if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0)
    32933311          { refDestructuringErrors.trailingComma = this.start; }
    32943312      } else {
     
    33003318  };
    33013319
    3302   pp$4.checkUnreserved = function(ref) {
     3320  pp$5.checkUnreserved = function(ref) {
    33033321    var start = ref.start;
    33043322    var end = ref.end;
     
    33293347  // identifiers.
    33303348
    3331   pp$4.parseIdent = function(liberal, isBinding) {
     3349  pp$5.parseIdent = function(liberal, isBinding) {
    33323350    var node = this.startNode();
    3333     if (this.type === types.name) {
     3351    if (this.type === types$1.name) {
    33343352      node.name = this.value;
    33353353    } else if (this.type.keyword) {
     
    33573375  };
    33583376
    3359   pp$4.parsePrivateIdent = function() {
     3377  pp$5.parsePrivateIdent = function() {
    33603378    var node = this.startNode();
    3361     if (this.type === types.privateId) {
     3379    if (this.type === types$1.privateId) {
    33623380      node.name = this.value;
    33633381    } else {
     
    33793397  // Parses yield expression inside generator.
    33803398
    3381   pp$4.parseYield = function(forInit) {
     3399  pp$5.parseYield = function(forInit) {
    33823400    if (!this.yieldPos) { this.yieldPos = this.start; }
    33833401
    33843402    var node = this.startNode();
    33853403    this.next();
    3386     if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) {
     3404    if (this.type === types$1.semi || this.canInsertSemicolon() || (this.type !== types$1.star && !this.type.startsExpr)) {
    33873405      node.delegate = false;
    33883406      node.argument = null;
    33893407    } else {
    3390       node.delegate = this.eat(types.star);
     3408      node.delegate = this.eat(types$1.star);
    33913409      node.argument = this.parseMaybeAssign(forInit);
    33923410    }
     
    33943412  };
    33953413
    3396   pp$4.parseAwait = function(forInit) {
     3414  pp$5.parseAwait = function(forInit) {
    33973415    if (!this.awaitPos) { this.awaitPos = this.start; }
    33983416
     
    34033421  };
    34043422
    3405   var pp$5 = Parser.prototype;
     3423  var pp$4 = Parser.prototype;
    34063424
    34073425  // This function is used to raise exceptions on parse errors. It
     
    34113429  // message.
    34123430
    3413   pp$5.raise = function(pos, message) {
     3431  pp$4.raise = function(pos, message) {
    34143432    var loc = getLineInfo(this.input, pos);
    34153433    message += " (" + loc.line + ":" + loc.column + ")";
     
    34193437  };
    34203438
    3421   pp$5.raiseRecoverable = pp$5.raise;
    3422 
    3423   pp$5.curPosition = function() {
     3439  pp$4.raiseRecoverable = pp$4.raise;
     3440
     3441  pp$4.curPosition = function() {
    34243442    if (this.options.locations) {
    34253443      return new Position(this.curLine, this.pos - this.lineStart)
     
    34273445  };
    34283446
    3429   var pp$6 = Parser.prototype;
     3447  var pp$3 = Parser.prototype;
    34303448
    34313449  var Scope = function Scope(flags) {
     
    34433461  // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.
    34443462
    3445   pp$6.enterScope = function(flags) {
     3463  pp$3.enterScope = function(flags) {
    34463464    this.scopeStack.push(new Scope(flags));
    34473465  };
    34483466
    3449   pp$6.exitScope = function() {
     3467  pp$3.exitScope = function() {
    34503468    this.scopeStack.pop();
    34513469  };
     
    34543472  // > At the top level of a function, or script, function declarations are
    34553473  // > treated like var declarations rather than like lexical declarations.
    3456   pp$6.treatFunctionsAsVarInScope = function(scope) {
     3474  pp$3.treatFunctionsAsVarInScope = function(scope) {
    34573475    return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)
    34583476  };
    34593477
    3460   pp$6.declareName = function(name, bindingType, pos) {
     3478  pp$3.declareName = function(name, bindingType, pos) {
    34613479    var redeclared = false;
    34623480    if (bindingType === BIND_LEXICAL) {
     
    34933511  };
    34943512
    3495   pp$6.checkLocalExport = function(id) {
     3513  pp$3.checkLocalExport = function(id) {
    34963514    // scope.functions must be empty as Module code is always strict.
    34973515    if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&
     
    35013519  };
    35023520
    3503   pp$6.currentScope = function() {
     3521  pp$3.currentScope = function() {
    35043522    return this.scopeStack[this.scopeStack.length - 1]
    35053523  };
    35063524
    3507   pp$6.currentVarScope = function() {
     3525  pp$3.currentVarScope = function() {
    35083526    for (var i = this.scopeStack.length - 1;; i--) {
    35093527      var scope = this.scopeStack[i];
     
    35133531
    35143532  // Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.
    3515   pp$6.currentThisScope = function() {
     3533  pp$3.currentThisScope = function() {
    35163534    for (var i = this.scopeStack.length - 1;; i--) {
    35173535      var scope = this.scopeStack[i];
     
    35343552  // Start an AST node, attaching a start offset.
    35353553
    3536   var pp$7 = Parser.prototype;
    3537 
    3538   pp$7.startNode = function() {
     3554  var pp$2 = Parser.prototype;
     3555
     3556  pp$2.startNode = function() {
    35393557    return new Node(this, this.start, this.startLoc)
    35403558  };
    35413559
    3542   pp$7.startNodeAt = function(pos, loc) {
     3560  pp$2.startNodeAt = function(pos, loc) {
    35433561    return new Node(this, pos, loc)
    35443562  };
     
    35563574  }
    35573575
    3558   pp$7.finishNode = function(node, type) {
     3576  pp$2.finishNode = function(node, type) {
    35593577    return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)
    35603578  };
     
    35623580  // Finish node at given position
    35633581
    3564   pp$7.finishNodeAt = function(node, type, pos, loc) {
     3582  pp$2.finishNodeAt = function(node, type, pos, loc) {
    35653583    return finishNodeAt.call(this, node, type, pos, loc)
    35663584  };
    35673585
    3568   pp$7.copyNode = function(node) {
     3586  pp$2.copyNode = function(node) {
    35693587    var newNode = new Node(this, node.start, this.startLoc);
    35703588    for (var prop in node) { newNode[prop] = node[prop]; }
     
    36233641  buildUnicodeData(12);
    36243642
    3625   var pp$8 = Parser.prototype;
     3643  var pp$1 = Parser.prototype;
    36263644
    36273645  var RegExpValidationState = function RegExpValidationState(parser) {
     
    37193737  };
    37203738
    3721   function codePointToString(ch) {
     3739  function codePointToString$1(ch) {
    37223740    if (ch <= 0xFFFF) { return String.fromCharCode(ch) }
    37233741    ch -= 0x10000;
     
    37313749   * @returns {void}
    37323750   */
    3733   pp$8.validateRegExpFlags = function(state) {
     3751  pp$1.validateRegExpFlags = function(state) {
    37343752    var validFlags = state.validFlags;
    37353753    var flags = state.flags;
     
    37523770   * @returns {void}
    37533771   */
    3754   pp$8.validateRegExpPattern = function(state) {
     3772  pp$1.validateRegExpPattern = function(state) {
    37553773    this.regexp_pattern(state);
    37563774
     
    37673785
    37683786  // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern
    3769   pp$8.regexp_pattern = function(state) {
     3787  pp$1.regexp_pattern = function(state) {
    37703788    state.pos = 0;
    37713789    state.lastIntValue = 0;
     
    38013819
    38023820  // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction
    3803   pp$8.regexp_disjunction = function(state) {
     3821  pp$1.regexp_disjunction = function(state) {
    38043822    this.regexp_alternative(state);
    38053823    while (state.eat(0x7C /* | */)) {
     
    38173835
    38183836  // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative
    3819   pp$8.regexp_alternative = function(state) {
     3837  pp$1.regexp_alternative = function(state) {
    38203838    while (state.pos < state.source.length && this.regexp_eatTerm(state))
    38213839      { }
     
    38233841
    38243842  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term
    3825   pp$8.regexp_eatTerm = function(state) {
     3843  pp$1.regexp_eatTerm = function(state) {
    38263844    if (this.regexp_eatAssertion(state)) {
    38273845      // Handle `QuantifiableAssertion Quantifier` alternative.
     
    38463864
    38473865  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion
    3848   pp$8.regexp_eatAssertion = function(state) {
     3866  pp$1.regexp_eatAssertion = function(state) {
    38493867    var start = state.pos;
    38503868    state.lastAssertionIsQuantifiable = false;
     
    38843902
    38853903  // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier
    3886   pp$8.regexp_eatQuantifier = function(state, noError) {
     3904  pp$1.regexp_eatQuantifier = function(state, noError) {
    38873905    if ( noError === void 0 ) noError = false;
    38883906
     
    38953913
    38963914  // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix
    3897   pp$8.regexp_eatQuantifierPrefix = function(state, noError) {
     3915  pp$1.regexp_eatQuantifierPrefix = function(state, noError) {
    38983916    return (
    38993917      state.eat(0x2A /* * */) ||
     
    39033921    )
    39043922  };
    3905   pp$8.regexp_eatBracedQuantifier = function(state, noError) {
     3923  pp$1.regexp_eatBracedQuantifier = function(state, noError) {
    39063924    var start = state.pos;
    39073925    if (state.eat(0x7B /* { */)) {
     
    39293947
    39303948  // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom
    3931   pp$8.regexp_eatAtom = function(state) {
     3949  pp$1.regexp_eatAtom = function(state) {
    39323950    return (
    39333951      this.regexp_eatPatternCharacters(state) ||
     
    39393957    )
    39403958  };
    3941   pp$8.regexp_eatReverseSolidusAtomEscape = function(state) {
     3959  pp$1.regexp_eatReverseSolidusAtomEscape = function(state) {
    39423960    var start = state.pos;
    39433961    if (state.eat(0x5C /* \ */)) {
     
    39493967    return false
    39503968  };
    3951   pp$8.regexp_eatUncapturingGroup = function(state) {
     3969  pp$1.regexp_eatUncapturingGroup = function(state) {
    39523970    var start = state.pos;
    39533971    if (state.eat(0x28 /* ( */)) {
     
    39633981    return false
    39643982  };
    3965   pp$8.regexp_eatCapturingGroup = function(state) {
     3983  pp$1.regexp_eatCapturingGroup = function(state) {
    39663984    if (state.eat(0x28 /* ( */)) {
    39673985      if (this.options.ecmaVersion >= 9) {
     
    39813999
    39824000  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom
    3983   pp$8.regexp_eatExtendedAtom = function(state) {
     4001  pp$1.regexp_eatExtendedAtom = function(state) {
    39844002    return (
    39854003      state.eat(0x2E /* . */) ||
     
    39944012
    39954013  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier
    3996   pp$8.regexp_eatInvalidBracedQuantifier = function(state) {
     4014  pp$1.regexp_eatInvalidBracedQuantifier = function(state) {
    39974015    if (this.regexp_eatBracedQuantifier(state, true)) {
    39984016      state.raise("Nothing to repeat");
     
    40024020
    40034021  // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter
    4004   pp$8.regexp_eatSyntaxCharacter = function(state) {
     4022  pp$1.regexp_eatSyntaxCharacter = function(state) {
    40054023    var ch = state.current();
    40064024    if (isSyntaxCharacter(ch)) {
     
    40244042  // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter
    40254043  // But eat eager.
    4026   pp$8.regexp_eatPatternCharacters = function(state) {
     4044  pp$1.regexp_eatPatternCharacters = function(state) {
    40274045    var start = state.pos;
    40284046    var ch = 0;
     
    40344052
    40354053  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter
    4036   pp$8.regexp_eatExtendedPatternCharacter = function(state) {
     4054  pp$1.regexp_eatExtendedPatternCharacter = function(state) {
    40374055    var ch = state.current();
    40384056    if (
     
    40554073  //   [empty]
    40564074  //   `?` GroupName
    4057   pp$8.regexp_groupSpecifier = function(state) {
     4075  pp$1.regexp_groupSpecifier = function(state) {
    40584076    if (state.eat(0x3F /* ? */)) {
    40594077      if (this.regexp_eatGroupName(state)) {
     
    40714089  //   `<` RegExpIdentifierName `>`
    40724090  // Note: this updates `state.lastStringValue` property with the eaten name.
    4073   pp$8.regexp_eatGroupName = function(state) {
     4091  pp$1.regexp_eatGroupName = function(state) {
    40744092    state.lastStringValue = "";
    40754093    if (state.eat(0x3C /* < */)) {
     
    40864104  //   RegExpIdentifierName RegExpIdentifierPart
    40874105  // Note: this updates `state.lastStringValue` property with the eaten name.
    4088   pp$8.regexp_eatRegExpIdentifierName = function(state) {
     4106  pp$1.regexp_eatRegExpIdentifierName = function(state) {
    40894107    state.lastStringValue = "";
    40904108    if (this.regexp_eatRegExpIdentifierStart(state)) {
    4091       state.lastStringValue += codePointToString(state.lastIntValue);
     4109      state.lastStringValue += codePointToString$1(state.lastIntValue);
    40924110      while (this.regexp_eatRegExpIdentifierPart(state)) {
    4093         state.lastStringValue += codePointToString(state.lastIntValue);
     4111        state.lastStringValue += codePointToString$1(state.lastIntValue);
    40944112      }
    40954113      return true
     
    41034121  //   `_`
    41044122  //   `\` RegExpUnicodeEscapeSequence[+U]
    4105   pp$8.regexp_eatRegExpIdentifierStart = function(state) {
     4123  pp$1.regexp_eatRegExpIdentifierStart = function(state) {
    41064124    var start = state.pos;
    41074125    var forceU = this.options.ecmaVersion >= 11;
     
    41314149  //   <ZWNJ>
    41324150  //   <ZWJ>
    4133   pp$8.regexp_eatRegExpIdentifierPart = function(state) {
     4151  pp$1.regexp_eatRegExpIdentifierPart = function(state) {
    41344152    var start = state.pos;
    41354153    var forceU = this.options.ecmaVersion >= 11;
     
    41534171
    41544172  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape
    4155   pp$8.regexp_eatAtomEscape = function(state) {
     4173  pp$1.regexp_eatAtomEscape = function(state) {
    41564174    if (
    41574175      this.regexp_eatBackReference(state) ||
     
    41714189    return false
    41724190  };
    4173   pp$8.regexp_eatBackReference = function(state) {
     4191  pp$1.regexp_eatBackReference = function(state) {
    41744192    var start = state.pos;
    41754193    if (this.regexp_eatDecimalEscape(state)) {
     
    41894207    return false
    41904208  };
    4191   pp$8.regexp_eatKGroupName = function(state) {
     4209  pp$1.regexp_eatKGroupName = function(state) {
    41924210    if (state.eat(0x6B /* k */)) {
    41934211      if (this.regexp_eatGroupName(state)) {
     
    42014219
    42024220  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape
    4203   pp$8.regexp_eatCharacterEscape = function(state) {
     4221  pp$1.regexp_eatCharacterEscape = function(state) {
    42044222    return (
    42054223      this.regexp_eatControlEscape(state) ||
     
    42124230    )
    42134231  };
    4214   pp$8.regexp_eatCControlLetter = function(state) {
     4232  pp$1.regexp_eatCControlLetter = function(state) {
    42154233    var start = state.pos;
    42164234    if (state.eat(0x63 /* c */)) {
     
    42224240    return false
    42234241  };
    4224   pp$8.regexp_eatZero = function(state) {
     4242  pp$1.regexp_eatZero = function(state) {
    42254243    if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {
    42264244      state.lastIntValue = 0;
     
    42324250
    42334251  // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape
    4234   pp$8.regexp_eatControlEscape = function(state) {
     4252  pp$1.regexp_eatControlEscape = function(state) {
    42354253    var ch = state.current();
    42364254    if (ch === 0x74 /* t */) {
     
    42634281
    42644282  // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter
    4265   pp$8.regexp_eatControlLetter = function(state) {
     4283  pp$1.regexp_eatControlLetter = function(state) {
    42664284    var ch = state.current();
    42674285    if (isControlLetter(ch)) {
     
    42804298
    42814299  // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence
    4282   pp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {
     4300  pp$1.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {
    42834301    if ( forceU === void 0 ) forceU = false;
    42844302
     
    43254343
    43264344  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape
    4327   pp$8.regexp_eatIdentityEscape = function(state) {
     4345  pp$1.regexp_eatIdentityEscape = function(state) {
    43284346    if (state.switchU) {
    43294347      if (this.regexp_eatSyntaxCharacter(state)) {
     
    43484366
    43494367  // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape
    4350   pp$8.regexp_eatDecimalEscape = function(state) {
     4368  pp$1.regexp_eatDecimalEscape = function(state) {
    43514369    state.lastIntValue = 0;
    43524370    var ch = state.current();
     
    43624380
    43634381  // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape
    4364   pp$8.regexp_eatCharacterClassEscape = function(state) {
     4382  pp$1.regexp_eatCharacterClassEscape = function(state) {
    43654383    var ch = state.current();
    43664384
     
    44044422  //   UnicodePropertyName `=` UnicodePropertyValue
    44054423  //   LoneUnicodePropertyNameOrValue
    4406   pp$8.regexp_eatUnicodePropertyValueExpression = function(state) {
     4424  pp$1.regexp_eatUnicodePropertyValueExpression = function(state) {
    44074425    var start = state.pos;
    44084426
     
    44264444    return false
    44274445  };
    4428   pp$8.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {
     4446  pp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {
    44294447    if (!has(state.unicodeProperties.nonBinary, name))
    44304448      { state.raise("Invalid property name"); }
     
    44324450      { state.raise("Invalid property value"); }
    44334451  };
    4434   pp$8.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {
     4452  pp$1.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {
    44354453    if (!state.unicodeProperties.binary.test(nameOrValue))
    44364454      { state.raise("Invalid property name"); }
     
    44394457  // UnicodePropertyName ::
    44404458  //   UnicodePropertyNameCharacters
    4441   pp$8.regexp_eatUnicodePropertyName = function(state) {
     4459  pp$1.regexp_eatUnicodePropertyName = function(state) {
    44424460    var ch = 0;
    44434461    state.lastStringValue = "";
    44444462    while (isUnicodePropertyNameCharacter(ch = state.current())) {
    4445       state.lastStringValue += codePointToString(ch);
     4463      state.lastStringValue += codePointToString$1(ch);
    44464464      state.advance();
    44474465    }
     
    44544472  // UnicodePropertyValue ::
    44554473  //   UnicodePropertyValueCharacters
    4456   pp$8.regexp_eatUnicodePropertyValue = function(state) {
     4474  pp$1.regexp_eatUnicodePropertyValue = function(state) {
    44574475    var ch = 0;
    44584476    state.lastStringValue = "";
    44594477    while (isUnicodePropertyValueCharacter(ch = state.current())) {
    4460       state.lastStringValue += codePointToString(ch);
     4478      state.lastStringValue += codePointToString$1(ch);
    44614479      state.advance();
    44624480    }
     
    44694487  // LoneUnicodePropertyNameOrValue ::
    44704488  //   UnicodePropertyValueCharacters
    4471   pp$8.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {
     4489  pp$1.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {
    44724490    return this.regexp_eatUnicodePropertyValue(state)
    44734491  };
    44744492
    44754493  // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass
    4476   pp$8.regexp_eatCharacterClass = function(state) {
     4494  pp$1.regexp_eatCharacterClass = function(state) {
    44774495    if (state.eat(0x5B /* [ */)) {
    44784496      state.eat(0x5E /* ^ */);
     
    44904508  // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges
    44914509  // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash
    4492   pp$8.regexp_classRanges = function(state) {
     4510  pp$1.regexp_classRanges = function(state) {
    44934511    while (this.regexp_eatClassAtom(state)) {
    44944512      var left = state.lastIntValue;
     
    45074525  // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom
    45084526  // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash
    4509   pp$8.regexp_eatClassAtom = function(state) {
     4527  pp$1.regexp_eatClassAtom = function(state) {
    45104528    var start = state.pos;
    45114529
     
    45364554
    45374555  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape
    4538   pp$8.regexp_eatClassEscape = function(state) {
     4556  pp$1.regexp_eatClassEscape = function(state) {
    45394557    var start = state.pos;
    45404558
     
    45634581
    45644582  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter
    4565   pp$8.regexp_eatClassControlLetter = function(state) {
     4583  pp$1.regexp_eatClassControlLetter = function(state) {
    45664584    var ch = state.current();
    45674585    if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {
     
    45744592
    45754593  // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence
    4576   pp$8.regexp_eatHexEscapeSequence = function(state) {
     4594  pp$1.regexp_eatHexEscapeSequence = function(state) {
    45774595    var start = state.pos;
    45784596    if (state.eat(0x78 /* x */)) {
     
    45894607
    45904608  // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits
    4591   pp$8.regexp_eatDecimalDigits = function(state) {
     4609  pp$1.regexp_eatDecimalDigits = function(state) {
    45924610    var start = state.pos;
    45934611    var ch = 0;
     
    46044622
    46054623  // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits
    4606   pp$8.regexp_eatHexDigits = function(state) {
     4624  pp$1.regexp_eatHexDigits = function(state) {
    46074625    var start = state.pos;
    46084626    var ch = 0;
     
    46334651  // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence
    46344652  // Allows only 0-377(octal) i.e. 0-255(decimal).
    4635   pp$8.regexp_eatLegacyOctalEscapeSequence = function(state) {
     4653  pp$1.regexp_eatLegacyOctalEscapeSequence = function(state) {
    46364654    if (this.regexp_eatOctalDigit(state)) {
    46374655      var n1 = state.lastIntValue;
     
    46524670
    46534671  // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit
    4654   pp$8.regexp_eatOctalDigit = function(state) {
     4672  pp$1.regexp_eatOctalDigit = function(state) {
    46554673    var ch = state.current();
    46564674    if (isOctalDigit(ch)) {
     
    46694687  // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit
    46704688  // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence
    4671   pp$8.regexp_eatFixedHexDigits = function(state, length) {
     4689  pp$1.regexp_eatFixedHexDigits = function(state, length) {
    46724690    var start = state.pos;
    46734691    state.lastIntValue = 0;
     
    47014719  // ## Tokenizer
    47024720
    4703   var pp$9 = Parser.prototype;
     4721  var pp = Parser.prototype;
    47044722
    47054723  // Move to the next token
    47064724
    4707   pp$9.next = function(ignoreEscapeSequenceInKeyword) {
     4725  pp.next = function(ignoreEscapeSequenceInKeyword) {
    47084726    if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)
    47094727      { this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword); }
     
    47184736  };
    47194737
    4720   pp$9.getToken = function() {
     4738  pp.getToken = function() {
    47214739    this.next();
    47224740    return new Token(this)
     
    47254743  // If we're in an ES6 environment, make parsers iterable
    47264744  if (typeof Symbol !== "undefined")
    4727     { pp$9[Symbol.iterator] = function() {
    4728       var this$1 = this;
     4745    { pp[Symbol.iterator] = function() {
     4746      var this$1$1 = this;
    47294747
    47304748      return {
    47314749        next: function () {
    4732           var token = this$1.getToken();
     4750          var token = this$1$1.getToken();
    47334751          return {
    4734             done: token.type === types.eof,
     4752            done: token.type === types$1.eof,
    47354753            value: token
    47364754          }
     
    47454763  // properties.
    47464764
    4747   pp$9.nextToken = function() {
     4765  pp.nextToken = function() {
    47484766    var curContext = this.curContext();
    47494767    if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }
     
    47514769    this.start = this.pos;
    47524770    if (this.options.locations) { this.startLoc = this.curPosition(); }
    4753     if (this.pos >= this.input.length) { return this.finishToken(types.eof) }
     4771    if (this.pos >= this.input.length) { return this.finishToken(types$1.eof) }
    47544772
    47554773    if (curContext.override) { return curContext.override(this) }
     
    47574775  };
    47584776
    4759   pp$9.readToken = function(code) {
     4777  pp.readToken = function(code) {
    47604778    // Identifier or keyword. '\uXXXX' sequences are allowed in
    47614779    // identifiers, so '\' also dispatches to that.
     
    47664784  };
    47674785
    4768   pp$9.fullCharCodeAtPos = function() {
     4786  pp.fullCharCodeAtPos = function() {
    47694787    var code = this.input.charCodeAt(this.pos);
    47704788    if (code <= 0xd7ff || code >= 0xdc00) { return code }
     
    47734791  };
    47744792
    4775   pp$9.skipBlockComment = function() {
     4793  pp.skipBlockComment = function() {
    47764794    var startLoc = this.options.onComment && this.curPosition();
    47774795    var start = this.pos, end = this.input.indexOf("*/", this.pos += 2);
     
    47914809  };
    47924810
    4793   pp$9.skipLineComment = function(startSkip) {
     4811  pp.skipLineComment = function(startSkip) {
    47944812    var start = this.pos;
    47954813    var startLoc = this.options.onComment && this.curPosition();
     
    48064824  // whitespace and comments, and.
    48074825
    4808   pp$9.skipSpace = function() {
     4826  pp.skipSpace = function() {
    48094827    loop: while (this.pos < this.input.length) {
    48104828      var ch = this.input.charCodeAt(this.pos);
     
    48514869  // right position.
    48524870
    4853   pp$9.finishToken = function(type, val) {
     4871  pp.finishToken = function(type, val) {
    48544872    this.end = this.pos;
    48554873    if (this.options.locations) { this.endLoc = this.curPosition(); }
     
    48704888  // All in the name of speed.
    48714889  //
    4872   pp$9.readToken_dot = function() {
     4890  pp.readToken_dot = function() {
    48734891    var next = this.input.charCodeAt(this.pos + 1);
    48744892    if (next >= 48 && next <= 57) { return this.readNumber(true) }
     
    48764894    if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'
    48774895      this.pos += 3;
    4878       return this.finishToken(types.ellipsis)
     4896      return this.finishToken(types$1.ellipsis)
    48794897    } else {
    48804898      ++this.pos;
    4881       return this.finishToken(types.dot)
    4882     }
    4883   };
    4884 
    4885   pp$9.readToken_slash = function() { // '/'
     4899      return this.finishToken(types$1.dot)
     4900    }
     4901  };
     4902
     4903  pp.readToken_slash = function() { // '/'
    48864904    var next = this.input.charCodeAt(this.pos + 1);
    48874905    if (this.exprAllowed) { ++this.pos; return this.readRegexp() }
    4888     if (next === 61) { return this.finishOp(types.assign, 2) }
    4889     return this.finishOp(types.slash, 1)
    4890   };
    4891 
    4892   pp$9.readToken_mult_modulo_exp = function(code) { // '%*'
     4906    if (next === 61) { return this.finishOp(types$1.assign, 2) }
     4907    return this.finishOp(types$1.slash, 1)
     4908  };
     4909
     4910  pp.readToken_mult_modulo_exp = function(code) { // '%*'
    48934911    var next = this.input.charCodeAt(this.pos + 1);
    48944912    var size = 1;
    4895     var tokentype = code === 42 ? types.star : types.modulo;
     4913    var tokentype = code === 42 ? types$1.star : types$1.modulo;
    48964914
    48974915    // exponentiation operator ** and **=
    48984916    if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {
    48994917      ++size;
    4900       tokentype = types.starstar;
     4918      tokentype = types$1.starstar;
    49014919      next = this.input.charCodeAt(this.pos + 2);
    49024920    }
    49034921
    4904     if (next === 61) { return this.finishOp(types.assign, size + 1) }
     4922    if (next === 61) { return this.finishOp(types$1.assign, size + 1) }
    49054923    return this.finishOp(tokentype, size)
    49064924  };
    49074925
    4908   pp$9.readToken_pipe_amp = function(code) { // '|&'
     4926  pp.readToken_pipe_amp = function(code) { // '|&'
    49094927    var next = this.input.charCodeAt(this.pos + 1);
    49104928    if (next === code) {
    49114929      if (this.options.ecmaVersion >= 12) {
    49124930        var next2 = this.input.charCodeAt(this.pos + 2);
    4913         if (next2 === 61) { return this.finishOp(types.assign, 3) }
    4914       }
    4915       return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2)
    4916     }
    4917     if (next === 61) { return this.finishOp(types.assign, 2) }
    4918     return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1)
    4919   };
    4920 
    4921   pp$9.readToken_caret = function() { // '^'
     4931        if (next2 === 61) { return this.finishOp(types$1.assign, 3) }
     4932      }
     4933      return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2)
     4934    }
     4935    if (next === 61) { return this.finishOp(types$1.assign, 2) }
     4936    return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1)
     4937  };
     4938
     4939  pp.readToken_caret = function() { // '^'
    49224940    var next = this.input.charCodeAt(this.pos + 1);
    4923     if (next === 61) { return this.finishOp(types.assign, 2) }
    4924     return this.finishOp(types.bitwiseXOR, 1)
    4925   };
    4926 
    4927   pp$9.readToken_plus_min = function(code) { // '+-'
     4941    if (next === 61) { return this.finishOp(types$1.assign, 2) }
     4942    return this.finishOp(types$1.bitwiseXOR, 1)
     4943  };
     4944
     4945  pp.readToken_plus_min = function(code) { // '+-'
    49284946    var next = this.input.charCodeAt(this.pos + 1);
    49294947    if (next === code) {
     
    49354953        return this.nextToken()
    49364954      }
    4937       return this.finishOp(types.incDec, 2)
    4938     }
    4939     if (next === 61) { return this.finishOp(types.assign, 2) }
    4940     return this.finishOp(types.plusMin, 1)
    4941   };
    4942 
    4943   pp$9.readToken_lt_gt = function(code) { // '<>'
     4955      return this.finishOp(types$1.incDec, 2)
     4956    }
     4957    if (next === 61) { return this.finishOp(types$1.assign, 2) }
     4958    return this.finishOp(types$1.plusMin, 1)
     4959  };
     4960
     4961  pp.readToken_lt_gt = function(code) { // '<>'
    49444962    var next = this.input.charCodeAt(this.pos + 1);
    49454963    var size = 1;
    49464964    if (next === code) {
    49474965      size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;
    4948       if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) }
    4949       return this.finishOp(types.bitShift, size)
     4966      if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) }
     4967      return this.finishOp(types$1.bitShift, size)
    49504968    }
    49514969    if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&
     
    49574975    }
    49584976    if (next === 61) { size = 2; }
    4959     return this.finishOp(types.relational, size)
    4960   };
    4961 
    4962   pp$9.readToken_eq_excl = function(code) { // '=!'
     4977    return this.finishOp(types$1.relational, size)
     4978  };
     4979
     4980  pp.readToken_eq_excl = function(code) { // '=!'
    49634981    var next = this.input.charCodeAt(this.pos + 1);
    4964     if (next === 61) { return this.finishOp(types.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }
     4982    if (next === 61) { return this.finishOp(types$1.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }
    49654983    if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'
    49664984      this.pos += 2;
    4967       return this.finishToken(types.arrow)
    4968     }
    4969     return this.finishOp(code === 61 ? types.eq : types.prefix, 1)
    4970   };
    4971 
    4972   pp$9.readToken_question = function() { // '?'
     4985      return this.finishToken(types$1.arrow)
     4986    }
     4987    return this.finishOp(code === 61 ? types$1.eq : types$1.prefix, 1)
     4988  };
     4989
     4990  pp.readToken_question = function() { // '?'
    49734991    var ecmaVersion = this.options.ecmaVersion;
    49744992    if (ecmaVersion >= 11) {
     
    49764994      if (next === 46) {
    49774995        var next2 = this.input.charCodeAt(this.pos + 2);
    4978         if (next2 < 48 || next2 > 57) { return this.finishOp(types.questionDot, 2) }
     4996        if (next2 < 48 || next2 > 57) { return this.finishOp(types$1.questionDot, 2) }
    49794997      }
    49804998      if (next === 63) {
    49814999        if (ecmaVersion >= 12) {
    49825000          var next2$1 = this.input.charCodeAt(this.pos + 2);
    4983           if (next2$1 === 61) { return this.finishOp(types.assign, 3) }
     5001          if (next2$1 === 61) { return this.finishOp(types$1.assign, 3) }
    49845002        }
    4985         return this.finishOp(types.coalesce, 2)
    4986       }
    4987     }
    4988     return this.finishOp(types.question, 1)
    4989   };
    4990 
    4991   pp$9.readToken_numberSign = function() { // '#'
     5003        return this.finishOp(types$1.coalesce, 2)
     5004      }
     5005    }
     5006    return this.finishOp(types$1.question, 1)
     5007  };
     5008
     5009  pp.readToken_numberSign = function() { // '#'
    49925010    var ecmaVersion = this.options.ecmaVersion;
    49935011    var code = 35; // '#'
     
    49965014      code = this.fullCharCodeAtPos();
    49975015      if (isIdentifierStart(code, true) || code === 92 /* '\' */) {
    4998         return this.finishToken(types.privateId, this.readWord1())
    4999       }
    5000     }
    5001 
    5002     this.raise(this.pos, "Unexpected character '" + codePointToString$1(code) + "'");
    5003   };
    5004 
    5005   pp$9.getTokenFromCode = function(code) {
     5016        return this.finishToken(types$1.privateId, this.readWord1())
     5017      }
     5018    }
     5019
     5020    this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'");
     5021  };
     5022
     5023  pp.getTokenFromCode = function(code) {
    50065024    switch (code) {
    50075025    // The interpretation of a dot depends on whether it is followed
     
    50115029
    50125030    // Punctuation tokens.
    5013     case 40: ++this.pos; return this.finishToken(types.parenL)
    5014     case 41: ++this.pos; return this.finishToken(types.parenR)
    5015     case 59: ++this.pos; return this.finishToken(types.semi)
    5016     case 44: ++this.pos; return this.finishToken(types.comma)
    5017     case 91: ++this.pos; return this.finishToken(types.bracketL)
    5018     case 93: ++this.pos; return this.finishToken(types.bracketR)
    5019     case 123: ++this.pos; return this.finishToken(types.braceL)
    5020     case 125: ++this.pos; return this.finishToken(types.braceR)
    5021     case 58: ++this.pos; return this.finishToken(types.colon)
     5031    case 40: ++this.pos; return this.finishToken(types$1.parenL)
     5032    case 41: ++this.pos; return this.finishToken(types$1.parenR)
     5033    case 59: ++this.pos; return this.finishToken(types$1.semi)
     5034    case 44: ++this.pos; return this.finishToken(types$1.comma)
     5035    case 91: ++this.pos; return this.finishToken(types$1.bracketL)
     5036    case 93: ++this.pos; return this.finishToken(types$1.bracketR)
     5037    case 123: ++this.pos; return this.finishToken(types$1.braceL)
     5038    case 125: ++this.pos; return this.finishToken(types$1.braceR)
     5039    case 58: ++this.pos; return this.finishToken(types$1.colon)
    50225040
    50235041    case 96: // '`'
    50245042      if (this.options.ecmaVersion < 6) { break }
    50255043      ++this.pos;
    5026       return this.finishToken(types.backQuote)
     5044      return this.finishToken(types$1.backQuote)
    50275045
    50285046    case 48: // '0'
     
    50475065    // characters it is given as second argument, and returns a token
    50485066    // of the type given by its first argument.
    5049 
    50505067    case 47: // '/'
    50515068      return this.readToken_slash()
     
    50735090
    50745091    case 126: // '~'
    5075       return this.finishOp(types.prefix, 1)
     5092      return this.finishOp(types$1.prefix, 1)
    50765093
    50775094    case 35: // '#'
     
    50795096    }
    50805097
    5081     this.raise(this.pos, "Unexpected character '" + codePointToString$1(code) + "'");
    5082   };
    5083 
    5084   pp$9.finishOp = function(type, size) {
     5098    this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'");
     5099  };
     5100
     5101  pp.finishOp = function(type, size) {
    50855102    var str = this.input.slice(this.pos, this.pos + size);
    50865103    this.pos += size;
     
    50885105  };
    50895106
    5090   pp$9.readRegexp = function() {
     5107  pp.readRegexp = function() {
    50915108    var escaped, inClass, start = this.pos;
    50925109    for (;;) {
     
    51235140    }
    51245141
    5125     return this.finishToken(types.regexp, {pattern: pattern, flags: flags, value: value})
     5142    return this.finishToken(types$1.regexp, {pattern: pattern, flags: flags, value: value})
    51265143  };
    51275144
     
    51305147  // will return `null` unless the integer has exactly `len` digits.
    51315148
    5132   pp$9.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {
     5149  pp.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {
    51335150    // `len` is used for character escape sequences. In that case, disallow separators.
    51345151    var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined;
     
    51845201  }
    51855202
    5186   pp$9.readRadixNumber = function(radix) {
     5203  pp.readRadixNumber = function(radix) {
    51875204    var start = this.pos;
    51885205    this.pos += 2; // 0x
     
    51935210      ++this.pos;
    51945211    } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); }
    5195     return this.finishToken(types.num, val)
     5212    return this.finishToken(types$1.num, val)
    51965213  };
    51975214
    51985215  // Read an integer, octal integer, or floating-point number.
    51995216
    5200   pp$9.readNumber = function(startsWithDot) {
     5217  pp.readNumber = function(startsWithDot) {
    52015218    var start = this.pos;
    52025219    if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, "Invalid number"); }
     
    52085225      ++this.pos;
    52095226      if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); }
    5210       return this.finishToken(types.num, val$1)
     5227      return this.finishToken(types$1.num, val$1)
    52115228    }
    52125229    if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; }
     
    52245241
    52255242    var val = stringToNumber(this.input.slice(start, this.pos), octal);
    5226     return this.finishToken(types.num, val)
     5243    return this.finishToken(types$1.num, val)
    52275244  };
    52285245
    52295246  // Read a string value, interpreting backslash-escapes.
    52305247
    5231   pp$9.readCodePoint = function() {
     5248  pp.readCodePoint = function() {
    52325249    var ch = this.input.charCodeAt(this.pos), code;
    52335250
     
    52445261  };
    52455262
    5246   function codePointToString$1(code) {
     5263  function codePointToString(code) {
    52475264    // UTF-16 Decoding
    52485265    if (code <= 0xFFFF) { return String.fromCharCode(code) }
     
    52515268  }
    52525269
    5253   pp$9.readString = function(quote) {
     5270  pp.readString = function(quote) {
    52545271    var out = "", chunkStart = ++this.pos;
    52555272    for (;;) {
     
    52745291    }
    52755292    out += this.input.slice(chunkStart, this.pos++);
    5276     return this.finishToken(types.string, out)
     5293    return this.finishToken(types$1.string, out)
    52775294  };
    52785295
     
    52815298  var INVALID_TEMPLATE_ESCAPE_ERROR = {};
    52825299
    5283   pp$9.tryReadTemplateToken = function() {
     5300  pp.tryReadTemplateToken = function() {
    52845301    this.inTemplateElement = true;
    52855302    try {
     
    52965313  };
    52975314
    5298   pp$9.invalidStringToken = function(position, message) {
     5315  pp.invalidStringToken = function(position, message) {
    52995316    if (this.inTemplateElement && this.options.ecmaVersion >= 9) {
    53005317      throw INVALID_TEMPLATE_ESCAPE_ERROR
     
    53045321  };
    53055322
    5306   pp$9.readTmplToken = function() {
     5323  pp.readTmplToken = function() {
    53075324    var out = "", chunkStart = this.pos;
    53085325    for (;;) {
     
    53105327      var ch = this.input.charCodeAt(this.pos);
    53115328      if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'
    5312         if (this.pos === this.start && (this.type === types.template || this.type === types.invalidTemplate)) {
     5329        if (this.pos === this.start && (this.type === types$1.template || this.type === types$1.invalidTemplate)) {
    53135330          if (ch === 36) {
    53145331            this.pos += 2;
    5315             return this.finishToken(types.dollarBraceL)
     5332            return this.finishToken(types$1.dollarBraceL)
    53165333          } else {
    53175334            ++this.pos;
    5318             return this.finishToken(types.backQuote)
     5335            return this.finishToken(types$1.backQuote)
    53195336          }
    53205337        }
    53215338        out += this.input.slice(chunkStart, this.pos);
    5322         return this.finishToken(types.template, out)
     5339        return this.finishToken(types$1.template, out)
    53235340      }
    53245341      if (ch === 92) { // '\'
     
    53515368
    53525369  // Reads a template token to search for the end, without validating any escape sequences
    5353   pp$9.readInvalidTemplateToken = function() {
     5370  pp.readInvalidTemplateToken = function() {
    53545371    for (; this.pos < this.input.length; this.pos++) {
    53555372      switch (this.input[this.pos]) {
     
    53625379          break
    53635380        }
     5381
    53645382      // falls through
    5365 
    53665383      case "`":
    5367         return this.finishToken(types.invalidTemplate, this.input.slice(this.start, this.pos))
     5384        return this.finishToken(types$1.invalidTemplate, this.input.slice(this.start, this.pos))
    53685385
    53695386      // no default
     
    53755392  // Used to read escaped characters
    53765393
    5377   pp$9.readEscapedChar = function(inTemplate) {
     5394  pp.readEscapedChar = function(inTemplate) {
    53785395    var ch = this.input.charCodeAt(++this.pos);
    53795396    ++this.pos;
     
    53825399    case 114: return "\r" // 'r' -> '\r'
    53835400    case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'
    5384     case 117: return codePointToString$1(this.readCodePoint()) // 'u'
     5401    case 117: return codePointToString(this.readCodePoint()) // 'u'
    53855402    case 116: return "\t" // 't' -> '\t'
    53865403    case 98: return "\b" // 'b' -> '\b'
     
    54405457  // Used to read character escape sequences ('\x', '\u', '\U').
    54415458
    5442   pp$9.readHexChar = function(len) {
     5459  pp.readHexChar = function(len) {
    54435460    var codePos = this.pos;
    54445461    var n = this.readInt(16, len);
     
    54535470  // as a micro-optimization.
    54545471
    5455   pp$9.readWord1 = function() {
     5472  pp.readWord1 = function() {
    54565473    this.containsEsc = false;
    54575474    var word = "", first = true, chunkStart = this.pos;
     
    54715488        if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))
    54725489          { this.invalidStringToken(escStart, "Invalid Unicode escape"); }
    5473         word += codePointToString$1(esc);
     5490        word += codePointToString(esc);
    54745491        chunkStart = this.pos;
    54755492      } else {
     
    54845501  // words when necessary.
    54855502
    5486   pp$9.readWord = function() {
     5503  pp.readWord = function() {
    54875504    var word = this.readWord1();
    5488     var type = types.name;
     5505    var type = types$1.name;
    54895506    if (this.keywords.test(word)) {
    5490       type = keywords$1[word];
     5507      type = keywords[word];
    54915508    }
    54925509    return this.finishToken(type, word)
     
    54955512  // Acorn is a tiny, fast JavaScript parser written in JavaScript.
    54965513
    5497   var version = "8.5.0";
     5514  var version = "8.6.0";
    54985515
    54995516  Parser.acorn = {
     
    55065523    Node: Node,
    55075524    TokenType: TokenType,
    5508     tokTypes: types,
    5509     keywordTypes: keywords$1,
     5525    tokTypes: types$1,
     5526    keywordTypes: keywords,
    55105527    TokContext: TokContext,
    5511     tokContexts: types$1,
     5528    tokContexts: types,
    55125529    isIdentifierChar: isIdentifierChar,
    55135530    isIdentifierStart: isIdentifierStart,
     
    55575574  exports.isIdentifierStart = isIdentifierStart;
    55585575  exports.isNewLine = isNewLine;
    5559   exports.keywordTypes = keywords$1;
     5576  exports.keywordTypes = keywords;
    55605577  exports.lineBreak = lineBreak;
    55615578  exports.lineBreakG = lineBreakG;
     
    55635580  exports.parse = parse;
    55645581  exports.parseExpressionAt = parseExpressionAt;
    5565   exports.tokContexts = types$1;
    5566   exports.tokTypes = types;
     5582  exports.tokContexts = types;
     5583  exports.tokTypes = types$1;
    55675584  exports.tokenizer = tokenizer;
    55685585  exports.version = version;
     
    55705587  Object.defineProperty(exports, '__esModule', { value: true });
    55715588
    5572 })));
     5589}));
  • trip-planner-front/node_modules/acorn/dist/acorn.mjs

    r59329aa re29cc2e  
    1313var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this";
    1414
    15 var keywords = {
     15var keywords$1 = {
    1616  5: ecma5AndLessKeywords,
    1717  "5module": ecma5AndLessKeywords + " export import",
     
    132132// Map keyword names to token types.
    133133
    134 var keywords$1 = {};
     134var keywords = {};
    135135
    136136// Succinct definitions of keyword token types
     
    139139
    140140  options.keyword = name;
    141   return keywords$1[name] = new TokenType(name, options)
     141  return keywords[name] = new TokenType(name, options)
    142142}
    143143
    144 var types = {
     144var types$1 = {
    145145  num: new TokenType("num", startsExpr),
    146146  regexp: new TokenType("regexp", startsExpr),
     
    484484  this.options = options = getOptions(options);
    485485  this.sourceFile = options.sourceFile;
    486   this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]);
     486  this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]);
    487487  var reserved = "";
    488488  if (options.allowReserved !== true) {
     
    515515  // Properties of the current token:
    516516  // Its type
    517   this.type = types.eof;
     517  this.type = types$1.eof;
    518518  // For tokens that include more information than their type, the value
    519519  this.value = null;
     
    575575
    576576prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };
     577
    577578prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit };
     579
    578580prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit };
     581
    579582prototypeAccessors.canAwait.get = function () {
    580583  for (var i = this.scopeStack.length - 1; i >= 0; i--) {
     
    585588  return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction
    586589};
     590
    587591prototypeAccessors.allowSuper.get = function () {
    588592  var ref = this.currentThisScope();
     
    591595  return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod
    592596};
     597
    593598prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };
     599
    594600prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };
     601
    595602prototypeAccessors.allowNewDotTarget.get = function () {
    596603  var ref = this.currentThisScope();
     
    599606  return (flags & (SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK)) > 0 || inClassFieldInit
    600607};
     608
    601609prototypeAccessors.inClassStaticBlock.get = function () {
    602610  return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0
     
    628636Object.defineProperties( Parser.prototype, prototypeAccessors );
    629637
    630 var pp = Parser.prototype;
     638var pp$9 = Parser.prototype;
    631639
    632640// ## Parser utilities
    633641
    634642var literal = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;
    635 pp.strictDirective = function(start) {
     643pp$9.strictDirective = function(start) {
    636644  for (;;) {
    637645    // Try to find string literal.
     
    661669// type, and if yes, consumes it as a side effect.
    662670
    663 pp.eat = function(type) {
     671pp$9.eat = function(type) {
    664672  if (this.type === type) {
    665673    this.next();
     
    672680// Tests whether parsed token is a contextual keyword.
    673681
    674 pp.isContextual = function(name) {
    675   return this.type === types.name && this.value === name && !this.containsEsc
     682pp$9.isContextual = function(name) {
     683  return this.type === types$1.name && this.value === name && !this.containsEsc
    676684};
    677685
    678686// Consumes contextual keyword if possible.
    679687
    680 pp.eatContextual = function(name) {
     688pp$9.eatContextual = function(name) {
    681689  if (!this.isContextual(name)) { return false }
    682690  this.next();
     
    686694// Asserts that following token is given contextual keyword.
    687695
    688 pp.expectContextual = function(name) {
     696pp$9.expectContextual = function(name) {
    689697  if (!this.eatContextual(name)) { this.unexpected(); }
    690698};
     
    692700// Test whether a semicolon can be inserted at the current position.
    693701
    694 pp.canInsertSemicolon = function() {
    695   return this.type === types.eof ||
    696     this.type === types.braceR ||
     702pp$9.canInsertSemicolon = function() {
     703  return this.type === types$1.eof ||
     704    this.type === types$1.braceR ||
    697705    lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
    698706};
    699707
    700 pp.insertSemicolon = function() {
     708pp$9.insertSemicolon = function() {
    701709  if (this.canInsertSemicolon()) {
    702710    if (this.options.onInsertedSemicolon)
     
    709717// pretend that there is a semicolon at this position.
    710718
    711 pp.semicolon = function() {
    712   if (!this.eat(types.semi) && !this.insertSemicolon()) { this.unexpected(); }
    713 };
    714 
    715 pp.afterTrailingComma = function(tokType, notNext) {
     719pp$9.semicolon = function() {
     720  if (!this.eat(types$1.semi) && !this.insertSemicolon()) { this.unexpected(); }
     721};
     722
     723pp$9.afterTrailingComma = function(tokType, notNext) {
    716724  if (this.type === tokType) {
    717725    if (this.options.onTrailingComma)
     
    726734// raise an unexpected token error.
    727735
    728 pp.expect = function(type) {
     736pp$9.expect = function(type) {
    729737  this.eat(type) || this.unexpected();
    730738};
     
    732740// Raise an unexpected token error.
    733741
    734 pp.unexpected = function(pos) {
     742pp$9.unexpected = function(pos) {
    735743  this.raise(pos != null ? pos : this.start, "Unexpected token");
    736744};
     
    745753}
    746754
    747 pp.checkPatternErrors = function(refDestructuringErrors, isAssign) {
     755pp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) {
    748756  if (!refDestructuringErrors) { return }
    749757  if (refDestructuringErrors.trailingComma > -1)
     
    753761};
    754762
    755 pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {
     763pp$9.checkExpressionErrors = function(refDestructuringErrors, andThrow) {
    756764  if (!refDestructuringErrors) { return false }
    757765  var shorthandAssign = refDestructuringErrors.shorthandAssign;
     
    764772};
    765773
    766 pp.checkYieldAwaitInDefaultParams = function() {
     774pp$9.checkYieldAwaitInDefaultParams = function() {
    767775  if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))
    768776    { this.raise(this.yieldPos, "Yield expression cannot be a default value"); }
     
    771779};
    772780
    773 pp.isSimpleAssignTarget = function(expr) {
     781pp$9.isSimpleAssignTarget = function(expr) {
    774782  if (expr.type === "ParenthesizedExpression")
    775783    { return this.isSimpleAssignTarget(expr.expression) }
     
    777785};
    778786
    779 var pp$1 = Parser.prototype;
     787var pp$8 = Parser.prototype;
    780788
    781789// ### Statement parsing
     
    786794// to its body instead of creating a new node.
    787795
    788 pp$1.parseTopLevel = function(node) {
     796pp$8.parseTopLevel = function(node) {
    789797  var exports = Object.create(null);
    790798  if (!node.body) { node.body = []; }
    791   while (this.type !== types.eof) {
     799  while (this.type !== types$1.eof) {
    792800    var stmt = this.parseStatement(null, true, exports);
    793801    node.body.push(stmt);
     
    808816var loopLabel = {kind: "loop"}, switchLabel = {kind: "switch"};
    809817
    810 pp$1.isLet = function(context) {
     818pp$8.isLet = function(context) {
    811819  if (this.options.ecmaVersion < 6 || !this.isContextual("let")) { return false }
    812820  skipWhiteSpace.lastIndex = this.pos;
     
    834842// - 'async /*foo*/ function' is OK.
    835843// - 'async /*\n*/ function' is invalid.
    836 pp$1.isAsyncFunction = function() {
     844pp$8.isAsyncFunction = function() {
    837845  if (this.options.ecmaVersion < 8 || !this.isContextual("async"))
    838846    { return false }
     
    854862// does not help.
    855863
    856 pp$1.parseStatement = function(context, topLevel, exports) {
     864pp$8.parseStatement = function(context, topLevel, exports) {
    857865  var starttype = this.type, node = this.startNode(), kind;
    858866
    859867  if (this.isLet(context)) {
    860     starttype = types._var;
     868    starttype = types$1._var;
    861869    kind = "let";
    862870  }
     
    867875
    868876  switch (starttype) {
    869   case types._break: case types._continue: return this.parseBreakContinueStatement(node, starttype.keyword)
    870   case types._debugger: return this.parseDebuggerStatement(node)
    871   case types._do: return this.parseDoStatement(node)
    872   case types._for: return this.parseForStatement(node)
    873   case types._function:
     877  case types$1._break: case types$1._continue: return this.parseBreakContinueStatement(node, starttype.keyword)
     878  case types$1._debugger: return this.parseDebuggerStatement(node)
     879  case types$1._do: return this.parseDoStatement(node)
     880  case types$1._for: return this.parseForStatement(node)
     881  case types$1._function:
    874882    // Function as sole body of either an if statement or a labeled statement
    875883    // works, but not when it is part of a labeled statement that is the sole
     
    877885    if ((context && (this.strict || context !== "if" && context !== "label")) && this.options.ecmaVersion >= 6) { this.unexpected(); }
    878886    return this.parseFunctionStatement(node, false, !context)
    879   case types._class:
     887  case types$1._class:
    880888    if (context) { this.unexpected(); }
    881889    return this.parseClass(node, true)
    882   case types._if: return this.parseIfStatement(node)
    883   case types._return: return this.parseReturnStatement(node)
    884   case types._switch: return this.parseSwitchStatement(node)
    885   case types._throw: return this.parseThrowStatement(node)
    886   case types._try: return this.parseTryStatement(node)
    887   case types._const: case types._var:
     890  case types$1._if: return this.parseIfStatement(node)
     891  case types$1._return: return this.parseReturnStatement(node)
     892  case types$1._switch: return this.parseSwitchStatement(node)
     893  case types$1._throw: return this.parseThrowStatement(node)
     894  case types$1._try: return this.parseTryStatement(node)
     895  case types$1._const: case types$1._var:
    888896    kind = kind || this.value;
    889897    if (context && kind !== "var") { this.unexpected(); }
    890898    return this.parseVarStatement(node, kind)
    891   case types._while: return this.parseWhileStatement(node)
    892   case types._with: return this.parseWithStatement(node)
    893   case types.braceL: return this.parseBlock(true, node)
    894   case types.semi: return this.parseEmptyStatement(node)
    895   case types._export:
    896   case types._import:
    897     if (this.options.ecmaVersion > 10 && starttype === types._import) {
     899  case types$1._while: return this.parseWhileStatement(node)
     900  case types$1._with: return this.parseWithStatement(node)
     901  case types$1.braceL: return this.parseBlock(true, node)
     902  case types$1.semi: return this.parseEmptyStatement(node)
     903  case types$1._export:
     904  case types$1._import:
     905    if (this.options.ecmaVersion > 10 && starttype === types$1._import) {
    898906      skipWhiteSpace.lastIndex = this.pos;
    899907      var skip = skipWhiteSpace.exec(this.input);
     
    909917        { this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); }
    910918    }
    911     return starttype === types._import ? this.parseImport(node) : this.parseExport(node, exports)
     919    return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports)
    912920
    913921    // If the statement does not start with a statement keyword or a
     
    924932
    925933    var maybeName = this.value, expr = this.parseExpression();
    926     if (starttype === types.name && expr.type === "Identifier" && this.eat(types.colon))
     934    if (starttype === types$1.name && expr.type === "Identifier" && this.eat(types$1.colon))
    927935      { return this.parseLabeledStatement(node, maybeName, expr, context) }
    928936    else { return this.parseExpressionStatement(node, expr) }
     
    930938};
    931939
    932 pp$1.parseBreakContinueStatement = function(node, keyword) {
     940pp$8.parseBreakContinueStatement = function(node, keyword) {
    933941  var isBreak = keyword === "break";
    934942  this.next();
    935   if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; }
    936   else if (this.type !== types.name) { this.unexpected(); }
     943  if (this.eat(types$1.semi) || this.insertSemicolon()) { node.label = null; }
     944  else if (this.type !== types$1.name) { this.unexpected(); }
    937945  else {
    938946    node.label = this.parseIdent();
     
    954962};
    955963
    956 pp$1.parseDebuggerStatement = function(node) {
     964pp$8.parseDebuggerStatement = function(node) {
    957965  this.next();
    958966  this.semicolon();
     
    960968};
    961969
    962 pp$1.parseDoStatement = function(node) {
     970pp$8.parseDoStatement = function(node) {
    963971  this.next();
    964972  this.labels.push(loopLabel);
    965973  node.body = this.parseStatement("do");
    966974  this.labels.pop();
    967   this.expect(types._while);
     975  this.expect(types$1._while);
    968976  node.test = this.parseParenExpression();
    969977  if (this.options.ecmaVersion >= 6)
    970     { this.eat(types.semi); }
     978    { this.eat(types$1.semi); }
    971979  else
    972980    { this.semicolon(); }
     
    982990// is a regular `for` loop.
    983991
    984 pp$1.parseForStatement = function(node) {
     992pp$8.parseForStatement = function(node) {
    985993  this.next();
    986994  var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await")) ? this.lastTokStart : -1;
    987995  this.labels.push(loopLabel);
    988996  this.enterScope(0);
    989   this.expect(types.parenL);
    990   if (this.type === types.semi) {
     997  this.expect(types$1.parenL);
     998  if (this.type === types$1.semi) {
    991999    if (awaitAt > -1) { this.unexpected(awaitAt); }
    9921000    return this.parseFor(node, null)
    9931001  }
    9941002  var isLet = this.isLet();
    995   if (this.type === types._var || this.type === types._const || isLet) {
     1003  if (this.type === types$1._var || this.type === types$1._const || isLet) {
    9961004    var init$1 = this.startNode(), kind = isLet ? "let" : this.value;
    9971005    this.next();
    9981006    this.parseVar(init$1, true, kind);
    9991007    this.finishNode(init$1, "VariableDeclaration");
    1000     if ((this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1) {
     1008    if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1) {
    10011009      if (this.options.ecmaVersion >= 9) {
    1002         if (this.type === types._in) {
     1010        if (this.type === types$1._in) {
    10031011          if (awaitAt > -1) { this.unexpected(awaitAt); }
    10041012        } else { node.await = awaitAt > -1; }
     
    10121020  var refDestructuringErrors = new DestructuringErrors;
    10131021  var init = this.parseExpression(awaitAt > -1 ? "await" : true, refDestructuringErrors);
    1014   if (this.type === types._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) {
     1022  if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) {
    10151023    if (this.options.ecmaVersion >= 9) {
    1016       if (this.type === types._in) {
     1024      if (this.type === types$1._in) {
    10171025        if (awaitAt > -1) { this.unexpected(awaitAt); }
    10181026      } else { node.await = awaitAt > -1; }
     
    10291037};
    10301038
    1031 pp$1.parseFunctionStatement = function(node, isAsync, declarationPosition) {
     1039pp$8.parseFunctionStatement = function(node, isAsync, declarationPosition) {
    10321040  this.next();
    10331041  return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)
    10341042};
    10351043
    1036 pp$1.parseIfStatement = function(node) {
     1044pp$8.parseIfStatement = function(node) {
    10371045  this.next();
    10381046  node.test = this.parseParenExpression();
    10391047  // allow function declarations in branches, but only in non-strict mode
    10401048  node.consequent = this.parseStatement("if");
    1041   node.alternate = this.eat(types._else) ? this.parseStatement("if") : null;
     1049  node.alternate = this.eat(types$1._else) ? this.parseStatement("if") : null;
    10421050  return this.finishNode(node, "IfStatement")
    10431051};
    10441052
    1045 pp$1.parseReturnStatement = function(node) {
     1053pp$8.parseReturnStatement = function(node) {
    10461054  if (!this.inFunction && !this.options.allowReturnOutsideFunction)
    10471055    { this.raise(this.start, "'return' outside of function"); }
     
    10521060  // possibility to insert one.
    10531061
    1054   if (this.eat(types.semi) || this.insertSemicolon()) { node.argument = null; }
     1062  if (this.eat(types$1.semi) || this.insertSemicolon()) { node.argument = null; }
    10551063  else { node.argument = this.parseExpression(); this.semicolon(); }
    10561064  return this.finishNode(node, "ReturnStatement")
    10571065};
    10581066
    1059 pp$1.parseSwitchStatement = function(node) {
     1067pp$8.parseSwitchStatement = function(node) {
    10601068  this.next();
    10611069  node.discriminant = this.parseParenExpression();
    10621070  node.cases = [];
    1063   this.expect(types.braceL);
     1071  this.expect(types$1.braceL);
    10641072  this.labels.push(switchLabel);
    10651073  this.enterScope(0);
     
    10701078
    10711079  var cur;
    1072   for (var sawDefault = false; this.type !== types.braceR;) {
    1073     if (this.type === types._case || this.type === types._default) {
    1074       var isCase = this.type === types._case;
     1080  for (var sawDefault = false; this.type !== types$1.braceR;) {
     1081    if (this.type === types$1._case || this.type === types$1._default) {
     1082      var isCase = this.type === types$1._case;
    10751083      if (cur) { this.finishNode(cur, "SwitchCase"); }
    10761084      node.cases.push(cur = this.startNode());
     
    10841092        cur.test = null;
    10851093      }
    1086       this.expect(types.colon);
     1094      this.expect(types$1.colon);
    10871095    } else {
    10881096      if (!cur) { this.unexpected(); }
     
    10971105};
    10981106
    1099 pp$1.parseThrowStatement = function(node) {
     1107pp$8.parseThrowStatement = function(node) {
    11001108  this.next();
    11011109  if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))
     
    11081116// Reused empty array added for node fields that are always empty.
    11091117
    1110 var empty = [];
    1111 
    1112 pp$1.parseTryStatement = function(node) {
     1118var empty$1 = [];
     1119
     1120pp$8.parseTryStatement = function(node) {
    11131121  this.next();
    11141122  node.block = this.parseBlock();
    11151123  node.handler = null;
    1116   if (this.type === types._catch) {
     1124  if (this.type === types$1._catch) {
    11171125    var clause = this.startNode();
    11181126    this.next();
    1119     if (this.eat(types.parenL)) {
     1127    if (this.eat(types$1.parenL)) {
    11201128      clause.param = this.parseBindingAtom();
    11211129      var simple = clause.param.type === "Identifier";
    11221130      this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);
    11231131      this.checkLValPattern(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);
    1124       this.expect(types.parenR);
     1132      this.expect(types$1.parenR);
    11251133    } else {
    11261134      if (this.options.ecmaVersion < 10) { this.unexpected(); }
     
    11321140    node.handler = this.finishNode(clause, "CatchClause");
    11331141  }
    1134   node.finalizer = this.eat(types._finally) ? this.parseBlock() : null;
     1142  node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null;
    11351143  if (!node.handler && !node.finalizer)
    11361144    { this.raise(node.start, "Missing catch or finally clause"); }
     
    11381146};
    11391147
    1140 pp$1.parseVarStatement = function(node, kind) {
     1148pp$8.parseVarStatement = function(node, kind) {
    11411149  this.next();
    11421150  this.parseVar(node, false, kind);
     
    11451153};
    11461154
    1147 pp$1.parseWhileStatement = function(node) {
     1155pp$8.parseWhileStatement = function(node) {
    11481156  this.next();
    11491157  node.test = this.parseParenExpression();
     
    11541162};
    11551163
    1156 pp$1.parseWithStatement = function(node) {
     1164pp$8.parseWithStatement = function(node) {
    11571165  if (this.strict) { this.raise(this.start, "'with' in strict mode"); }
    11581166  this.next();
     
    11621170};
    11631171
    1164 pp$1.parseEmptyStatement = function(node) {
     1172pp$8.parseEmptyStatement = function(node) {
    11651173  this.next();
    11661174  return this.finishNode(node, "EmptyStatement")
    11671175};
    11681176
    1169 pp$1.parseLabeledStatement = function(node, maybeName, expr, context) {
     1177pp$8.parseLabeledStatement = function(node, maybeName, expr, context) {
    11701178  for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)
    11711179    {
     
    11751183      { this.raise(expr.start, "Label '" + maybeName + "' is already declared");
    11761184  } }
    1177   var kind = this.type.isLoop ? "loop" : this.type === types._switch ? "switch" : null;
     1185  var kind = this.type.isLoop ? "loop" : this.type === types$1._switch ? "switch" : null;
    11781186  for (var i = this.labels.length - 1; i >= 0; i--) {
    11791187    var label$1 = this.labels[i];
     
    11911199};
    11921200
    1193 pp$1.parseExpressionStatement = function(node, expr) {
     1201pp$8.parseExpressionStatement = function(node, expr) {
    11941202  node.expression = expr;
    11951203  this.semicolon();
     
    12011209// function bodies).
    12021210
    1203 pp$1.parseBlock = function(createNewLexicalScope, node, exitStrict) {
     1211pp$8.parseBlock = function(createNewLexicalScope, node, exitStrict) {
    12041212  if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;
    12051213  if ( node === void 0 ) node = this.startNode();
    12061214
    12071215  node.body = [];
    1208   this.expect(types.braceL);
     1216  this.expect(types$1.braceL);
    12091217  if (createNewLexicalScope) { this.enterScope(0); }
    1210   while (this.type !== types.braceR) {
     1218  while (this.type !== types$1.braceR) {
    12111219    var stmt = this.parseStatement(null);
    12121220    node.body.push(stmt);
     
    12221230// expression.
    12231231
    1224 pp$1.parseFor = function(node, init) {
     1232pp$8.parseFor = function(node, init) {
    12251233  node.init = init;
    1226   this.expect(types.semi);
    1227   node.test = this.type === types.semi ? null : this.parseExpression();
    1228   this.expect(types.semi);
    1229   node.update = this.type === types.parenR ? null : this.parseExpression();
    1230   this.expect(types.parenR);
     1234  this.expect(types$1.semi);
     1235  node.test = this.type === types$1.semi ? null : this.parseExpression();
     1236  this.expect(types$1.semi);
     1237  node.update = this.type === types$1.parenR ? null : this.parseExpression();
     1238  this.expect(types$1.parenR);
    12311239  node.body = this.parseStatement("for");
    12321240  this.exitScope();
     
    12381246// same from parser's perspective.
    12391247
    1240 pp$1.parseForIn = function(node, init) {
    1241   var isForIn = this.type === types._in;
     1248pp$8.parseForIn = function(node, init) {
     1249  var isForIn = this.type === types$1._in;
    12421250  this.next();
    12431251
     
    12601268  node.left = init;
    12611269  node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();
    1262   this.expect(types.parenR);
     1270  this.expect(types$1.parenR);
    12631271  node.body = this.parseStatement("for");
    12641272  this.exitScope();
     
    12691277// Parse a list of variable declarations.
    12701278
    1271 pp$1.parseVar = function(node, isFor, kind) {
     1279pp$8.parseVar = function(node, isFor, kind) {
    12721280  node.declarations = [];
    12731281  node.kind = kind;
     
    12751283    var decl = this.startNode();
    12761284    this.parseVarId(decl, kind);
    1277     if (this.eat(types.eq)) {
     1285    if (this.eat(types$1.eq)) {
    12781286      decl.init = this.parseMaybeAssign(isFor);
    1279     } else if (kind === "const" && !(this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) {
     1287    } else if (kind === "const" && !(this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) {
    12801288      this.unexpected();
    1281     } else if (decl.id.type !== "Identifier" && !(isFor && (this.type === types._in || this.isContextual("of")))) {
     1289    } else if (decl.id.type !== "Identifier" && !(isFor && (this.type === types$1._in || this.isContextual("of")))) {
    12821290      this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value");
    12831291    } else {
     
    12851293    }
    12861294    node.declarations.push(this.finishNode(decl, "VariableDeclarator"));
    1287     if (!this.eat(types.comma)) { break }
     1295    if (!this.eat(types$1.comma)) { break }
    12881296  }
    12891297  return node
    12901298};
    12911299
    1292 pp$1.parseVarId = function(decl, kind) {
     1300pp$8.parseVarId = function(decl, kind) {
    12931301  decl.id = this.parseBindingAtom();
    12941302  this.checkLValPattern(decl.id, kind === "var" ? BIND_VAR : BIND_LEXICAL, false);
     
    13011309
    13021310// Remove `allowExpressionBody` for 7.0.0, as it is only called with false
    1303 pp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) {
     1311pp$8.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) {
    13041312  this.initFunction(node);
    13051313  if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {
    1306     if (this.type === types.star && (statement & FUNC_HANGING_STATEMENT))
     1314    if (this.type === types$1.star && (statement & FUNC_HANGING_STATEMENT))
    13071315      { this.unexpected(); }
    1308     node.generator = this.eat(types.star);
     1316    node.generator = this.eat(types$1.star);
    13091317  }
    13101318  if (this.options.ecmaVersion >= 8)
     
    13121320
    13131321  if (statement & FUNC_STATEMENT) {
    1314     node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types.name ? null : this.parseIdent();
     1322    node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types$1.name ? null : this.parseIdent();
    13151323    if (node.id && !(statement & FUNC_HANGING_STATEMENT))
    13161324      // If it is a regular function declaration in sloppy mode, then it is
     
    13281336
    13291337  if (!(statement & FUNC_STATEMENT))
    1330     { node.id = this.type === types.name ? this.parseIdent() : null; }
     1338    { node.id = this.type === types$1.name ? this.parseIdent() : null; }
    13311339
    13321340  this.parseFunctionParams(node);
     
    13391347};
    13401348
    1341 pp$1.parseFunctionParams = function(node) {
    1342   this.expect(types.parenL);
    1343   node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);
     1349pp$8.parseFunctionParams = function(node) {
     1350  this.expect(types$1.parenL);
     1351  node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);
    13441352  this.checkYieldAwaitInDefaultParams();
    13451353};
     
    13481356// `isStatement` parameter).
    13491357
    1350 pp$1.parseClass = function(node, isStatement) {
     1358pp$8.parseClass = function(node, isStatement) {
    13511359  this.next();
    13521360
     
    13621370  var hadConstructor = false;
    13631371  classBody.body = [];
    1364   this.expect(types.braceL);
    1365   while (this.type !== types.braceR) {
     1372  this.expect(types$1.braceL);
     1373  while (this.type !== types$1.braceR) {
    13661374    var element = this.parseClassElement(node.superClass !== null);
    13671375    if (element) {
     
    13821390};
    13831391
    1384 pp$1.parseClassElement = function(constructorAllowsSuper) {
    1385   if (this.eat(types.semi)) { return null }
     1392pp$8.parseClassElement = function(constructorAllowsSuper) {
     1393  if (this.eat(types$1.semi)) { return null }
    13861394
    13871395  var ecmaVersion = this.options.ecmaVersion;
     
    13951403  if (this.eatContextual("static")) {
    13961404    // Parse static init block
    1397     if (ecmaVersion >= 13 && this.eat(types.braceL)) {
     1405    if (ecmaVersion >= 13 && this.eat(types$1.braceL)) {
    13981406      this.parseClassStaticBlock(node);
    13991407      return node
    14001408    }
    1401     if (this.isClassElementNameStart() || this.type === types.star) {
     1409    if (this.isClassElementNameStart() || this.type === types$1.star) {
    14021410      isStatic = true;
    14031411    } else {
     
    14071415  node.static = isStatic;
    14081416  if (!keyName && ecmaVersion >= 8 && this.eatContextual("async")) {
    1409     if ((this.isClassElementNameStart() || this.type === types.star) && !this.canInsertSemicolon()) {
     1417    if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) {
    14101418      isAsync = true;
    14111419    } else {
     
    14131421    }
    14141422  }
    1415   if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types.star)) {
     1423  if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) {
    14161424    isGenerator = true;
    14171425  }
     
    14401448
    14411449  // Parse element value
    1442   if (ecmaVersion < 13 || this.type === types.parenL || kind !== "method" || isGenerator || isAsync) {
     1450  if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== "method" || isGenerator || isAsync) {
    14431451    var isConstructor = !node.static && checkKeyName(node, "constructor");
    14441452    var allowsDirectSuper = isConstructor && constructorAllowsSuper;
     
    14541462};
    14551463
    1456 pp$1.isClassElementNameStart = function() {
     1464pp$8.isClassElementNameStart = function() {
    14571465  return (
    1458     this.type === types.name ||
    1459     this.type === types.privateId ||
    1460     this.type === types.num ||
    1461     this.type === types.string ||
    1462     this.type === types.bracketL ||
     1466    this.type === types$1.name ||
     1467    this.type === types$1.privateId ||
     1468    this.type === types$1.num ||
     1469    this.type === types$1.string ||
     1470    this.type === types$1.bracketL ||
    14631471    this.type.keyword
    14641472  )
    14651473};
    14661474
    1467 pp$1.parseClassElementName = function(element) {
    1468   if (this.type === types.privateId) {
     1475pp$8.parseClassElementName = function(element) {
     1476  if (this.type === types$1.privateId) {
    14691477    if (this.value === "constructor") {
    14701478      this.raise(this.start, "Classes can't have an element named '#constructor'");
     
    14771485};
    14781486
    1479 pp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {
     1487pp$8.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {
    14801488  // Check key and flags
    14811489  var key = method.key;
     
    15011509};
    15021510
    1503 pp$1.parseClassField = function(field) {
     1511pp$8.parseClassField = function(field) {
    15041512  if (checkKeyName(field, "constructor")) {
    15051513    this.raise(field.key.start, "Classes can't have a field named 'constructor'");
     
    15081516  }
    15091517
    1510   if (this.eat(types.eq)) {
     1518  if (this.eat(types$1.eq)) {
    15111519    // To raise SyntaxError if 'arguments' exists in the initializer.
    15121520    var scope = this.currentThisScope();
     
    15231531};
    15241532
    1525 pp$1.parseClassStaticBlock = function(node) {
     1533pp$8.parseClassStaticBlock = function(node) {
    15261534  node.body = [];
    15271535
     
    15291537  this.labels = [];
    15301538  this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER);
    1531   while (this.type !== types.braceR) {
     1539  while (this.type !== types$1.braceR) {
    15321540    var stmt = this.parseStatement(null);
    15331541    node.body.push(stmt);
     
    15401548};
    15411549
    1542 pp$1.parseClassId = function(node, isStatement) {
    1543   if (this.type === types.name) {
     1550pp$8.parseClassId = function(node, isStatement) {
     1551  if (this.type === types$1.name) {
    15441552    node.id = this.parseIdent();
    15451553    if (isStatement)
     
    15521560};
    15531561
    1554 pp$1.parseClassSuper = function(node) {
    1555   node.superClass = this.eat(types._extends) ? this.parseExprSubscripts(false) : null;
    1556 };
    1557 
    1558 pp$1.enterClassBody = function() {
     1562pp$8.parseClassSuper = function(node) {
     1563  node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(false) : null;
     1564};
     1565
     1566pp$8.enterClassBody = function() {
    15591567  var element = {declared: Object.create(null), used: []};
    15601568  this.privateNameStack.push(element);
     
    15621570};
    15631571
    1564 pp$1.exitClassBody = function() {
     1572pp$8.exitClassBody = function() {
    15651573  var ref = this.privateNameStack.pop();
    15661574  var declared = ref.declared;
     
    16171625// Parses module export declaration.
    16181626
    1619 pp$1.parseExport = function(node, exports) {
     1627pp$8.parseExport = function(node, exports) {
    16201628  this.next();
    16211629  // export * from '...'
    1622   if (this.eat(types.star)) {
     1630  if (this.eat(types$1.star)) {
    16231631    if (this.options.ecmaVersion >= 11) {
    16241632      if (this.eatContextual("as")) {
     
    16301638    }
    16311639    this.expectContextual("from");
    1632     if (this.type !== types.string) { this.unexpected(); }
     1640    if (this.type !== types$1.string) { this.unexpected(); }
    16331641    node.source = this.parseExprAtom();
    16341642    this.semicolon();
    16351643    return this.finishNode(node, "ExportAllDeclaration")
    16361644  }
    1637   if (this.eat(types._default)) { // export default ...
     1645  if (this.eat(types$1._default)) { // export default ...
    16381646    this.checkExport(exports, "default", this.lastTokStart);
    16391647    var isAsync;
    1640     if (this.type === types._function || (isAsync = this.isAsyncFunction())) {
     1648    if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) {
    16411649      var fNode = this.startNode();
    16421650      this.next();
    16431651      if (isAsync) { this.next(); }
    16441652      node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync);
    1645     } else if (this.type === types._class) {
     1653    } else if (this.type === types$1._class) {
    16461654      var cNode = this.startNode();
    16471655      node.declaration = this.parseClass(cNode, "nullableID");
     
    16651673    node.specifiers = this.parseExportSpecifiers(exports);
    16661674    if (this.eatContextual("from")) {
    1667       if (this.type !== types.string) { this.unexpected(); }
     1675      if (this.type !== types$1.string) { this.unexpected(); }
    16681676      node.source = this.parseExprAtom();
    16691677    } else {
     
    16841692};
    16851693
    1686 pp$1.checkExport = function(exports, name, pos) {
     1694pp$8.checkExport = function(exports, name, pos) {
    16871695  if (!exports) { return }
    16881696  if (has(exports, name))
     
    16911699};
    16921700
    1693 pp$1.checkPatternExport = function(exports, pat) {
     1701pp$8.checkPatternExport = function(exports, pat) {
    16941702  var type = pat.type;
    16951703  if (type === "Identifier")
     
    17181726};
    17191727
    1720 pp$1.checkVariableExport = function(exports, decls) {
     1728pp$8.checkVariableExport = function(exports, decls) {
    17211729  if (!exports) { return }
    17221730  for (var i = 0, list = decls; i < list.length; i += 1)
     
    17281736};
    17291737
    1730 pp$1.shouldParseExportStatement = function() {
     1738pp$8.shouldParseExportStatement = function() {
    17311739  return this.type.keyword === "var" ||
    17321740    this.type.keyword === "const" ||
     
    17391747// Parses a comma-separated list of module exports.
    17401748
    1741 pp$1.parseExportSpecifiers = function(exports) {
     1749pp$8.parseExportSpecifiers = function(exports) {
    17421750  var nodes = [], first = true;
    17431751  // export { x, y as z } [from '...']
    1744   this.expect(types.braceL);
    1745   while (!this.eat(types.braceR)) {
     1752  this.expect(types$1.braceL);
     1753  while (!this.eat(types$1.braceR)) {
    17461754    if (!first) {
    1747       this.expect(types.comma);
    1748       if (this.afterTrailingComma(types.braceR)) { break }
     1755      this.expect(types$1.comma);
     1756      if (this.afterTrailingComma(types$1.braceR)) { break }
    17491757    } else { first = false; }
    17501758
     
    17601768// Parses import declaration.
    17611769
    1762 pp$1.parseImport = function(node) {
     1770pp$8.parseImport = function(node) {
    17631771  this.next();
    17641772  // import '...'
    1765   if (this.type === types.string) {
    1766     node.specifiers = empty;
     1773  if (this.type === types$1.string) {
     1774    node.specifiers = empty$1;
    17671775    node.source = this.parseExprAtom();
    17681776  } else {
    17691777    node.specifiers = this.parseImportSpecifiers();
    17701778    this.expectContextual("from");
    1771     node.source = this.type === types.string ? this.parseExprAtom() : this.unexpected();
     1779    node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected();
    17721780  }
    17731781  this.semicolon();
     
    17771785// Parses a comma-separated list of module imports.
    17781786
    1779 pp$1.parseImportSpecifiers = function() {
     1787pp$8.parseImportSpecifiers = function() {
    17801788  var nodes = [], first = true;
    1781   if (this.type === types.name) {
     1789  if (this.type === types$1.name) {
    17821790    // import defaultObj, { x, y as z } from '...'
    17831791    var node = this.startNode();
     
    17851793    this.checkLValSimple(node.local, BIND_LEXICAL);
    17861794    nodes.push(this.finishNode(node, "ImportDefaultSpecifier"));
    1787     if (!this.eat(types.comma)) { return nodes }
    1788   }
    1789   if (this.type === types.star) {
     1795    if (!this.eat(types$1.comma)) { return nodes }
     1796  }
     1797  if (this.type === types$1.star) {
    17901798    var node$1 = this.startNode();
    17911799    this.next();
     
    17961804    return nodes
    17971805  }
    1798   this.expect(types.braceL);
    1799   while (!this.eat(types.braceR)) {
     1806  this.expect(types$1.braceL);
     1807  while (!this.eat(types$1.braceR)) {
    18001808    if (!first) {
    1801       this.expect(types.comma);
    1802       if (this.afterTrailingComma(types.braceR)) { break }
     1809      this.expect(types$1.comma);
     1810      if (this.afterTrailingComma(types$1.braceR)) { break }
    18031811    } else { first = false; }
    18041812
     
    18181826
    18191827// Set `ExpressionStatement#directive` property for directive prologues.
    1820 pp$1.adaptDirectivePrologue = function(statements) {
     1828pp$8.adaptDirectivePrologue = function(statements) {
    18211829  for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {
    18221830    statements[i].directive = statements[i].expression.raw.slice(1, -1);
    18231831  }
    18241832};
    1825 pp$1.isDirectiveCandidate = function(statement) {
     1833pp$8.isDirectiveCandidate = function(statement) {
    18261834  return (
    18271835    statement.type === "ExpressionStatement" &&
     
    18331841};
    18341842
    1835 var pp$2 = Parser.prototype;
     1843var pp$7 = Parser.prototype;
    18361844
    18371845// Convert existing expression atom to assignable pattern
    18381846// if possible.
    18391847
    1840 pp$2.toAssignable = function(node, isBinding, refDestructuringErrors) {
     1848pp$7.toAssignable = function(node, isBinding, refDestructuringErrors) {
    18411849  if (this.options.ecmaVersion >= 6 && node) {
    18421850    switch (node.type) {
     
    19191927// Convert list of expression atoms to binding list.
    19201928
    1921 pp$2.toAssignableList = function(exprList, isBinding) {
     1929pp$7.toAssignableList = function(exprList, isBinding) {
    19221930  var end = exprList.length;
    19231931  for (var i = 0; i < end; i++) {
     
    19351943// Parses spread element.
    19361944
    1937 pp$2.parseSpread = function(refDestructuringErrors) {
     1945pp$7.parseSpread = function(refDestructuringErrors) {
    19381946  var node = this.startNode();
    19391947  this.next();
     
    19421950};
    19431951
    1944 pp$2.parseRestBinding = function() {
     1952pp$7.parseRestBinding = function() {
    19451953  var node = this.startNode();
    19461954  this.next();
    19471955
    19481956  // RestElement inside of a function parameter must be an identifier
    1949   if (this.options.ecmaVersion === 6 && this.type !== types.name)
     1957  if (this.options.ecmaVersion === 6 && this.type !== types$1.name)
    19501958    { this.unexpected(); }
    19511959
     
    19571965// Parses lvalue (assignable) atom.
    19581966
    1959 pp$2.parseBindingAtom = function() {
     1967pp$7.parseBindingAtom = function() {
    19601968  if (this.options.ecmaVersion >= 6) {
    19611969    switch (this.type) {
    1962     case types.bracketL:
     1970    case types$1.bracketL:
    19631971      var node = this.startNode();
    19641972      this.next();
    1965       node.elements = this.parseBindingList(types.bracketR, true, true);
     1973      node.elements = this.parseBindingList(types$1.bracketR, true, true);
    19661974      return this.finishNode(node, "ArrayPattern")
    19671975
    1968     case types.braceL:
     1976    case types$1.braceL:
    19691977      return this.parseObj(true)
    19701978    }
     
    19731981};
    19741982
    1975 pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) {
     1983pp$7.parseBindingList = function(close, allowEmpty, allowTrailingComma) {
    19761984  var elts = [], first = true;
    19771985  while (!this.eat(close)) {
    19781986    if (first) { first = false; }
    1979     else { this.expect(types.comma); }
    1980     if (allowEmpty && this.type === types.comma) {
     1987    else { this.expect(types$1.comma); }
     1988    if (allowEmpty && this.type === types$1.comma) {
    19811989      elts.push(null);
    19821990    } else if (allowTrailingComma && this.afterTrailingComma(close)) {
    19831991      break
    1984     } else if (this.type === types.ellipsis) {
     1992    } else if (this.type === types$1.ellipsis) {
    19851993      var rest = this.parseRestBinding();
    19861994      this.parseBindingListItem(rest);
    19871995      elts.push(rest);
    1988       if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); }
     1996      if (this.type === types$1.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); }
    19891997      this.expect(close);
    19901998      break
     
    19982006};
    19992007
    2000 pp$2.parseBindingListItem = function(param) {
     2008pp$7.parseBindingListItem = function(param) {
    20012009  return param
    20022010};
     
    20042012// Parses assignment pattern around given atom if possible.
    20052013
    2006 pp$2.parseMaybeDefault = function(startPos, startLoc, left) {
     2014pp$7.parseMaybeDefault = function(startPos, startLoc, left) {
    20072015  left = left || this.parseBindingAtom();
    2008   if (this.options.ecmaVersion < 6 || !this.eat(types.eq)) { return left }
     2016  if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { return left }
    20092017  var node = this.startNodeAt(startPos, startLoc);
    20102018  node.left = left;
     
    20772085// is an assignment (i.e., bindingType is BIND_NONE).
    20782086
    2079 pp$2.checkLValSimple = function(expr, bindingType, checkClashes) {
     2087pp$7.checkLValSimple = function(expr, bindingType, checkClashes) {
    20802088  if ( bindingType === void 0 ) bindingType = BIND_NONE;
    20812089
     
    21152123};
    21162124
    2117 pp$2.checkLValPattern = function(expr, bindingType, checkClashes) {
     2125pp$7.checkLValPattern = function(expr, bindingType, checkClashes) {
    21182126  if ( bindingType === void 0 ) bindingType = BIND_NONE;
    21192127
     
    21402148};
    21412149
    2142 pp$2.checkLValInnerPattern = function(expr, bindingType, checkClashes) {
     2150pp$7.checkLValInnerPattern = function(expr, bindingType, checkClashes) {
    21432151  if ( bindingType === void 0 ) bindingType = BIND_NONE;
    21442152
     
    21722180};
    21732181
    2174 var types$1 = {
     2182var types = {
    21752183  b_stat: new TokContext("{", false),
    21762184  b_expr: new TokContext("{", true),
     
    21852193};
    21862194
    2187 var pp$3 = Parser.prototype;
    2188 
    2189 pp$3.initialContext = function() {
    2190   return [types$1.b_stat]
    2191 };
    2192 
    2193 pp$3.curContext = function() {
     2195var pp$6 = Parser.prototype;
     2196
     2197pp$6.initialContext = function() {
     2198  return [types.b_stat]
     2199};
     2200
     2201pp$6.curContext = function() {
    21942202  return this.context[this.context.length - 1]
    21952203};
    21962204
    2197 pp$3.braceIsBlock = function(prevType) {
     2205pp$6.braceIsBlock = function(prevType) {
    21982206  var parent = this.curContext();
    2199   if (parent === types$1.f_expr || parent === types$1.f_stat)
     2207  if (parent === types.f_expr || parent === types.f_stat)
    22002208    { return true }
    2201   if (prevType === types.colon && (parent === types$1.b_stat || parent === types$1.b_expr))
     2209  if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr))
    22022210    { return !parent.isExpr }
    22032211
     
    22052213  // after a `yield` or `of` construct. See the `updateContext` for
    22062214  // `tt.name`.
    2207   if (prevType === types._return || prevType === types.name && this.exprAllowed)
     2215  if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed)
    22082216    { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }
    2209   if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow)
     2217  if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow)
    22102218    { return true }
    2211   if (prevType === types.braceL)
    2212     { return parent === types$1.b_stat }
    2213   if (prevType === types._var || prevType === types._const || prevType === types.name)
     2219  if (prevType === types$1.braceL)
     2220    { return parent === types.b_stat }
     2221  if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name)
    22142222    { return false }
    22152223  return !this.exprAllowed
    22162224};
    22172225
    2218 pp$3.inGeneratorContext = function() {
     2226pp$6.inGeneratorContext = function() {
    22192227  for (var i = this.context.length - 1; i >= 1; i--) {
    22202228    var context = this.context[i];
     
    22252233};
    22262234
    2227 pp$3.updateContext = function(prevType) {
     2235pp$6.updateContext = function(prevType) {
    22282236  var update, type = this.type;
    2229   if (type.keyword && prevType === types.dot)
     2237  if (type.keyword && prevType === types$1.dot)
    22302238    { this.exprAllowed = false; }
    22312239  else if (update = type.updateContext)
     
    22362244
    22372245// Used to handle egde case when token context could not be inferred correctly in tokenize phase
    2238 pp$3.overrideContext = function(tokenCtx) {
     2246pp$6.overrideContext = function(tokenCtx) {
    22392247  if (this.curContext() !== tokenCtx) {
    22402248    this.context[this.context.length - 1] = tokenCtx;
     
    22442252// Token-specific context update code
    22452253
    2246 types.parenR.updateContext = types.braceR.updateContext = function() {
     2254types$1.parenR.updateContext = types$1.braceR.updateContext = function() {
    22472255  if (this.context.length === 1) {
    22482256    this.exprAllowed = true;
     
    22502258  }
    22512259  var out = this.context.pop();
    2252   if (out === types$1.b_stat && this.curContext().token === "function") {
     2260  if (out === types.b_stat && this.curContext().token === "function") {
    22532261    out = this.context.pop();
    22542262  }
     
    22562264};
    22572265
    2258 types.braceL.updateContext = function(prevType) {
    2259   this.context.push(this.braceIsBlock(prevType) ? types$1.b_stat : types$1.b_expr);
     2266types$1.braceL.updateContext = function(prevType) {
     2267  this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);
    22602268  this.exprAllowed = true;
    22612269};
    22622270
    2263 types.dollarBraceL.updateContext = function() {
    2264   this.context.push(types$1.b_tmpl);
     2271types$1.dollarBraceL.updateContext = function() {
     2272  this.context.push(types.b_tmpl);
    22652273  this.exprAllowed = true;
    22662274};
    22672275
    2268 types.parenL.updateContext = function(prevType) {
    2269   var statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while;
    2270   this.context.push(statementParens ? types$1.p_stat : types$1.p_expr);
     2276types$1.parenL.updateContext = function(prevType) {
     2277  var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while;
     2278  this.context.push(statementParens ? types.p_stat : types.p_expr);
    22712279  this.exprAllowed = true;
    22722280};
    22732281
    2274 types.incDec.updateContext = function() {
     2282types$1.incDec.updateContext = function() {
    22752283  // tokExprAllowed stays unchanged
    22762284};
    22772285
    2278 types._function.updateContext = types._class.updateContext = function(prevType) {
    2279   if (prevType.beforeExpr && prevType !== types._else &&
    2280       !(prevType === types.semi && this.curContext() !== types$1.p_stat) &&
    2281       !(prevType === types._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&
    2282       !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat))
    2283     { this.context.push(types$1.f_expr); }
     2286types$1._function.updateContext = types$1._class.updateContext = function(prevType) {
     2287  if (prevType.beforeExpr && prevType !== types$1._else &&
     2288      !(prevType === types$1.semi && this.curContext() !== types.p_stat) &&
     2289      !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&
     2290      !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat))
     2291    { this.context.push(types.f_expr); }
    22842292  else
    2285     { this.context.push(types$1.f_stat); }
     2293    { this.context.push(types.f_stat); }
    22862294  this.exprAllowed = false;
    22872295};
    22882296
    2289 types.backQuote.updateContext = function() {
    2290   if (this.curContext() === types$1.q_tmpl)
     2297types$1.backQuote.updateContext = function() {
     2298  if (this.curContext() === types.q_tmpl)
    22912299    { this.context.pop(); }
    22922300  else
    2293     { this.context.push(types$1.q_tmpl); }
     2301    { this.context.push(types.q_tmpl); }
    22942302  this.exprAllowed = false;
    22952303};
    22962304
    2297 types.star.updateContext = function(prevType) {
    2298   if (prevType === types._function) {
     2305types$1.star.updateContext = function(prevType) {
     2306  if (prevType === types$1._function) {
    22992307    var index = this.context.length - 1;
    2300     if (this.context[index] === types$1.f_expr)
    2301       { this.context[index] = types$1.f_expr_gen; }
     2308    if (this.context[index] === types.f_expr)
     2309      { this.context[index] = types.f_expr_gen; }
    23022310    else
    2303       { this.context[index] = types$1.f_gen; }
     2311      { this.context[index] = types.f_gen; }
    23042312  }
    23052313  this.exprAllowed = true;
    23062314};
    23072315
    2308 types.name.updateContext = function(prevType) {
     2316types$1.name.updateContext = function(prevType) {
    23092317  var allowed = false;
    2310   if (this.options.ecmaVersion >= 6 && prevType !== types.dot) {
     2318  if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) {
    23112319    if (this.value === "of" && !this.exprAllowed ||
    23122320        this.value === "yield" && this.inGeneratorContext())
     
    23182326// A recursive descent parser operates by defining functions for all
    23192327
    2320 var pp$4 = Parser.prototype;
     2328var pp$5 = Parser.prototype;
    23212329
    23222330// Check if property name clashes with already added.
     
    23252333// strict mode, init properties are also not allowed to be repeated.
    23262334
    2327 pp$4.checkPropClash = function(prop, propHash, refDestructuringErrors) {
     2335pp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) {
    23282336  if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement")
    23292337    { return }
     
    23422350      if (propHash.proto) {
    23432351        if (refDestructuringErrors) {
    2344           if (refDestructuringErrors.doubleProto < 0)
    2345             { refDestructuringErrors.doubleProto = key.start; }
    2346           // Backwards-compat kludge. Can be removed in version 6.0
    2347         } else { this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); }
     2352          if (refDestructuringErrors.doubleProto < 0) {
     2353            refDestructuringErrors.doubleProto = key.start;
     2354          }
     2355        } else {
     2356          this.raiseRecoverable(key.start, "Redefinition of __proto__ property");
     2357        }
    23482358      }
    23492359      propHash.proto = true;
     
    23872397// delayed syntax error at correct position).
    23882398
    2389 pp$4.parseExpression = function(forInit, refDestructuringErrors) {
     2399pp$5.parseExpression = function(forInit, refDestructuringErrors) {
    23902400  var startPos = this.start, startLoc = this.startLoc;
    23912401  var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);
    2392   if (this.type === types.comma) {
     2402  if (this.type === types$1.comma) {
    23932403    var node = this.startNodeAt(startPos, startLoc);
    23942404    node.expressions = [expr];
    2395     while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }
     2405    while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }
    23962406    return this.finishNode(node, "SequenceExpression")
    23972407  }
     
    24022412// operators like `+=`.
    24032413
    2404 pp$4.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {
     2414pp$5.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {
    24052415  if (this.isContextual("yield")) {
    24062416    if (this.inGenerator) { return this.parseYield(forInit) }
     
    24102420  }
    24112421
    2412   var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1;
     2422  var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1;
    24132423  if (refDestructuringErrors) {
    24142424    oldParenAssign = refDestructuringErrors.parenthesizedAssign;
    24152425    oldTrailingComma = refDestructuringErrors.trailingComma;
     2426    oldDoubleProto = refDestructuringErrors.doubleProto;
    24162427    refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;
    24172428  } else {
     
    24212432
    24222433  var startPos = this.start, startLoc = this.startLoc;
    2423   if (this.type === types.parenL || this.type === types.name) {
     2434  if (this.type === types$1.parenL || this.type === types$1.name) {
    24242435    this.potentialArrowAt = this.start;
    24252436    this.potentialArrowInForAwait = forInit === "await";
     
    24302441    var node = this.startNodeAt(startPos, startLoc);
    24312442    node.operator = this.value;
    2432     if (this.type === types.eq)
     2443    if (this.type === types$1.eq)
    24332444      { left = this.toAssignable(left, false, refDestructuringErrors); }
    24342445    if (!ownDestructuringErrors) {
     
    24372448    if (refDestructuringErrors.shorthandAssign >= left.start)
    24382449      { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly
    2439     if (this.type === types.eq)
     2450    if (this.type === types$1.eq)
    24402451      { this.checkLValPattern(left); }
    24412452    else
     
    24442455    this.next();
    24452456    node.right = this.parseMaybeAssign(forInit);
     2457    if (oldDoubleProto > -1) { refDestructuringErrors.doubleProto = oldDoubleProto; }
    24462458    return this.finishNode(node, "AssignmentExpression")
    24472459  } else {
     
    24552467// Parse a ternary conditional (`?:`) operator.
    24562468
    2457 pp$4.parseMaybeConditional = function(forInit, refDestructuringErrors) {
     2469pp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) {
    24582470  var startPos = this.start, startLoc = this.startLoc;
    24592471  var expr = this.parseExprOps(forInit, refDestructuringErrors);
    24602472  if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }
    2461   if (this.eat(types.question)) {
     2473  if (this.eat(types$1.question)) {
    24622474    var node = this.startNodeAt(startPos, startLoc);
    24632475    node.test = expr;
    24642476    node.consequent = this.parseMaybeAssign();
    2465     this.expect(types.colon);
     2477    this.expect(types$1.colon);
    24662478    node.alternate = this.parseMaybeAssign(forInit);
    24672479    return this.finishNode(node, "ConditionalExpression")
     
    24722484// Start the precedence parser.
    24732485
    2474 pp$4.parseExprOps = function(forInit, refDestructuringErrors) {
     2486pp$5.parseExprOps = function(forInit, refDestructuringErrors) {
    24752487  var startPos = this.start, startLoc = this.startLoc;
    24762488  var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit);
     
    24852497// operator that has a lower precedence than the set it is parsing.
    24862498
    2487 pp$4.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {
     2499pp$5.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {
    24882500  var prec = this.type.binop;
    2489   if (prec != null && (!forInit || this.type !== types._in)) {
     2501  if (prec != null && (!forInit || this.type !== types$1._in)) {
    24902502    if (prec > minPrec) {
    2491       var logical = this.type === types.logicalOR || this.type === types.logicalAND;
    2492       var coalesce = this.type === types.coalesce;
     2503      var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND;
     2504      var coalesce = this.type === types$1.coalesce;
    24932505      if (coalesce) {
    24942506        // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.
    24952507        // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.
    2496         prec = types.logicalAND.binop;
     2508        prec = types$1.logicalAND.binop;
    24972509      }
    24982510      var op = this.value;
     
    25012513      var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit);
    25022514      var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);
    2503       if ((logical && this.type === types.coalesce) || (coalesce && (this.type === types.logicalOR || this.type === types.logicalAND))) {
     2515      if ((logical && this.type === types$1.coalesce) || (coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND))) {
    25042516        this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses");
    25052517      }
     
    25102522};
    25112523
    2512 pp$4.buildBinary = function(startPos, startLoc, left, right, op, logical) {
     2524pp$5.buildBinary = function(startPos, startLoc, left, right, op, logical) {
     2525  if (right.type === "PrivateIdentifier") { this.raise(right.start, "Private identifier can only be left side of binary expression"); }
    25132526  var node = this.startNodeAt(startPos, startLoc);
    25142527  node.left = left;
     
    25202533// Parse unary operators, both prefix and postfix.
    25212534
    2522 pp$4.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) {
     2535pp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) {
    25232536  var startPos = this.start, startLoc = this.startLoc, expr;
    25242537  if (this.isContextual("await") && this.canAwait) {
     
    25262539    sawUnary = true;
    25272540  } else if (this.type.prefix) {
    2528     var node = this.startNode(), update = this.type === types.incDec;
     2541    var node = this.startNode(), update = this.type === types$1.incDec;
    25292542    node.operator = this.value;
    25302543    node.prefix = true;
     
    25402553    else { sawUnary = true; }
    25412554    expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression");
     2555  } else if (!sawUnary && this.type === types$1.privateId) {
     2556    if (forInit || this.privateNameStack.length === 0) { this.unexpected(); }
     2557    expr = this.parsePrivateIdent();
     2558    // only could be private fields in 'in', such as #x in obj
     2559    if (this.type !== types$1._in) { this.unexpected(); }
    25422560  } else {
    25432561    expr = this.parseExprSubscripts(refDestructuringErrors, forInit);
     
    25542572  }
    25552573
    2556   if (!incDec && this.eat(types.starstar)) {
     2574  if (!incDec && this.eat(types$1.starstar)) {
    25572575    if (sawUnary)
    25582576      { this.unexpected(this.lastTokStart); }
     
    25732591// Parse call, dot, and `[]`-subscript expressions.
    25742592
    2575 pp$4.parseExprSubscripts = function(refDestructuringErrors, forInit) {
     2593pp$5.parseExprSubscripts = function(refDestructuringErrors, forInit) {
    25762594  var startPos = this.start, startLoc = this.startLoc;
    25772595  var expr = this.parseExprAtom(refDestructuringErrors, forInit);
     
    25872605};
    25882606
    2589 pp$4.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) {
     2607pp$5.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) {
    25902608  var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" &&
    25912609      this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&
     
    26102628};
    26112629
    2612 pp$4.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) {
     2630pp$5.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) {
    26132631  var optionalSupported = this.options.ecmaVersion >= 11;
    2614   var optional = optionalSupported && this.eat(types.questionDot);
     2632  var optional = optionalSupported && this.eat(types$1.questionDot);
    26152633  if (noCalls && optional) { this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); }
    26162634
    2617   var computed = this.eat(types.bracketL);
    2618   if (computed || (optional && this.type !== types.parenL && this.type !== types.backQuote) || this.eat(types.dot)) {
     2635  var computed = this.eat(types$1.bracketL);
     2636  if (computed || (optional && this.type !== types$1.parenL && this.type !== types$1.backQuote) || this.eat(types$1.dot)) {
    26192637    var node = this.startNodeAt(startPos, startLoc);
    26202638    node.object = base;
    26212639    if (computed) {
    26222640      node.property = this.parseExpression();
    2623       this.expect(types.bracketR);
    2624     } else if (this.type === types.privateId && base.type !== "Super") {
     2641      this.expect(types$1.bracketR);
     2642    } else if (this.type === types$1.privateId && base.type !== "Super") {
    26252643      node.property = this.parsePrivateIdent();
    26262644    } else {
     
    26322650    }
    26332651    base = this.finishNode(node, "MemberExpression");
    2634   } else if (!noCalls && this.eat(types.parenL)) {
     2652  } else if (!noCalls && this.eat(types$1.parenL)) {
    26352653    var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
    26362654    this.yieldPos = 0;
    26372655    this.awaitPos = 0;
    26382656    this.awaitIdentPos = 0;
    2639     var exprList = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);
    2640     if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types.arrow)) {
     2657    var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);
     2658    if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types$1.arrow)) {
    26412659      this.checkPatternErrors(refDestructuringErrors, false);
    26422660      this.checkYieldAwaitInDefaultParams();
     
    26592677    }
    26602678    base = this.finishNode(node$1, "CallExpression");
    2661   } else if (this.type === types.backQuote) {
     2679  } else if (this.type === types$1.backQuote) {
    26622680    if (optional || optionalChained) {
    26632681      this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions");
     
    26762694// or `{}`.
    26772695
    2678 pp$4.parseExprAtom = function(refDestructuringErrors, forInit) {
     2696pp$5.parseExprAtom = function(refDestructuringErrors, forInit) {
    26792697  // If a division operator appears in an expression position, the
    26802698  // tokenizer got confused, and we force it to read a regexp instead.
    2681   if (this.type === types.slash) { this.readRegexp(); }
     2699  if (this.type === types$1.slash) { this.readRegexp(); }
    26822700
    26832701  var node, canBeArrow = this.potentialArrowAt === this.start;
    26842702  switch (this.type) {
    2685   case types._super:
     2703  case types$1._super:
    26862704    if (!this.allowSuper)
    26872705      { this.raise(this.start, "'super' keyword outside a method"); }
    26882706    node = this.startNode();
    26892707    this.next();
    2690     if (this.type === types.parenL && !this.allowDirectSuper)
     2708    if (this.type === types$1.parenL && !this.allowDirectSuper)
    26912709      { this.raise(node.start, "super() call outside constructor of a subclass"); }
    26922710    // The `super` keyword can appear at below:
     
    26962714    // SuperCall:
    26972715    //     super ( Arguments )
    2698     if (this.type !== types.dot && this.type !== types.bracketL && this.type !== types.parenL)
     2716    if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL)
    26992717      { this.unexpected(); }
    27002718    return this.finishNode(node, "Super")
    27012719
    2702   case types._this:
     2720  case types$1._this:
    27032721    node = this.startNode();
    27042722    this.next();
    27052723    return this.finishNode(node, "ThisExpression")
    27062724
    2707   case types.name:
     2725  case types$1.name:
    27082726    var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;
    27092727    var id = this.parseIdent(false);
    2710     if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types._function)) {
    2711       this.overrideContext(types$1.f_expr);
     2728    if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types$1._function)) {
     2729      this.overrideContext(types.f_expr);
    27122730      return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit)
    27132731    }
    27142732    if (canBeArrow && !this.canInsertSemicolon()) {
    2715       if (this.eat(types.arrow))
     2733      if (this.eat(types$1.arrow))
    27162734        { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit) }
    2717       if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types.name && !containsEsc &&
     2735      if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types$1.name && !containsEsc &&
    27182736          (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc)) {
    27192737        id = this.parseIdent(false);
    2720         if (this.canInsertSemicolon() || !this.eat(types.arrow))
     2738        if (this.canInsertSemicolon() || !this.eat(types$1.arrow))
    27212739          { this.unexpected(); }
    27222740        return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit)
     
    27252743    return id
    27262744
    2727   case types.regexp:
     2745  case types$1.regexp:
    27282746    var value = this.value;
    27292747    node = this.parseLiteral(value.value);
     
    27312749    return node
    27322750
    2733   case types.num: case types.string:
     2751  case types$1.num: case types$1.string:
    27342752    return this.parseLiteral(this.value)
    27352753
    2736   case types._null: case types._true: case types._false:
     2754  case types$1._null: case types$1._true: case types$1._false:
    27372755    node = this.startNode();
    2738     node.value = this.type === types._null ? null : this.type === types._true;
     2756    node.value = this.type === types$1._null ? null : this.type === types$1._true;
    27392757    node.raw = this.type.keyword;
    27402758    this.next();
    27412759    return this.finishNode(node, "Literal")
    27422760
    2743   case types.parenL:
     2761  case types$1.parenL:
    27442762    var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit);
    27452763    if (refDestructuringErrors) {
     
    27512769    return expr
    27522770
    2753   case types.bracketL:
     2771  case types$1.bracketL:
    27542772    node = this.startNode();
    27552773    this.next();
    2756     node.elements = this.parseExprList(types.bracketR, true, true, refDestructuringErrors);
     2774    node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors);
    27572775    return this.finishNode(node, "ArrayExpression")
    27582776
    2759   case types.braceL:
    2760     this.overrideContext(types$1.b_expr);
     2777  case types$1.braceL:
     2778    this.overrideContext(types.b_expr);
    27612779    return this.parseObj(false, refDestructuringErrors)
    27622780
    2763   case types._function:
     2781  case types$1._function:
    27642782    node = this.startNode();
    27652783    this.next();
    27662784    return this.parseFunction(node, 0)
    27672785
    2768   case types._class:
     2786  case types$1._class:
    27692787    return this.parseClass(this.startNode(), false)
    27702788
    2771   case types._new:
     2789  case types$1._new:
    27722790    return this.parseNew()
    27732791
    2774   case types.backQuote:
     2792  case types$1.backQuote:
    27752793    return this.parseTemplate()
    27762794
    2777   case types._import:
     2795  case types$1._import:
    27782796    if (this.options.ecmaVersion >= 11) {
    27792797      return this.parseExprImport()
     
    27872805};
    27882806
    2789 pp$4.parseExprImport = function() {
     2807pp$5.parseExprImport = function() {
    27902808  var node = this.startNode();
    27912809
     
    27962814
    27972815  switch (this.type) {
    2798   case types.parenL:
     2816  case types$1.parenL:
    27992817    return this.parseDynamicImport(node)
    2800   case types.dot:
     2818  case types$1.dot:
    28012819    node.meta = meta;
    28022820    return this.parseImportMeta(node)
     
    28062824};
    28072825
    2808 pp$4.parseDynamicImport = function(node) {
     2826pp$5.parseDynamicImport = function(node) {
    28092827  this.next(); // skip `(`
    28102828
     
    28132831
    28142832  // Verify ending.
    2815   if (!this.eat(types.parenR)) {
     2833  if (!this.eat(types$1.parenR)) {
    28162834    var errorPos = this.start;
    2817     if (this.eat(types.comma) && this.eat(types.parenR)) {
     2835    if (this.eat(types$1.comma) && this.eat(types$1.parenR)) {
    28182836      this.raiseRecoverable(errorPos, "Trailing comma is not allowed in import()");
    28192837    } else {
     
    28252843};
    28262844
    2827 pp$4.parseImportMeta = function(node) {
     2845pp$5.parseImportMeta = function(node) {
    28282846  this.next(); // skip `.`
    28292847
     
    28412859};
    28422860
    2843 pp$4.parseLiteral = function(value) {
     2861pp$5.parseLiteral = function(value) {
    28442862  var node = this.startNode();
    28452863  node.value = value;
     
    28502868};
    28512869
    2852 pp$4.parseParenExpression = function() {
    2853   this.expect(types.parenL);
     2870pp$5.parseParenExpression = function() {
     2871  this.expect(types$1.parenL);
    28542872  var val = this.parseExpression();
    2855   this.expect(types.parenR);
     2873  this.expect(types$1.parenR);
    28562874  return val
    28572875};
    28582876
    2859 pp$4.parseParenAndDistinguishExpression = function(canBeArrow, forInit) {
     2877pp$5.parseParenAndDistinguishExpression = function(canBeArrow, forInit) {
    28602878  var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;
    28612879  if (this.options.ecmaVersion >= 6) {
     
    28682886    this.awaitPos = 0;
    28692887    // Do not save awaitIdentPos to allow checking awaits nested in parameters
    2870     while (this.type !== types.parenR) {
    2871       first ? first = false : this.expect(types.comma);
    2872       if (allowTrailingComma && this.afterTrailingComma(types.parenR, true)) {
     2888    while (this.type !== types$1.parenR) {
     2889      first ? first = false : this.expect(types$1.comma);
     2890      if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) {
    28732891        lastIsComma = true;
    28742892        break
    2875       } else if (this.type === types.ellipsis) {
     2893      } else if (this.type === types$1.ellipsis) {
    28762894        spreadStart = this.start;
    28772895        exprList.push(this.parseParenItem(this.parseRestBinding()));
    2878         if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); }
     2896        if (this.type === types$1.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); }
    28792897        break
    28802898      } else {
     
    28832901    }
    28842902    var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc;
    2885     this.expect(types.parenR);
    2886 
    2887     if (canBeArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) {
     2903    this.expect(types$1.parenR);
     2904
     2905    if (canBeArrow && !this.canInsertSemicolon() && this.eat(types$1.arrow)) {
    28882906      this.checkPatternErrors(refDestructuringErrors, false);
    28892907      this.checkYieldAwaitInDefaultParams();
     
    29192937};
    29202938
    2921 pp$4.parseParenItem = function(item) {
     2939pp$5.parseParenItem = function(item) {
    29222940  return item
    29232941};
    29242942
    2925 pp$4.parseParenArrowList = function(startPos, startLoc, exprList, forInit) {
    2926   return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, forInit)
     2943pp$5.parseParenArrowList = function(startPos, startLoc, exprList, forInit) {
     2944  return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit)
    29272945};
    29282946
     
    29332951// argument list.
    29342952
    2935 var empty$1 = [];
    2936 
    2937 pp$4.parseNew = function() {
     2953var empty = [];
     2954
     2955pp$5.parseNew = function() {
    29382956  if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword new"); }
    29392957  var node = this.startNode();
    29402958  var meta = this.parseIdent(true);
    2941   if (this.options.ecmaVersion >= 6 && this.eat(types.dot)) {
     2959  if (this.options.ecmaVersion >= 6 && this.eat(types$1.dot)) {
    29422960    node.meta = meta;
    29432961    var containsEsc = this.containsEsc;
     
    29512969    return this.finishNode(node, "MetaProperty")
    29522970  }
    2953   var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types._import;
     2971  var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types$1._import;
    29542972  node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true, false);
    29552973  if (isImport && node.callee.type === "ImportExpression") {
    29562974    this.raise(startPos, "Cannot use new with import()");
    29572975  }
    2958   if (this.eat(types.parenL)) { node.arguments = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false); }
    2959   else { node.arguments = empty$1; }
     2976  if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); }
     2977  else { node.arguments = empty; }
    29602978  return this.finishNode(node, "NewExpression")
    29612979};
     
    29632981// Parse template expression.
    29642982
    2965 pp$4.parseTemplateElement = function(ref) {
     2983pp$5.parseTemplateElement = function(ref) {
    29662984  var isTagged = ref.isTagged;
    29672985
    29682986  var elem = this.startNode();
    2969   if (this.type === types.invalidTemplate) {
     2987  if (this.type === types$1.invalidTemplate) {
    29702988    if (!isTagged) {
    29712989      this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal");
     
    29823000  }
    29833001  this.next();
    2984   elem.tail = this.type === types.backQuote;
     3002  elem.tail = this.type === types$1.backQuote;
    29853003  return this.finishNode(elem, "TemplateElement")
    29863004};
    29873005
    2988 pp$4.parseTemplate = function(ref) {
     3006pp$5.parseTemplate = function(ref) {
    29893007  if ( ref === void 0 ) ref = {};
    29903008  var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;
     
    29963014  node.quasis = [curElt];
    29973015  while (!curElt.tail) {
    2998     if (this.type === types.eof) { this.raise(this.pos, "Unterminated template literal"); }
    2999     this.expect(types.dollarBraceL);
     3016    if (this.type === types$1.eof) { this.raise(this.pos, "Unterminated template literal"); }
     3017    this.expect(types$1.dollarBraceL);
    30003018    node.expressions.push(this.parseExpression());
    3001     this.expect(types.braceR);
     3019    this.expect(types$1.braceR);
    30023020    node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));
    30033021  }
     
    30063024};
    30073025
    3008 pp$4.isAsyncProp = function(prop) {
     3026pp$5.isAsyncProp = function(prop) {
    30093027  return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" &&
    3010     (this.type === types.name || this.type === types.num || this.type === types.string || this.type === types.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types.star)) &&
     3028    (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types$1.star)) &&
    30113029    !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))
    30123030};
     
    30143032// Parse an object literal or binding pattern.
    30153033
    3016 pp$4.parseObj = function(isPattern, refDestructuringErrors) {
     3034pp$5.parseObj = function(isPattern, refDestructuringErrors) {
    30173035  var node = this.startNode(), first = true, propHash = {};
    30183036  node.properties = [];
    30193037  this.next();
    3020   while (!this.eat(types.braceR)) {
     3038  while (!this.eat(types$1.braceR)) {
    30213039    if (!first) {
    3022       this.expect(types.comma);
    3023       if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types.braceR)) { break }
     3040      this.expect(types$1.comma);
     3041      if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { break }
    30243042    } else { first = false; }
    30253043
     
    30313049};
    30323050
    3033 pp$4.parseProperty = function(isPattern, refDestructuringErrors) {
     3051pp$5.parseProperty = function(isPattern, refDestructuringErrors) {
    30343052  var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;
    3035   if (this.options.ecmaVersion >= 9 && this.eat(types.ellipsis)) {
     3053  if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) {
    30363054    if (isPattern) {
    30373055      prop.argument = this.parseIdent(false);
    3038       if (this.type === types.comma) {
     3056      if (this.type === types$1.comma) {
    30393057        this.raise(this.start, "Comma is not permitted after the rest element");
    30403058      }
     
    30423060    }
    30433061    // To disallow parenthesized identifier via `this.toAssignable()`.
    3044     if (this.type === types.parenL && refDestructuringErrors) {
     3062    if (this.type === types$1.parenL && refDestructuringErrors) {
    30453063      if (refDestructuringErrors.parenthesizedAssign < 0) {
    30463064        refDestructuringErrors.parenthesizedAssign = this.start;
     
    30533071    prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);
    30543072    // To disallow trailing comma via `this.toAssignable()`.
    3055     if (this.type === types.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {
     3073    if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {
    30563074      refDestructuringErrors.trailingComma = this.start;
    30573075    }
     
    30673085    }
    30683086    if (!isPattern)
    3069       { isGenerator = this.eat(types.star); }
     3087      { isGenerator = this.eat(types$1.star); }
    30703088  }
    30713089  var containsEsc = this.containsEsc;
     
    30733091  if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {
    30743092    isAsync = true;
    3075     isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star);
     3093    isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star);
    30763094    this.parsePropertyName(prop, refDestructuringErrors);
    30773095  } else {
     
    30823100};
    30833101
    3084 pp$4.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {
    3085   if ((isGenerator || isAsync) && this.type === types.colon)
     3102pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {
     3103  if ((isGenerator || isAsync) && this.type === types$1.colon)
    30863104    { this.unexpected(); }
    30873105
    3088   if (this.eat(types.colon)) {
     3106  if (this.eat(types$1.colon)) {
    30893107    prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);
    30903108    prop.kind = "init";
    3091   } else if (this.options.ecmaVersion >= 6 && this.type === types.parenL) {
     3109  } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {
    30923110    if (isPattern) { this.unexpected(); }
    30933111    prop.kind = "init";
     
    30973115             this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" &&
    30983116             (prop.key.name === "get" || prop.key.name === "set") &&
    3099              (this.type !== types.comma && this.type !== types.braceR && this.type !== types.eq)) {
     3117             (this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq)) {
    31003118    if (isGenerator || isAsync) { this.unexpected(); }
    31013119    prop.kind = prop.key.name;
     
    31213139    if (isPattern) {
    31223140      prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));
    3123     } else if (this.type === types.eq && refDestructuringErrors) {
     3141    } else if (this.type === types$1.eq && refDestructuringErrors) {
    31243142      if (refDestructuringErrors.shorthandAssign < 0)
    31253143        { refDestructuringErrors.shorthandAssign = this.start; }
     
    31323150};
    31333151
    3134 pp$4.parsePropertyName = function(prop) {
     3152pp$5.parsePropertyName = function(prop) {
    31353153  if (this.options.ecmaVersion >= 6) {
    3136     if (this.eat(types.bracketL)) {
     3154    if (this.eat(types$1.bracketL)) {
    31373155      prop.computed = true;
    31383156      prop.key = this.parseMaybeAssign();
    3139       this.expect(types.bracketR);
     3157      this.expect(types$1.bracketR);
    31403158      return prop.key
    31413159    } else {
     
    31433161    }
    31443162  }
    3145   return prop.key = this.type === types.num || this.type === types.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never")
     3163  return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never")
    31463164};
    31473165
    31483166// Initialize empty function node.
    31493167
    3150 pp$4.initFunction = function(node) {
     3168pp$5.initFunction = function(node) {
    31513169  node.id = null;
    31523170  if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }
     
    31563174// Parse object or class method.
    31573175
    3158 pp$4.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {
     3176pp$5.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {
    31593177  var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
    31603178
     
    31703188  this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));
    31713189
    3172   this.expect(types.parenL);
    3173   node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8);
     3190  this.expect(types$1.parenL);
     3191  node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);
    31743192  this.checkYieldAwaitInDefaultParams();
    31753193  this.parseFunctionBody(node, false, true, false);
     
    31833201// Parse arrow function expression with given parameters.
    31843202
    3185 pp$4.parseArrowExpression = function(node, params, isAsync, forInit) {
     3203pp$5.parseArrowExpression = function(node, params, isAsync, forInit) {
    31863204  var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;
    31873205
     
    32053223// Parse function body and check parameters.
    32063224
    3207 pp$4.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) {
    3208   var isExpression = isArrowFunction && this.type !== types.braceL;
     3225pp$5.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) {
     3226  var isExpression = isArrowFunction && this.type !== types$1.braceL;
    32093227  var oldStrict = this.strict, useStrict = false;
    32103228
     
    32423260};
    32433261
    3244 pp$4.isSimpleParamList = function(params) {
     3262pp$5.isSimpleParamList = function(params) {
    32453263  for (var i = 0, list = params; i < list.length; i += 1)
    32463264    {
     
    32553273// or "arguments" and duplicate parameters.
    32563274
    3257 pp$4.checkParams = function(node, allowDuplicates) {
     3275pp$5.checkParams = function(node, allowDuplicates) {
    32583276  var nameHash = Object.create(null);
    32593277  for (var i = 0, list = node.params; i < list.length; i += 1)
     
    32713289// for array literals).
    32723290
    3273 pp$4.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {
     3291pp$5.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {
    32743292  var elts = [], first = true;
    32753293  while (!this.eat(close)) {
    32763294    if (!first) {
    3277       this.expect(types.comma);
     3295      this.expect(types$1.comma);
    32783296      if (allowTrailingComma && this.afterTrailingComma(close)) { break }
    32793297    } else { first = false; }
    32803298
    32813299    var elt = (void 0);
    3282     if (allowEmpty && this.type === types.comma)
     3300    if (allowEmpty && this.type === types$1.comma)
    32833301      { elt = null; }
    3284     else if (this.type === types.ellipsis) {
     3302    else if (this.type === types$1.ellipsis) {
    32853303      elt = this.parseSpread(refDestructuringErrors);
    3286       if (refDestructuringErrors && this.type === types.comma && refDestructuringErrors.trailingComma < 0)
     3304      if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0)
    32873305        { refDestructuringErrors.trailingComma = this.start; }
    32883306    } else {
     
    32943312};
    32953313
    3296 pp$4.checkUnreserved = function(ref) {
     3314pp$5.checkUnreserved = function(ref) {
    32973315  var start = ref.start;
    32983316  var end = ref.end;
     
    33233341// identifiers.
    33243342
    3325 pp$4.parseIdent = function(liberal, isBinding) {
     3343pp$5.parseIdent = function(liberal, isBinding) {
    33263344  var node = this.startNode();
    3327   if (this.type === types.name) {
     3345  if (this.type === types$1.name) {
    33283346    node.name = this.value;
    33293347  } else if (this.type.keyword) {
     
    33513369};
    33523370
    3353 pp$4.parsePrivateIdent = function() {
     3371pp$5.parsePrivateIdent = function() {
    33543372  var node = this.startNode();
    3355   if (this.type === types.privateId) {
     3373  if (this.type === types$1.privateId) {
    33563374    node.name = this.value;
    33573375  } else {
     
    33733391// Parses yield expression inside generator.
    33743392
    3375 pp$4.parseYield = function(forInit) {
     3393pp$5.parseYield = function(forInit) {
    33763394  if (!this.yieldPos) { this.yieldPos = this.start; }
    33773395
    33783396  var node = this.startNode();
    33793397  this.next();
    3380   if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) {
     3398  if (this.type === types$1.semi || this.canInsertSemicolon() || (this.type !== types$1.star && !this.type.startsExpr)) {
    33813399    node.delegate = false;
    33823400    node.argument = null;
    33833401  } else {
    3384     node.delegate = this.eat(types.star);
     3402    node.delegate = this.eat(types$1.star);
    33853403    node.argument = this.parseMaybeAssign(forInit);
    33863404  }
     
    33883406};
    33893407
    3390 pp$4.parseAwait = function(forInit) {
     3408pp$5.parseAwait = function(forInit) {
    33913409  if (!this.awaitPos) { this.awaitPos = this.start; }
    33923410
     
    33973415};
    33983416
    3399 var pp$5 = Parser.prototype;
     3417var pp$4 = Parser.prototype;
    34003418
    34013419// This function is used to raise exceptions on parse errors. It
     
    34053423// message.
    34063424
    3407 pp$5.raise = function(pos, message) {
     3425pp$4.raise = function(pos, message) {
    34083426  var loc = getLineInfo(this.input, pos);
    34093427  message += " (" + loc.line + ":" + loc.column + ")";
     
    34133431};
    34143432
    3415 pp$5.raiseRecoverable = pp$5.raise;
    3416 
    3417 pp$5.curPosition = function() {
     3433pp$4.raiseRecoverable = pp$4.raise;
     3434
     3435pp$4.curPosition = function() {
    34183436  if (this.options.locations) {
    34193437    return new Position(this.curLine, this.pos - this.lineStart)
     
    34213439};
    34223440
    3423 var pp$6 = Parser.prototype;
     3441var pp$3 = Parser.prototype;
    34243442
    34253443var Scope = function Scope(flags) {
     
    34373455// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.
    34383456
    3439 pp$6.enterScope = function(flags) {
     3457pp$3.enterScope = function(flags) {
    34403458  this.scopeStack.push(new Scope(flags));
    34413459};
    34423460
    3443 pp$6.exitScope = function() {
     3461pp$3.exitScope = function() {
    34443462  this.scopeStack.pop();
    34453463};
     
    34483466// > At the top level of a function, or script, function declarations are
    34493467// > treated like var declarations rather than like lexical declarations.
    3450 pp$6.treatFunctionsAsVarInScope = function(scope) {
     3468pp$3.treatFunctionsAsVarInScope = function(scope) {
    34513469  return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)
    34523470};
    34533471
    3454 pp$6.declareName = function(name, bindingType, pos) {
     3472pp$3.declareName = function(name, bindingType, pos) {
    34553473  var redeclared = false;
    34563474  if (bindingType === BIND_LEXICAL) {
     
    34873505};
    34883506
    3489 pp$6.checkLocalExport = function(id) {
     3507pp$3.checkLocalExport = function(id) {
    34903508  // scope.functions must be empty as Module code is always strict.
    34913509  if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&
     
    34953513};
    34963514
    3497 pp$6.currentScope = function() {
     3515pp$3.currentScope = function() {
    34983516  return this.scopeStack[this.scopeStack.length - 1]
    34993517};
    35003518
    3501 pp$6.currentVarScope = function() {
     3519pp$3.currentVarScope = function() {
    35023520  for (var i = this.scopeStack.length - 1;; i--) {
    35033521    var scope = this.scopeStack[i];
     
    35073525
    35083526// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.
    3509 pp$6.currentThisScope = function() {
     3527pp$3.currentThisScope = function() {
    35103528  for (var i = this.scopeStack.length - 1;; i--) {
    35113529    var scope = this.scopeStack[i];
     
    35283546// Start an AST node, attaching a start offset.
    35293547
    3530 var pp$7 = Parser.prototype;
    3531 
    3532 pp$7.startNode = function() {
     3548var pp$2 = Parser.prototype;
     3549
     3550pp$2.startNode = function() {
    35333551  return new Node(this, this.start, this.startLoc)
    35343552};
    35353553
    3536 pp$7.startNodeAt = function(pos, loc) {
     3554pp$2.startNodeAt = function(pos, loc) {
    35373555  return new Node(this, pos, loc)
    35383556};
     
    35503568}
    35513569
    3552 pp$7.finishNode = function(node, type) {
     3570pp$2.finishNode = function(node, type) {
    35533571  return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)
    35543572};
     
    35563574// Finish node at given position
    35573575
    3558 pp$7.finishNodeAt = function(node, type, pos, loc) {
     3576pp$2.finishNodeAt = function(node, type, pos, loc) {
    35593577  return finishNodeAt.call(this, node, type, pos, loc)
    35603578};
    35613579
    3562 pp$7.copyNode = function(node) {
     3580pp$2.copyNode = function(node) {
    35633581  var newNode = new Node(this, node.start, this.startLoc);
    35643582  for (var prop in node) { newNode[prop] = node[prop]; }
     
    36173635buildUnicodeData(12);
    36183636
    3619 var pp$8 = Parser.prototype;
     3637var pp$1 = Parser.prototype;
    36203638
    36213639var RegExpValidationState = function RegExpValidationState(parser) {
     
    37133731};
    37143732
    3715 function codePointToString(ch) {
     3733function codePointToString$1(ch) {
    37163734  if (ch <= 0xFFFF) { return String.fromCharCode(ch) }
    37173735  ch -= 0x10000;
     
    37253743 * @returns {void}
    37263744 */
    3727 pp$8.validateRegExpFlags = function(state) {
     3745pp$1.validateRegExpFlags = function(state) {
    37283746  var validFlags = state.validFlags;
    37293747  var flags = state.flags;
     
    37463764 * @returns {void}
    37473765 */
    3748 pp$8.validateRegExpPattern = function(state) {
     3766pp$1.validateRegExpPattern = function(state) {
    37493767  this.regexp_pattern(state);
    37503768
     
    37613779
    37623780// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern
    3763 pp$8.regexp_pattern = function(state) {
     3781pp$1.regexp_pattern = function(state) {
    37643782  state.pos = 0;
    37653783  state.lastIntValue = 0;
     
    37953813
    37963814// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction
    3797 pp$8.regexp_disjunction = function(state) {
     3815pp$1.regexp_disjunction = function(state) {
    37983816  this.regexp_alternative(state);
    37993817  while (state.eat(0x7C /* | */)) {
     
    38113829
    38123830// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative
    3813 pp$8.regexp_alternative = function(state) {
     3831pp$1.regexp_alternative = function(state) {
    38143832  while (state.pos < state.source.length && this.regexp_eatTerm(state))
    38153833    { }
     
    38173835
    38183836// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term
    3819 pp$8.regexp_eatTerm = function(state) {
     3837pp$1.regexp_eatTerm = function(state) {
    38203838  if (this.regexp_eatAssertion(state)) {
    38213839    // Handle `QuantifiableAssertion Quantifier` alternative.
     
    38403858
    38413859// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion
    3842 pp$8.regexp_eatAssertion = function(state) {
     3860pp$1.regexp_eatAssertion = function(state) {
    38433861  var start = state.pos;
    38443862  state.lastAssertionIsQuantifiable = false;
     
    38783896
    38793897// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier
    3880 pp$8.regexp_eatQuantifier = function(state, noError) {
     3898pp$1.regexp_eatQuantifier = function(state, noError) {
    38813899  if ( noError === void 0 ) noError = false;
    38823900
     
    38893907
    38903908// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix
    3891 pp$8.regexp_eatQuantifierPrefix = function(state, noError) {
     3909pp$1.regexp_eatQuantifierPrefix = function(state, noError) {
    38923910  return (
    38933911    state.eat(0x2A /* * */) ||
     
    38973915  )
    38983916};
    3899 pp$8.regexp_eatBracedQuantifier = function(state, noError) {
     3917pp$1.regexp_eatBracedQuantifier = function(state, noError) {
    39003918  var start = state.pos;
    39013919  if (state.eat(0x7B /* { */)) {
     
    39233941
    39243942// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom
    3925 pp$8.regexp_eatAtom = function(state) {
     3943pp$1.regexp_eatAtom = function(state) {
    39263944  return (
    39273945    this.regexp_eatPatternCharacters(state) ||
     
    39333951  )
    39343952};
    3935 pp$8.regexp_eatReverseSolidusAtomEscape = function(state) {
     3953pp$1.regexp_eatReverseSolidusAtomEscape = function(state) {
    39363954  var start = state.pos;
    39373955  if (state.eat(0x5C /* \ */)) {
     
    39433961  return false
    39443962};
    3945 pp$8.regexp_eatUncapturingGroup = function(state) {
     3963pp$1.regexp_eatUncapturingGroup = function(state) {
    39463964  var start = state.pos;
    39473965  if (state.eat(0x28 /* ( */)) {
     
    39573975  return false
    39583976};
    3959 pp$8.regexp_eatCapturingGroup = function(state) {
     3977pp$1.regexp_eatCapturingGroup = function(state) {
    39603978  if (state.eat(0x28 /* ( */)) {
    39613979    if (this.options.ecmaVersion >= 9) {
     
    39753993
    39763994// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom
    3977 pp$8.regexp_eatExtendedAtom = function(state) {
     3995pp$1.regexp_eatExtendedAtom = function(state) {
    39783996  return (
    39793997    state.eat(0x2E /* . */) ||
     
    39884006
    39894007// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier
    3990 pp$8.regexp_eatInvalidBracedQuantifier = function(state) {
     4008pp$1.regexp_eatInvalidBracedQuantifier = function(state) {
    39914009  if (this.regexp_eatBracedQuantifier(state, true)) {
    39924010    state.raise("Nothing to repeat");
     
    39964014
    39974015// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter
    3998 pp$8.regexp_eatSyntaxCharacter = function(state) {
     4016pp$1.regexp_eatSyntaxCharacter = function(state) {
    39994017  var ch = state.current();
    40004018  if (isSyntaxCharacter(ch)) {
     
    40184036// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter
    40194037// But eat eager.
    4020 pp$8.regexp_eatPatternCharacters = function(state) {
     4038pp$1.regexp_eatPatternCharacters = function(state) {
    40214039  var start = state.pos;
    40224040  var ch = 0;
     
    40284046
    40294047// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter
    4030 pp$8.regexp_eatExtendedPatternCharacter = function(state) {
     4048pp$1.regexp_eatExtendedPatternCharacter = function(state) {
    40314049  var ch = state.current();
    40324050  if (
     
    40494067//   [empty]
    40504068//   `?` GroupName
    4051 pp$8.regexp_groupSpecifier = function(state) {
     4069pp$1.regexp_groupSpecifier = function(state) {
    40524070  if (state.eat(0x3F /* ? */)) {
    40534071    if (this.regexp_eatGroupName(state)) {
     
    40654083//   `<` RegExpIdentifierName `>`
    40664084// Note: this updates `state.lastStringValue` property with the eaten name.
    4067 pp$8.regexp_eatGroupName = function(state) {
     4085pp$1.regexp_eatGroupName = function(state) {
    40684086  state.lastStringValue = "";
    40694087  if (state.eat(0x3C /* < */)) {
     
    40804098//   RegExpIdentifierName RegExpIdentifierPart
    40814099// Note: this updates `state.lastStringValue` property with the eaten name.
    4082 pp$8.regexp_eatRegExpIdentifierName = function(state) {
     4100pp$1.regexp_eatRegExpIdentifierName = function(state) {
    40834101  state.lastStringValue = "";
    40844102  if (this.regexp_eatRegExpIdentifierStart(state)) {
    4085     state.lastStringValue += codePointToString(state.lastIntValue);
     4103    state.lastStringValue += codePointToString$1(state.lastIntValue);
    40864104    while (this.regexp_eatRegExpIdentifierPart(state)) {
    4087       state.lastStringValue += codePointToString(state.lastIntValue);
     4105      state.lastStringValue += codePointToString$1(state.lastIntValue);
    40884106    }
    40894107    return true
     
    40974115//   `_`
    40984116//   `\` RegExpUnicodeEscapeSequence[+U]
    4099 pp$8.regexp_eatRegExpIdentifierStart = function(state) {
     4117pp$1.regexp_eatRegExpIdentifierStart = function(state) {
    41004118  var start = state.pos;
    41014119  var forceU = this.options.ecmaVersion >= 11;
     
    41254143//   <ZWNJ>
    41264144//   <ZWJ>
    4127 pp$8.regexp_eatRegExpIdentifierPart = function(state) {
     4145pp$1.regexp_eatRegExpIdentifierPart = function(state) {
    41284146  var start = state.pos;
    41294147  var forceU = this.options.ecmaVersion >= 11;
     
    41474165
    41484166// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape
    4149 pp$8.regexp_eatAtomEscape = function(state) {
     4167pp$1.regexp_eatAtomEscape = function(state) {
    41504168  if (
    41514169    this.regexp_eatBackReference(state) ||
     
    41654183  return false
    41664184};
    4167 pp$8.regexp_eatBackReference = function(state) {
     4185pp$1.regexp_eatBackReference = function(state) {
    41684186  var start = state.pos;
    41694187  if (this.regexp_eatDecimalEscape(state)) {
     
    41834201  return false
    41844202};
    4185 pp$8.regexp_eatKGroupName = function(state) {
     4203pp$1.regexp_eatKGroupName = function(state) {
    41864204  if (state.eat(0x6B /* k */)) {
    41874205    if (this.regexp_eatGroupName(state)) {
     
    41954213
    41964214// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape
    4197 pp$8.regexp_eatCharacterEscape = function(state) {
     4215pp$1.regexp_eatCharacterEscape = function(state) {
    41984216  return (
    41994217    this.regexp_eatControlEscape(state) ||
     
    42064224  )
    42074225};
    4208 pp$8.regexp_eatCControlLetter = function(state) {
     4226pp$1.regexp_eatCControlLetter = function(state) {
    42094227  var start = state.pos;
    42104228  if (state.eat(0x63 /* c */)) {
     
    42164234  return false
    42174235};
    4218 pp$8.regexp_eatZero = function(state) {
     4236pp$1.regexp_eatZero = function(state) {
    42194237  if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {
    42204238    state.lastIntValue = 0;
     
    42264244
    42274245// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape
    4228 pp$8.regexp_eatControlEscape = function(state) {
     4246pp$1.regexp_eatControlEscape = function(state) {
    42294247  var ch = state.current();
    42304248  if (ch === 0x74 /* t */) {
     
    42574275
    42584276// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter
    4259 pp$8.regexp_eatControlLetter = function(state) {
     4277pp$1.regexp_eatControlLetter = function(state) {
    42604278  var ch = state.current();
    42614279  if (isControlLetter(ch)) {
     
    42744292
    42754293// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence
    4276 pp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {
     4294pp$1.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {
    42774295  if ( forceU === void 0 ) forceU = false;
    42784296
     
    43194337
    43204338// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape
    4321 pp$8.regexp_eatIdentityEscape = function(state) {
     4339pp$1.regexp_eatIdentityEscape = function(state) {
    43224340  if (state.switchU) {
    43234341    if (this.regexp_eatSyntaxCharacter(state)) {
     
    43424360
    43434361// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape
    4344 pp$8.regexp_eatDecimalEscape = function(state) {
     4362pp$1.regexp_eatDecimalEscape = function(state) {
    43454363  state.lastIntValue = 0;
    43464364  var ch = state.current();
     
    43564374
    43574375// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape
    4358 pp$8.regexp_eatCharacterClassEscape = function(state) {
     4376pp$1.regexp_eatCharacterClassEscape = function(state) {
    43594377  var ch = state.current();
    43604378
     
    43984416//   UnicodePropertyName `=` UnicodePropertyValue
    43994417//   LoneUnicodePropertyNameOrValue
    4400 pp$8.regexp_eatUnicodePropertyValueExpression = function(state) {
     4418pp$1.regexp_eatUnicodePropertyValueExpression = function(state) {
    44014419  var start = state.pos;
    44024420
     
    44204438  return false
    44214439};
    4422 pp$8.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {
     4440pp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {
    44234441  if (!has(state.unicodeProperties.nonBinary, name))
    44244442    { state.raise("Invalid property name"); }
     
    44264444    { state.raise("Invalid property value"); }
    44274445};
    4428 pp$8.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {
     4446pp$1.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {
    44294447  if (!state.unicodeProperties.binary.test(nameOrValue))
    44304448    { state.raise("Invalid property name"); }
     
    44334451// UnicodePropertyName ::
    44344452//   UnicodePropertyNameCharacters
    4435 pp$8.regexp_eatUnicodePropertyName = function(state) {
     4453pp$1.regexp_eatUnicodePropertyName = function(state) {
    44364454  var ch = 0;
    44374455  state.lastStringValue = "";
    44384456  while (isUnicodePropertyNameCharacter(ch = state.current())) {
    4439     state.lastStringValue += codePointToString(ch);
     4457    state.lastStringValue += codePointToString$1(ch);
    44404458    state.advance();
    44414459  }
     
    44484466// UnicodePropertyValue ::
    44494467//   UnicodePropertyValueCharacters
    4450 pp$8.regexp_eatUnicodePropertyValue = function(state) {
     4468pp$1.regexp_eatUnicodePropertyValue = function(state) {
    44514469  var ch = 0;
    44524470  state.lastStringValue = "";
    44534471  while (isUnicodePropertyValueCharacter(ch = state.current())) {
    4454     state.lastStringValue += codePointToString(ch);
     4472    state.lastStringValue += codePointToString$1(ch);
    44554473    state.advance();
    44564474  }
     
    44634481// LoneUnicodePropertyNameOrValue ::
    44644482//   UnicodePropertyValueCharacters
    4465 pp$8.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {
     4483pp$1.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {
    44664484  return this.regexp_eatUnicodePropertyValue(state)
    44674485};
    44684486
    44694487// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass
    4470 pp$8.regexp_eatCharacterClass = function(state) {
     4488pp$1.regexp_eatCharacterClass = function(state) {
    44714489  if (state.eat(0x5B /* [ */)) {
    44724490    state.eat(0x5E /* ^ */);
     
    44844502// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges
    44854503// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash
    4486 pp$8.regexp_classRanges = function(state) {
     4504pp$1.regexp_classRanges = function(state) {
    44874505  while (this.regexp_eatClassAtom(state)) {
    44884506    var left = state.lastIntValue;
     
    45014519// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom
    45024520// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash
    4503 pp$8.regexp_eatClassAtom = function(state) {
     4521pp$1.regexp_eatClassAtom = function(state) {
    45044522  var start = state.pos;
    45054523
     
    45304548
    45314549// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape
    4532 pp$8.regexp_eatClassEscape = function(state) {
     4550pp$1.regexp_eatClassEscape = function(state) {
    45334551  var start = state.pos;
    45344552
     
    45574575
    45584576// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter
    4559 pp$8.regexp_eatClassControlLetter = function(state) {
     4577pp$1.regexp_eatClassControlLetter = function(state) {
    45604578  var ch = state.current();
    45614579  if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {
     
    45684586
    45694587// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence
    4570 pp$8.regexp_eatHexEscapeSequence = function(state) {
     4588pp$1.regexp_eatHexEscapeSequence = function(state) {
    45714589  var start = state.pos;
    45724590  if (state.eat(0x78 /* x */)) {
     
    45834601
    45844602// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits
    4585 pp$8.regexp_eatDecimalDigits = function(state) {
     4603pp$1.regexp_eatDecimalDigits = function(state) {
    45864604  var start = state.pos;
    45874605  var ch = 0;
     
    45984616
    45994617// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits
    4600 pp$8.regexp_eatHexDigits = function(state) {
     4618pp$1.regexp_eatHexDigits = function(state) {
    46014619  var start = state.pos;
    46024620  var ch = 0;
     
    46274645// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence
    46284646// Allows only 0-377(octal) i.e. 0-255(decimal).
    4629 pp$8.regexp_eatLegacyOctalEscapeSequence = function(state) {
     4647pp$1.regexp_eatLegacyOctalEscapeSequence = function(state) {
    46304648  if (this.regexp_eatOctalDigit(state)) {
    46314649    var n1 = state.lastIntValue;
     
    46464664
    46474665// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit
    4648 pp$8.regexp_eatOctalDigit = function(state) {
     4666pp$1.regexp_eatOctalDigit = function(state) {
    46494667  var ch = state.current();
    46504668  if (isOctalDigit(ch)) {
     
    46634681// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit
    46644682// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence
    4665 pp$8.regexp_eatFixedHexDigits = function(state, length) {
     4683pp$1.regexp_eatFixedHexDigits = function(state, length) {
    46664684  var start = state.pos;
    46674685  state.lastIntValue = 0;
     
    46954713// ## Tokenizer
    46964714
    4697 var pp$9 = Parser.prototype;
     4715var pp = Parser.prototype;
    46984716
    46994717// Move to the next token
    47004718
    4701 pp$9.next = function(ignoreEscapeSequenceInKeyword) {
     4719pp.next = function(ignoreEscapeSequenceInKeyword) {
    47024720  if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)
    47034721    { this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword); }
     
    47124730};
    47134731
    4714 pp$9.getToken = function() {
     4732pp.getToken = function() {
    47154733  this.next();
    47164734  return new Token(this)
     
    47194737// If we're in an ES6 environment, make parsers iterable
    47204738if (typeof Symbol !== "undefined")
    4721   { pp$9[Symbol.iterator] = function() {
    4722     var this$1 = this;
     4739  { pp[Symbol.iterator] = function() {
     4740    var this$1$1 = this;
    47234741
    47244742    return {
    47254743      next: function () {
    4726         var token = this$1.getToken();
     4744        var token = this$1$1.getToken();
    47274745        return {
    4728           done: token.type === types.eof,
     4746          done: token.type === types$1.eof,
    47294747          value: token
    47304748        }
     
    47394757// properties.
    47404758
    4741 pp$9.nextToken = function() {
     4759pp.nextToken = function() {
    47424760  var curContext = this.curContext();
    47434761  if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }
     
    47454763  this.start = this.pos;
    47464764  if (this.options.locations) { this.startLoc = this.curPosition(); }
    4747   if (this.pos >= this.input.length) { return this.finishToken(types.eof) }
     4765  if (this.pos >= this.input.length) { return this.finishToken(types$1.eof) }
    47484766
    47494767  if (curContext.override) { return curContext.override(this) }
     
    47514769};
    47524770
    4753 pp$9.readToken = function(code) {
     4771pp.readToken = function(code) {
    47544772  // Identifier or keyword. '\uXXXX' sequences are allowed in
    47554773  // identifiers, so '\' also dispatches to that.
     
    47604778};
    47614779
    4762 pp$9.fullCharCodeAtPos = function() {
     4780pp.fullCharCodeAtPos = function() {
    47634781  var code = this.input.charCodeAt(this.pos);
    47644782  if (code <= 0xd7ff || code >= 0xdc00) { return code }
     
    47674785};
    47684786
    4769 pp$9.skipBlockComment = function() {
     4787pp.skipBlockComment = function() {
    47704788  var startLoc = this.options.onComment && this.curPosition();
    47714789  var start = this.pos, end = this.input.indexOf("*/", this.pos += 2);
     
    47854803};
    47864804
    4787 pp$9.skipLineComment = function(startSkip) {
     4805pp.skipLineComment = function(startSkip) {
    47884806  var start = this.pos;
    47894807  var startLoc = this.options.onComment && this.curPosition();
     
    48004818// whitespace and comments, and.
    48014819
    4802 pp$9.skipSpace = function() {
     4820pp.skipSpace = function() {
    48034821  loop: while (this.pos < this.input.length) {
    48044822    var ch = this.input.charCodeAt(this.pos);
     
    48454863// right position.
    48464864
    4847 pp$9.finishToken = function(type, val) {
     4865pp.finishToken = function(type, val) {
    48484866  this.end = this.pos;
    48494867  if (this.options.locations) { this.endLoc = this.curPosition(); }
     
    48644882// All in the name of speed.
    48654883//
    4866 pp$9.readToken_dot = function() {
     4884pp.readToken_dot = function() {
    48674885  var next = this.input.charCodeAt(this.pos + 1);
    48684886  if (next >= 48 && next <= 57) { return this.readNumber(true) }
     
    48704888  if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'
    48714889    this.pos += 3;
    4872     return this.finishToken(types.ellipsis)
     4890    return this.finishToken(types$1.ellipsis)
    48734891  } else {
    48744892    ++this.pos;
    4875     return this.finishToken(types.dot)
    4876   }
    4877 };
    4878 
    4879 pp$9.readToken_slash = function() { // '/'
     4893    return this.finishToken(types$1.dot)
     4894  }
     4895};
     4896
     4897pp.readToken_slash = function() { // '/'
    48804898  var next = this.input.charCodeAt(this.pos + 1);
    48814899  if (this.exprAllowed) { ++this.pos; return this.readRegexp() }
    4882   if (next === 61) { return this.finishOp(types.assign, 2) }
    4883   return this.finishOp(types.slash, 1)
    4884 };
    4885 
    4886 pp$9.readToken_mult_modulo_exp = function(code) { // '%*'
     4900  if (next === 61) { return this.finishOp(types$1.assign, 2) }
     4901  return this.finishOp(types$1.slash, 1)
     4902};
     4903
     4904pp.readToken_mult_modulo_exp = function(code) { // '%*'
    48874905  var next = this.input.charCodeAt(this.pos + 1);
    48884906  var size = 1;
    4889   var tokentype = code === 42 ? types.star : types.modulo;
     4907  var tokentype = code === 42 ? types$1.star : types$1.modulo;
    48904908
    48914909  // exponentiation operator ** and **=
    48924910  if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {
    48934911    ++size;
    4894     tokentype = types.starstar;
     4912    tokentype = types$1.starstar;
    48954913    next = this.input.charCodeAt(this.pos + 2);
    48964914  }
    48974915
    4898   if (next === 61) { return this.finishOp(types.assign, size + 1) }
     4916  if (next === 61) { return this.finishOp(types$1.assign, size + 1) }
    48994917  return this.finishOp(tokentype, size)
    49004918};
    49014919
    4902 pp$9.readToken_pipe_amp = function(code) { // '|&'
     4920pp.readToken_pipe_amp = function(code) { // '|&'
    49034921  var next = this.input.charCodeAt(this.pos + 1);
    49044922  if (next === code) {
    49054923    if (this.options.ecmaVersion >= 12) {
    49064924      var next2 = this.input.charCodeAt(this.pos + 2);
    4907       if (next2 === 61) { return this.finishOp(types.assign, 3) }
    4908     }
    4909     return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2)
    4910   }
    4911   if (next === 61) { return this.finishOp(types.assign, 2) }
    4912   return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1)
    4913 };
    4914 
    4915 pp$9.readToken_caret = function() { // '^'
     4925      if (next2 === 61) { return this.finishOp(types$1.assign, 3) }
     4926    }
     4927    return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2)
     4928  }
     4929  if (next === 61) { return this.finishOp(types$1.assign, 2) }
     4930  return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1)
     4931};
     4932
     4933pp.readToken_caret = function() { // '^'
    49164934  var next = this.input.charCodeAt(this.pos + 1);
    4917   if (next === 61) { return this.finishOp(types.assign, 2) }
    4918   return this.finishOp(types.bitwiseXOR, 1)
    4919 };
    4920 
    4921 pp$9.readToken_plus_min = function(code) { // '+-'
     4935  if (next === 61) { return this.finishOp(types$1.assign, 2) }
     4936  return this.finishOp(types$1.bitwiseXOR, 1)
     4937};
     4938
     4939pp.readToken_plus_min = function(code) { // '+-'
    49224940  var next = this.input.charCodeAt(this.pos + 1);
    49234941  if (next === code) {
     
    49294947      return this.nextToken()
    49304948    }
    4931     return this.finishOp(types.incDec, 2)
    4932   }
    4933   if (next === 61) { return this.finishOp(types.assign, 2) }
    4934   return this.finishOp(types.plusMin, 1)
    4935 };
    4936 
    4937 pp$9.readToken_lt_gt = function(code) { // '<>'
     4949    return this.finishOp(types$1.incDec, 2)
     4950  }
     4951  if (next === 61) { return this.finishOp(types$1.assign, 2) }
     4952  return this.finishOp(types$1.plusMin, 1)
     4953};
     4954
     4955pp.readToken_lt_gt = function(code) { // '<>'
    49384956  var next = this.input.charCodeAt(this.pos + 1);
    49394957  var size = 1;
    49404958  if (next === code) {
    49414959    size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;
    4942     if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) }
    4943     return this.finishOp(types.bitShift, size)
     4960    if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) }
     4961    return this.finishOp(types$1.bitShift, size)
    49444962  }
    49454963  if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&
     
    49514969  }
    49524970  if (next === 61) { size = 2; }
    4953   return this.finishOp(types.relational, size)
    4954 };
    4955 
    4956 pp$9.readToken_eq_excl = function(code) { // '=!'
     4971  return this.finishOp(types$1.relational, size)
     4972};
     4973
     4974pp.readToken_eq_excl = function(code) { // '=!'
    49574975  var next = this.input.charCodeAt(this.pos + 1);
    4958   if (next === 61) { return this.finishOp(types.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }
     4976  if (next === 61) { return this.finishOp(types$1.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }
    49594977  if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'
    49604978    this.pos += 2;
    4961     return this.finishToken(types.arrow)
    4962   }
    4963   return this.finishOp(code === 61 ? types.eq : types.prefix, 1)
    4964 };
    4965 
    4966 pp$9.readToken_question = function() { // '?'
     4979    return this.finishToken(types$1.arrow)
     4980  }
     4981  return this.finishOp(code === 61 ? types$1.eq : types$1.prefix, 1)
     4982};
     4983
     4984pp.readToken_question = function() { // '?'
    49674985  var ecmaVersion = this.options.ecmaVersion;
    49684986  if (ecmaVersion >= 11) {
     
    49704988    if (next === 46) {
    49714989      var next2 = this.input.charCodeAt(this.pos + 2);
    4972       if (next2 < 48 || next2 > 57) { return this.finishOp(types.questionDot, 2) }
     4990      if (next2 < 48 || next2 > 57) { return this.finishOp(types$1.questionDot, 2) }
    49734991    }
    49744992    if (next === 63) {
    49754993      if (ecmaVersion >= 12) {
    49764994        var next2$1 = this.input.charCodeAt(this.pos + 2);
    4977         if (next2$1 === 61) { return this.finishOp(types.assign, 3) }
     4995        if (next2$1 === 61) { return this.finishOp(types$1.assign, 3) }
    49784996      }
    4979       return this.finishOp(types.coalesce, 2)
    4980     }
    4981   }
    4982   return this.finishOp(types.question, 1)
    4983 };
    4984 
    4985 pp$9.readToken_numberSign = function() { // '#'
     4997      return this.finishOp(types$1.coalesce, 2)
     4998    }
     4999  }
     5000  return this.finishOp(types$1.question, 1)
     5001};
     5002
     5003pp.readToken_numberSign = function() { // '#'
    49865004  var ecmaVersion = this.options.ecmaVersion;
    49875005  var code = 35; // '#'
     
    49905008    code = this.fullCharCodeAtPos();
    49915009    if (isIdentifierStart(code, true) || code === 92 /* '\' */) {
    4992       return this.finishToken(types.privateId, this.readWord1())
    4993     }
    4994   }
    4995 
    4996   this.raise(this.pos, "Unexpected character '" + codePointToString$1(code) + "'");
    4997 };
    4998 
    4999 pp$9.getTokenFromCode = function(code) {
     5010      return this.finishToken(types$1.privateId, this.readWord1())
     5011    }
     5012  }
     5013
     5014  this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'");
     5015};
     5016
     5017pp.getTokenFromCode = function(code) {
    50005018  switch (code) {
    50015019  // The interpretation of a dot depends on whether it is followed
     
    50055023
    50065024  // Punctuation tokens.
    5007   case 40: ++this.pos; return this.finishToken(types.parenL)
    5008   case 41: ++this.pos; return this.finishToken(types.parenR)
    5009   case 59: ++this.pos; return this.finishToken(types.semi)
    5010   case 44: ++this.pos; return this.finishToken(types.comma)
    5011   case 91: ++this.pos; return this.finishToken(types.bracketL)
    5012   case 93: ++this.pos; return this.finishToken(types.bracketR)
    5013   case 123: ++this.pos; return this.finishToken(types.braceL)
    5014   case 125: ++this.pos; return this.finishToken(types.braceR)
    5015   case 58: ++this.pos; return this.finishToken(types.colon)
     5025  case 40: ++this.pos; return this.finishToken(types$1.parenL)
     5026  case 41: ++this.pos; return this.finishToken(types$1.parenR)
     5027  case 59: ++this.pos; return this.finishToken(types$1.semi)
     5028  case 44: ++this.pos; return this.finishToken(types$1.comma)
     5029  case 91: ++this.pos; return this.finishToken(types$1.bracketL)
     5030  case 93: ++this.pos; return this.finishToken(types$1.bracketR)
     5031  case 123: ++this.pos; return this.finishToken(types$1.braceL)
     5032  case 125: ++this.pos; return this.finishToken(types$1.braceR)
     5033  case 58: ++this.pos; return this.finishToken(types$1.colon)
    50165034
    50175035  case 96: // '`'
    50185036    if (this.options.ecmaVersion < 6) { break }
    50195037    ++this.pos;
    5020     return this.finishToken(types.backQuote)
     5038    return this.finishToken(types$1.backQuote)
    50215039
    50225040  case 48: // '0'
     
    50415059  // characters it is given as second argument, and returns a token
    50425060  // of the type given by its first argument.
    5043 
    50445061  case 47: // '/'
    50455062    return this.readToken_slash()
     
    50675084
    50685085  case 126: // '~'
    5069     return this.finishOp(types.prefix, 1)
     5086    return this.finishOp(types$1.prefix, 1)
    50705087
    50715088  case 35: // '#'
     
    50735090  }
    50745091
    5075   this.raise(this.pos, "Unexpected character '" + codePointToString$1(code) + "'");
    5076 };
    5077 
    5078 pp$9.finishOp = function(type, size) {
     5092  this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'");
     5093};
     5094
     5095pp.finishOp = function(type, size) {
    50795096  var str = this.input.slice(this.pos, this.pos + size);
    50805097  this.pos += size;
     
    50825099};
    50835100
    5084 pp$9.readRegexp = function() {
     5101pp.readRegexp = function() {
    50855102  var escaped, inClass, start = this.pos;
    50865103  for (;;) {
     
    51175134  }
    51185135
    5119   return this.finishToken(types.regexp, {pattern: pattern, flags: flags, value: value})
     5136  return this.finishToken(types$1.regexp, {pattern: pattern, flags: flags, value: value})
    51205137};
    51215138
     
    51245141// will return `null` unless the integer has exactly `len` digits.
    51255142
    5126 pp$9.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {
     5143pp.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {
    51275144  // `len` is used for character escape sequences. In that case, disallow separators.
    51285145  var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined;
     
    51785195}
    51795196
    5180 pp$9.readRadixNumber = function(radix) {
     5197pp.readRadixNumber = function(radix) {
    51815198  var start = this.pos;
    51825199  this.pos += 2; // 0x
     
    51875204    ++this.pos;
    51885205  } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); }
    5189   return this.finishToken(types.num, val)
     5206  return this.finishToken(types$1.num, val)
    51905207};
    51915208
    51925209// Read an integer, octal integer, or floating-point number.
    51935210
    5194 pp$9.readNumber = function(startsWithDot) {
     5211pp.readNumber = function(startsWithDot) {
    51955212  var start = this.pos;
    51965213  if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, "Invalid number"); }
     
    52025219    ++this.pos;
    52035220    if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); }
    5204     return this.finishToken(types.num, val$1)
     5221    return this.finishToken(types$1.num, val$1)
    52055222  }
    52065223  if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; }
     
    52185235
    52195236  var val = stringToNumber(this.input.slice(start, this.pos), octal);
    5220   return this.finishToken(types.num, val)
     5237  return this.finishToken(types$1.num, val)
    52215238};
    52225239
    52235240// Read a string value, interpreting backslash-escapes.
    52245241
    5225 pp$9.readCodePoint = function() {
     5242pp.readCodePoint = function() {
    52265243  var ch = this.input.charCodeAt(this.pos), code;
    52275244
     
    52385255};
    52395256
    5240 function codePointToString$1(code) {
     5257function codePointToString(code) {
    52415258  // UTF-16 Decoding
    52425259  if (code <= 0xFFFF) { return String.fromCharCode(code) }
     
    52455262}
    52465263
    5247 pp$9.readString = function(quote) {
     5264pp.readString = function(quote) {
    52485265  var out = "", chunkStart = ++this.pos;
    52495266  for (;;) {
     
    52685285  }
    52695286  out += this.input.slice(chunkStart, this.pos++);
    5270   return this.finishToken(types.string, out)
     5287  return this.finishToken(types$1.string, out)
    52715288};
    52725289
     
    52755292var INVALID_TEMPLATE_ESCAPE_ERROR = {};
    52765293
    5277 pp$9.tryReadTemplateToken = function() {
     5294pp.tryReadTemplateToken = function() {
    52785295  this.inTemplateElement = true;
    52795296  try {
     
    52905307};
    52915308
    5292 pp$9.invalidStringToken = function(position, message) {
     5309pp.invalidStringToken = function(position, message) {
    52935310  if (this.inTemplateElement && this.options.ecmaVersion >= 9) {
    52945311    throw INVALID_TEMPLATE_ESCAPE_ERROR
     
    52985315};
    52995316
    5300 pp$9.readTmplToken = function() {
     5317pp.readTmplToken = function() {
    53015318  var out = "", chunkStart = this.pos;
    53025319  for (;;) {
     
    53045321    var ch = this.input.charCodeAt(this.pos);
    53055322    if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'
    5306       if (this.pos === this.start && (this.type === types.template || this.type === types.invalidTemplate)) {
     5323      if (this.pos === this.start && (this.type === types$1.template || this.type === types$1.invalidTemplate)) {
    53075324        if (ch === 36) {
    53085325          this.pos += 2;
    5309           return this.finishToken(types.dollarBraceL)
     5326          return this.finishToken(types$1.dollarBraceL)
    53105327        } else {
    53115328          ++this.pos;
    5312           return this.finishToken(types.backQuote)
     5329          return this.finishToken(types$1.backQuote)
    53135330        }
    53145331      }
    53155332      out += this.input.slice(chunkStart, this.pos);
    5316       return this.finishToken(types.template, out)
     5333      return this.finishToken(types$1.template, out)
    53175334    }
    53185335    if (ch === 92) { // '\'
     
    53455362
    53465363// Reads a template token to search for the end, without validating any escape sequences
    5347 pp$9.readInvalidTemplateToken = function() {
     5364pp.readInvalidTemplateToken = function() {
    53485365  for (; this.pos < this.input.length; this.pos++) {
    53495366    switch (this.input[this.pos]) {
     
    53565373        break
    53575374      }
     5375
    53585376    // falls through
    5359 
    53605377    case "`":
    5361       return this.finishToken(types.invalidTemplate, this.input.slice(this.start, this.pos))
     5378      return this.finishToken(types$1.invalidTemplate, this.input.slice(this.start, this.pos))
    53625379
    53635380    // no default
     
    53695386// Used to read escaped characters
    53705387
    5371 pp$9.readEscapedChar = function(inTemplate) {
     5388pp.readEscapedChar = function(inTemplate) {
    53725389  var ch = this.input.charCodeAt(++this.pos);
    53735390  ++this.pos;
     
    53765393  case 114: return "\r" // 'r' -> '\r'
    53775394  case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'
    5378   case 117: return codePointToString$1(this.readCodePoint()) // 'u'
     5395  case 117: return codePointToString(this.readCodePoint()) // 'u'
    53795396  case 116: return "\t" // 't' -> '\t'
    53805397  case 98: return "\b" // 'b' -> '\b'
     
    54345451// Used to read character escape sequences ('\x', '\u', '\U').
    54355452
    5436 pp$9.readHexChar = function(len) {
     5453pp.readHexChar = function(len) {
    54375454  var codePos = this.pos;
    54385455  var n = this.readInt(16, len);
     
    54475464// as a micro-optimization.
    54485465
    5449 pp$9.readWord1 = function() {
     5466pp.readWord1 = function() {
    54505467  this.containsEsc = false;
    54515468  var word = "", first = true, chunkStart = this.pos;
     
    54655482      if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))
    54665483        { this.invalidStringToken(escStart, "Invalid Unicode escape"); }
    5467       word += codePointToString$1(esc);
     5484      word += codePointToString(esc);
    54685485      chunkStart = this.pos;
    54695486    } else {
     
    54785495// words when necessary.
    54795496
    5480 pp$9.readWord = function() {
     5497pp.readWord = function() {
    54815498  var word = this.readWord1();
    5482   var type = types.name;
     5499  var type = types$1.name;
    54835500  if (this.keywords.test(word)) {
    5484     type = keywords$1[word];
     5501    type = keywords[word];
    54855502  }
    54865503  return this.finishToken(type, word)
     
    54895506// Acorn is a tiny, fast JavaScript parser written in JavaScript.
    54905507
    5491 var version = "8.5.0";
     5508var version = "8.6.0";
    54925509
    54935510Parser.acorn = {
     
    55005517  Node: Node,
    55015518  TokenType: TokenType,
    5502   tokTypes: types,
    5503   keywordTypes: keywords$1,
     5519  tokTypes: types$1,
     5520  keywordTypes: keywords,
    55045521  TokContext: TokContext,
    5505   tokContexts: types$1,
     5522  tokContexts: types,
    55065523  isIdentifierChar: isIdentifierChar,
    55075524  isIdentifierStart: isIdentifierStart,
     
    55395556}
    55405557
    5541 export { Node, Parser, Position, SourceLocation, TokContext, Token, TokenType, defaultOptions, getLineInfo, isIdentifierChar, isIdentifierStart, isNewLine, keywords$1 as keywordTypes, lineBreak, lineBreakG, nonASCIIwhitespace, parse, parseExpressionAt, types$1 as tokContexts, types as tokTypes, tokenizer, version };
     5558export { Node, Parser, Position, SourceLocation, TokContext, Token, TokenType, defaultOptions, getLineInfo, isIdentifierChar, isIdentifierStart, isNewLine, keywords as keywordTypes, lineBreak, lineBreakG, nonASCIIwhitespace, parse, parseExpressionAt, types as tokContexts, types$1 as tokTypes, tokenizer, version };
  • trip-planner-front/node_modules/acorn/dist/bin.js

    r59329aa re29cc2e  
    44var fs = require('fs');
    55var acorn = require('./acorn.js');
     6
     7function _interopNamespace(e) {
     8  if (e && e.__esModule) return e;
     9  var n = Object.create(null);
     10  if (e) {
     11    Object.keys(e).forEach(function (k) {
     12      if (k !== 'default') {
     13        var d = Object.getOwnPropertyDescriptor(e, k);
     14        Object.defineProperty(n, k, d.get ? d : {
     15          enumerable: true,
     16          get: function () { return e[k]; }
     17        });
     18      }
     19    });
     20  }
     21  n["default"] = e;
     22  return Object.freeze(n);
     23}
     24
     25var acorn__namespace = /*#__PURE__*/_interopNamespace(acorn);
    626
    727var inputFilePaths = [], forceFileName = false, fileMode = false, silent = false, compact = false, tokenize = false;
     
    4565      fileIdx = idx;
    4666      if (!tokenize) {
    47         result = acorn.parse(code, options);
     67        result = acorn__namespace.parse(code, options);
    4868        options.program = result;
    4969      } else {
    50         var tokenizer = acorn.tokenizer(code, options), token;
     70        var tokenizer = acorn__namespace.tokenizer(code, options), token;
    5171        do {
    5272          token = tokenizer.getToken();
    5373          result.push(token);
    54         } while (token.type !== acorn.tokTypes.eof)
     74        } while (token.type !== acorn__namespace.tokTypes.eof)
    5575      }
    5676    });
Note: See TracChangeset for help on using the changeset viewer.