Direct eval also works in strict mode. Such restrictions are used for things like CSP, not language safety/sanity.
On Sat, Dec 16, 2017, 12:16 Michał Wadas <[email protected]> wrote: > Isn't direct eval working like this only in sloppy mode (and modules are > always strict)? > > On 16 Dec 2017 6:20 am, "Jordan Harband" <[email protected]> wrote: > >> If you intend to use both Rollup and `import *`, be aware that when >> rollup's current approach, as I understand it, is either a) it statically >> knows with confidence which names off a ModuleRecord you use, and >> treeshakes the rest out; or b) it knows with confidence that you're >> reflecting on the ModuleRecord, and treeshakes nothing, or c) it's not >> certain, so it treeshakes out named exports that you may be relying on. >> >> On Fri, Dec 15, 2017 at 9:00 PM, Isiah Meadows <[email protected]> >> wrote: >> >>> And Rollup already does this (although with less dramatic renaming). >>> >>> On Fri, Dec 15, 2017, 23:40 Jérémy Judéaux <[email protected]> >>> wrote: >>> >>>> One of the first assumptions in this discussion is that “Star imports >>>> prevent treeshaking” >>>> >>>> >>>> >>>> But thinking about it, I don’t see why tools cannot transform >>>> >>>> ```js >>>> >>>> import * as L from './lib'; >>>> >>>> console.log(L.foo, L.bar()); >>>> >>>> ``` >>>> >>>> To >>>> >>>> ```js >>>> >>>> import {foo as $$generated$$1$$foo$$, bar as $$generated$$1$$bar$$} >>>> from './lib'; >>>> >>>> console.log($$generated$$1$$foo$$, $$generated$$1$$bar$$()); >>>> >>>> ``` >>>> >>>> And then apply tree-shaking. As long as the code doesn’t contain >>>> something like `Object.keys(L)` it should be fine. >>>> >>>> >>>> >>>> At least that’s for the concept, maybe tools have better ways to do it. >>>> >>>> So I tried, webpack 3 + babel 7 beta. And it works. A very big function >>>> I put inside my lib.js only get exported if I use `Object.keys(L)` >>>> >>>> >>>> >>>> With treeshaking working with star imports, are there still benefits of >>>> the proposed syntax? >>>> >>>> >>>> _______________________________________________ >>>> 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 >> >>
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

