Test Range

Benchmark created on


Test runner

Ready to run.

Testing in
TestOps/sec
Generator Symbol.iterator
class Range1 {
	constructor(start, end) {
		this.start = start;
		this.end = end;
	}
	
	*[Symbol.iterator]() {
		for (let i = this.start; i <= this.end; ++i) {
			yield i;
		}
	}
}

const range = new Range1(0, 1000);
for (const value of range) {
	console.log(value);
}

ready
Iterator Symbol.iterator
class Range2 {
	constructor(start, end) {
		this.start = start;
		this.end = end;
	}
	
	[Symbol.iterator]() {
		let i = this.start;
		const end = this.end;
		return {
			[Symbol.iterator]() {
				return this;
			},
			next() {
				return { done: end < i, value: ++i };
			}
		}
	}
}

const range = new Range2(0, 1000);
for (const value of range) {
	console.log(value);
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.