export class Object { static is(value1: T, value2: T): bool { if (isFloat()) { if (value1 == value2) { // 0 === -0, but they are not identical if (sizeof() == 8) { // @ts-ignore: typecast return reinterpret(value1) == reinterpret(value2); } else { // @ts-ignore: typecast return reinterpret(value1) == reinterpret(value2); } } // NaN !== NaN, but they are identical. // @ts-ignore: typecast return bool(i32(isNaN(value1)) & i32(isNaN(value2))); } // For references, strings, integers and booleans return value1 == value2; } }