I don't think you understand the semantics here -- the Function constructor is
defined as taking a string (ignoring the parameters for now) and returning a
function as though the function was defined in the global scope. No functions
change behaviour based on the strictness of their caller. The only way to make
a string execute as javascript inside the scope of another function is to use
the eval _operator_. These are fundamentally different concepts.
To put it another way, if the Function constructors behaviour was dependent on
the strictness of its caller, i would expect:
document.write("<script>/*code here*/</"+"script>");
to produce an script element that was already in strict mode.
You really need to read the spec, as you seem to be misunderstanding some very
fundamental concepts.
--Oliver
On Nov 16, 2012, at 3:19 PM, Andrea Giammarchi <[email protected]>
wrote:
> back in the topic ... about evaluation: Function('return this')(); returns
> the global object with or without use strict around. This is actually nice,
> since this one was a security problem introduced when somebody decided that
> `this` without an explicit context should have been undefined. Now it is
> possible to retrieve the global object as long as Function is the original
> constructor.
> Said that, I believe this is a bug in every browser. (Webkit, FF, Chrome
> suffering)
>
> Please do not fix, thanks :-)
>
>
> On Fri, Nov 16, 2012 at 2:50 PM, Andrea Giammarchi
> <[email protected]> wrote:
> love this answer, thanks!
>
>
> On Fri, Nov 16, 2012 at 2:47 PM, Jeff Walden <[email protected]> wrote:
> On 11/16/2012 02:37 PM, Andrea Giammarchi wrote:
> > what I am saying: arguments won't disappear in 5+ years, neither will
> > caller ... is my crystal ball correct?
>
> It's not necessary for these things to disappear completely for us to derive
> value from these decisions. It's only necessary for good code, that wants to
> be performant, to not use them.
>
> Jeff
>
>
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss