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

primeNG components

File:
1 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}));
Note: See TracChangeset for help on using the changeset viewer.