<p dir="ltr">Could you give examples of c)? (I'm aware of direct `eval`, but what else?)</p>
<br><div class="gmail_quote"><div dir="ltr">On Sat, Dec 16, 2017, 00:20 Jordan Harband <<a href="mailto:ljharb@gmail.com">ljharb@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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.</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Dec 15, 2017 at 9:00 PM, Isiah Meadows <span dir="ltr"><<a href="mailto:isiahmeadows@gmail.com" target="_blank">isiahmeadows@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">And Rollup already does this (although with less dramatic renaming).<br><br><div class="gmail_quote"><div><div class="m_9034622026002408147h5"><div dir="ltr">On Fri, Dec 15, 2017, 23:40 Jérémy Judéaux <<a href="mailto:jeremy.judeaux@volune.net" target="_blank">jeremy.judeaux@volune.net</a>> wrote:<br></div></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_9034622026002408147h5">




<div dir="ltr">
<div class="m_9034622026002408147m_3009936795634850603m_-3987029656618325388WordSection1">
<p class="MsoNormal">
<span style="font-family:Calibri,sans-serif;font-size:11pt">One of the first assumptions in this discussion is that “Star imports prevent treeshaking”</span><br>
</p>
<p class="MsoNormal">
<u></u><u></u></p>
<p class="MsoNormal">
<u></u> <u></u></p>
<p class="MsoNormal">
But thinking about it, I don’t see why tools cannot transform<u></u><u></u></p>
<p class="MsoNormal">
```js<u></u><u></u></p>
<p class="MsoNormal">
import * as L from './lib';<u></u><u></u></p>
<p class="MsoNormal">
console.log(L.foo, L.bar());<u></u><u></u></p>
<p class="MsoNormal">
```<u></u><u></u></p>
<p class="MsoNormal">
To<u></u><u></u></p>
<p class="MsoNormal">
```js<u></u><u></u></p>
<p class="MsoNormal">
import {foo as $$generated$$1$$foo$$, bar as $$generated$$1$$bar$$} from './lib';<u></u><u></u></p>
<p class="MsoNormal">
console.log($$generated$$1$$foo$$, $$generated$$1$$bar$$());<u></u><u></u></p>
<p class="MsoNormal">
```<u></u><u></u></p>
<p class="MsoNormal">
And then apply tree-shaking. As long as the code doesn’t contain something like `Object.keys(L)` it should be fine.<u></u><u></u></p>
<p class="MsoNormal">
<u></u> <u></u></p>
<p class="MsoNormal">
At least that’s for the concept, maybe tools have better ways to do it.<u></u><u></u></p>
<p class="MsoNormal">
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)`<u></u><u></u></p>
<p class="MsoNormal">
<u></u> <u></u></p>
<p class="MsoNormal">
With treeshaking working with star imports, are there still benefits of the proposed syntax?<u></u><u></u></p>
<p class="MsoNormal">
<u></u> <u></u></p>
</div>
</div></div></div>

_______________________________________________<span><br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</span></blockquote></div>
<br>_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
<br></blockquote></div><br></div>
</blockquote></div>