<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">   <script src="/assets/add_blaster.js"><br>
    <script><br>
    module main {<br>
      import go from "add_blaster";<br>
      console.log(go(4,5));<br>
    }<br>
    </script><br></blockquote><div><br></div><div>That's *not* what I'd call a "forward-compatible" solution since you still have to use the script tag prior to importing.  What's needed is a way to tell the loader that "add_blaster" can be fetched from "/assets/add_blaster.js".</div>
<div><br></div><div>I believe that's what James is referring to: a declarative set of mappings that inform the loader where to fetch certain modules from.  Creating a custom loader which overrides the default loader's resolve behavior is going to be too much work for this simple use case.  That's the argument, anyway.  If it's not difficult, then I think we as a community need to see examples of how that would work.</div>
<div><br></div><div>It seems that a better way to enable forward-compatibility would be to provide an imperative way to set the exports of the current module:</div><div><br></div><div>    if (this.System)</div><div>      System.setCurrentModuleExports({ ... }); // A shorter name, of course!</div>
<div><br></div><div>The "forward-compatible" module is then relieved of the necessity of naming itself using some arbitrary module name (which would obviously pollute the global module namespace: not acceptable).</div>
<div><br></div><div>Trying to keep this message short, but it seems to me that once we allow the possibility of custom loader behavior (even as simple as declaratively remapping URLs), then the arguments for static import/export start to fall apart.  In order to keep the supposed benefits of static analysis, our tools (i.e. IDE) are going to have to be aware of that custom loading behavior to continue to be useful.  And if modules are dynamically injected into the module namespace with System.set, then static analysis (and the typo-checking that is deemed so important) is completely "out-the-window".</div>
<div><br></div><div>Does this indicate that the static analysis arguments are on shaky ground?</div><div><br></div><div>- Kevin</div></div>