Funcionオブジェクトにiterator

思いつきでやってみた。

var list = ["a","b","c"];
var func = function(){
    for (let i=0; i < list.length; i++){
        yield list[i];
    }
}
func.__iterator__ = func;


print("======================= func()");
for (let i in func()){
    print(i);
}
print("======================= func");
for (let i in func){
    print(i);
}

どちらのfor文も

a
b
c

が出力される。