More than one case: <script> var foo = f() typeof foo // object foo instanceof Object // false
var bar = g() typeof bar //undefined bar instanceof Object //true bar() // </script> You could probably guess what the value of foo is. Can you guess what the second is in any useful way? From: Jordan Harband <ljh...@gmail.com> Sent: Saturday, July 27, 2019 3:56 PM To: Michael Haufe <t...@thenewobjective.com> Cc: es-discuss@mozilla.org Subject: Re: Proposal: Typeof Trap With something that while unintuitive in one case, is eternally robust and reliable. If you want extensibility, define Symbol.toStringTag on your objects. On Sat, Jul 27, 2019 at 1:23 PM Michael Haufe <t...@thenewobjective.com<mailto:t...@thenewobjective.com>> wrote: If it's unfixably broken[1], non-extensible, excessively vague, and non-orthogonal, where does that leave you? [1] <https://twitter.com/BrendanEich/status/798317702775324672> From: Jordan Harband <ljh...@gmail.com<mailto:ljh...@gmail.com>> Sent: Saturday, July 27, 2019 3:00 PM To: Michael Haufe <t...@thenewobjective.com<mailto:t...@thenewobjective.com>> Cc: ViliusCreator <viliuskubilius...@gmail.com<mailto:viliuskubilius...@gmail.com>>; es-discuss@mozilla.org<mailto:es-discuss@mozilla.org> Subject: Re: Proposal: Typeof Trap Those two PRs are about removing implementation-defined behavior from `typeof`, making it *more* reliable - there is no trend away from using and relying on `typeof`, full stop. `Symbol.hasInstance` is a part of why `instanceof` is actually unreliable - because user code can hook into it. It would be a massive loss imo if `typeof` lost its bulletproof status by adding a user hook. On Sat, Jul 27, 2019 at 12:37 PM Michael Haufe <t...@thenewobjective.com<mailto:t...@thenewobjective.com>> wrote: The trend seems to be to rely on typeof less and less as time passes: From the March 2019 Agenda <https://github.com/tc39/agendas/blob/274e49412c09f81a0a82f386e6eead481c69adad/2019/03.md>: “Implementation-defined typeof still necessary?” <https://github.com/tc39/ecma262/issues/1440> “Normative: Remove implementation-defined typeof behavior” <https://github.com/tc39/ecma262/pull/1441> The only real discussion around this I can find is from a related proposal from Brendan Eich a few years ago: https://esdiscuss.org/topic/typeof-extensibility-building-on-my-value-objects-slides-from-thursday-s-tc39-meeting From: ViliusCreator <viliuskubilius...@gmail.com<mailto:viliuskubilius...@gmail.com>> Sent: Saturday, July 27, 2019 2:04 PM To: Michael Haufe <t...@thenewobjective.com<mailto:t...@thenewobjective.com>> Subject: RE: Proposal: Typeof Trap Yes, but it traps `typeof `, not `instanceof`. There’s difference there. _______________________________________________ es-discuss mailing list es-discuss@mozilla.org<mailto:es-discuss@mozilla.org> https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss