1function Inner() { 2 this.i = 0; 3 this.doStuff = function() { 4 this.i++; 5 if (this.i > 10000) 6 this.isDone(); 7 } 8} 9 10var foo = function() { 11 var inner = new Inner(); 12 var done = false; 13 inner.isDone = function() { 14 done = true; 15 } 16 17 while (true) { 18 var val = inner.doStuff(); 19 if (done) 20 break; 21 } 22} 23 24foo(); 25