@@ -700,7 +700,6 @@ namespace ts {
700700
701701 const promise = factory . createNewExpression ( factory . createIdentifier ( "Promise" ) , /*typeArguments*/ undefined , [ func ] ) ;
702702 if ( compilerOptions . esModuleInterop ) {
703- context . requestEmitHelper ( importStarHelper ) ;
704703 return factory . createCallExpression ( factory . createPropertyAccessExpression ( promise , factory . createIdentifier ( "then" ) ) , /*typeArguments*/ undefined , [ emitHelpers ( ) . createImportStarCallbackHelper ( ) ] ) ;
705704 }
706705 return promise ;
@@ -715,7 +714,6 @@ namespace ts {
715714 const promiseResolveCall = factory . createCallExpression ( factory . createPropertyAccessExpression ( factory . createIdentifier ( "Promise" ) , "resolve" ) , /*typeArguments*/ undefined , /*argumentsArray*/ [ ] ) ;
716715 let requireCall : Expression = factory . createCallExpression ( factory . createIdentifier ( "require" ) , /*typeArguments*/ undefined , arg ? [ arg ] : [ ] ) ;
717716 if ( compilerOptions . esModuleInterop ) {
718- context . requestEmitHelper ( importStarHelper ) ;
719717 requireCall = emitHelpers ( ) . createImportStarHelper ( requireCall ) ;
720718 }
721719
@@ -755,8 +753,7 @@ namespace ts {
755753 return innerExpr ;
756754 }
757755 if ( getExportNeedsImportStarHelper ( node ) ) {
758- context . requestEmitHelper ( importStarHelper ) ;
759- return factory . createCallExpression ( context . getEmitHelperFactory ( ) . getUnscopedHelperName ( "__importStar" ) , /*typeArguments*/ undefined , [ innerExpr ] ) ;
756+ return emitHelpers ( ) . createImportStarHelper ( innerExpr ) ;
760757 }
761758 return innerExpr ;
762759 }
@@ -766,11 +763,9 @@ namespace ts {
766763 return innerExpr ;
767764 }
768765 if ( getImportNeedsImportStarHelper ( node ) ) {
769- context . requestEmitHelper ( importStarHelper ) ;
770766 return emitHelpers ( ) . createImportStarHelper ( innerExpr ) ;
771767 }
772768 if ( getImportNeedsImportDefaultHelper ( node ) ) {
773- context . requestEmitHelper ( importDefaultHelper ) ;
774769 return emitHelpers ( ) . createImportDefaultHelper ( innerExpr ) ;
775770 }
776771 return innerExpr ;
@@ -1015,18 +1010,21 @@ namespace ts {
10151010 setOriginalNode (
10161011 setTextRange (
10171012 factory . createExpressionStatement (
1018- context . getEmitHelperFactory ( ) . createCreateBindingHelper ( generatedName , factory . createStringLiteralFromNode ( specifier . propertyName || specifier . name ) , specifier . propertyName ? factory . createStringLiteralFromNode ( specifier . name ) : undefined )
1013+ emitHelpers ( ) . createCreateBindingHelper ( generatedName , factory . createStringLiteralFromNode ( specifier . propertyName || specifier . name ) , specifier . propertyName ? factory . createStringLiteralFromNode ( specifier . name ) : undefined )
10191014 ) ,
10201015 specifier ) ,
10211016 specifier
10221017 )
10231018 ) ;
10241019 }
10251020 else {
1021+ const exportNeedsImportDefault =
1022+ ! ! compilerOptions . esModuleInterop &&
1023+ ! ( getEmitFlags ( node ) & EmitFlags . NeverApplyImportHelper ) &&
1024+ idText ( specifier . propertyName || specifier . name ) === "default" ;
10261025 const exportedValue = factory . createPropertyAccessExpression (
1027- generatedName ,
1028- specifier . propertyName || specifier . name
1029- ) ;
1026+ exportNeedsImportDefault ? emitHelpers ( ) . createImportDefaultHelper ( generatedName ) : generatedName ,
1027+ specifier . propertyName || specifier . name ) ;
10301028 statements . push (
10311029 setOriginalNode (
10321030 setTextRange (
@@ -1051,9 +1049,9 @@ namespace ts {
10511049 factory . createExpressionStatement (
10521050 createExportExpression (
10531051 factory . cloneNode ( node . exportClause . name ) ,
1054- moduleKind !== ModuleKind . AMD ?
1055- getHelperExpressionForExport ( node , createRequireCall ( node ) ) :
1056- factory . createIdentifier ( idText ( node . exportClause . name ) )
1052+ getHelperExpressionForExport ( node , moduleKind !== ModuleKind . AMD ?
1053+ createRequireCall ( node ) :
1054+ factory . createIdentifier ( idText ( node . exportClause . name ) ) )
10571055 )
10581056 ) ,
10591057 node
@@ -1069,7 +1067,7 @@ namespace ts {
10691067 return setOriginalNode (
10701068 setTextRange (
10711069 factory . createExpressionStatement (
1072- createExportStarHelper ( context , moduleKind !== ModuleKind . AMD ? createRequireCall ( node ) : generatedName )
1070+ emitHelpers ( ) . createExportStarHelper ( moduleKind !== ModuleKind . AMD ? createRequireCall ( node ) : generatedName )
10731071 ) ,
10741072 node ) ,
10751073 node
@@ -1857,24 +1855,6 @@ namespace ts {
18571855 }
18581856 }
18591857
1860- // emit output for the __export helper function
1861- const exportStarHelper : UnscopedEmitHelper = {
1862- name : "typescript:export-star" ,
1863- importName : "__exportStar" ,
1864- scoped : false ,
1865- dependencies : [ createBindingHelper ] ,
1866- priority : 2 ,
1867- text : `
1868- var __exportStar = (this && this.__exportStar) || function(m, exports) {
1869- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
1870- };`
1871- } ;
1872-
1873- function createExportStarHelper ( context : TransformationContext , module : Expression ) {
1874- context . requestEmitHelper ( exportStarHelper ) ;
1875- return context . factory . createCallExpression ( context . getEmitHelperFactory ( ) . getUnscopedHelperName ( "__exportStar" ) , /*typeArguments*/ undefined , [ module , context . factory . createIdentifier ( "exports" ) ] ) ;
1876- }
1877-
18781858 // emit helper for dynamic import
18791859 const dynamicImportUMDHelper : EmitHelper = {
18801860 name : "typescript:dynamicimport-sync-require" ,
0 commit comments