export class Object { static is(x: T, y: T): bool { if (isFloat()) { // Float pointing is special we shoulr presere following identities: // 0.0 !=-0.0 // NaN == NaN if (sizeof() == 8) { return ( bool(u32(x != x) & u32(y != y) | u32(reinterpret(f64(x)) == reinterpret(f64(y)))) ); } else { return ( bool(u32(x != x) & u32(y != y) | u32(reinterpret(f32(x)) == reinterpret(f32(y)))) ); } } // For references, strings, integers and booleans return x == y; } }