"use strict";

const babylon = require("babylon");

exports.options = {
  allowImportExportEverywhere: true,
  allowReturnOutsideFunction: true,
  plugins: [
    "*", "flow", "jsx",
    // The "*" glob no longer seems to include the following plugins:
    "asyncGenerators",
    "classProperties",
    "decorators",
    "doExpressions",
    "dynamicImport",
    "exportExtensions",
    "functionBind",
    "functionSent",
    "objectRestSpread",
    // Other experimental plugins that we could enable:
    // https://github.com/babel/babylon#plugins
  ],
  sourceType: "module",
  strictMode: false
};

function parse(code) {
  return babylon.parse(code, exports.options);
}

exports.parse = parse;

@@ -264,24 +264,95 @@
 enerators%22,%0A
+    %22bigInt%22,%0A    %22classPrivateMethods%22,%0A    %22classPrivateProperties%22,%0A
     %22classPr
@@ -358,24 +358,24 @@
 roperties%22,%0A
-
     %22decorat
@@ -495,24 +495,199 @@
    %22
-objectRestSpread
+importMeta%22,%0A    %22nullishCoalescingOperator%22,%0A    %22numericSeparator%22,%0A    %22objectRestSpread%22,%0A    %22optionalCatchBinding%22,%0A    %22optionalChaining%22,%0A    %22pipelineOperator%22,%0A    %22throwExpressions
 %22,%0A 

Enable some more syntax extensions for the Babylon parser.