Skip to content

Commit 7b528dd

Browse files
Merge pull request microsoft#1464 from Microsoft/void0
Properly emit 'void 0' when emitting destructuring assignments.
2 parents 90a9b34 + 83f0c91 commit 7b528dd

2 files changed

Lines changed: 9 additions & 10 deletions

File tree

src/compiler/emitter.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2819,9 +2819,8 @@ module ts {
28192819
function createVoidZero(): Expression {
28202820
var zero = <LiteralExpression>createNode(SyntaxKind.NumericLiteral);
28212821
zero.text = "0";
2822-
var result = <PrefixUnaryExpression>createNode(SyntaxKind.PrefixUnaryExpression);
2823-
result.operator = SyntaxKind.VoidKeyword;
2824-
result.operand = zero;
2822+
var result = <VoidExpression>createNode(SyntaxKind.VoidExpression);
2823+
result.expression = zero;
28252824
return result;
28262825
}
28272826

tests/baselines/reference/declarationsAndAssignments.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -195,12 +195,12 @@ function f4() {
195195
var z;
196196
}
197197
function f6() {
198-
var _a = [1, "hello"], _b = _a[0], x = _b === void0 ? 0 : _b, _c = _a[1], y = _c === void0 ? "" : _c;
198+
var _a = [1, "hello"], _b = _a[0], x = _b === void 0 ? 0 : _b, _c = _a[1], y = _c === void 0 ? "" : _c;
199199
var x;
200200
var y;
201201
}
202202
function f7() {
203-
var _a = [1, "hello"], _b = _a[0], x = _b === void0 ? 0 : _b, _c = _a[1], y = _c === void0 ? 1 : _c; // Error, initializer for y must be string
203+
var _a = [1, "hello"], _b = _a[0], x = _b === void 0 ? 0 : _b, _c = _a[1], y = _c === void 0 ? 1 : _c; // Error, initializer for y must be string
204204
var x;
205205
var y;
206206
}
@@ -226,7 +226,7 @@ function f11() {
226226
var b;
227227
}
228228
function f12() {
229-
var _a = [1, ["hello", { x: 5, y: true }]], a = _a[0], _b = _a[1], _c = _b === void0 ? ["abc", { x: 10, y: false }] : _b, b = _c[0], _d = _c[1], x = _d.x, c = _d.y;
229+
var _a = [1, ["hello", { x: 5, y: true }]], a = _a[0], _b = _a[1], _c = _b === void 0 ? ["abc", { x: 10, y: false }] : _b, b = _c[0], _d = _c[1], x = _d.x, c = _d.y;
230230
var a;
231231
var b;
232232
var x;
@@ -237,7 +237,7 @@ function f13() {
237237
var _b = [[x, y], { x: x, y: y }], a = _b[0], b = _b[1];
238238
}
239239
function f14(_a) {
240-
var _b = _a[0], a = _b === void0 ? 1 : _b, _c = _a[1], _d = _c[0], b = _d === void0 ? "hello" : _d, _e = _c[1], x = _e.x, _f = _e.y, c = _f === void0 ? false : _f;
240+
var _b = _a[0], a = _b === void 0 ? 1 : _b, _c = _a[1], _d = _c[0], b = _d === void 0 ? "hello" : _d, _e = _c[1], x = _e.x, _f = _e.y, c = _f === void 0 ? false : _f;
241241
var a;
242242
var b;
243243
var c;
@@ -260,7 +260,7 @@ function f16() {
260260
var _a = f15(), a = _a.a, b = _a.b, c = _a.c;
261261
}
262262
function f17(_a) {
263-
var _b = _a.a, a = _b === void0 ? "" : _b, _c = _a.b, b = _c === void0 ? 0 : _c, _d = _a.c, c = _d === void0 ? false : _d;
263+
var _b = _a.a, a = _b === void 0 ? "" : _b, _c = _a.b, b = _c === void 0 ? 0 : _c, _d = _a.c, c = _d === void 0 ? false : _d;
264264
}
265265
f17({});
266266
f17({ a: "hello" });
@@ -274,15 +274,15 @@ function g4() {
274274
(_b = { b: b, a: a }, a = _b.a, b = _b.b, _b);
275275
_c = [a, b], aa[0] = _c[0], b = _c[1];
276276
_d = [b, a], a = _d[0], b = _d[1]; // Error
277-
_e = [2, "def"], _f = _e[0], a = _f === void0 ? 1 : _f, _g = _e[1], b = _g === void0 ? "abc" : _g;
277+
_e = [2, "def"], _f = _e[0], a = _f === void 0 ? 1 : _f, _g = _e[1], b = _g === void 0 ? "abc" : _g;
278278
var _a, _b, _c, _d, _e, _f, _g;
279279
}
280280
function g5() {
281281
var a, b;
282282
_a = [1, 2], a = _a[0], b = _a[1];
283283
_b = [b, a], a = _b[0], b = _b[1];
284284
(_c = { b: b, a: a }, a = _c.a, b = _c.b, _c);
285-
_d = ([[2, 3]])[0], _e = _d === void0 ? [1, 2] : _d, a = _e[0], b = _e[1];
285+
_d = ([[2, 3]])[0], _e = _d === void 0 ? [1, 2] : _d, a = _e[0], b = _e[1];
286286
var x = (_f = [1, 2], a = _f[0], b = _f[1], _f);
287287
var _a, _b, _c, _d, _e, _f;
288288
}

0 commit comments

Comments
 (0)