On Jan 18, 2010, at 10:20 AM, Mark S. Miller wrote:

I simply don't understand what you mean by the phrase "migrate into a module". What does this mean?

Use on the inside of a module. I have code I want to put in a module. It uses Prototype. That's all.

Why is this hard to understand? Are you assuming modules are small, and/or consisting of new code only?

/be


On Mon, Jan 18, 2010 at 10:13 AM, Brendan Eich <[email protected]> wrote:
On Jan 18, 2010, at 9:57 AM, Mark S. Miller wrote:

No, I wrote "migrate into a module" meaning be part of the inside of a module -- not be packaged as a module.

I don't get it. What do you have in mind?

What's not to get? If you use Prototype inside a module, it will mutate "the primordials" -- whatever ones it finds on the global at the end of its scope chain. If those primordials are frozen, game over.

Tons of JS on the web mutates primordials, e.g.:

http://www.google.com/codesearch?as_q=Array.prototype.\w%2B+%3D +&btnG=Search + Code &hl = en &as_lang = javascript &as_license_restrict=i&as_license=&as_package=&as_filename=&as_case=
http://www.google.com/codesearch?hl=en&lr=&q=%22extend%28Array.prototype%22&sbtn=Search

For any such code to move into a module, that code wants mutable primordials. For isolation these would be per-module, and to avoid problems exporting functions, some kind of membrane to support virtualized mutation or throw on mutation attempt would be required around any exposed objects that lead back to in-module prototypes.

Or we could say "rewrite all your code" or "forget it". But that is not a given.

/be




--
   Cheers,
   --MarkM

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to