1
function RangeIterator(range) {
3
this.current = this.range.low;
6
function hasKey(object, key) {
7
var original = object.__proto__, result;
8
object.__proto__ = null;
9
result = key in object;
10
object.__proto__ = original;
14
RangeIterator.prototype.next = function next() {
15
if (this.current > this.range.high) {
18
return this.current++;
22
function Range(low, high) {
27
function SubArray(length) {
28
var result = arguments.length === 1 ? Array(length) : Array.apply(this, arguments);
29
result.__proto__ = SubArray.prototype;
33
SubArray.prototype.__proto__ = Array.prototype;
35
// Nothing wrong with a function named __proto__
36
function __proto__() {
37
return "I have a stupid name!";