None of this addresses the "climbing the meta ladder" observation/
objection from Waldemar. The mirages approach based on mirrors may
-- Mark cited this paper:
http://prog.vub.ac.be/Publications/2007/vub-prog-tr-07-16.pdf
In a nutshell: mirages mitigate some of the issues with meta-regress
by requiring the 'catch-all handler' to be attached to an object when
the object is defined. Think of a mirage as an object with a
statically-known catch-all handler. Hence, it is known at compile-time
whether or not an object's property access should be intercepted and
even which specific operations (has,get,set,invoke,...) are redefined.
Primitive actions performed on mirages can still run arbitrary code,
but the scope of the problem is restricted to mirages, not to
arbitrary objects.
While there are uses of catch-all handlers for which the static
binding of the handler is not an issue, for other use cases it
probably is. Statically binding the catch-all handler to an object
requires foresight on behalf of the creator of the object: it's not
possible to bind a catch-all handler to an object after it has been
created.
For those that would still be interested in reading the paper: it is
largely superseded by the following journal article: dx.doi.org/
10.1002/spe.909 (if you are interested in the full-text pdf, I can
send it to you)
Kind regards,
Tom
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss