From 1710296082083602a904b080908657bb431fb56c Mon Sep 17 00:00:00 2001 From: Milos Djermanovic Date: Sat, 23 May 2020 01:35:26 +0200 Subject: [PATCH] Fix: no-new-symbol false positive with Symbol as an argument (#13337) --- lib/rules/no-new-symbol.js | 3 ++- tests/lib/rules/no-new-symbol.js | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/rules/no-new-symbol.js b/lib/rules/no-new-symbol.js index cb7e4f0fc88..aeb509c0d9c 100644 --- a/lib/rules/no-new-symbol.js +++ b/lib/rules/no-new-symbol.js @@ -37,8 +37,9 @@ module.exports = { if (variable && variable.defs.length === 0) { variable.references.forEach(ref => { const node = ref.identifier; + const parent = node.parent; - if (node.parent && node.parent.type === "NewExpression") { + if (parent && parent.type === "NewExpression" && parent.callee === node) { context.report({ node, messageId: "noNewSymbol" diff --git a/tests/lib/rules/no-new-symbol.js b/tests/lib/rules/no-new-symbol.js index 4868592a2a2..198cc50e1f3 100644 --- a/tests/lib/rules/no-new-symbol.js +++ b/tests/lib/rules/no-new-symbol.js @@ -22,7 +22,9 @@ ruleTester.run("no-new-symbol", rule, { valid: [ "var foo = Symbol('foo');", "function bar(Symbol) { var baz = new Symbol('baz');}", - "function Symbol() {} new Symbol();" + "function Symbol() {} new Symbol();", + "new foo(Symbol);", + "new foo(bar, Symbol);" ], invalid: [ {