Claude Pache wrote:
Fixing `typeof` of old (null) and new value types would be a
solution, but I'm rather definitely considering something like the
defunct `Object.isObject()`. (As a side-note, I suggest `typeof
uint64(0) === "number"` rather than `=== "object"` by default.)
That will make for bugs where number (double) loses precision, and other
bugs where int64 carries too many bits of significand. It also violates
the two-way
(typeof x == typeof y && x == y) <=> (x === y)
which we want for 0 == 0L, 1 == 1L, etc. (and consider other value
types; this goes back to our work with Sam Ruby for IBM on decimal in
2008-9).
But here is a potential good use of customisable `typeof`: I expect
that sometimes you do not want to distinguish between int64, bignum,
etc. (set typeof to "number" for all cases), but sometimes you do want
to distinguish between them (set distinct typeof values). For this
case, the scope of the modification should definitely be lexical, not
dynamic.
We're not going to mix non-double numeric types -- types whose values do
not project losslessly into IEEE-754 double -- as "number".
/be
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss