That's my other google account, forgot to switch accounts.
Anyway, I actually am confused again. Since transpiled code gets evaluated with System.register overridden (
https://github.com/systemjs/systemjs/blob/master/dist/system.src.js#L361 ) to ignore the usual chain of things happening, I don't see how any transpiled code works ever. Where does the overridden System.register kick things into `defined`?
And furthermore, where on earth does anything ever get put into the module table, ever? finishLoad shouldn't put things in the module table except with the debug mode (execute: false). Yet, all the modules go into the module table eventually ...
I could imagine that .declare() involves some kind of System.set, or perhaps during the transpilation process System.set gets called, but I don't know how dynamic modules work, it turns out.
Here's how I would describe the loading process:
User calls 'import', which kicks in the ES6-module-loader Locate-Fetch-Translate-Instantiate cycle. Each part of the cycle calls the SystemJS chains named for the step. This does a bunch of logic, and ultimately more or less sets some loads, entries, and dependencies. LinkSets get built. Dependencies begin their resolution process at the top level, where the es6-module-loader enters a `requestLoad` cycle that kicks into the Locate-Fetch-Translate-Instantiate cycle. .execute() and .declare() functions get defined for dynamic and declarative modules, respectively (although how declarative modules can go through this process with register overridden, I don't know). The es6-module-loader has a module.execute() created by instantiate which invokes the linker. The linker needs everything `defined`, and, working on a linkSet, turns dependencies into a tree of alternating dynamic-declarative modules (I'm not 100% sure why that is necessary). The dependencies are evaluated. The module is evaluated. The linkSet is resolved. LinkSets are updated. `defined` is cleaned. And, somehow, the module gets put into the module table. ???