HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/share/nodejs/acorn-dynamic-import/lib/index.js
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = dynamicImport;
exports.DynamicImportKey = void 0;

var _acorn = require("acorn");

/* eslint-disable no-underscore-dangle */
const DynamicImportKey = 'Import'; // NOTE: This allows `yield import()` to parse correctly.

exports.DynamicImportKey = DynamicImportKey;
_acorn.tokTypes._import.startsExpr = true;

function parseDynamicImport() {
  const node = this.startNode();
  this.next();

  if (this.type !== _acorn.tokTypes.parenL) {
    this.unexpected();
  }

  return this.finishNode(node, DynamicImportKey);
}

function parenAfter() {
  return /^(\s|\/\/.*|\/\*[^]*?\*\/)*\(/.test(this.input.slice(this.pos));
}

function dynamicImport(Parser) {
  return class extends Parser {
    parseStatement(context, topLevel, exports) {
      if (this.type === _acorn.tokTypes._import && parenAfter.call(this)) {
        return this.parseExpressionStatement(this.startNode(), this.parseExpression());
      }

      return super.parseStatement(context, topLevel, exports);
    }

    parseExprAtom(refDestructuringErrors) {
      if (this.type === _acorn.tokTypes._import) {
        return parseDynamicImport.call(this);
      }

      return super.parseExprAtom(refDestructuringErrors);
    }

  };
}