Brendan Eich (2014-01-12T05:19:26.000Z)
Axel Rauschmayer wrote:
> http://www.slideshare.net/BrendanEich/value-objects
>
> One thing is not entirely clear from the slides: Will developers be 
> able to define their own value object types? Without that feature I 
> don’t see how overloading operators would be very interesting.

That is out of date compared to


http://www.slideshare.net/BrendanEich/js-resp

specifically slide 15:

http://image.slidesharecdn.com/jsresp-130914140214-phpapp02/95/slide-15-638.jpg?1379296961

which has:

value class point2d { // implies typeof “point2d”
   constructor point2d(x, y) {
     this.x = +x;
     this.y = +y;
     // implicit Object.freeze(this) on return
   }
   point2d + number (a, b) {
     return point2d(a.x + b, a.y + b);
   }
   number + point2d (a, b) {
     return point2d(a + b.x, a + b.y);
   }
   point2d + point2d (a, b) {
     return point2d(a.x + b.x, a.y + b.y);
   }
   // more operators, suffix declaration handler, etc.
}

The idea is to provide convenient declartive syntax for operator 
multimethods that dispatch along the lines proposed by Christian Hansen. 
Some work required to handle subclassing, Christian has been helping, 
writing it up is on my plate for this month.

/be
domenic at domenicdenicola.com (2014-01-17T23:44:57.519Z)
That is out of date compared to

http://www.slideshare.net/BrendanEich/js-resp

specifically slide 15:

http://image.slidesharecdn.com/jsresp-130914140214-phpapp02/95/slide-15-638.jpg?1379296961

which has:

```js
value class point2d { // implies typeof “point2d”
   constructor point2d(x, y) {
     this.x = +x;
     this.y = +y;
     // implicit Object.freeze(this) on return
   }
   point2d + number (a, b) {
     return point2d(a.x + b, a.y + b);
   }
   number + point2d (a, b) {
     return point2d(a + b.x, a + b.y);
   }
   point2d + point2d (a, b) {
     return point2d(a.x + b.x, a.y + b.y);
   }
   // more operators, suffix declaration handler, etc.
}
```

The idea is to provide convenient declartive syntax for operator 
multimethods that dispatch along the lines proposed by Christian Hansen. 
Some work required to handle subclassing, Christian has been helping, 
writing it up is on my plate for this month.