Operators overriding

Frankie Bagnardi f.bagnardi at gmail.com
Sun Dec 27 21:42:21 UTC 2015


Generally letting proxies do more things is a good thing, but what would be
the cost in optimizing JITs? It seems like e.g. making `a + b` or `a | 0`
more flexible would also make them slower.  Is this incorrect?

On Wed, Dec 23, 2015 at 3:23 AM, KOLANICH <kolan_n at mail.ru> wrote:

> I dislike this proposal.
> 1 It is not very good to limit overrideable operators to value classes.
> 2 It is not very good to have a lot of custom operators, it will break
> code readability and will allow more efficient obfuscration.
> 3 I think that most of binary non-assigning operators must return a new
> object and thats' why they should be not object methods, but the methods
> taking 2 (or more if chained!) objects and return the result usually of
> same type.
> вторник, 22 декабря 2015г., 21:45 +03:00 от Sander Deryckere <
> sanderd17 at gmail.com>:
>
>
> IMO, operator overloading is important and different enough to warrant a
> separate syntax.
>
> But the difficulty isn't in defining the operator, but in the ambiguous
> cases. Like what to do when there are 2 different types, how to make sure
> certain relations will stay correct, ...
>
> There's a nice presentation from Brendan Eich here:
> http://www.slideshare.net/BrendanEich/value-objects2
>
> Regards,
> Sander
>
> 2015-12-18 21:24 GMT+01:00 KOLANICH <kolan_n at mail.ru
> <https://e.mail.ru/compose/?mailto=mailto%3akolan_n@mail.ru>>:
>
> Hello. What do you think about overriding operators using proxies?
>
> For example
> function A(r=""){
> this.rep=r;
> return new Proxy(this,{operators:{"+":function(a,b){return new
> A(a.rep+"+"+b.rep);}}});
> }
> let a=new A("a"), b=new A("b");
> let c=a+b;
> console.log(c.rep);//a+b
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> <https://e.mail.ru/compose/?mailto=mailto%3aes%2ddiscuss@mozilla.org>
> https://mail.mozilla.org/listinfo/es-discuss
>
>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20151227/e51bce82/attachment.html>


More information about the es-discuss mailing list