JS: Add ClosureNamespaceAccess

This commit is contained in:
Asger F
2019-02-11 18:54:07 +00:00
parent 939eab2c82
commit 23bd9e62f0

View File

@@ -15,6 +15,11 @@ module Closure {
abstract string getClosureNamespace();
}
/**
* A dataflow node that returns the value of a closure namespace.
*/
abstract class ClosureNamespaceAccess extends ClosureNamespaceRef, DataFlow::SourceNode { }
/**
* A call to a method on the `goog.` namespace, as a closure reference.
*/
@@ -44,7 +49,7 @@ module Closure {
/**
* A call to `goog.require`.
*/
class ClosureRequireCall extends DefaultNamespaceRef {
class ClosureRequireCall extends DefaultNamespaceRef, ClosureNamespaceAccess {
ClosureRequireCall() { getMethodName() = "require" }
}
@@ -172,7 +177,7 @@ module Closure {
result = getWrittenLibraryAccessPath(write)
)
or
result = node.(ClosureRequireCall).getClosureNamespace()
result = node.(ClosureNamespaceAccess).getClosureNamespace()
}
/**