John J Barton wrote:
Thanks!

  I guess I should ended my question this way: ...and because
developers want to write code that works in browsers and not, perhaps
ES can have a solution that is not as silly as the ones we are using
now.

I'm not sure what the problem is -- I read the old thread, and noticed the solution:

/var global = Function("return this")();/


This is good for any code mode, strict or non-strict. Does CSP ban Function as well as eval?

But really, what's wrong with the old chestnut of capturing the global early at top level?

/var global = this;/


and using that name, or passing its value around, as needed?

It's not as if one must be able to utter an expression deep in a function nest to get a global -- or as if there is any identifier that might not be shadowed. We are not going to add a special syntactic form for "the global". So I don't think the solutions available or "silly", or the problem is exactly what this thread makes it out to be.

But possibly I misunderstood the problem.

/be


jjb

On Thu, Aug 23, 2012 at 6:41 PM, Andrea Giammarchi
<[email protected]>  wrote:
the non eval solution for ES3 is

var global = function(){return this}();

and not with eval ...

In ES5 usually window is not writable/configurable but enumerable so
theoretically you can rely in the `window` object unless your code is not
evaluated through eval inside a function with a window variable redefined.

On Thu, Aug 23, 2012 at 11:59 PM, John J Barton
<[email protected]>  wrote:
Long ago this list had a subject:

How to retrieve the global object in strict mode?
https://mail.mozilla.org/pipermail/es5-discuss/2011-February/003919.html

Roughly the conclusion was:

   var global = ("global", eval)("this");

However Content Security Policy


https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html

bans 'eval', (as well as all similar forms) making this solution fail.

Is there a non-eval based solution?

jjb
_______________________________________________
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

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to