On Sep 9, 2010, at 8:46 AM, Dean Landolt wrote:
> On Thu, Sep 9, 2010 at 10:32 AM, Brendan Eich <[email protected]> wrote:
> On Sep 9, 2010, at 1:09 AM, Dmitry Soshnikov wrote:
>
> > Thus the site's combined file won't be globally strict, however since a lib
> > is tested before a production release (at least I hope so ;), then the
> > lib's code should pass the strictness, and therefore, a "use strict" may be
> > even removed from the lib's file. However, if not to remove, then an empty
> > statement is enough.
>
> That does not disable strict mode. The problem at real sites including an
> intel.com property is that subsequent parts of the concatenation have had
> strict mode errors.
>
>
> > ;/*1st lib*/"use strict";eval = 10;/*2st lib*/"use
> > strict";arguments=20;/*our code*/
>
>
> An example showing the problem would need a "use nonstrict"; directive after
> the first part of the concatenation, but there is no such directive.
>
>
> I recall reading that the "use strict"; directive was block-scoped. Is this
> true? If so, there's no need for function wrappers -- putting each script in
> its own block is easy and should have no ill effects on concatenation, right?
No, the "use strict"; directive is meaningful only at top of program and
function bodies. See ES5 14.1:
14.1 Directive Prologues and the Use Strict Directive
A Directive Prologue is the longest sequence of ExpressionStatement productions
occurring as the initial SourceElement productions of a Program or FunctionBody
and where each ExpressionStatement in the sequence consists entirely of a
StringLiteral token followed a semicolon. The semicolon may appear explicitly
or may be inserted by automatic semicolon insertion. A Directive Prologue may
be an empty sequence.
You may be thinking of ES4-era unquoted use strict; pragma syntax, which was
block scoped. In Harmony, use ...; should be a block-scoped pragma -- real
syntax, no quotes.
/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss