On May 21, 10:03 am, "Ionut G. Stan" <[email protected]> wrote: > Hi, > > I'm trying to implement a custom iterator and want to return different > values depending on the method of iteration (for..in or for each..in). > The problem is that my __iterator__ function receives the "onlyKeys" > parameter as being always true regardless of the for loop used. > > So in Rhino 1.7 release 2 2009 03 22 on Windoes XP SP3 with Java > 1.6.0_13, I have this test case: > > var foo = { > __iterator__ : function(onlyKeys) { > print(keys); > > yield [0, "a"]; > } > }; > > for each (let f in foo) {} > for (let f in foo) {} > > The above will print true for both cases whereas the following (tested > in Firefox 3.0.10) works as expected. > > <script type="application/javascript;version=1.7"> > var foo = { > __iterator__ : function(onlyKeys) { > alert(keys); > > yield [0, "a"]; > } > }; > > for (let f in foo) {} > for each (let f in foo) {} > </script> > > Am I doing something wrong or is it a (known) bug? Hopefully, I'm > doing something wrong. > > Cheers
Yes, this is a bug. I've just committed a fix to CVS: ScriptRuntime.java version 1.312. --N _______________________________________________ dev-tech-js-engine-rhino mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino
