This rule checks that functions declared in same scope don't have identical names. Indeed, it is possible to declare 2 functions with the same name, but only the last definition will be kept by the JavaScript engine before starting execution of the whole code.
The following code illustrates this:
fun(); // prints "bar" // first declaration of the function function fun() { print("foo"); } fun(); // prints "bar" // redeclaration of the "fun" function: this definition overrides the previous one function fun() { print("bar"); } fun(); // prints "bar"
This use of duplicate function name is often unwanted and can lead to bugs and more generally to confusing code.