Note: Why to merge Carouhell extension files

The extensions (in any order) need to be loaded JUST AFTER the core code. The reason is that after the core is loaded, setTimeout() (without the second parameter) is used to delay the execution to wait for extensions to load. If the code is not in the browser's cache, it creates a separate HTTP request for each script. This usually takes several milliseconds, so the core loader is executed before the extensions are loaded. You can solve it by increasing the delay (to some 50-100 ms), but this will most likely cause you other nasty issuses. We could also wait for the DOMContentLoaded event which fires after all scripts are loaded. I opted not to for these reasons: