Skip to content

Commit 1f58706

Browse files
committed
Merge pull request #3434 from Microsoft/port-3433
Port PR 3433 into release 1.5
2 parents 363b7c8 + d076306 commit 1f58706

File tree

6 files changed

+77
-2
lines changed

6 files changed

+77
-2
lines changed

src/compiler/emitter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5327,10 +5327,10 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
53275327
emitSetters(exportStarFunction);
53285328
writeLine();
53295329
emitExecute(node, startIndex);
5330-
emitTempDeclarations(/*newLine*/ true)
53315330
decreaseIndent();
53325331
writeLine();
53335332
write("}"); // return
5333+
emitTempDeclarations(/*newLine*/ true);
53345334
}
53355335

53365336
function emitSetters(exportStarFunction: string) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
//// [systemModule13.ts]
2+
3+
export let [x,y,z] = [1, 2, 3];
4+
export const {a: z0, b: {c: z1}} = {a: true, b: {c: "123"}};
5+
for ([x] of [[1]]) {}
6+
7+
//// [systemModule13.js]
8+
System.register([], function(exports_1) {
9+
var x, y, z, z0, z1;
10+
return {
11+
setters:[],
12+
execute: function() {
13+
_a = [1, 2, 3], exports_1("x", x = _a[0]), exports_1("y", y = _a[1]), exports_1("z", z = _a[2]);
14+
_b = { a: true, b: { c: "123" } }, exports_1("z0", z0 = _b.a), exports_1("z1", z1 = _b.b.c);
15+
for (var _i = 0, _c = [[1]]; _i < _c.length; _i++) {
16+
exports_1("x", x = _c[_i][0]);
17+
}
18+
}
19+
}
20+
var _a, _b;
21+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
=== tests/cases/compiler/systemModule13.ts ===
2+
3+
export let [x,y,z] = [1, 2, 3];
4+
>x : Symbol(x, Decl(systemModule13.ts, 1, 12))
5+
>y : Symbol(y, Decl(systemModule13.ts, 1, 14))
6+
>z : Symbol(z, Decl(systemModule13.ts, 1, 16))
7+
8+
export const {a: z0, b: {c: z1}} = {a: true, b: {c: "123"}};
9+
>z0 : Symbol(z0, Decl(systemModule13.ts, 2, 14))
10+
>z1 : Symbol(z1, Decl(systemModule13.ts, 2, 25))
11+
>a : Symbol(a, Decl(systemModule13.ts, 2, 36))
12+
>b : Symbol(b, Decl(systemModule13.ts, 2, 44))
13+
>c : Symbol(c, Decl(systemModule13.ts, 2, 49))
14+
15+
for ([x] of [[1]]) {}
16+
>x : Symbol(x, Decl(systemModule13.ts, 1, 12))
17+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
=== tests/cases/compiler/systemModule13.ts ===
2+
3+
export let [x,y,z] = [1, 2, 3];
4+
>x : number
5+
>y : number
6+
>z : number
7+
>[1, 2, 3] : [number, number, number]
8+
>1 : number
9+
>2 : number
10+
>3 : number
11+
12+
export const {a: z0, b: {c: z1}} = {a: true, b: {c: "123"}};
13+
>a : any
14+
>z0 : boolean
15+
>b : any
16+
>c : any
17+
>z1 : string
18+
>{a: true, b: {c: "123"}} : { a: boolean; b: { c: string; }; }
19+
>a : boolean
20+
>true : boolean
21+
>b : { c: string; }
22+
>{c: "123"} : { c: string; }
23+
>c : string
24+
>"123" : string
25+
26+
for ([x] of [[1]]) {}
27+
>[x] : number[]
28+
>x : number
29+
>[[1]] : number[][]
30+
>[1] : number[]
31+
>1 : number
32+

tests/baselines/reference/systemModule8.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,6 @@ System.register([], function(exports_1) {
6666
exports_1("x", x = _b[_i][0]);
6767
}
6868
}
69-
var _a;
7069
}
70+
var _a;
7171
});
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// @module: system
2+
3+
export let [x,y,z] = [1, 2, 3];
4+
export const {a: z0, b: {c: z1}} = {a: true, b: {c: "123"}};
5+
for ([x] of [[1]]) {}

0 commit comments

Comments
 (0)