function range(min,max){
return{
get min(){return min;},
get max(){return max;},
includes: function(x){
return min <=x && x <= max;
},
toString:function(){
return "[" + min + "," + max + "]";
},
__iterator__: function(){
let val = Math.ceil(min);
return {
next: function(){
if(val > max){
throw StopIteration;
}
return val++;
}
};
}
};
}
for(let i in range(1,10)) console.log(i);