typeof extensibility, building on my Value Objects slides from Thursday's TC39 meeting

Brendan Eich brendan at mozilla.com
Sun Aug 4 09:25:26 PDT 2013


Brandon Benvie wrote:
> On Aug 3, 2013, at 9:03 PM, Brandon Benvie<bbenvie at mozilla.com>  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. The second `Object(value) === value` would no longer work because a value object will return itself from `Object`.
>
> This brings up another question I hadn't thought of: the interaction between value objects and WeakMaps. A value object with an overridden strict equality comparison (is this on the table for builtin types?) can't be WeakMap keys probably.

s/probably/definitely/

This is covered already, see 
http://wiki.ecmascript.org/doku.php?id=strawman:value_objects#weakmaps 
(note Object.isValue mention there).

/be


More information about the es-discuss mailing list