Handel empty intializer in system module emit
This commit is contained in:
parent
115c008694
commit
74dd1c0558
|
@ -1287,6 +1287,10 @@ namespace ts {
|
||||||
* @param node The node to visit.
|
* @param node The node to visit.
|
||||||
*/
|
*/
|
||||||
function visitForInitializer(node: ForInitializer): ForInitializer {
|
function visitForInitializer(node: ForInitializer): ForInitializer {
|
||||||
|
if (!node) {
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
|
||||||
if (shouldHoistForInitializer(node)) {
|
if (shouldHoistForInitializer(node)) {
|
||||||
let expressions: Expression[];
|
let expressions: Expression[];
|
||||||
for (const variable of node.declarations) {
|
for (const variable of node.declarations) {
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
//// [SystemModuleForStatementNoInitializer.ts]
|
||||||
|
|
||||||
|
export { };
|
||||||
|
|
||||||
|
let i = 0;
|
||||||
|
let limit = 10;
|
||||||
|
|
||||||
|
for (; i < limit; ++i) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; ; ++i) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; ;) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//// [SystemModuleForStatementNoInitializer.js]
|
||||||
|
System.register([], function (exports_1, context_1) {
|
||||||
|
"use strict";
|
||||||
|
var __moduleName = context_1 && context_1.id;
|
||||||
|
var i, limit;
|
||||||
|
return {
|
||||||
|
setters: [],
|
||||||
|
execute: function () {
|
||||||
|
i = 0;
|
||||||
|
limit = 10;
|
||||||
|
for (; i < limit; ++i) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for (;; ++i) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for (;;) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
|
@ -0,0 +1,28 @@
|
||||||
|
=== tests/cases/compiler/SystemModuleForStatementNoInitializer.ts ===
|
||||||
|
|
||||||
|
export { };
|
||||||
|
|
||||||
|
let i = 0;
|
||||||
|
>i : Symbol(i, Decl(SystemModuleForStatementNoInitializer.ts, 3, 3))
|
||||||
|
|
||||||
|
let limit = 10;
|
||||||
|
>limit : Symbol(limit, Decl(SystemModuleForStatementNoInitializer.ts, 4, 3))
|
||||||
|
|
||||||
|
for (; i < limit; ++i) {
|
||||||
|
>i : Symbol(i, Decl(SystemModuleForStatementNoInitializer.ts, 3, 3))
|
||||||
|
>limit : Symbol(limit, Decl(SystemModuleForStatementNoInitializer.ts, 4, 3))
|
||||||
|
>i : Symbol(i, Decl(SystemModuleForStatementNoInitializer.ts, 3, 3))
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; ; ++i) {
|
||||||
|
>i : Symbol(i, Decl(SystemModuleForStatementNoInitializer.ts, 3, 3))
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; ;) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
=== tests/cases/compiler/SystemModuleForStatementNoInitializer.ts ===
|
||||||
|
|
||||||
|
export { };
|
||||||
|
|
||||||
|
let i = 0;
|
||||||
|
>i : number
|
||||||
|
>0 : 0
|
||||||
|
|
||||||
|
let limit = 10;
|
||||||
|
>limit : number
|
||||||
|
>10 : 10
|
||||||
|
|
||||||
|
for (; i < limit; ++i) {
|
||||||
|
>i < limit : boolean
|
||||||
|
>i : number
|
||||||
|
>limit : number
|
||||||
|
>++i : number
|
||||||
|
>i : number
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; ; ++i) {
|
||||||
|
>++i : number
|
||||||
|
>i : number
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; ;) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
//@module: system
|
||||||
|
|
||||||
|
export { };
|
||||||
|
|
||||||
|
let i = 0;
|
||||||
|
let limit = 10;
|
||||||
|
|
||||||
|
for (; i < limit; ++i) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; ; ++i) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; ;) {
|
||||||
|
break;
|
||||||
|
}
|
Loading…
Reference in a new issue