Advice/Timeline on using Value Objects?

Tab Atkins Jr. jackalmage at gmail.com
Thu Jan 23 17:24:47 PST 2014


On Thu, Jan 23, 2014 at 4:25 PM, Brendan Eich <brendan at mozilla.com> wrote:
> Tab Atkins Jr. wrote:
>> Using value objects would make this explicit, and would allow
>> convenient operator overloading, so you can do:
>>
>> var x = CSS.px(5);
>> var y = CSS.px(10);
>> var z = x + y;
>
>
> With value objects, you could do even better:
>
>   // something declarative to import suffix px as CSS.px here
>
>   let x = 5px;
>   let y = 10px;
>   let z = x + y;

Ooh, I didn't realize suffixes were extensible!  That looks *amazing*.

>> I'm okay with this being 1 or 2 years down the road.
>
> That's my time frame, and ES7's.

Cool.

>> Alternately, how close can I get to truly immutable objects?  I want
>> something that can't be expando'd or altered in any way, so our impl
>> can share objects when possible.
>
> Without value objects, you have reference-based identity, so
>
>   CSS.px(5) !== CSS.px(5)
>
> No bueno. You want value objects. Working on it for next week's TC39
> meeting.

Yup, indeed.  Looking forward to this!

~TJ


More information about the es-discuss mailing list