@@ -11,6 +11,10 @@ const HarmonyAcceptDependency = require("./HarmonyAcceptDependency");
1111const HarmonyModulesHelpers = require ( "./HarmonyModulesHelpers" ) ;
1212
1313module . exports = class HarmonyImportDependencyParserPlugin {
14+ constructor ( moduleOptions ) {
15+ this . strictExportPresence = moduleOptions . strictExportPresence ;
16+ }
17+
1418 apply ( parser ) {
1519 parser . plugin ( "import" , ( statement , source ) => {
1620 const dep = new HarmonyImportDependency ( source , HarmonyModulesHelpers . getNewModuleVar ( parser . state , source ) , statement . range ) ;
@@ -29,7 +33,7 @@ module.exports = class HarmonyImportDependencyParserPlugin {
2933 parser . plugin ( "expression imported var" , ( expr ) => {
3034 const name = expr . name ;
3135 const settings = parser . state . harmonySpecifier [ `$${ name } ` ] ;
32- const dep = new HarmonyImportSpecifierDependency ( settings [ 0 ] , settings [ 1 ] , settings [ 2 ] , name , expr . range ) ;
36+ const dep = new HarmonyImportSpecifierDependency ( settings [ 0 ] , settings [ 1 ] , settings [ 2 ] , name , expr . range , this . strictExportPresence ) ;
3337 dep . shorthand = parser . scope . inShorthand ;
3438 dep . directImport = true ;
3539 dep . loc = expr . loc ;
@@ -41,7 +45,7 @@ module.exports = class HarmonyImportDependencyParserPlugin {
4145 const settings = parser . state . harmonySpecifier [ `$${ name } ` ] ;
4246 if ( settings [ 2 ] !== null )
4347 return false ;
44- const dep = new HarmonyImportSpecifierDependency ( settings [ 0 ] , settings [ 1 ] , expr . property . name || expr . property . value , name , expr . range ) ;
48+ const dep = new HarmonyImportSpecifierDependency ( settings [ 0 ] , settings [ 1 ] , expr . property . name || expr . property . value , name , expr . range , this . strictExportPresence ) ;
4549 dep . shorthand = parser . scope . inShorthand ;
4650 dep . directImport = false ;
4751 dep . loc = expr . loc ;
@@ -54,7 +58,7 @@ module.exports = class HarmonyImportDependencyParserPlugin {
5458 expr = expr . callee ;
5559 const name = expr . name ;
5660 const settings = parser . state . harmonySpecifier [ `$${ name } ` ] ;
57- const dep = new HarmonyImportSpecifierDependency ( settings [ 0 ] , settings [ 1 ] , settings [ 2 ] , name , expr . range ) ;
61+ const dep = new HarmonyImportSpecifierDependency ( settings [ 0 ] , settings [ 1 ] , settings [ 2 ] , name , expr . range , this . strictExportPresence ) ;
5862 dep . directImport = true ;
5963 dep . callArgs = args ;
6064 dep . call = fullExpr ;
0 commit comments