mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Improve nested destructuring test for ESNext emit
Now with object destructuring inside array destructuring inside object destructuring! Each with their own array/object rest! Also updates baselines.
This commit is contained in:
@@ -5,6 +5,13 @@ let other: number;
|
||||
let rest: { };
|
||||
let complex: { x: { ka, ki }, y: number };
|
||||
({x: { ka, ...nested }, y: other, ...rest} = complex);
|
||||
|
||||
// should be:
|
||||
let overEmit: { a: { ka: string, x: string }[], b: { z: string, ki: string, ku: string }, ke: string, ko: string };
|
||||
|
||||
// var _g = overEmit.a, [_h, ...y] = _g, nested2 = __rest(_h, []), _j = overEmit.b, { z } = _j, c = __rest(_j, ["z"]), rest2 = __rest(overEmit, ["a", "b"]);
|
||||
var { a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } = overEmit;
|
||||
({ a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } = overEmit);
|
||||
|
||||
|
||||
//// [objectRestAssignment.js]
|
||||
@@ -14,10 +21,15 @@ var __rest = (this && this.__rest) || function (s, e) {
|
||||
t[p] = s[p];
|
||||
return t;
|
||||
};
|
||||
var ka;
|
||||
var nested;
|
||||
var other;
|
||||
var rest;
|
||||
var complex;
|
||||
(_a = complex.x, (ka = _a.ka, _a), nested = __rest(_a, ["ka"]), (other = complex.y, complex), rest = __rest(complex, ["x", "y"]), complex);
|
||||
var _a;
|
||||
let ka;
|
||||
let nested;
|
||||
let other;
|
||||
let rest;
|
||||
let complex;
|
||||
(_a = complex.x, { ka } = _a, nested = __rest(_a, ["ka"]), { y: other } = complex, rest = __rest(complex, ["x", "y"]), complex);
|
||||
// should be:
|
||||
let overEmit;
|
||||
// var _g = overEmit.a, [_h, ...y] = _g, nested2 = __rest(_h, []), _j = overEmit.b, { z } = _j, c = __rest(_j, ["z"]), rest2 = __rest(overEmit, ["a", "b"]);
|
||||
var _b = overEmit.a, [_c, ...y] = _b, nested2 = __rest(_c, []), _d = overEmit.b, { z } = _d, c = __rest(_d, ["z"]), rest2 = __rest(overEmit, ["a", "b"]);
|
||||
(_e = overEmit.a, [_f, ...y] = _e, nested2 = __rest(_f, []), _g = overEmit.b, { z } = _g, c = __rest(_g, ["z"]), rest2 = __rest(overEmit, ["a", "b"]), overEmit);
|
||||
var _a, _e, _f, _g;
|
||||
|
||||
@@ -26,3 +26,34 @@ let complex: { x: { ka, ki }, y: number };
|
||||
>other : Symbol(other, Decl(objectRestAssignment.ts, 2, 3))
|
||||
>complex : Symbol(complex, Decl(objectRestAssignment.ts, 4, 3))
|
||||
|
||||
// should be:
|
||||
let overEmit: { a: { ka: string, x: string }[], b: { z: string, ki: string, ku: string }, ke: string, ko: string };
|
||||
>overEmit : Symbol(overEmit, Decl(objectRestAssignment.ts, 8, 3))
|
||||
>a : Symbol(a, Decl(objectRestAssignment.ts, 8, 15))
|
||||
>ka : Symbol(ka, Decl(objectRestAssignment.ts, 8, 20))
|
||||
>x : Symbol(x, Decl(objectRestAssignment.ts, 8, 32))
|
||||
>b : Symbol(b, Decl(objectRestAssignment.ts, 8, 47))
|
||||
>z : Symbol(z, Decl(objectRestAssignment.ts, 8, 52))
|
||||
>ki : Symbol(ki, Decl(objectRestAssignment.ts, 8, 63))
|
||||
>ku : Symbol(ku, Decl(objectRestAssignment.ts, 8, 75))
|
||||
>ke : Symbol(ke, Decl(objectRestAssignment.ts, 8, 89))
|
||||
>ko : Symbol(ko, Decl(objectRestAssignment.ts, 8, 101))
|
||||
|
||||
// var _g = overEmit.a, [_h, ...y] = _g, nested2 = __rest(_h, []), _j = overEmit.b, { z } = _j, c = __rest(_j, ["z"]), rest2 = __rest(overEmit, ["a", "b"]);
|
||||
var { a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } = overEmit;
|
||||
>a : Symbol(a, Decl(objectRestAssignment.ts, 8, 15))
|
||||
>nested2 : Symbol(nested2, Decl(objectRestAssignment.ts, 11, 11))
|
||||
>y : Symbol(y, Decl(objectRestAssignment.ts, 11, 25))
|
||||
>b : Symbol(b, Decl(objectRestAssignment.ts, 8, 47))
|
||||
>z : Symbol(z, Decl(objectRestAssignment.ts, 11, 37))
|
||||
>c : Symbol(c, Decl(objectRestAssignment.ts, 11, 40))
|
||||
>rest2 : Symbol(rest2, Decl(objectRestAssignment.ts, 11, 48))
|
||||
>overEmit : Symbol(overEmit, Decl(objectRestAssignment.ts, 8, 3))
|
||||
|
||||
({ a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } = overEmit);
|
||||
>a : Symbol(a, Decl(objectRestAssignment.ts, 12, 2))
|
||||
>y : Symbol(y, Decl(objectRestAssignment.ts, 11, 25))
|
||||
>b : Symbol(b, Decl(objectRestAssignment.ts, 12, 29))
|
||||
>z : Symbol(z, Decl(objectRestAssignment.ts, 12, 34))
|
||||
>overEmit : Symbol(overEmit, Decl(objectRestAssignment.ts, 8, 3))
|
||||
|
||||
|
||||
@@ -32,3 +32,44 @@ let complex: { x: { ka, ki }, y: number };
|
||||
>rest : any
|
||||
>complex : { x: { ka: any; ki: any; }; y: number; }
|
||||
|
||||
// should be:
|
||||
let overEmit: { a: { ka: string, x: string }[], b: { z: string, ki: string, ku: string }, ke: string, ko: string };
|
||||
>overEmit : { a: { ka: string; x: string; }[]; b: { z: string; ki: string; ku: string; }; ke: string; ko: string; }
|
||||
>a : { ka: string; x: string; }[]
|
||||
>ka : string
|
||||
>x : string
|
||||
>b : { z: string; ki: string; ku: string; }
|
||||
>z : string
|
||||
>ki : string
|
||||
>ku : string
|
||||
>ke : string
|
||||
>ko : string
|
||||
|
||||
// var _g = overEmit.a, [_h, ...y] = _g, nested2 = __rest(_h, []), _j = overEmit.b, { z } = _j, c = __rest(_j, ["z"]), rest2 = __rest(overEmit, ["a", "b"]);
|
||||
var { a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } = overEmit;
|
||||
>a : any
|
||||
>nested2 : { ka: string; x: string; }
|
||||
>y : { ka: string; x: string; }[]
|
||||
>b : any
|
||||
>z : string
|
||||
>c : { ki: string; ku: string; }
|
||||
>rest2 : { ke: string; ko: string; }
|
||||
>overEmit : { a: { ka: string; x: string; }[]; b: { z: string; ki: string; ku: string; }; ke: string; ko: string; }
|
||||
|
||||
({ a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } = overEmit);
|
||||
>({ a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } = overEmit) : { a: { ka: string; x: string; }[]; b: { z: string; ki: string; ku: string; }; ke: string; ko: string; }
|
||||
>{ a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } = overEmit : { a: { ka: string; x: string; }[]; b: { z: string; ki: string; ku: string; }; ke: string; ko: string; }
|
||||
>{ a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } : { ke: string; ko: string; a: { ka: string; x: string; }[]; b: { ki: string; ku: string; z: string; }; }
|
||||
>a : { ka: string; x: string; }[]
|
||||
>[{ ...nested2 }, ...y] : { ka: string; x: string; }[]
|
||||
>{ ...nested2 } : { ka: string; x: string; }
|
||||
>nested2 : any
|
||||
>...y : { ka: string; x: string; }
|
||||
>y : { ka: string; x: string; }[]
|
||||
>b : { ki: string; ku: string; z: string; }
|
||||
>{ z, ...c } : { ki: string; ku: string; z: string; }
|
||||
>z : string
|
||||
>c : any
|
||||
>rest2 : any
|
||||
>overEmit : { a: { ka: string; x: string; }[]; b: { z: string; ki: string; ku: string; }; ke: string; ko: string; }
|
||||
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
// @target: es2015
|
||||
let ka: any;
|
||||
let nested: { ki };
|
||||
let other: number;
|
||||
let rest: { };
|
||||
let complex: { x: { ka, ki }, y: number };
|
||||
({x: { ka, ...nested }, y: other, ...rest} = complex);
|
||||
|
||||
// should be:
|
||||
let overEmit: { a: { ka: string, x: string }[], b: { z: string, ki: string, ku: string }, ke: string, ko: string };
|
||||
|
||||
// var _g = overEmit.a, [_h, ...y] = _g, nested2 = __rest(_h, []), _j = overEmit.b, { z } = _j, c = __rest(_j, ["z"]), rest2 = __rest(overEmit, ["a", "b"]);
|
||||
var { a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } = overEmit;
|
||||
({ a: [{ ...nested2 }, ...y], b: { z, ...c }, ...rest2 } = overEmit);
|
||||
|
||||
Reference in New Issue
Block a user