diff --git a/lib/index.js b/lib/index.js index 311ca71..b35a47e 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,12 +1,13 @@ 'use strict' var acorn = require('acorn') +require('acorn-es7-plugin')(acorn) var MagicString = require('magic-string') var walk = require('estree-walker').walk function optimizeJs (jsString, opts) { opts = opts || {} - var ast = acorn.parse(jsString) + var ast = acorn.parse(jsString, { ecmaVersion: 8, allowReserved: true, plugins: { asyncawait: true } }) var magicString = new MagicString(jsString) walk(ast, { diff --git a/package.json b/package.json index 2690cfc..4541292 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "license": "Apache-2.0", "dependencies": { "acorn": "^3.3.0", + "acorn-es7-plugin": "^1.1.7", "concat-stream": "^1.5.1", "estree-walker": "^0.3.0", "magic-string": "^0.16.0", diff --git a/test/cases/async-function/input.js b/test/cases/async-function/input.js new file mode 100644 index 0000000..f1aef22 --- /dev/null +++ b/test/cases/async-function/input.js @@ -0,0 +1,3 @@ +!function (){}() +async function runIt(fun){ fun() } +runIt(function (){}) \ No newline at end of file diff --git a/test/cases/async-function/output.js b/test/cases/async-function/output.js new file mode 100644 index 0000000..9176b34 --- /dev/null +++ b/test/cases/async-function/output.js @@ -0,0 +1,3 @@ +!(function (){})() +async function runIt(fun){ fun() } +runIt((function (){})) \ No newline at end of file