Advice/Timeline on using Value Objects?

Brendan Eich brendan at
Thu Jan 23 16:25:39 PST 2014

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;

> I'm okay with this being 1 or 2 years down the road.

That's my time frame, and ES7's.

> 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 


More information about the es-discuss mailing list