typeof extensibility, building on my Value Objects slides from Thursday's TC39 meeting
brendan at mozilla.com
Sun Aug 4 09:23:58 PDT 2013
Brandon Benvie wrote:
> On Aug 3, 2013, at 8:25 PM, Brendan Eich<brendan at mozilla.com> wrote:
>> Value objects are non-extensible, no-own-property (so effectively frozen), compare-by-value objects.
> So, importantly, only one of the two existing commonly used tests for 'objectness' will continue to work correctly in the face of value objects. The first being a test that typeof is "object" or "function" that's not null, will continue to work.
You must mean by 'objectness' reference-not-value semantics -- typeof
returning "object" or "function" and the user ruling out null value (or
opting into "null" result) doesn't do a thing to reject non-extensible,
no-own-property objects of course.
> The second `Object(value) === value` would no longer work because a value object will return itself from `Object`.
Yes, that's important. We don't want wrappers, they are the greater evil.
More information about the es-discuss