Files
codeql/javascript/ql/src/experimental/StandardLibrary/MultipleArgumentsToSetConstructor.ql

23 lines
684 B
Plaintext

/**
* @name Multiple arguments to `Set` constructor
* @description The `Set` constructor ignores all but the first argument, so passing multiple
* arguments may indicate a mistake.
* @kind problem
* @problem.severity warning
* @precision high
* @id js/multiple-arguments-to-set-constructor
* @tags correctness
*/
import javascript
from DataFlow::NewNode newSet, DataFlow::Node ignoredArg
where
newSet = DataFlow::globalVarRef("Set").getAnInstantiation() and
(
ignoredArg = newSet.getArgument(any(int n | n > 0))
or
ignoredArg = newSet.getASpreadArgument()
)
select ignoredArg, "All but the first argument to the Set constructor are ignored."