Ignore:
Timestamp:
01/21/25 03:08:24 (3 days ago)
Author:
stefan toskovski <stefantoska84@…>
Branches:
main
Parents:
0c6b92a
Message:

F4 Finalna Verzija

File:
1 edited

Legend:

Unmodified
Added
Removed
  • imaps-frontend/node_modules/@babel/parser/lib/index.js

    r0c6b92a r79a0317  
    421421}
    422422const Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors));
     423function createDefaultOptions() {
     424  return {
     425    sourceType: "script",
     426    sourceFilename: undefined,
     427    startIndex: 0,
     428    startColumn: 0,
     429    startLine: 1,
     430    allowAwaitOutsideFunction: false,
     431    allowReturnOutsideFunction: false,
     432    allowNewTargetOutsideFunction: false,
     433    allowImportExportEverywhere: false,
     434    allowSuperOutsideMethod: false,
     435    allowUndeclaredExports: false,
     436    plugins: [],
     437    strictMode: null,
     438    ranges: false,
     439    tokens: false,
     440    createImportExpressions: false,
     441    createParenthesizedExpressions: false,
     442    errorRecovery: false,
     443    attachComment: true,
     444    annexB: true
     445  };
     446}
     447function getOptions(opts) {
     448  const options = createDefaultOptions();
     449  if (opts == null) {
     450    return options;
     451  }
     452  if (opts.annexB != null && opts.annexB !== false) {
     453    throw new Error("The `annexB` option can only be set to `false`.");
     454  }
     455  for (const key of Object.keys(options)) {
     456    if (opts[key] != null) options[key] = opts[key];
     457  }
     458  if (options.startLine === 1) {
     459    if (opts.startIndex == null && options.startColumn > 0) {
     460      options.startIndex = options.startColumn;
     461    } else if (opts.startColumn == null && options.startIndex > 0) {
     462      options.startColumn = options.startIndex;
     463    }
     464  } else if (opts.startColumn == null || opts.startIndex == null) {
     465    if (opts.startIndex != null) {
     466      throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`.");
     467    }
     468  }
     469  return options;
     470}
    423471const {
    424472  defineProperty
     
    440488  parse() {
    441489    const file = toESTreeLocation(super.parse());
    442     if (this.options.tokens) {
     490    if (this.optionFlags & 128) {
    443491      file.tokens = file.tokens.map(toESTreeLocation);
    444492    }
     
    529577    delete node.directives;
    530578  }
    531   pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {
    532     this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true);
    533     if (method.typeParameters) {
    534       method.value.typeParameters = method.typeParameters;
    535       delete method.typeParameters;
    536     }
    537     classBody.body.push(method);
    538   }
    539579  parsePrivateName() {
    540580    const node = super.parsePrivateName();
     
    587627    delete funcNode.kind;
    588628    node.value = funcNode;
     629    const {
     630      typeParameters
     631    } = node;
     632    if (typeParameters) {
     633      delete node.typeParameters;
     634      funcNode.typeParameters = typeParameters;
     635      funcNode.start = typeParameters.start;
     636      funcNode.loc.start = typeParameters.loc.start;
     637    }
    589638    if (type === "ClassPrivateMethod") {
    590639      node.computed = false;
     
    603652      }
    604653    }
    605     propertyNode.type = "PropertyDefinition";
     654    {
     655      propertyNode.type = "PropertyDefinition";
     656    }
    606657    return propertyNode;
    607658  }
     
    613664      }
    614665    }
    615     propertyNode.type = "PropertyDefinition";
     666    {
     667      propertyNode.type = "PropertyDefinition";
     668    }
    616669    propertyNode.computed = false;
    617670    return propertyNode;
     
    17351788            adjustInnerComments(node, node.specifiers, commentWS);
    17361789            break;
     1790          case "TSEnumDeclaration":
     1791            {
     1792              adjustInnerComments(node, node.members, commentWS);
     1793            }
     1794            break;
     1795          case "TSEnumBody":
     1796            adjustInnerComments(node, node.members, commentWS);
     1797            break;
    17371798          default:
    17381799            {
     
    23142375    this.errorHandlers_readInt = {
    23152376      invalidDigit: (pos, lineStart, curLine, radix) => {
    2316         if (!this.options.errorRecovery) return false;
     2377        if (!(this.optionFlags & 1024)) return false;
    23172378        this.raise(Errors.InvalidDigit, buildPosition(pos, lineStart, curLine), {
    23182379          radix
     
    23552416  next() {
    23562417    this.checkKeywordEscapes();
    2357     if (this.options.tokens) {
     2418    if (this.optionFlags & 128) {
    23582419      this.pushToken(new Token(this.state));
    23592420    }
     
    24712532      loc: new SourceLocation(startLoc, this.state.curPosition())
    24722533    };
    2473     if (this.options.tokens) this.pushToken(comment);
     2534    if (this.optionFlags & 128) this.pushToken(comment);
    24742535    return comment;
    24752536  }
     
    24942555      loc: new SourceLocation(startLoc, this.state.curPosition())
    24952556    };
    2496     if (this.options.tokens) this.pushToken(comment);
     2557    if (this.optionFlags & 128) this.pushToken(comment);
    24972558    return comment;
    24982559  }
    24992560  skipSpace() {
    25002561    const spaceStart = this.state.pos;
    2501     const comments = [];
     2562    const comments = this.optionFlags & 2048 ? [] : null;
    25022563    loop: while (this.state.pos < this.length) {
    25032564      const ch = this.input.charCodeAt(this.state.pos);
     
    25262587                if (comment !== undefined) {
    25272588                  this.addComment(comment);
    2528                   if (this.options.attachComment) comments.push(comment);
     2589                  comments == null || comments.push(comment);
    25292590                }
    25302591                break;
     
    25352596                if (comment !== undefined) {
    25362597                  this.addComment(comment);
    2537                   if (this.options.attachComment) comments.push(comment);
     2598                  comments == null || comments.push(comment);
    25382599                }
    25392600                break;
     
    25462607          if (isWhitespace(ch)) {
    25472608            ++this.state.pos;
    2548           } else if (ch === 45 && !this.inModule && this.options.annexB) {
     2609          } else if (ch === 45 && !this.inModule && this.optionFlags & 4096) {
    25492610            const pos = this.state.pos;
    25502611            if (this.input.charCodeAt(pos + 1) === 45 && this.input.charCodeAt(pos + 2) === 62 && (spaceStart === 0 || this.state.lineStart > spaceStart)) {
     
    25522613              if (comment !== undefined) {
    25532614                this.addComment(comment);
    2554                 if (this.options.attachComment) comments.push(comment);
     2615                comments == null || comments.push(comment);
    25552616              }
    25562617            } else {
    25572618              break loop;
    25582619            }
    2559           } else if (ch === 60 && !this.inModule && this.options.annexB) {
     2620          } else if (ch === 60 && !this.inModule && this.optionFlags & 4096) {
    25602621            const pos = this.state.pos;
    25612622            if (this.input.charCodeAt(pos + 1) === 33 && this.input.charCodeAt(pos + 2) === 45 && this.input.charCodeAt(pos + 3) === 45) {
     
    25632624              if (comment !== undefined) {
    25642625                this.addComment(comment);
    2565                 if (this.options.attachComment) comments.push(comment);
     2626                comments == null || comments.push(comment);
    25662627              }
    25672628            } else {
     
    25732634      }
    25742635    }
    2575     if (comments.length > 0) {
     2636    if ((comments == null ? void 0 : comments.length) > 0) {
    25762637      const end = this.state.pos;
    25772638      const commentWhitespace = {
     
    32653326    const loc = at instanceof Position ? at : at.loc.start;
    32663327    const error = toParseError(loc, details);
    3267     if (!this.options.errorRecovery) throw error;
     3328    if (!(this.optionFlags & 1024)) throw error;
    32683329    if (!this.isLookahead) this.state.errors.push(error);
    32693330    return error;
     
    37493810    this.end = 0;
    37503811    this.loc = new SourceLocation(loc);
    3751     if (parser != null && parser.options.ranges) this.range = [pos, 0];
     3812    if ((parser == null ? void 0 : parser.optionFlags) & 64) this.range = [pos, 0];
    37523813    if (parser != null && parser.filename) this.loc.filename = parser.filename;
    37533814  }
     
    38373898    node.end = endLoc.index;
    38383899    node.loc.end = endLoc;
    3839     if (this.options.ranges) node.range[1] = endLoc.index;
    3840     if (this.options.attachComment) this.processComment(node);
     3900    if (this.optionFlags & 64) node.range[1] = endLoc.index;
     3901    if (this.optionFlags & 2048) {
     3902      this.processComment(node);
     3903    }
    38413904    return node;
    38423905  }
     
    38443907    node.start = startLoc.index;
    38453908    node.loc.start = startLoc;
    3846     if (this.options.ranges) node.range[0] = startLoc.index;
     3909    if (this.optionFlags & 64) node.range[0] = startLoc.index;
    38473910  }
    38483911  resetEndLocation(node, endLoc = this.state.lastTokEndLoc) {
    38493912    node.end = endLoc.index;
    38503913    node.loc.end = endLoc;
    3851     if (this.options.ranges) node.range[1] = endLoc.index;
     3914    if (this.optionFlags & 64) node.range[1] = endLoc.index;
    38523915  }
    38533916  resetStartLocationFromNode(node, locationNode) {
     
    43574420    return this.finishNode(node, "TypeParameterDeclaration");
    43584421  }
     4422  flowInTopLevelContext(cb) {
     4423    if (this.curContext() !== types.brace) {
     4424      const oldContext = this.state.context;
     4425      this.state.context = [oldContext[0]];
     4426      try {
     4427        return cb();
     4428      } finally {
     4429        this.state.context = oldContext;
     4430      }
     4431    } else {
     4432      return cb();
     4433    }
     4434  }
     4435  flowParseTypeParameterInstantiationInExpression() {
     4436    if (this.reScan_lt() !== 47) return;
     4437    return this.flowParseTypeParameterInstantiation();
     4438  }
    43594439  flowParseTypeParameterInstantiation() {
    43604440    const node = this.startNode();
    43614441    const oldInType = this.state.inType;
     4442    this.state.inType = true;
    43624443    node.params = [];
    4363     this.state.inType = true;
    4364     this.expect(47);
    4365     const oldNoAnonFunctionType = this.state.noAnonFunctionType;
    4366     this.state.noAnonFunctionType = false;
    4367     while (!this.match(48)) {
    4368       node.params.push(this.flowParseType());
    4369       if (!this.match(48)) {
    4370         this.expect(12);
    4371       }
    4372     }
    4373     this.state.noAnonFunctionType = oldNoAnonFunctionType;
     4444    this.flowInTopLevelContext(() => {
     4445      this.expect(47);
     4446      const oldNoAnonFunctionType = this.state.noAnonFunctionType;
     4447      this.state.noAnonFunctionType = false;
     4448      while (!this.match(48)) {
     4449        node.params.push(this.flowParseType());
     4450        if (!this.match(48)) {
     4451          this.expect(12);
     4452        }
     4453      }
     4454      this.state.noAnonFunctionType = oldNoAnonFunctionType;
     4455    });
     4456    this.state.inType = oldInType;
     4457    if (!this.state.inType && this.curContext() === types.brace) {
     4458      this.reScan_lt_gt();
     4459    }
    43744460    this.expect(48);
    4375     this.state.inType = oldInType;
    43764461    return this.finishNode(node, "TypeParameterInstantiation");
    43774462  }
    43784463  flowParseTypeParameterInstantiationCallOrNew() {
     4464    if (this.reScan_lt() !== 47) return;
    43794465    const node = this.startNode();
    43804466    const oldInType = this.state.inType;
     
    54305516  parseClassSuper(node) {
    54315517    super.parseClassSuper(node);
    5432     if (node.superClass && this.match(47)) {
    5433       node.superTypeParameters = this.flowParseTypeParameterInstantiation();
     5518    if (node.superClass && (this.match(47) || this.match(51))) {
     5519      {
     5520        node.superTypeParameters = this.flowParseTypeParameterInstantiationInExpression();
     5521      }
    54345522    }
    54355523    if (this.isContextual(113)) {
     
    57625850      const node = this.startNodeAt(startLoc);
    57635851      node.callee = base;
    5764       node.typeArguments = this.flowParseTypeParameterInstantiation();
     5852      node.typeArguments = this.flowParseTypeParameterInstantiationInExpression();
    57655853      this.expect(10);
    57665854      node.arguments = this.parseCallExpressionArguments(11);
    57675855      node.optional = true;
    57685856      return this.finishCallExpression(node, true);
    5769     } else if (!noCalls && this.shouldParseTypes() && this.match(47)) {
     5857    } else if (!noCalls && this.shouldParseTypes() && (this.match(47) || this.match(51))) {
    57705858      const node = this.startNodeAt(startLoc);
    57715859      node.callee = base;
     
    61966284    return this.finishNode(node, "EnumDeclaration");
    61976285  }
     6286  jsxParseOpeningElementAfterName(node) {
     6287    if (this.shouldParseTypes()) {
     6288      if (this.match(47) || this.match(51)) {
     6289        node.typeArguments = this.flowParseTypeParameterInstantiationInExpression();
     6290      }
     6291    }
     6292    return super.jsxParseOpeningElementAfterName(node);
     6293  }
    61986294  isLookaheadToken_lt() {
    61996295    const next = this.nextTokenStart();
     
    62036299    }
    62046300    return false;
     6301  }
     6302  reScan_lt_gt() {
     6303    const {
     6304      type
     6305    } = this.state;
     6306    if (type === 47) {
     6307      this.state.pos -= 1;
     6308      this.readToken_lt();
     6309    } else if (type === 48) {
     6310      this.state.pos -= 1;
     6311      this.readToken_gt();
     6312    }
     6313  }
     6314  reScan_lt() {
     6315    const {
     6316      type
     6317    } = this.state;
     6318    if (type === 51) {
     6319      this.state.pos -= 2;
     6320      this.finishOp(47, 1);
     6321      return 47;
     6322    }
     6323    return type;
    62056324  }
    62066325  maybeUnwrapTypeCastExpression(node) {
     
    77157834    if (!this.match(134)) {
    77167835      this.raise(TSErrors.UnsupportedImportTypeArgument, this.state.startLoc);
    7717     }
    7718     node.argument = super.parseExprAtom();
     7836      {
     7837        node.argument = super.parseExprAtom();
     7838      }
     7839    } else {
     7840      {
     7841        node.argument = this.parseStringLiteral(this.state.value);
     7842      }
     7843    }
    77197844    if (this.eat(12) && !this.match(11)) {
    77207845      node.options = super.parseMaybeAssignAllowIn();
     
    77287853    }
    77297854    if (this.match(47)) {
    7730       node.typeParameters = this.tsParseTypeArguments();
     7855      {
     7856        node.typeParameters = this.tsParseTypeArguments();
     7857      }
    77317858    }
    77327859    return this.finishNode(node, "TSImportType");
     
    77467873    node.typeName = this.tsParseEntityName();
    77477874    if (!this.hasPrecedingLineBreak() && this.match(47)) {
    7748       node.typeParameters = this.tsParseTypeArguments();
     7875      {
     7876        node.typeParameters = this.tsParseTypeArguments();
     7877      }
    77497878    }
    77507879    return this.finishNode(node, "TSTypeReference");
     
    77727901    }
    77737902    if (!this.hasPrecedingLineBreak() && this.match(47)) {
    7774       node.typeParameters = this.tsParseTypeArguments();
     7903      {
     7904        node.typeParameters = this.tsParseTypeArguments();
     7905      }
    77757906    }
    77767907    return this.finishNode(node, "TSTypeQuery");
     
    84598590      const node = this.startNode();
    84608591      node.expression = this.tsParseEntityName();
    8461       if (this.match(47)) {
    8462         node.typeParameters = this.tsParseTypeArguments();
    8463       }
    8464       return this.finishNode(node, "TSExpressionWithTypeArguments");
     8592      {
     8593        if (this.match(47)) {
     8594          node.typeParameters = this.tsParseTypeArguments();
     8595        }
     8596        return this.finishNode(node, "TSExpressionWithTypeArguments");
     8597      }
    84658598    });
    84668599    if (!delimitedList.length) {
     
    85078640    return this.finishNode(node, "TSTypeAliasDeclaration");
    85088641  }
    8509   tsInNoContext(cb) {
    8510     const oldContext = this.state.context;
    8511     this.state.context = [oldContext[0]];
    8512     try {
     8642  tsInTopLevelContext(cb) {
     8643    if (this.curContext() !== types.brace) {
     8644      const oldContext = this.state.context;
     8645      this.state.context = [oldContext[0]];
     8646      try {
     8647        return cb();
     8648      } finally {
     8649        this.state.context = oldContext;
     8650      }
     8651    } else {
    85138652      return cb();
    8514     } finally {
    8515       this.state.context = oldContext;
    85168653    }
    85178654  }
     
    85748711    node.id = this.parseIdentifier();
    85758712    this.checkIdentifier(node.id, node.const ? 8971 : 8459);
     8713    {
     8714      this.expect(5);
     8715      node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this));
     8716      this.expect(8);
     8717    }
     8718    return this.finishNode(node, "TSEnumDeclaration");
     8719  }
     8720  tsParseEnumBody() {
     8721    const node = this.startNode();
    85768722    this.expect(5);
    85778723    node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this));
    85788724    this.expect(8);
    8579     return this.finishNode(node, "TSEnumDeclaration");
     8725    return this.finishNode(node, "TSEnumBody");
    85808726  }
    85818727  tsParseModuleBlock() {
     
    86088754    if (this.isContextual(112)) {
    86098755      node.kind = "global";
    8610       node.global = true;
     8756      {
     8757        node.global = true;
     8758      }
    86118759      node.id = this.parseIdentifier();
    86128760    } else if (this.match(134)) {
     
    87468894          const mod = node;
    87478895          mod.kind = "global";
    8748           mod.global = true;
     8896          {
     8897            node.global = true;
     8898          }
    87498899          mod.id = expr;
    87508900          mod.body = this.tsParseModuleBlock();
     
    88188968  tsParseTypeArguments() {
    88198969    const node = this.startNode();
    8820     node.params = this.tsInType(() => this.tsInNoContext(() => {
     8970    node.params = this.tsInType(() => this.tsInTopLevelContext(() => {
    88218971      this.expect(47);
    88228972      return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this));
     
    89639113        if (tokenIsTemplate(this.state.type)) {
    89649114          const result = super.parseTaggedTemplateExpression(base, startLoc, state);
    8965           result.typeParameters = typeArguments;
     9115          {
     9116            result.typeParameters = typeArguments;
     9117          }
    89669118          return result;
    89679119        }
     
    89719123          node.arguments = this.parseCallExpressionArguments(11);
    89729124          this.tsCheckForInvalidTypeCasts(node.arguments);
    8973           node.typeParameters = typeArguments;
     9125          {
     9126            node.typeParameters = typeArguments;
     9127          }
    89749128          if (state.optionalChainMember) {
    89759129            node.optional = isOptionalCall;
     
    89839137        const node = this.startNodeAt(startLoc);
    89849138        node.expression = base;
    8985         node.typeParameters = typeArguments;
     9139        {
     9140          node.typeParameters = typeArguments;
     9141        }
    89869142        return this.finishNode(node, "TSInstantiationExpression");
    89879143      });
     
    90059161    } = node;
    90069162    if (callee.type === "TSInstantiationExpression" && !((_callee$extra = callee.extra) != null && _callee$extra.parenthesized)) {
    9007       node.typeParameters = callee.typeParameters;
     9163      {
     9164        node.typeParameters = callee.typeParameters;
     9165      }
    90089166      node.callee = callee.expression;
    90099167    }
     
    93859543    super.parseClassSuper(node);
    93869544    if (node.superClass && (this.match(47) || this.match(51))) {
    9387       node.superTypeParameters = this.tsParseTypeArgumentsInExpression();
     9545      {
     9546        node.superTypeParameters = this.tsParseTypeArgumentsInExpression();
     9547      }
    93889548    }
    93899549    if (this.eatContextual(113)) {
     
    95959755    return super.parseBindingAtom();
    95969756  }
    9597   parseMaybeDecoratorArguments(expr) {
     9757  parseMaybeDecoratorArguments(expr, startLoc) {
    95989758    if (this.match(47) || this.match(51)) {
    95999759      const typeArguments = this.tsParseTypeArgumentsInExpression();
    96009760      if (this.match(10)) {
    9601         const call = super.parseMaybeDecoratorArguments(expr);
    9602         call.typeParameters = typeArguments;
     9761        const call = super.parseMaybeDecoratorArguments(expr, startLoc);
     9762        {
     9763          call.typeParameters = typeArguments;
     9764        }
    96039765        return call;
    96049766      }
    96059767      this.unexpected(null, 10);
    96069768    }
    9607     return super.parseMaybeDecoratorArguments(expr);
     9769    return super.parseMaybeDecoratorArguments(expr, startLoc);
    96089770  }
    96099771  checkCommaAfterRest(close) {
     
    96929854    if (this.match(47) || this.match(51)) {
    96939855      const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
    9694       if (typeArguments) node.typeParameters = typeArguments;
     9856      if (typeArguments) {
     9857        {
     9858          node.typeParameters = typeArguments;
     9859        }
     9860      }
    96959861    }
    96969862    return super.jsxParseOpeningElementAfterName(node);
     
    97529918    const method = super.parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope);
    97539919    if (method.abstract) {
    9754       const hasBody = this.hasPlugin("estree") ? !!method.value.body : !!method.body;
    9755       if (hasBody) {
     9920      const hasEstreePlugin = this.hasPlugin("estree");
     9921      const methodFn = hasEstreePlugin ? method.value : method;
     9922      if (methodFn.body) {
    97569923        const {
    97579924          key
     
    1023310400};
    1023410401const mixinPluginNames = Object.keys(mixinPlugins);
    10235 function createDefaultOptions() {
    10236   return {
    10237     sourceType: "script",
    10238     sourceFilename: undefined,
    10239     startIndex: 0,
    10240     startColumn: 0,
    10241     startLine: 1,
    10242     allowAwaitOutsideFunction: false,
    10243     allowReturnOutsideFunction: false,
    10244     allowNewTargetOutsideFunction: false,
    10245     allowImportExportEverywhere: false,
    10246     allowSuperOutsideMethod: false,
    10247     allowUndeclaredExports: false,
    10248     plugins: [],
    10249     strictMode: null,
    10250     ranges: false,
    10251     tokens: false,
    10252     createImportExpressions: false,
    10253     createParenthesizedExpressions: false,
    10254     errorRecovery: false,
    10255     attachComment: true,
    10256     annexB: true
    10257   };
    10258 }
    10259 function getOptions(opts) {
    10260   const options = createDefaultOptions();
    10261   if (opts == null) {
    10262     return options;
    10263   }
    10264   if (opts.annexB != null && opts.annexB !== false) {
    10265     throw new Error("The `annexB` option can only be set to `false`.");
    10266   }
    10267   for (const key of Object.keys(options)) {
    10268     if (opts[key] != null) options[key] = opts[key];
    10269   }
    10270   if (options.startLine === 1) {
    10271     if (opts.startIndex == null && options.startColumn > 0) {
    10272       options.startIndex = options.startColumn;
    10273     } else if (opts.startColumn == null && options.startIndex > 0) {
    10274       options.startColumn = options.startIndex;
    10275     }
    10276   } else if (opts.startColumn == null || opts.startIndex == null) {
    10277     if (opts.startIndex != null) {
    10278       throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`.");
    10279     }
    10280   }
    10281   return options;
    10282 }
    1028310402class ExpressionParser extends LValParser {
    1028410403  checkProto(prop, isRecord, protoRef, refExpressionErrors) {
     
    1031810437    expr.comments = this.comments;
    1031910438    expr.errors = this.state.errors;
    10320     if (this.options.tokens) {
     10439    if (this.optionFlags & 128) {
    1032110440      expr.tokens = this.tokens;
    1032210441    }
     
    1082310942        }
    1082410943        if (this.match(10)) {
    10825           if (this.options.createImportExpressions) {
     10944          if (this.optionFlags & 256) {
    1082610945            return this.parseImportCall(node);
    1082710946          } else {
     
    1106511184    const node = this.startNode();
    1106611185    this.next();
    11067     if (this.match(10) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod) {
     11186    if (this.match(10) && !this.scope.allowDirectSuper && !(this.optionFlags & 16)) {
    1106811187      this.raise(Errors.SuperNotAllowed, node);
    11069     } else if (!this.scope.allowSuper && !this.options.allowSuperOutsideMethod) {
     11188    } else if (!this.scope.allowSuper && !(this.optionFlags & 16)) {
    1107011189      this.raise(Errors.UnexpectedSuper, node);
    1107111190    }
     
    1112011239    } else if (this.isContextual(105) || this.isContextual(97)) {
    1112111240      const isSource = this.isContextual(105);
    11122       if (!isSource) this.unexpected();
    1112311241      this.expectPlugin(isSource ? "sourcePhaseImports" : "deferredImportEvaluation");
    11124       if (!this.options.createImportExpressions) {
     11242      if (!(this.optionFlags & 256)) {
    1112511243        throw this.raise(Errors.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, {
    1112611244          phase: this.state.value
     
    1124211360  }
    1124311361  wrapParenthesis(startLoc, expression) {
    11244     if (!this.options.createParenthesizedExpressions) {
     11362    if (!(this.optionFlags & 512)) {
    1124511363      this.addExtra(expression, "parenthesized", true);
    1124611364      this.addExtra(expression, "parenStart", startLoc.index);
     
    1127011388      this.next();
    1127111389      const metaProp = this.parseMetaProperty(node, meta, "target");
    11272       if (!this.scope.inNonArrowFunction && !this.scope.inClass && !this.options.allowNewTargetOutsideFunction) {
     11390      if (!this.scope.inNonArrowFunction && !this.scope.inClass && !(this.optionFlags & 4)) {
    1127311391        this.raise(Errors.UnexpectedNewTarget, metaProp);
    1127411392      }
     
    1178511903  }
    1178611904  recordAwaitIfAllowed() {
    11787     const isAwaitAllowed = this.prodParam.hasAwait || this.options.allowAwaitOutsideFunction && !this.scope.inFunction;
     11905    const isAwaitAllowed = this.prodParam.hasAwait || this.optionFlags & 1 && !this.scope.inFunction;
    1178811906    if (isAwaitAllowed && !this.scope.inFunction) {
    1178911907      this.state.hasTopLevelAwait = true;
     
    1179711915      this.raise(Errors.ObsoleteAwaitStar, node);
    1179811916    }
    11799     if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) {
     11917    if (!this.scope.inFunction && !(this.optionFlags & 1)) {
    1180011918      if (this.isAmbiguousAwait()) {
    1180111919        this.ambiguousScriptDifferentAst = true;
     
    1212112239    file.program = this.parseProgram(program);
    1212212240    file.comments = this.comments;
    12123     if (this.options.tokens) {
     12241    if (this.optionFlags & 128) {
    1212412242      file.tokens = babel7CompatTokens(this.tokens, this.input, this.startIndex);
    1212512243    }
     
    1213112249    this.parseBlockBody(program, true, true, end);
    1213212250    if (this.inModule) {
    12133       if (!this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0) {
     12251      if (!(this.optionFlags & 32) && this.scope.undefinedExports.size > 0) {
    1213412252        for (const [localName, at] of Array.from(this.scope.undefinedExports)) {
    1213512253          this.raise(Errors.ModuleExportUndefined, at, {
     
    1235712475      case 82:
    1235812476        {
    12359           if (!this.options.allowImportExportEverywhere && !topLevel) {
     12477          if (!(this.optionFlags & 8) && !topLevel) {
    1236012478            this.raise(Errors.UnexpectedImportExport, this.state.startLoc);
    1236112479          }
     
    1239612514  }
    1239712515  assertModuleNodeAllowed(node) {
    12398     if (!this.options.allowImportExportEverywhere && !this.inModule) {
     12516    if (!(this.optionFlags & 8) && !this.inModule) {
    1239912517      this.raise(Errors.ImportOutsideModule, node);
    1240012518    }
     
    1240612524  maybeTakeDecorators(maybeDecorators, classNode, exportNode) {
    1240712525    if (maybeDecorators) {
    12408       if (classNode.decorators && classNode.decorators.length > 0) {
     12526      var _classNode$decorators;
     12527      if ((_classNode$decorators = classNode.decorators) != null && _classNode$decorators.length) {
    1240912528        if (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") !== "boolean") {
    1241012529          this.raise(Errors.DecoratorsBeforeAfterExport, classNode.decorators[0]);
     
    1245312572        expr = this.wrapParenthesis(startLoc, expr);
    1245412573        const paramsStartLoc = this.state.startLoc;
    12455         node.expression = this.parseMaybeDecoratorArguments(expr);
     12574        node.expression = this.parseMaybeDecoratorArguments(expr, startLoc);
    1245612575        if (this.getPluginOption("decorators", "allowCallParenthesized") === false && node.expression !== expr) {
    1245712576          this.raise(Errors.DecoratorArgumentsOutsideParentheses, paramsStartLoc);
     
    1247112590          expr = this.finishNode(node, "MemberExpression");
    1247212591        }
    12473         node.expression = this.parseMaybeDecoratorArguments(expr);
     12592        node.expression = this.parseMaybeDecoratorArguments(expr, startLoc);
    1247412593      }
    1247512594    } else {
     
    1247812597    return this.finishNode(node, "Decorator");
    1247912598  }
    12480   parseMaybeDecoratorArguments(expr) {
     12599  parseMaybeDecoratorArguments(expr, startLoc) {
    1248112600    if (this.eat(10)) {
    12482       const node = this.startNodeAtNode(expr);
     12601      const node = this.startNodeAt(startLoc);
    1248312602      node.callee = expr;
    1248412603      node.arguments = this.parseCallExpressionArguments(11);
     
    1262712746  }
    1262812747  parseReturnStatement(node) {
    12629     if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) {
     12748    if (!this.prodParam.hasReturn && !(this.optionFlags & 2)) {
    1263012749      this.raise(Errors.IllegalReturn, this.state.startLoc);
    1263112750    }
     
    1391714036    this.filename = options.sourceFilename;
    1391814037    this.startIndex = options.startIndex;
     14038    let optionFlags = 0;
     14039    if (options.allowAwaitOutsideFunction) {
     14040      optionFlags |= 1;
     14041    }
     14042    if (options.allowReturnOutsideFunction) {
     14043      optionFlags |= 2;
     14044    }
     14045    if (options.allowImportExportEverywhere) {
     14046      optionFlags |= 8;
     14047    }
     14048    if (options.allowSuperOutsideMethod) {
     14049      optionFlags |= 16;
     14050    }
     14051    if (options.allowUndeclaredExports) {
     14052      optionFlags |= 32;
     14053    }
     14054    if (options.allowNewTargetOutsideFunction) {
     14055      optionFlags |= 4;
     14056    }
     14057    if (options.ranges) {
     14058      optionFlags |= 64;
     14059    }
     14060    if (options.tokens) {
     14061      optionFlags |= 128;
     14062    }
     14063    if (options.createImportExpressions) {
     14064      optionFlags |= 256;
     14065    }
     14066    if (options.createParenthesizedExpressions) {
     14067      optionFlags |= 512;
     14068    }
     14069    if (options.errorRecovery) {
     14070      optionFlags |= 1024;
     14071    }
     14072    if (options.attachComment) {
     14073      optionFlags |= 2048;
     14074    }
     14075    if (options.annexB) {
     14076      optionFlags |= 4096;
     14077    }
     14078    this.optionFlags = optionFlags;
    1391914079  }
    1392014080  getScopeHandler() {
Note: See TracChangeset for help on using the changeset viewer.