diff --git a/eslint/babel-eslint-parser/acorn-to-esprima.js b/eslint/babel-eslint-parser/acorn-to-esprima.js index d1e1d8151c..82983ca1de 100644 --- a/eslint/babel-eslint-parser/acorn-to-esprima.js +++ b/eslint/babel-eslint-parser/acorn-to-esprima.js @@ -170,10 +170,12 @@ function convertTemplateType(tokens) { var astTransformVisitor = { noScope: true, + enter: function (node) { + // private var to track original node type + node._babelType = node.type; + }, exit: function (node) { /* parent */ if (this.isSpreadProperty()) { - // private var to track if it's a spread property - node._spread = true; node.type = "Property"; node.kind = "init"; node.computed = true; diff --git a/eslint/babel-eslint-parser/index.js b/eslint/babel-eslint-parser/index.js index 7a755aaeb9..6d4da4d703 100644 --- a/eslint/babel-eslint-parser/index.js +++ b/eslint/babel-eslint-parser/index.js @@ -266,7 +266,7 @@ function monkeypatch() { if (id.type === "ObjectPattern") { // check if object destructuring has a spread var hasSpread = id.properties.filter(function(p) { - return p._spread === true; + return p._babelType === "SpreadProperty"; }); // visit properties if so if (hasSpread.length > 0) {