summaryrefslogtreecommitdiff
path: root/tools/eslint/lib/rules/no-dupe-class-members.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/eslint/lib/rules/no-dupe-class-members.js')
-rw-r--r--tools/eslint/lib/rules/no-dupe-class-members.js20
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});
}
}
};