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.
|
||||
*/
|
||||
function visitForInitializer(node: ForInitializer): ForInitializer {
|
||||
if (!node) {
|
||||
return node;
|
||||
}
|
||||
|
||||
if (shouldHoistForInitializer(node)) {
|
||||
let expressions: Expression[];
|
||||
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