diff options
Diffstat (limited to 'tools/eslint/lib/rules/no-dupe-class-members.js')
-rw-r--r-- | tools/eslint/lib/rules/no-dupe-class-members.js | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/tools/eslint/lib/rules/no-dupe-class-members.js b/tools/eslint/lib/rules/no-dupe-class-members.js index c3adb2e238..12345a7be7 100644 --- a/tools/eslint/lib/rules/no-dupe-class-members.js +++ b/tools/eslint/lib/rules/no-dupe-class-members.js @@ -36,6 +36,22 @@ module.exports = function(context) { return stateMap[key][isStatic ? "static" : "nonStatic"]; } + /** + * Gets the name text of a given node. + * + * @param {ASTNode} node - A node to get the name. + * @returns {string} The name text of the node. + */ + function getName(node) { + switch (node.type) { + case "Identifier": return node.name; + case "Literal": return String(node.value); + + /* istanbul ignore next: syntax error */ + default: return ""; + } + } + return { // Initializes the stack of state of member declarations. "Program": function() { @@ -58,7 +74,7 @@ module.exports = function(context) { return; } - var name = node.key.name; + var name = getName(node.key); var state = getState(name, node.static); var isDuplicate = false; if (node.kind === "get") { @@ -73,7 +89,7 @@ module.exports = function(context) { } if (isDuplicate) { - context.report(node, "Duplicate name \"{{name}}\".", {name: name}); + context.report(node, "Duplicate name '{{name}}'.", {name: name}); } } }; |