Brendan Eich (2014-01-14T19:55:46.000Z)
domenic at domenicdenicola.com (2014-01-22T19:31:11.981Z)
Kevin Smith wrote: > Work to disable implicit conversions? Can you clarify? It's a gleam in my eye, at least. Some day we may enable users to choose to get exception, not `toString`, on `myUrl == "haha"`. Details TBD, and not via `valueOf`/`toString` hacking (which doesn't quite work). > I'm actually quite wary (so far) of allowing the user to override an > operator whose abstract meaning is already so abstruse. You've seen the rationale, here it is again: `==` is overloadable along with `<` and `<=` to cope with unordered values and to enable common safe comparisons, e.g. `0m == 0`. `!=` and `!` cannot be overloaded, to preserve De Morgan's Laws and other obvious invariants. There is no "abstruseness" in `x == y` when `typeof`-types match. Even when they don't, for numeric types, the relationals and `==` are loose. We won't change that. Adding value objects should afford new numeric types the same expressiveness that number has, or usability impairments will hamper adoption. If it's ok to test `!0` or even `0 == "0"` (yes, I know `==` is not transitive in full), then `0m == 0` or `0n == 0` should be supported too.