Empty for loop - for(;;)

javascript

Solution

No, it is not true.

See: https://developer.mozilla.org/en/JavaScript/Reference/Statements/for

condition

An expression to be evaluated before each loop iteration. If this expression evaluates to true, statement is executed. This conditional test is optional. If omitted, the condition always evaluates to true. If the expression evaluates to false, execution skips to the first expression following the for construct.

I should perhaps give a link to ECMAScript reference, but I'm pretty sure it states more or less same thing.

Problem

I was exploring the Google Closure Compiler, and one thing I noticed was that it converts `while(true)` into `for(;;)`. Both do hang the browser, but why does the empty `for` loop not break out of itself immediately? The second part of it is empty, and therefore falsy. Isn't it true that when the second part is falsy, the `for` loop stops and execution continues with code which comes after the `for` loop? Could someone perhaps give an explanation for this?

Original source