"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:
    "objectRestSpread",
    "classProperties",
    "exportExtensions",
    "dynamicImport",
    // 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;

@@ -254,24 +254,23 @@
    %22
-objectRestSpread
+asyncGenerators
 %22,%0A 
@@ -300,45 +300,148 @@
    %22
-exportExtensions%22,%0A    %22dynamicImport
+decorators%22,%0A    %22doExpressions%22,%0A    %22dynamicImport%22,%0A    %22exportExtensions%22,%0A    %22functionBind%22,%0A    %22functionSent%22,%0A    %22objectRestSpread
 %22,%0A 

Enable the rest of Babylon's experimental plugins, for max tolerance.