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) {