Yep! By making modules static, we introduce much cleaner ways of sharing constants. Responding to Claus in a sec...
Dave On May 20, 2011, at 3:21 PM, Kam Kasravi wrote: > This is sort of an interesting point. In a related question I've wondered > about how narcissus could use modules in lieu of > its current way of eval'ing definitions.const in jslex and jsparse in order > to get the operators, tokens and keywords in local scope > for both the lexer and the parser. If narcissus were to take advantage of > harmony could jsparse, jslex do an 'import jsdefs.consts' as an alternative? > > From: Claus Reinke <claus.rei...@talk21.com> > To: David Herman <dher...@mozilla.com> > Cc: es-discuss@mozilla.org > Sent: Friday, May 20, 2011 2:51 PM > Subject: Modules first or second class (Re: I noted some open issues on > "Classes with Trait Composition") > > > I think "modules are a construct that evaluates to an object" is the wrong > > way to think about them. Syntactic modules are a second-class construct > > that is not an expression. You can reflect on modules at runtime, and that > > reflection is provided as an object, but that's because almost all compound > > data structures in JS are objects. But I would advise against describing > > modules as a kind of object. > > Just a note on this: for me, that means Harmony modules > are a step back from what I can implement in JS/now. Not > having first-class modules has been a major drawback in > Haskell (which has a strictly 1980s-style module system), > leading to all kinds of work-arounds. > One of these workarounds, which I expect to see and use > a lot in Harmony, is to have first-class modules-as-records > (or objects) inside second-class built-in-modules. > > Is this an intended outcome of the Harmony module design? > > For instance, I've got a parser-combinator library and > a (near) ES5 grammar built on it, and to test, I pass one > module to the other, and both modules to the tester: > > test(source, options, pc, grammar(pc)) > > Strictly speaking, the pc module also depends on the grammar module, for > grammar-specified whitespace, > but cyclic structures are a bit awkward in Javascript. > > Claus > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss