The intent of this option is to toggle module interop behavior. When `true`
no `interopRequireXXX` helper invocations will be emitted.
(cherry picked from commit 0d1edb9811694d25df2ef75a1e8de773624ec6b8)
* Fix buildExportAll to account for commonjs/amd
If the re-exported module was generated with Babel and it is a commonjs or amd module and so is the current module, this will result in an attempt to redefine the __esModule property, which throws a runtime error.
* Add test: don't overwrite __esModule on re-export
(Failing.)
* fixup tests
* Add fix for systemjs
The untransformed `let` keyword causes problems for older parsers. I
understand using `let` instead of `var` ensures each getter function has
its own binding for the KEY variable, but the same can be accomplished
(with less code) using a `.forEach` callback function, and this way
there's no need to worry about generating a unique name for the `key`
variable.