What if you used a target parameter to indicate assignment?
```js
operator +(a, b, target = new obj()) {
target.val = a.val + b.val;
return target;
}
// or... no arrow functions...
operator +(other, target = new obj()) {
target.val = this.val + other.val;
return target;
}
// or... just a boolean
operator +(other, assign) {
let target = assign ? this : new obj();
target.val = this.val + other.val;
return target;
}
```
And throw a TypeError if an assignment does not return the same object.
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss