Do not emit __rest for --target esnext

This commit is contained in:
Nathan Shively-Sanders
2016-11-07 11:34:37 -08:00
parent 609cd0016b
commit 9977936190
5 changed files with 34 additions and 1 deletions

View File

@@ -2231,7 +2231,7 @@ const _super = (function (geti, seti) {
assignEmitted = true;
}
if (!restEmitted && node.flags & NodeFlags.HasRestAttribute) {
if (languageVersion < ScriptTarget.ESNext && !restEmitted && node.flags & NodeFlags.HasRestAttribute) {
writeLines(restHelper);
restEmitted = true;
}

View File

@@ -1,8 +1,14 @@
//// [objectSpreadNoTransform.ts]
const y = { a: 'yes', b: 'no' };
const o = { x: 1, ...y };
var b;
var rest;
({ b, ...rest } = o);
//// [objectSpreadNoTransform.js]
const y = { a: 'yes', b: 'no' };
const o = { x: 1, ...y };
var b;
var rest;
({ b, ...rest } = o);

View File

@@ -8,3 +8,13 @@ const o = { x: 1, ...y };
>o : Symbol(o, Decl(objectSpreadNoTransform.ts, 1, 5))
>x : Symbol(x, Decl(objectSpreadNoTransform.ts, 1, 11))
var b;
>b : Symbol(b, Decl(objectSpreadNoTransform.ts, 2, 3))
var rest;
>rest : Symbol(rest, Decl(objectSpreadNoTransform.ts, 3, 3))
({ b, ...rest } = o);
>b : Symbol(b, Decl(objectSpreadNoTransform.ts, 4, 2))
>o : Symbol(o, Decl(objectSpreadNoTransform.ts, 1, 5))

View File

@@ -14,3 +14,17 @@ const o = { x: 1, ...y };
>1 : 1
>y : any
var b;
>b : any
var rest;
>rest : any
({ b, ...rest } = o);
>({ b, ...rest } = o) : { a: string; b: string; x: number; }
>{ b, ...rest } = o : { a: string; b: string; x: number; }
>{ b, ...rest } : any
>b : any
>rest : any
>o : { a: string; b: string; x: number; }

View File

@@ -1,3 +1,6 @@
// @target: esnext
const y = { a: 'yes', b: 'no' };
const o = { x: 1, ...y };
var b;
var rest;
({ b, ...rest } = o);