From 00168ec1136bc43071323e5ef9c6d0342ce19c22 Mon Sep 17 00:00:00 2001
From: Jeroen van Veen <j.veenvan@gmail.com>
Date: Tue, 28 Feb 2017 20:50:25 +0100
Subject: [PATCH 1/2] Add acorn options to parse.

---
 index.js | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/index.js b/index.js
index 2ab639541..6a199a76e 100644
--- a/index.js
+++ b/index.js
@@ -6,7 +6,9 @@ var requireRe = /\brequire\b/;
 
 function parse (src, opts) {
     if (!opts) opts = {};
-    return acorn.parse(src, {
+    var acornOpts = defined(opts.acorn, {});
+    var acornParser = defined(acornOpts.parser, acorn);
+    opts = Object.assign({}, {
         ecmaVersion: defined(opts.ecmaVersion, 6),
         sourceType: opts.sourceType,
         ranges: defined(opts.ranges, opts.range),
@@ -15,8 +17,9 @@ function parse (src, opts) {
         allowReturnOutsideFunction: defined(
             opts.allowReturnOutsideFunction, true
         ),
-        allowHashBang: defined(opts.allowHashBang, true)
-    });
+        allowHashBang: defined(opts.allowHashBang, true),
+    }, acornOpts.opts);
+    return acornParser.parse(src, opts);
 }
 
 var exports = module.exports = function (src, opts) {

From 3408a588b021cac7ce3183c42d7ee95fa8643a81 Mon Sep 17 00:00:00 2001
From: Jeroen van Veen <j.veenvan@gmail.com>
Date: Tue, 28 Feb 2017 21:31:12 +0100
Subject: [PATCH 2/2] Change to more generic acorn opts.

---
 index.js | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/index.js b/index.js
index 6a199a76e..f21c7ef0a 100644
--- a/index.js
+++ b/index.js
@@ -6,8 +6,8 @@ var requireRe = /\brequire\b/;
 
 function parse (src, opts) {
     if (!opts) opts = {};
-    var acornOpts = defined(opts.acorn, {});
-    var acornParser = defined(acornOpts.parser, acorn);
+    opts.acorn = defined(opts.acorn, {});
+    acorn = defined(opts.acorn.parser, acorn);
     opts = Object.assign({}, {
         ecmaVersion: defined(opts.ecmaVersion, 6),
         sourceType: opts.sourceType,
@@ -18,8 +18,8 @@ function parse (src, opts) {
             opts.allowReturnOutsideFunction, true
         ),
         allowHashBang: defined(opts.allowHashBang, true),
-    }, acornOpts.opts);
-    return acornParser.parse(src, opts);
+    }, opts.acorn.opts);
+    return acorn.parse(src, opts);
 }
 
 var exports = module.exports = function (src, opts) {