<div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif;font-size:small;color:rgb(0,0,0)">I have the very basic problem detailed at <a href="http://stackoverflow.com/questions/38841469">http://stackoverflow.com/questions/38841469</a>, but thought I'd bring it up here because it makes me wonder about the ES6 Module system.</div><div class="gmail_default" style="font-family:georgia,serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:small;color:rgb(0,0,0)">Why is it that the body of module C is not evaluated before the bodies of modules A and B? I'm just wondering, because if that were the case, then it would work and the entrypoint would eventually be evaluated without errors.</div><div class="gmail_default" style="font-family:georgia,serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:small;color:rgb(0,0,0)">A possibility could be that maybe it *should* work, and that my ES6 module environment simply doesn't handle it as it should? (But I'm not familiar enough with the spec, so that's why I'm not sure about that.) </div><div class="gmail_default" style="font-family:georgia,serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:small;color:rgb(0,0,0)">These are the modules, posted here for convenience:</div><div class="gmail_default" style="font-family:georgia,serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:georgia,serif;font-size:small;color:rgb(0,0,0)">```js</div><div class="gmail_default" style=""><div class="gmail_default" style=""><font color="#000000" face="georgia, serif">// --- Entrypoint</font></div><div class="gmail_default" style=""><font color="#000000" face="georgia, serif"><br></font></div><div class="gmail_default" style=""><font color="#000000" face="georgia, serif">import A from './app/A'</font></div><div class="gmail_default" style=""><font color="#000000" face="georgia, serif">console.log('Entrypoint', A)</font></div><div style="color:rgb(0,0,0);font-family:georgia,serif;font-size:small">```</div><div style="color:rgb(0,0,0);font-family:georgia,serif;font-size:small"><br></div><div style="color:rgb(0,0,0);font-family:georgia,serif;font-size:small">```js</div><div style=""><div style=""><font color="#000000" face="georgia, serif">// --- Module A</font></div><div style=""><font color="#000000" face="georgia, serif"><br></font></div><div style=""><font color="#000000" face="georgia, serif">import C from './C'</font></div><div style=""><font color="#000000" face="georgia, serif"><br></font></div><div style=""><font color="#000000" face="georgia, serif">console.log('Module A', C)</font></div><div style=""><font color="#000000" face="georgia, serif"><br></font></div><div style=""><font color="#000000" face="georgia, serif">class A extends C {</font></div><div style=""><font color="#000000" face="georgia, serif">    // ...</font></div><div style=""><font color="#000000" face="georgia, serif">}</font></div><div style=""><font color="#000000" face="georgia, serif"><br></font></div><div style=""><font color="#000000" face="georgia, serif">export {A as default}</font></div><div style="color:rgb(0,0,0);font-family:georgia,serif;font-size:small">```</div><div style="color:rgb(0,0,0);font-family:georgia,serif;font-size:small"><br></div><div style="color:rgb(0,0,0);font-family:georgia,serif;font-size:small">```js</div><div style=""><div style=""><font color="#000000" face="georgia, serif">// --- Module B</font></div><div style=""><font color="#000000" face="georgia, serif"><br></font></div><div style=""><font color="#000000" face="georgia, serif">import C from './C'</font></div><div style=""><font color="#000000" face="georgia, serif"><br></font></div><div style=""><font color="#000000" face="georgia, serif">console.log('Module B', C)</font></div><div style=""><font color="#000000" face="georgia, serif"><br></font></div><div style=""><font color="#000000" face="georgia, serif">class B extends C {</font></div><div style=""><font color="#000000" face="georgia, serif">    // ...</font></div><div style=""><font color="#000000" face="georgia, serif">}</font></div><div style=""><font color="#000000" face="georgia, serif"><br></font></div><div style=""><font color="#000000" face="georgia, serif">export {B as default}</font></div><div style="color:rgb(0,0,0);font-family:georgia,serif;font-size:small">```</div><div style="color:rgb(0,0,0);font-family:georgia,serif;font-size:small"><br></div><div style="color:rgb(0,0,0);font-family:georgia,serif;font-size:small">```js</div><div style=""><div style=""><font color="#000000" face="georgia, serif">// --- Module C</font></div><div style=""><font color="#000000" face="georgia, serif"><br></font></div><div style=""><font color="#000000" face="georgia, serif">import A from './A'</font></div><div style=""><font color="#000000" face="georgia, serif">import B from './B'</font></div><div style=""><font color="#000000" face="georgia, serif"><br></font></div><div style=""><font color="#000000" face="georgia, serif">console.log('Module C', A, B)</font></div><div style=""><font color="#000000" face="georgia, serif"><br></font></div><div style=""><font color="#000000" face="georgia, serif">class C {</font></div><div style=""><font color="#000000" face="georgia, serif">    constructor() {</font></div><div style=""><font color="#000000" face="georgia, serif">        // this may run later, after all three modules are evaluated, or</font></div><div style=""><font color="#000000" face="georgia, serif">        // possibly never.</font></div><div style=""><font color="#000000" face="georgia, serif">        console.log(A)</font></div><div style=""><font color="#000000" face="georgia, serif">        console.log(B)</font></div><div style=""><font color="#000000" face="georgia, serif">    }</font></div><div style=""><font color="#000000" face="georgia, serif">}</font></div><div style="color:rgb(0,0,0);font-family:georgia,serif;font-size:small">```</div></div></div></div></div><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><b style="font-size:12.8px">/#<i>!</i>/</b><font face="courier new, monospace" style="font-size:12.8px">JoePea</font><br></div></div></div>
</div>