JavaScript: Avoid unhelpful magic.

The constraint `exists(callback.getParameter(i))` was getting pushed into `higherOrderCall`, which isn't a bad thing to do. However, this then led to a join on `i`, which is a very bad thing to do.
This commit is contained in:
Max Schaefer
2019-06-28 16:39:21 +01:00
parent b5b89c0eac
commit 895055f30e

View File

@@ -838,6 +838,7 @@ private predicate summarizedHigherOrderCall(
* - The flow label mapping of the summary corresponds to the transformation from `arg` to the
* invocation of the callback.
*/
pragma[nomagic]
private predicate higherOrderCall(
DataFlow::Node arg, DataFlow::SourceNode callback, int i, DataFlow::Configuration cfg,
PathSummary summary