Files
codeql/javascript/ql/test/library-tests/Flow/tests.ql
2020-10-20 14:08:54 +02:00

30 lines
799 B
Plaintext

import javascript
query predicate abseval(
VariableDeclarator vd, DataFlow::AnalyzedNode init, BindingPattern var, AbstractValue val
) {
init = vd.getInit().analyze() and
var = vd.getBindingPattern() and
val = init.getAValue()
}
query predicate abstractValues(AbstractValue val) { any() }
query predicate getAPrototype(AbstractValue av, DefiniteAbstractValue proto) {
av.getAPrototype() = proto
}
private import semmle.javascript.dataflow.Refinements
query predicate refinement_eval(Refinement ref, RefinementContext ctxt, RefinementValue val) {
ref.eval(ctxt) = val
}
query predicate types(
VariableDeclarator vd, DataFlow::AnalyzedNode init, BindingPattern var, string types
) {
init = vd.getInit().analyze() and
var = vd.getBindingPattern() and
types = init.ppTypes()
}