Module isolation

Brendan Eich brendan at
Sun Jan 17 22:49:53 PST 2010

On Jan 11, 2010, at 7:42 PM, David-Sarah Hopwood wrote:

> My facts are straight. FF3.5 replaced one extension with a different,
> incompatible one. That's just as bad (worse, actually) as adding a new
> extension. That it is intended to be temporary only slightly mitigates
> the error.

You wrote "adding", implying the second argument to eval was novel,  
but now with this message you write "replaced". These are not the same  
verbs;  this is not exactly fair play. Were you really aware of the  
age of eval(s, o) in Mozilla when you wrote your original message?

Anyway. The fact remains that we have supported eval(s, o) for over a  
decade. In order to fix the closure scope leak bug, we made an  
obscure, corner-case change that left most code working. Ignoring the  
extension vs. standard issue, this is how compatibility and cleanup  
happen: you break what seems already broken, and see what you can get  
away with during a release process.

The way this was done definitely could have been better, but we could  
not simply remove eval(s, o) by our own API compatibility in minor  
release policy. Thanks for the reminder to update the docs. I'll nag  
the responsible parties.


More information about the es-discuss mailing list