Skip to content

Commit 7b9a42f

Browse files
committed
Add --target esnext
Currently, this disables the rest and spread transforms. This will change as proposals enter and leave stage 3.
1 parent 6a82ae4 commit 7b9a42f

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed

src/compiler/commandLineParser.ts

+1
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ namespace ts {
265265
"es2015": ScriptTarget.ES2015,
266266
"es2016": ScriptTarget.ES2016,
267267
"es2017": ScriptTarget.ES2017,
268+
"esnext": ScriptTarget.ESNext,
268269
}),
269270
description: Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES2015,
270271
paramType: Diagnostics.VERSION,

src/compiler/emitter.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -732,7 +732,7 @@ const _super = (function (geti, seti) {
732732
return emitPropertyAssignment(<PropertyAssignment>node);
733733
case SyntaxKind.ShorthandPropertyAssignment:
734734
return emitShorthandPropertyAssignment(<ShorthandPropertyAssignment>node);
735-
case SyntaxKind.ShorthandPropertyAssignment:
735+
case SyntaxKind.SpreadAssignment:
736736
return emitSpreadAssignment(node as SpreadAssignment);
737737

738738
// Enum
@@ -2214,7 +2214,10 @@ const _super = (function (geti, seti) {
22142214
helpersEmitted = true;
22152215
}
22162216

2217-
if (compilerOptions.jsx !== JsxEmit.Preserve && !assignEmitted && (node.flags & NodeFlags.HasSpreadAttribute)) {
2217+
if ((languageVersion < ScriptTarget.ESNext || currentSourceFile.scriptKind === ScriptKind.JSX || currentSourceFile.scriptKind === ScriptKind.TSX) &&
2218+
compilerOptions.jsx !== JsxEmit.Preserve &&
2219+
!assignEmitted &&
2220+
node.flags & NodeFlags.HasSpreadAttribute) {
22182221
writeLines(assignHelper);
22192222
assignEmitted = true;
22202223
}

src/compiler/transformer.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,10 @@ namespace ts {
117117
transformers.push(transformJsx);
118118
}
119119

120-
transformers.push(transformESNext);
120+
if (languageVersion < ScriptTarget.ESNext) {
121+
transformers.push(transformESNext);
122+
}
123+
121124
if (languageVersion < ScriptTarget.ES2017) {
122125
transformers.push(transformES2017);
123126
}

src/compiler/types.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -3171,7 +3171,8 @@ namespace ts {
31713171
ES2015 = 2,
31723172
ES2016 = 3,
31733173
ES2017 = 4,
3174-
Latest = ES2017,
3174+
ESNext = 5,
3175+
Latest = ESNext,
31753176
}
31763177

31773178
export const enum LanguageVariant {

0 commit comments

Comments
 (0)