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
_______________________________________________
dev-tech-js-engine-rhino mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino

Reply via email to