Inline. On Thu, Jan 19, 2017, 03:26 Claude Pache <[email protected]> wrote:
> Le 17 janv. 2017 à 23:48, Isiah Meadows <[email protected]> a écrit : > > Out of curiosity, why are classes specified to have a [[Call]] internal > method instead of special-casing `typeof` and friends to work with them? > Somewhat of a tangent, but just a curious question on the design decision. > > I guess that class constructors could have been specified without a > [[Call]] internal method, with the cost of amending all the places where > “constructible” implicitly implies “callable”. > FWIW, calling methods that don't have [[Call]] already throws a TypeError. So it wouldn't affect necessarily all sites, especially if you continue to check for [[Call]] in `Array.prototype.forEach` (like what is currently done), etc. But why (and how) do you need “special-casing `typeof` and friends”? (The > way the question is formulated, avoiding special-casing would be an > argument for the current design. But I miss what are the special cases you > have in mind, especially regarding `typeof`.) > I was specifically referring to `typeof (class {}) === "function"`. The "and friends" was in reference to things like the callback in `Array.prototype.forEach`, which IIUC doesn't currently throw for classes if the array has no members. Sorry for the poor phrasing there. > —Claude >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

