On Mar 3, 2011, at 5:33 PM, Waldemar Horwat wrote: > If we're saying that Harmony is strict-only, settable by a <script> tag, what > will indirect eval and the Function constructor do if the evaluated code > doesn't start with a "use strict" directive?
Yeah, "strict-only" is probably not quite the right way to describe it. We discussed this a bit at the last face-to-face. Generally, Harmony still has to allow for the existence of non-Harmony code living and executing in the same heap. For example, a web page can contain <script type="application/javascript">...</script> <script type="application/javascript?version=HARMONY">...</script> and the bindings of both can see each other. If I remember right, the semantics we've talked about is that indirect eval defaults to ES5 non-strict. So the answer to your question is: the indirect-eval'ed code is non-strict. So I think it might be a little misleading to say Harmony is strict-only. It's a little more accurate to say that by default, Harmony code assumes the restrictions of ES5 strict mode and builds from there. However, it is possible to access and evaluate non-strict code via indirect eval, or -- in the browser setting, for example -- via access to code defined in non-Harmony. Dave _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss