JS: Remove Import->SourceNode dependency from AMD

This commit is contained in:
Asger Feldthaus 2020-04-02 15:30:17 +01:00
Родитель 3804d3fcfd
Коммит 346867f425
1 изменённых файлов: 8 добавлений и 2 удалений

Просмотреть файл

@ -56,10 +56,16 @@ class AmdModuleDefinition extends CallExpr {
*/
pragma[nomagic]
DataFlow::SourceNode getFactoryNode() {
result.flowsToExpr(getLastArgument()) and
result = getFactoryNodeInternal() and
result instanceof DataFlow::ValueNode
}
private
DataFlow::Node getFactoryNodeInternal() {
result = DataFlow::valueNode(getLastArgument()) or
result = getFactoryNodeInternal().getAPredecessor()
}
/** Gets the expression defining this module. */
Expr getModuleExpr() {
exists(DataFlow::Node f | f = getFactoryNode() |
@ -108,7 +114,7 @@ class AmdModuleDefinition extends CallExpr {
* Gets the `i`th parameter of the factory function of this module.
*/
private SimpleParameter getFactoryParameter(int i) {
getFactoryNode().(DataFlow::FunctionNode).getParameter(i) = DataFlow::parameterNode(result)
getFactoryNodeInternal().asExpr().(Function).getParameter(i) = result
}
/**