detecting JS language mode for tools

John Lenz concavelenz at
Fri Jan 24 09:47:44 PST 2014

On Fri, Jan 24, 2014 at 9:32 AM, David Bruant <bruant.d at> wrote:

>  Le 24/01/2014 18:26, John Lenz a écrit :
>>  REPL is a dilemma: if you parse as module, then obtaining the last
>> expression value is not simple. if you parse as a script, then common
>> cut/paste fails on export/import statements.
>  My basic question remains.  As a tool owner how do I know if what I'm
> looking at is intended to be a Module or a Script?
> How do you know if some code is intended for the browser or Node?
> How do you know some code is intended to be used in a WebWorker and not in
> the main thread?

These don't affect how the code is parsed or the behavior of the language

>  How do you know the code won't be concatenated a "use strict" when
> someone else uses it?

This is an assembly issue and doesn't void intent.    If it is true you
won't be able "import" from a script, it is very reasonable to want to warn
about this.

> The code itself lacks the context in which it's being loaded (hence very
> defensive patterns like UMD (Universal Module Definition)).
> If you want to be exhaustive, you'll have to make an assumption or make
> your tool smarter about the context.

I want it to be "smarter" about the context, but smarter means knowing
without being told.  Having a different set of reserved words (between
"loose" and "strict" mode) means this is a parser issue.

> David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list