diff --git a/.travis.yml b/.travis.yml index 1f8cab0cd8..699d237e12 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,4 +4,3 @@ node_js: - 8 - 6 - 4 - - "0.12" diff --git a/index.js b/index.js index ddd6ff99c8..60e036f56f 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,4 @@ -var acorn = require('acorn'); +var acorn = require('acorn5-object-spread/inject')(require('acorn')); var walk = require('acorn/dist/walk'); var defined = require('defined'); @@ -18,7 +18,8 @@ function parse (src, opts) { allowImportExportEverywhere: defined( opts.allowImportExportEverywhere, true ), - allowHashBang: defined(opts.allowHashBang, true) + allowHashBang: defined(opts.allowHashBang, true), + plugins: { objectSpread: true } }); } diff --git a/package.json b/package.json index a4d2af2b45..c40736434b 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ }, "dependencies": { "acorn": "^5.2.1", + "acorn5-object-spread": "^5.0.0", "defined": "^1.0.0" }, "devDependencies": { diff --git a/test/files/rest-spread.js b/test/files/rest-spread.js new file mode 100644 index 0000000000..de764cee1a --- /dev/null +++ b/test/files/rest-spread.js @@ -0,0 +1,9 @@ +var a = require('a'); +var b = require('b'); +var c = require('c'); + + +var obj = { foo: 'bar', bee: 'bop' } +var spread = { ...obj } +var { foo, ...rest } = obj + diff --git a/test/rest-spread.js b/test/rest-spread.js new file mode 100644 index 0000000000..5da31e708f --- /dev/null +++ b/test/rest-spread.js @@ -0,0 +1,9 @@ +var test = require('tap').test; +var detective = require('../'); +var fs = require('fs'); +var src = fs.readFileSync(__dirname + '/files/rest-spread.js'); + +test('rest-spread', function (t) { + t.doesNotThrow(detective.bind(detective, src), 'Files with rest or spread do not throw') + t.end(); +});