UNPKG

1.03 kBJavaScriptView Raw
1/**
2 * @fileoverview Rule to flag when the same variable is declared more then once.
3 * @author Ilya Volodin
4 */
5
6//------------------------------------------------------------------------------
7// Rule Definition
8//------------------------------------------------------------------------------
9
10module.exports = function(context) {
11
12 "use strict";
13
14 function findVariables() {
15 var scope = context.getScope();
16
17 scope.variables.forEach(function(variable) {
18 if (variable.identifiers && variable.identifiers.length > 1) {
19 variable.identifiers.sort(function(a, b) { return a.range[1] - b.range[1];});
20 for (var i = 1, l = variable.identifiers.length; i < l; i++) {
21 context.report(variable.identifiers[i], "{{a}} is already defined", {a: variable.name});
22 }
23 }
24 });
25 }
26
27 return {
28 "Program": findVariables,
29 "FunctionExpression": findVariables,
30 "FunctionDeclaration": findVariables
31 };
32};