The following only applies to strict mode.
It's not allowed to have a parameter name occur twice in a single FormalParameterList. So a function cannot have two parameters by the same name. If attempted this throws a SyntaxError. If any name of a FormalParameterList is "eval" or "arguments", a SyntaxError is thrown as well.
Furthermore "eval" and "arguments" may not occur as Identifiers in strict mode FunctionDeclarations or FunctionExpressions.