JavaScript: Avoid bad join order.

The optimiser decided that it would be a great idea to start the pipeline with `getReturn().getAUse().(DataFlow::InvokeNode)`. It's not.
This commit is contained in:
Max Schaefer
2020-08-26 16:01:34 +01:00
parent 500f7bd8fa
commit 82d92dc726

View File

@@ -63,18 +63,16 @@ private class SystemCommandExecutors extends SystemCommandExecution, DataFlow::I
boolean sync;
SystemCommandExecutors() {
exists(string mod, API::Feature callee |
exists(string mod |
exists(string fn |
execApi(mod, fn, cmdArg, optionsArg, shell) and
sync = getSync(fn) and
callee = API::moduleImport(mod).getMember(fn)
this = API::moduleImport(mod).getMember(fn).getReturn().getAUse()
)
or
execApi(mod, cmdArg, optionsArg, shell) and
sync = false and
callee = API::moduleImport(mod)
|
this = callee.getReturn().getAUse()
this = API::moduleImport(mod).getReturn().getAUse()
)
or
this = API::moduleImport("foreground-child").getReturn().getAUse() and