@@ -40,8 +40,8 @@ namespace ts {
40
40
context . enableSubstitution ( SyntaxKind . ShorthandPropertyAssignment ) ; // Substitutes shorthand property assignments for imported/exported symbols.
41
41
context . enableEmitNotification ( SyntaxKind . SourceFile ) ; // Restore state when substituting nodes in a file.
42
42
43
- const moduleInfoMap : ExternalModuleInfo [ ] = [ ] ; // The ExternalModuleInfo for each file.
44
- const deferredExports : ( Statement [ ] | undefined ) [ ] = [ ] ; // Exports to defer until an EndOfDeclarationMarker is found.
43
+ const moduleInfoMap = new Map < Node , ExternalModuleInfo > ( ) ; // The ExternalModuleInfo for each file.
44
+ const deferredExports = new Map < Node , Statement [ ] | undefined > ( ) ; ; // Exports to defer until an EndOfDeclarationMarker is found.
45
45
46
46
let currentSourceFile : SourceFile ; // The current file.
47
47
let currentModuleInfo : ExternalModuleInfo ; // The ExternalModuleInfo for the current file.
@@ -65,7 +65,7 @@ namespace ts {
65
65
66
66
currentSourceFile = node ;
67
67
currentModuleInfo = collectExternalModuleInfo ( context , node , resolver , compilerOptions ) ;
68
- moduleInfoMap [ getOriginalNodeId ( node ) ] = currentModuleInfo ;
68
+ moduleInfoMap . set ( getOriginalNode ( node ) , currentModuleInfo ) ;
69
69
70
70
// Perform the transformation.
71
71
const transformModule = getTransformModuleDelegate ( moduleKind ) ;
@@ -981,8 +981,8 @@ namespace ts {
981
981
982
982
if ( hasAssociatedEndOfDeclarationMarker ( node ) ) {
983
983
// Defer exports until we encounter an EndOfDeclarationMarker node
984
- const id = getOriginalNodeId ( node ) ;
985
- deferredExports [ id ] = appendExportsOfImportDeclaration ( deferredExports [ id ] , node ) ;
984
+ const originalNode = getOriginalNode ( node ) ;
985
+ deferredExports . set ( node , appendExportsOfImportDeclaration ( deferredExports . get ( originalNode ) , node ) ) ;
986
986
}
987
987
else {
988
988
statements = appendExportsOfImportDeclaration ( statements , node ) ;
@@ -1072,8 +1072,8 @@ namespace ts {
1072
1072
1073
1073
if ( hasAssociatedEndOfDeclarationMarker ( node ) ) {
1074
1074
// Defer exports until we encounter an EndOfDeclarationMarker node
1075
- const id = getOriginalNodeId ( node ) ;
1076
- deferredExports [ id ] = appendExportsOfImportEqualsDeclaration ( deferredExports [ id ] , node ) ;
1075
+ const originalNode = getOriginalNode ( node ) ;
1076
+ deferredExports . set ( node , appendExportsOfImportEqualsDeclaration ( deferredExports . get ( originalNode ) , node ) ) ;
1077
1077
}
1078
1078
else {
1079
1079
statements = appendExportsOfImportEqualsDeclaration ( statements , node ) ;
@@ -1206,8 +1206,8 @@ namespace ts {
1206
1206
const original = node . original ;
1207
1207
if ( original && hasAssociatedEndOfDeclarationMarker ( original ) ) {
1208
1208
// Defer exports until we encounter an EndOfDeclarationMarker node
1209
- const id = getOriginalNodeId ( node ) ;
1210
- deferredExports [ id ] = appendExportStatement ( deferredExports [ id ] , factory . createIdentifier ( "default" ) , visitNode ( node . expression , visitor ) , /*location*/ node , /*allowComments*/ true ) ;
1209
+ const originalNode = getOriginalNode ( node ) ;
1210
+ deferredExports . set ( node , appendExportStatement ( deferredExports . get ( originalNode ) , factory . createIdentifier ( "default" ) , visitNode ( node . expression , visitor ) , /*location*/ node , /*allowComments*/ true ) ) ;
1211
1211
}
1212
1212
else {
1213
1213
statements = appendExportStatement ( statements , factory . createIdentifier ( "default" ) , visitNode ( node . expression , visitor ) , /*location*/ node , /*allowComments*/ true ) ;
@@ -1249,8 +1249,8 @@ namespace ts {
1249
1249
1250
1250
if ( hasAssociatedEndOfDeclarationMarker ( node ) ) {
1251
1251
// Defer exports until we encounter an EndOfDeclarationMarker node
1252
- const id = getOriginalNodeId ( node ) ;
1253
- deferredExports [ id ] = appendExportsOfHoistedDeclaration ( deferredExports [ id ] , node ) ;
1252
+ const originalNode = getOriginalNode ( node ) ;
1253
+ deferredExports . set ( node , appendExportsOfHoistedDeclaration ( deferredExports . get ( originalNode ) , node ) ) ;
1254
1254
}
1255
1255
else {
1256
1256
statements = appendExportsOfHoistedDeclaration ( statements , node ) ;
@@ -1290,8 +1290,8 @@ namespace ts {
1290
1290
1291
1291
if ( hasAssociatedEndOfDeclarationMarker ( node ) ) {
1292
1292
// Defer exports until we encounter an EndOfDeclarationMarker node
1293
- const id = getOriginalNodeId ( node ) ;
1294
- deferredExports [ id ] = appendExportsOfHoistedDeclaration ( deferredExports [ id ] , node ) ;
1293
+ const originalNode = getOriginalNode ( node ) ;
1294
+ deferredExports . set ( node , appendExportsOfHoistedDeclaration ( deferredExports . get ( originalNode ) , node ) ) ;
1295
1295
}
1296
1296
else {
1297
1297
statements = appendExportsOfHoistedDeclaration ( statements , node ) ;
@@ -1370,8 +1370,8 @@ namespace ts {
1370
1370
1371
1371
if ( hasAssociatedEndOfDeclarationMarker ( node ) ) {
1372
1372
// Defer exports until we encounter an EndOfDeclarationMarker node
1373
- const id = getOriginalNodeId ( node ) ;
1374
- deferredExports [ id ] = appendExportsOfVariableStatement ( deferredExports [ id ] , node ) ;
1373
+ const originalNode = getOriginalNode ( node ) ;
1374
+ deferredExports . set ( node , appendExportsOfVariableStatement ( deferredExports . get ( originalNode ) , node ) ) ;
1375
1375
}
1376
1376
else {
1377
1377
statements = appendExportsOfVariableStatement ( statements , node ) ;
@@ -1441,8 +1441,8 @@ namespace ts {
1441
1441
// To balance the declaration, add the exports of the elided variable
1442
1442
// statement.
1443
1443
if ( hasAssociatedEndOfDeclarationMarker ( node ) && node . original ! . kind === SyntaxKind . VariableStatement ) {
1444
- const id = getOriginalNodeId ( node ) ;
1445
- deferredExports [ id ] = appendExportsOfVariableStatement ( deferredExports [ id ] , node . original as VariableStatement ) ;
1444
+ const originalNode = getOriginalNode ( node ) ;
1445
+ deferredExports . set ( node , appendExportsOfVariableStatement ( deferredExports . get ( originalNode ) , node . original as VariableStatement ) ) ;
1446
1446
}
1447
1447
1448
1448
return node ;
@@ -1467,10 +1467,10 @@ namespace ts {
1467
1467
// For some transformations we emit an `EndOfDeclarationMarker` to mark the actual
1468
1468
// end of the transformed declaration. We use this marker to emit any deferred exports
1469
1469
// of the declaration.
1470
- const id = getOriginalNodeId ( node ) ;
1471
- const statements = deferredExports [ id ] ;
1470
+ const originalNode = getOriginalNode ( node ) ;
1471
+ const statements = deferredExports . get ( originalNode ) ;
1472
1472
if ( statements ) {
1473
- delete deferredExports [ id ] ;
1473
+ deferredExports . delete ( node ) ;
1474
1474
return append ( statements , node ) ;
1475
1475
}
1476
1476
@@ -1770,7 +1770,7 @@ namespace ts {
1770
1770
function onEmitNode ( hint : EmitHint , node : Node , emitCallback : ( hint : EmitHint , node : Node ) => void ) : void {
1771
1771
if ( node . kind === SyntaxKind . SourceFile ) {
1772
1772
currentSourceFile = node as SourceFile ;
1773
- currentModuleInfo = moduleInfoMap [ getOriginalNodeId ( currentSourceFile ) ] ;
1773
+ currentModuleInfo = moduleInfoMap . get ( getOriginalNode ( currentSourceFile ) ) ! ;
1774
1774
1775
1775
previousOnEmitNode ( hint , node , emitCallback ) ;
1776
1776
@@ -1984,7 +1984,7 @@ namespace ts {
1984
1984
|| resolver . getReferencedValueDeclaration ( name ) ;
1985
1985
if ( valueDeclaration ) {
1986
1986
return currentModuleInfo
1987
- && currentModuleInfo . exportedBindings [ getOriginalNodeId ( valueDeclaration ) ] ;
1987
+ && currentModuleInfo . exportedBindings . get ( getOriginalNode ( valueDeclaration ) ) ;
1988
1988
}
1989
1989
}
1990
1990
}
0 commit comments