@@ -221,7 +221,7 @@ namespace ts {
221
221
// other kinds of value declarations take precedence over modules
222
222
symbol . valueDeclaration = node ;
223
223
}
224
- }
224
+ }
225
225
}
226
226
227
227
// Should not be called on a declaration with a computed property name,
@@ -389,9 +389,9 @@ namespace ts {
389
389
// 1. multiple export default of class declaration or function declaration by checking NodeFlags.Default
390
390
// 2. multiple export default of export assignment. This one doesn't have NodeFlags.Default on (as export default doesn't considered as modifiers)
391
391
if ( symbol . declarations && symbol . declarations . length &&
392
- ( isDefaultExport || ( node . kind === SyntaxKind . ExportAssignment && ! ( < ExportAssignment > node ) . isExportEquals ) ) ) {
393
- message = Diagnostics . A_module_cannot_have_multiple_default_exports ;
394
- }
392
+ ( isDefaultExport || ( node . kind === SyntaxKind . ExportAssignment && ! ( < ExportAssignment > node ) . isExportEquals ) ) ) {
393
+ message = Diagnostics . A_module_cannot_have_multiple_default_exports ;
394
+ }
395
395
}
396
396
}
397
397
@@ -1414,7 +1414,7 @@ namespace ts {
1414
1414
if ( isObjectLiteralOrClassExpressionMethod ( node ) ) {
1415
1415
return ContainerFlags . IsContainer | ContainerFlags . IsControlFlowContainer | ContainerFlags . HasLocals | ContainerFlags . IsFunctionLike | ContainerFlags . IsObjectLiteralOrClassExpressionMethod ;
1416
1416
}
1417
- // falls through
1417
+ // falls through
1418
1418
case SyntaxKind . Constructor :
1419
1419
case SyntaxKind . FunctionDeclaration :
1420
1420
case SyntaxKind . MethodSignature :
@@ -1716,7 +1716,7 @@ namespace ts {
1716
1716
declareModuleMember ( node , symbolFlags , symbolExcludes ) ;
1717
1717
break ;
1718
1718
}
1719
- // falls through
1719
+ // falls through
1720
1720
default :
1721
1721
if ( ! blockScopeContainer . locals ) {
1722
1722
blockScopeContainer . locals = createMap < Symbol > ( ) ;
@@ -2010,7 +2010,7 @@ namespace ts {
2010
2010
bindBlockScopedDeclaration ( < Declaration > parentNode , SymbolFlags . TypeAlias , SymbolFlags . TypeAliasExcludes ) ;
2011
2011
break ;
2012
2012
}
2013
- // falls through
2013
+ // falls through
2014
2014
case SyntaxKind . ThisKeyword :
2015
2015
if ( currentFlow && ( isExpression ( node ) || parent . kind === SyntaxKind . ShorthandPropertyAssignment ) ) {
2016
2016
node . flowNode = currentFlow ;
@@ -2186,7 +2186,7 @@ namespace ts {
2186
2186
if ( ! isFunctionLike ( node . parent ) ) {
2187
2187
return ;
2188
2188
}
2189
- // falls through
2189
+ // falls through
2190
2190
case SyntaxKind . ModuleBlock :
2191
2191
return updateStrictModeStatementList ( ( < Block | ModuleBlock > node ) . statements ) ;
2192
2192
}
@@ -2211,7 +2211,7 @@ namespace ts {
2211
2211
}
2212
2212
2213
2213
function bindSourceFileAsExternalModule ( ) {
2214
- bindAnonymousDeclaration ( file , SymbolFlags . ValueModule , `"${ removeFileExtension ( file . fileName ) } "` ) ;
2214
+ bindAnonymousDeclaration ( file , SymbolFlags . ValueModule , `"${ removeFileExtension ( file . fileName ) } "` ) ;
2215
2215
}
2216
2216
2217
2217
function bindExportAssignment ( node : ExportAssignment | BinaryExpression ) {
@@ -2504,7 +2504,7 @@ namespace ts {
2504
2504
}
2505
2505
2506
2506
function bindParameter ( node : ParameterDeclaration ) {
2507
- if ( inStrictMode ) {
2507
+ if ( inStrictMode && ! isInAmbientContext ( node ) ) {
2508
2508
// It is a SyntaxError if the identifier eval or arguments appears within a FormalParameterList of a
2509
2509
// strict mode FunctionLikeDeclaration or FunctionExpression(13.1)
2510
2510
checkStrictModeEvalOrArguments ( node , node . name ) ;
0 commit comments