Skip to content

Commit 9977936

Browse files
committed
Do not emit __rest for --target esnext
1 parent 609cd00 commit 9977936

File tree

5 files changed

+34
-1
lines changed

5 files changed

+34
-1
lines changed

src/compiler/emitter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2231,7 +2231,7 @@ const _super = (function (geti, seti) {
22312231
assignEmitted = true;
22322232
}
22332233

2234-
if (!restEmitted && node.flags & NodeFlags.HasRestAttribute) {
2234+
if (languageVersion < ScriptTarget.ESNext && !restEmitted && node.flags & NodeFlags.HasRestAttribute) {
22352235
writeLines(restHelper);
22362236
restEmitted = true;
22372237
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
//// [objectSpreadNoTransform.ts]
22
const y = { a: 'yes', b: 'no' };
33
const o = { x: 1, ...y };
4+
var b;
5+
var rest;
6+
({ b, ...rest } = o);
47

58

69
//// [objectSpreadNoTransform.js]
710
const y = { a: 'yes', b: 'no' };
811
const o = { x: 1, ...y };
12+
var b;
13+
var rest;
14+
({ b, ...rest } = o);

tests/baselines/reference/objectSpreadNoTransform.symbols

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,13 @@ const o = { x: 1, ...y };
88
>o : Symbol(o, Decl(objectSpreadNoTransform.ts, 1, 5))
99
>x : Symbol(x, Decl(objectSpreadNoTransform.ts, 1, 11))
1010

11+
var b;
12+
>b : Symbol(b, Decl(objectSpreadNoTransform.ts, 2, 3))
13+
14+
var rest;
15+
>rest : Symbol(rest, Decl(objectSpreadNoTransform.ts, 3, 3))
16+
17+
({ b, ...rest } = o);
18+
>b : Symbol(b, Decl(objectSpreadNoTransform.ts, 4, 2))
19+
>o : Symbol(o, Decl(objectSpreadNoTransform.ts, 1, 5))
20+

tests/baselines/reference/objectSpreadNoTransform.types

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,17 @@ const o = { x: 1, ...y };
1414
>1 : 1
1515
>y : any
1616

17+
var b;
18+
>b : any
19+
20+
var rest;
21+
>rest : any
22+
23+
({ b, ...rest } = o);
24+
>({ b, ...rest } = o) : { a: string; b: string; x: number; }
25+
>{ b, ...rest } = o : { a: string; b: string; x: number; }
26+
>{ b, ...rest } : any
27+
>b : any
28+
>rest : any
29+
>o : { a: string; b: string; x: number; }
30+
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
// @target: esnext
22
const y = { a: 'yes', b: 'no' };
33
const o = { x: 1, ...y };
4+
var b;
5+
var rest;
6+
({ b, ...rest } = o);

0 commit comments

Comments
 (0)