>> We wish to avoid another parameter computed potentially differently for each >> call. It will cost > > What costs do you foresee? I am not sure that there is much to > compute. Assume a method call O.m(). Assume "m" is found on an > object P within O's protoype chain. This will result in P.m being > called, for which the "super binding" can simply be computed as > P.[[Prototype]]. Next assume a direct function call, e.g. > f.call(this) or f() (this === undefined), the "super binding" here > could just be calculated as this.[[Prototype]] or undefined if |this| > is not an object.
This may already be what you are suggesting, so to clarify: I would introduce a binding called "here" that points to the object P where m has been found. - Method that uses super: compute super as here.[[Prototype]] - Non-method function that uses super: "here" is undefined, using super causes an error. If super is not used there is little computational cost! (Other than a binding per function call which may still be prohibitive.) -- Dr. Axel Rauschmayer a...@rauschma.de twitter.com/rauschma home: rauschma.de blog: 2ality.com _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss