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.mjs

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