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

Reply via email to