File tree Expand file tree Collapse file tree 7 files changed +58
-1
lines changed
tests/baselines/reference Expand file tree Collapse file tree 7 files changed +58
-1
lines changed Original file line number Diff line number Diff line change @@ -21909,6 +21909,10 @@ namespace ts {
21909
21909
}
21910
21910
}
21911
21911
21912
+ if (hasModifier(node.parent.parent, ModifierFlags.Export) && compilerOptions.module !== ModuleKind.ES2015) {
21913
+ checkESModuleMarker(node.name);
21914
+ }
21915
+
21912
21916
const checkLetConstNames = (isLet(node) || isConst(node));
21913
21917
21914
21918
// 1. LexicalDeclaration : LetOrConst BindingList ;
@@ -21921,6 +21925,22 @@ namespace ts {
21921
21925
return checkLetConstNames && checkGrammarNameInLetOrConstDeclarations(node.name);
21922
21926
}
21923
21927
21928
+ function checkESModuleMarker(name: Identifier | BindingPattern): boolean {
21929
+ if (name.kind === SyntaxKind.Identifier) {
21930
+ if (unescapeIdentifier(name.text) === "__esModule") {
21931
+ return grammarErrorOnNode(name, Diagnostics.Identifier_expected_esModule_is_reserved_as_a_marker_for_transpiled_ES2015_module);
21932
+ }
21933
+ }
21934
+ else {
21935
+ const elements = (<BindingPattern>name).elements;
21936
+ for (const element of elements) {
21937
+ if (!isOmittedExpression(element)) {
21938
+ return checkESModuleMarker(element.name);
21939
+ }
21940
+ }
21941
+ }
21942
+ }
21943
+
21924
21944
function checkGrammarNameInLetOrConstDeclarations(name: Identifier | BindingPattern): boolean {
21925
21945
if (name.kind === SyntaxKind.Identifier) {
21926
21946
if ((<Identifier>name).originalKeywordKind === SyntaxKind.LetKeyword) {
Original file line number Diff line number Diff line change 671
671
"category" : " Error" ,
672
672
"code" : 1215
673
673
},
674
+ "Identifier expected. '__esModule' is reserved as a marker for transpiled ES2015 module." : {
675
+ "category" : " Error" ,
676
+ "code" : 1216
677
+ },
674
678
"Export assignment is not supported when '--module' flag is 'system'." : {
675
679
"category" : " Error" ,
676
680
"code" : 1218
Original file line number Diff line number Diff line change @@ -835,7 +835,7 @@ namespace ts {
835
835
const parseTreeNode = getParseTreeNode ( node ) ;
836
836
if ( parseTreeNode && ! shouldAppendEsModuleMarker ) {
837
837
// class declaration get down-level transformed to be variable statement
838
- shouldAppendEsModuleMarker = ( parseTreeNode . kind === SyntaxKind . VariableStatement || parseTreeNode . kind === SyntaxKind . ClassDeclaration || parseTreeNode . kind === SyntaxKind . ImportEqualsDeclaration )
838
+ shouldAppendEsModuleMarker = ( parseTreeNode . kind === SyntaxKind . VariableStatement || parseTreeNode . kind === SyntaxKind . ClassDeclaration || parseTreeNode . kind === SyntaxKind . ImportEqualsDeclaration )
839
839
&& hasModifier ( parseTreeNode , ModifierFlags . Export ) ;
840
840
}
841
841
Original file line number Diff line number Diff line change
1
+ tests/cases/compiler/es5-commonjs3.ts(3,12): error TS1216: Identifier expected. '__esModule' is reserved as a marker for transpiled ES2015 module.
2
+
3
+
4
+ ==== tests/cases/compiler/es5-commonjs3.ts (1 errors) ====
5
+
6
+ export default "test";
7
+ export var __esModule = 1;
8
+ ~~~~~~~~~~
9
+ !!! error TS1216: Identifier expected. '__esModule' is reserved as a marker for transpiled ES2015 module.
10
+
Original file line number Diff line number Diff line change @@ -8,3 +8,4 @@ export var __esModule = 1;
8
8
"use strict" ;
9
9
exports . default = "test" ;
10
10
exports . __esModule = 1 ;
11
+ Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
Original file line number Diff line number Diff line change
1
+ tests/cases/compiler/es5-commonjs4.ts(14,12): error TS1216: Identifier expected. '__esModule' is reserved as a marker for transpiled ES2015 module.
2
+
3
+
4
+ ==== tests/cases/compiler/es5-commonjs4.ts (1 errors) ====
5
+
6
+ export default class A
7
+ {
8
+ constructor ()
9
+ {
10
+
11
+ }
12
+
13
+ public B()
14
+ {
15
+ return 42;
16
+ }
17
+ }
18
+ export var __esModule = 1;
19
+ ~~~~~~~~~~
20
+ !!! error TS1216: Identifier expected. '__esModule' is reserved as a marker for transpiled ES2015 module.
21
+
Original file line number Diff line number Diff line change @@ -27,3 +27,4 @@ var A = (function () {
27
27
} ( ) ) ;
28
28
exports . default = A ;
29
29
exports . __esModule = 1 ;
30
+ Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
You can’t perform that action at this time.
0 commit comments