Union type

Benchmark created on


Setup

const map = new Map();
const values = [];
for (let i = 0; i < 10000; i++) {
	values.push(Math.random().toFixed(2));
}
const UNIT_SYMBOL = Symbol();
const UNIT_OBJECT = {};

Test runner

Ready to run.

Testing in
TestOps/sec
null
for (const value of values) {
	map.set(value, null);
}

let duplicates = 0;
for (const value of values) {
	if (map.has(value)) {
		duplicates++;
	}
}
ready
undefined
for (const value of values) {
	map.set(value, undefined);
}

let duplicates = 0;
for (const value of values) {
	if (map.has(value)) {
		duplicates++;
	}
}
ready
0
for (const value of values) {
	map.set(value, 0);
}

let duplicates = 0;
for (const value of values) {
	if (map.has(value)) {
		duplicates++;
	}
}
ready
true
for (const value of values) {
	map.set(value, true);
}

let duplicates = 0;
for (const value of values) {
	if (map.has(value)) {;
		duplicates++;
	}
}
ready
false
for (const value of values) {
	map.set(value, false);
}

let duplicates = 0;
for (const value of values) {
	if (map.has(value)) {;
		duplicates++;
	}
}
ready
Unit Symbol
for (const value of values) {
	map.set(value, UNIT_SYMBOL);
}

let duplicates = 0;
for (const value of values) {
	if (map.has(value)) {;
		duplicates++;
	}
}
ready
Unit Object
for (const value of values) {
	map.set(value, UNIT_OBJECT);
}

let duplicates = 0;
for (const value of values) {
	if (map.has(value)) {;
		duplicates++;
	}
}
ready

Revisions

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