 
         """
     ).join(",\n")
-    # "386389655257694535" is to avoid naming conflict.
     bundleStr = """
+        // `{}` is to guarantee that any subsequent `mod.result` assignment will make
+        // the variable different from the initial value.
         var initialModResult_386389655257694535 = {};
 
         var mods_386389655257694535 = [

                var theExports = {};
                var theModule = {exports: theExports};
                var theRequire = function(name) {
                    mod.result = theModule.exports;
                    var newIndex = mod.nameIndexes[name];
                    if (mods[newIndex].result === initialModResult) {
                        return run(newIndex);
                    } else {
                        return mods[newIndex].result;
                    }
                };
                mod.fun.apply(theExports, [theExports, theModule, theRequire]);
                mod.result = theModule.exports;
                return mod.result;
            };
            run(0);
        })();

            Object.keys(node).forEach((m) -> checkTreeNode(node[m]))
    checkTreeNode(parsed)
#===============================================================================
# "386389655257694535" is to avoid naming conflicts.
writeOutput = ->
    modsBodyStr = mods.map((mod) ->
        """
