A summary of the discussion.
Pros: -- current large implementations already satisfy this. I've tested it on: Firefox 2, Firefox 3, Safari 3.2.1, IE6, IE7, the latest Opera, SquirrelFish Extreme, TraceMonkey and V8. -- It is powerful. When combined with a parser like Crockford's one can use some powerful meta-programming techniques commonly only found in languages like Scheme and LISP. -- It should not be that hard to implement. Cons: -- There are some smaller implementations which do not satisfy this semantic property. -- It would perhaps add more complexity to implementations and it is hard to test true equality of functions so you would have to prove it correct ;-) -- It would require implementations to keep a decompilable version of the function around. This may not be appropriate for implementations running on memory-constrained devices. I would really like to stay on track, discussing whether or not it is a possible addition to 3.1. Are the pros outweighing the cons? Proposal: To extend section 15.3.4.2. Function.prototype.toString ( ) with something similar to the following paragraph. For any function f and any values x1, x2, ... , xn, whenever eval(f.toString()) is called in the same scope f was defined, we have eval(f.toString())(x1,x2,...,xn) === f(x1,x2,..., xn). /Karl _______________________________________________ Es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

