@@ -617,11 +617,11 @@ module API {
617
617
cached
618
618
predicate use ( TApiNode nd , DataFlow:: Node ref ) {
619
619
exists ( string m , Module mod | nd = MkModuleDef ( m ) and mod = importableModule ( m ) |
620
- ref . ( ModuleVarNode ) . getModule ( ) = mod
620
+ ref = DataFlow :: moduleVarNode ( mod )
621
621
)
622
622
or
623
623
exists ( string m , Module mod | nd = MkModuleExport ( m ) and mod = importableModule ( m ) |
624
- ref . ( ExportsVarNode ) . getModule ( ) = mod
624
+ ref = DataFlow :: exportsVarNode ( mod )
625
625
or
626
626
exists ( DataFlow:: Node base | use ( MkModuleDef ( m ) , base ) |
627
627
ref = trackUseNode ( base ) .getAPropertyRead ( "exports" )
@@ -742,12 +742,9 @@ module API {
742
742
or
743
743
// additional backwards step from `require('m')` to `exports` or `module.exports` in m
744
744
exists ( Import imp | imp .getImportedModuleNode ( ) = trackDefNode ( nd , t .continue ( ) ) |
745
- result . ( ExportsVarNode ) . getModule ( ) = imp .getImportedModule ( )
745
+ result = DataFlow :: exportsVarNode ( imp .getImportedModule ( ) )
746
746
or
747
- exists ( ModuleVarNode mod |
748
- mod .getModule ( ) = imp .getImportedModule ( ) and
749
- result = mod .( DataFlow:: SourceNode ) .getAPropertyRead ( "exports" )
750
- )
747
+ result = DataFlow:: moduleVarNode ( imp .getImportedModule ( ) ) .getAPropertyRead ( "exports" )
751
748
)
752
749
or
753
750
t = defStep ( nd , result )
@@ -981,46 +978,3 @@ private module Label {
981
978
/** Gets the `promisedError` edge label connecting a promise to its rejected value. */
982
979
string promisedError ( ) { result = "promisedError" }
983
980
}
984
-
985
- private class NodeModuleSourcesNodes extends DataFlow:: SourceNode:: Range {
986
- Variable v ;
987
-
988
- NodeModuleSourcesNodes ( ) {
989
- exists ( NodeModule m |
990
- this = DataFlow:: ssaDefinitionNode ( SSA:: implicitInit ( v ) ) and
991
- v = [ m .getModuleVariable ( ) , m .getExportsVariable ( ) ]
992
- )
993
- }
994
-
995
- Variable getVariable ( ) { result = v }
996
- }
997
-
998
- /**
999
- * A CommonJS/AMD `module` variable.
1000
- */
1001
- private class ModuleVarNode extends DataFlow:: Node {
1002
- Module m ;
1003
-
1004
- ModuleVarNode ( ) {
1005
- this .( NodeModuleSourcesNodes ) .getVariable ( ) = m .( NodeModule ) .getModuleVariable ( )
1006
- or
1007
- DataFlow:: parameterNode ( this , m .( AmdModule ) .getDefine ( ) .getModuleParameter ( ) )
1008
- }
1009
-
1010
- Module getModule ( ) { result = m }
1011
- }
1012
-
1013
- /**
1014
- * A CommonJS/AMD `exports` variable.
1015
- */
1016
- private class ExportsVarNode extends DataFlow:: Node {
1017
- Module m ;
1018
-
1019
- ExportsVarNode ( ) {
1020
- this .( NodeModuleSourcesNodes ) .getVariable ( ) = m .( NodeModule ) .getExportsVariable ( )
1021
- or
1022
- DataFlow:: parameterNode ( this , m .( AmdModule ) .getDefine ( ) .getExportsParameter ( ) )
1023
- }
1024
-
1025
- Module getModule ( ) { result = m }
1026
- }
0 commit comments