From adc009b832911c70c0ff84e424df19c0a77f7302 Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Sat, 6 Jun 2015 16:54:05 -0400 Subject: [PATCH] Merge pull request babel/babel-eslint#122 from hzoo/i-95 visit properties in ObjectPattern - fixes babel/babel-eslint#95 --- eslint/babel-eslint-parser/index.js | 12 +++++++++--- eslint/babel-eslint-parser/test/non-regression.js | 8 ++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/eslint/babel-eslint-parser/index.js b/eslint/babel-eslint-parser/index.js index 7f0f48a961..81475eb7aa 100644 --- a/eslint/babel-eslint-parser/index.js +++ b/eslint/babel-eslint-parser/index.js @@ -231,9 +231,15 @@ function monkeypatch() { referencer.prototype.VariableDeclaration = function(node) { if (node.declarations) { for (var i = 0; i < node.declarations.length; i++) { - var type = node.declarations[i].id.typeAnnotation; - if (type) { - checkIdentifierOrVisit.call(this, type); + var id = node.declarations[i].id; + var typeAnnotation = id.typeAnnotation; + if (typeAnnotation) { + checkIdentifierOrVisit.call(this, typeAnnotation); + } + if (id.type === 'ObjectPattern') { + for (var j = 0; j < id.properties.length; j++) { + this.visit(id.properties[j]); + } } } } diff --git a/eslint/babel-eslint-parser/test/non-regression.js b/eslint/babel-eslint-parser/test/non-regression.js index 0bafac9e01..a0b149c2f2 100644 --- a/eslint/babel-eslint-parser/test/non-regression.js +++ b/eslint/babel-eslint-parser/test/non-regression.js @@ -1090,4 +1090,12 @@ describe("verify", function () { [ "1:4 unused is defined but never used no-unused-vars" ] ); }); + + it("visits excluded properties left of spread #95", function () { + verifyAndAssertMessages( + "var originalObject = {}; var {field1, field2, ...clone} = originalObject;", + { "no-undef": 1, "no-unused-vars": 1 }, + [] + ) + }); });