@@ -617,11 +617,11 @@ module API {
617617 cached
618618 predicate use ( TApiNode nd , DataFlow:: Node ref ) {
619619 exists ( string m , Module mod | nd = MkModuleDef ( m ) and mod = importableModule ( m ) |
620- ref . ( ModuleVarNode ) . getModule ( ) = mod
620+ ref = DataFlow :: moduleVarNode ( mod )
621621 )
622622 or
623623 exists ( string m , Module mod | nd = MkModuleExport ( m ) and mod = importableModule ( m ) |
624- ref . ( ExportsVarNode ) . getModule ( ) = mod
624+ ref = DataFlow :: exportsVarNode ( mod )
625625 or
626626 exists ( DataFlow:: Node base | use ( MkModuleDef ( m ) , base ) |
627627 ref = trackUseNode ( base ) .getAPropertyRead ( "exports" )
@@ -742,12 +742,9 @@ module API {
742742 or
743743 // additional backwards step from `require('m')` to `exports` or `module.exports` in m
744744 exists ( Import imp | imp .getImportedModuleNode ( ) = trackDefNode ( nd , t .continue ( ) ) |
745- result . ( ExportsVarNode ) . getModule ( ) = imp .getImportedModule ( )
745+ result = DataFlow :: exportsVarNode ( imp .getImportedModule ( ) )
746746 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" )
751748 )
752749 or
753750 t = defStep ( nd , result )
@@ -981,46 +978,3 @@ private module Label {
981978 /** Gets the `promisedError` edge label connecting a promise to its rejected value. */
982979 string promisedError ( ) { result = "promisedError" }
983980}
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