text: // WARNING: Plugin ordering is important. Don't reorder this file
  // without checking that it doesn't break anything.
  
  const es5 = {
    "transform-member-expression-literals":
      "Object/array literal extensions / Reserved words as property names",
    "transform-property-literals":
      "Object/array literal extensions / Reserved words as property names",
    "transform-reserved-words": "Miscellaneous / Unreserved words",
  };
  
  const es2015 = {
    "transform-template-literals": {
      features: ["template literals"],
    },
    "transform-literals": {
      features: ["Unicode code point escapes"],
    },
    "transform-function-name": {
      features: ['function "name" property'],
    },
    "transform-arrow-functions": {
      features: ["arrow functions"],
    },
    "transform-block-scoped-functions": {
      features: ["block-level function declaration"],
    },
    "transform-classes": {
      features: ["class", "super"],
    },
    "transform-object-super": {
      features: ["super"],
    },
    "transform-shorthand-properties": {
      features: ["object literal extensions / shorthand properties"],
    },
    "transform-duplicate-keys": {
      features: ["miscellaneous / duplicate property names in strict mode"],
    },
    "transform-computed-properties": {
      features: ["object literal extensions / computed properties"],
    },
    "transform-for-of": {
      features: ["for..of loops"],
    },
    "transform-sticky-regex": {
      features: [
        'RegExp "y" and "u" flags / "y" flag, lastIndex',
        'RegExp "y" and "u" flags / "y" flag',
      ],
    },
    "transform-unicode-regex": {
      features: [
        'RegExp "y" and "u" flags / "u" flag, case folding',
        'RegExp "y" and "u" flags / "u" flag, Unicode code point escapes',
        'RegExp "y" and "u" flags / "u" flag, non-BMP Unicode characters',
        'RegExp "y" and "u" flags / "u" flag',
      ],
    },
    "transform-spread": {
      features: ["spread syntax for iterable objects"],
    },
    "transform-parameters": {
      features: [
        "default function parameters",
        "rest parameters",
        "destructuring, parameters / defaults, arrow function",
      ],
    },
    "transform-destructuring": {
      features: ["destructuring, assignment", "destructuring, declarations"],
    },
    "transform-block-scoping": {
      features: ["const", "let"],
    },
    "transform-typeof-symbol": {
      features: ["Symbol / typeof support"],
    },
    "transform-new-target": {
      features: ["new.target"],
    },
    "transform-regenerator": {
      features: ["generators"],
    },
  };
  
  const es2016 = {
    "transform-exponentiation-operator": {
      features: ["exponentiation (**) operator"],
    },
  };
  
  const es2017 = {
    "transform-async-to-generator": {
      features: ["async functions"],
    },
  };
  
  const es2018 = {
    "proposal-async-generator-functions": "Asynchronous Iterators",
    "proposal-object-rest-spread": "object rest/spread properties",
  
    "transform-dotall-regex": "s (dotAll) flag for regular expressions",
    "proposal-unicode-property-regex": "RegExp Unicode Property Escapes",
    "transform-named-capturing-groups-regex": "RegExp named capture groups",
  };
  
  const es2019 = {
    "proposal-json-strings": "JSON superset",
    "proposal-optional-catch-binding": "optional catch binding",
  };
  
  const es2020 = {
    "proposal-nullish-coalescing-operator": "nullish coalescing operator (??)",
    "proposal-optional-chaining": "optional chaining operator (?.)",
  };
  
  // Run plugins for modern features first
  module.exports = Object.assign(
    {},
    es2020,
    es2019,
    es2018,
    es2017,
    es2016,
    es2015,
    es5
  );
  