Am Samstag, 9. Juli 2011, 17:24:11 schrieb bugzilla-dae...@bugzilla.wpkg.org: > Just fixed another issue with LCID matching which caused some variable > scope clash in WSH (maybe WSH bug). If WSH for loops are nested and > internal for loop uses same local variable it overwrites the outer for > loop variable: > > for (var i=0; i<x; i++) { > for (var i=0; i<y; i++) { > } > } > The inner for loop will change "i" of the outer one. > > Worked around by simply renaming variables.
Not a WSH bug. In JS, var always has function (or eval) scope. The variable is even defined before its declared, only the value is not yet assigned: function foo() { // at this point, an object named "x" already exists in foo()'s execution context and has an undefined value var x = 42; // now 42 is assigned to that very object var x = 23; // new value, but still the same object named "x" for (var x = 0; x < 12; ++x) { // x iterates from 0 to 12, overwriting the object introduced at the beginning of foo() for (var x = 0; x < 12; ++x) { // same } } } Loops don't introduce their own scope as they do in C++. FWIW, see sec. 10.3, 10.5, and 12.2 of http://www.ecma- international.org/publications/files/ECMA-ST/Ecma-262.pdf Cheers, Malte ------------------------------------------------------------------------- wpkg-users mailing list archives >> http://lists.wpkg.org/pipermail/wpkg-users/ _______________________________________________ wpkg-users mailing list wpkg-users@lists.wpkg.org http://lists.wpkg.org/mailman/listinfo/wpkg-users