How to modify the scope chain without `with` ?

/#!/JoePea joe at trusktr.io
Tue Feb 16 17:16:59 UTC 2016


/#!/JoePea
On Feb 16, 2016 9:13 AM, "/#!/JoePea" <joe at trusktr.io> wrote:
>
> Seems like changing the global could lead to problems where a developer
might assumes certain globals but hey

I meant: "but have" different ones. Importing things explicitly into
modules (instead of (inherited) globals) helps better understand the
requirements of a given piece of code imo.

> different ones, which imho could make the use of globals even messier. I
imagine you would like Angular's $scope inheritance, which is sort of like
what you want (
https://github.com/angular/angular.js/wiki/Understanding-Scopes).
>
> /#!/JoePea
>
> On Feb 16, 2016 9:10 AM, "/#!/JoePea" <joe at trusktr.io> wrote:
>>
>> But then, you might as well start using modules and properly scoping
variables, as that will lend to much more readable code.
>>
>> (Sent again, wrong "from")
>>
>> /#!/JoePea
>>
>> On Feb 16, 2016 7:57 AM, "Coroutines" <coroutines at gmail.com> wrote:
>>>
>>> On Tue, Feb 16, 2016 at 7:45 AM, Michał Wadas <michalwadas at gmail.com>
wrote:
>>> >
>>> > 2016-02-16 15:51 GMT+01:00 Coroutines <coroutines at gmail.com>:
>>> >>
>>> >> Having the ability to derive from "global" (only in Node) and
>>> >> prepare an Object to run an function within as its global context
>>> >> would be an invaluable ability. (imo)
>>> >
>>> >
>>> >
>>> > It seems like an obvious idea, but in fact it's almost impossible to
secure
>>> > - consider `true.constructor.constructor("alert('XSS')")()`
>>> > ECMAScript lacks secure sandbox that would work in every browser, but
such
>>> > limited scope manipulation is totally useless as "secure sandbox".
>>> >
>>> > BTW, such limited scope manipulation is already possible, see how my
library
>>> > works there -
>>> >
https://github.com/Ginden/reflect-helpers/blob/master/tests/closures.js#L14
>>> > (it heavily uses `eval`).
>>> >
>>> > Sending again because of wrong "to".
>>> >
>>>
>>> Okay - different argument: if you can provide actual environment
>>> inheritance you can avoid collisions assigning to the "global scope".
>>> _______________________________________________
>>> es-discuss mailing list
>>> es-discuss at mozilla.org
>>> https://mail.mozilla.org/listinfo/es-discuss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20160216/cc78159b/attachment.html>


More information about the es-discuss mailing list