Who would have thought using completely un-semantic idioms such as |0 and !! would lead to issues down the line? /s
On 28 December 2015 at 14:50, Nicolas B. Pierron < [email protected]> wrote: > This is right, currently code such as "asm js" rely on "a | 0" and > "+a" to force a type interpretation. Having an override means that we > would have to guard explicitly against overridden the operator before > entering these sections of code. > This will increase the cost of cold calls. If this is a frequent > path, then we would have to infer the type as long as possible to > remove such guards. > > Currently, proxies have more important issues in SpiderMonkey, as they > allow to instrument the lookup of properties (which is still in C++) > in a side-effectful way. > > On Sun, Dec 27, 2015 at 9:42 PM, Frankie Bagnardi <[email protected]> > wrote: > > 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 <[email protected]> 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 > >> <[email protected]>: > >> > >> > >> 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 <[email protected]>: > >> > >> 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 > >> [email protected] > >> https://mail.mozilla.org/listinfo/es-discuss > >> > >> > >> > >> _______________________________________________ > >> es-discuss mailing list > >> [email protected] > >> https://mail.mozilla.org/listinfo/es-discuss > >> > > > > > > _______________________________________________ > > es-discuss mailing list > > [email protected] > > https://mail.mozilla.org/listinfo/es-discuss > > > > > > -- > Nicolas B. Pierron > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

