Andreas Rossberg (2013-07-15T14:03:51.000Z)
domenic at domenicdenicola.com (2013-07-18T16:20:22.152Z)
On 15 July 2013 15:49, Jeremy Martin <jmar777 at gmail.com> wrote: > Not sure I follow... so, I either I don't agree or I don't understand :). > I'm having to dig deep to remember my math vocab here, but I think it may be > most correct to say that the Symbol constructor, when passed an argument, > should be injective [1]. I agree, but the problem is that JavaScript's `===` is not an equivalence relation, due to the dreaded `NaN !== NaN` that IEEE invented in some delirium. So you cannot define injectivity based on it. You merely get an implication for the above, which is what the `>=` was supposed to encode. `Object.is` OTOH implements a proper equivalence relation, i.e. a "=" in the mathematical sense. It only differs from `===` by having a sane semantics for `NaN`. But as I said, I was merely picking a nit.