code: function parse(code) {
    var opts = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
  
    opts.allowHashBang = true;
    opts.sourceType = "module";
    opts.ecmaVersion = Infinity;
    opts.plugins = {
      jsx: true,
      flow: true
    };
    opts.features = {};
  
    for (var key in _transformation2["default"].pipeline.transformers) {
      opts.features[key] = true;
    }
  
    var ast = babylon.parse(code, opts);
  
    if (opts.onToken) {
      // istanbul ignore next
  
      var _opts$onToken;
  
      (_opts$onToken = opts.onToken).push.apply(_opts$onToken, ast.tokens);
    }
  
    if (opts.onComment) {
      // istanbul ignore next
  
      var _opts$onComment;
  
      (_opts$onComment = opts.onComment).push.apply(_opts$onComment, ast.comments);
    }
  
    return ast.program;
  }
docs: Parse script with Babel's parser.