Besides the @JanMisker point (which is perfectly acceptable), overriding properties is unsafe because they can be exposed to code outside the mini-code area.
Although the self-executing function has a scope, and if the code only
(function() { var root = { api:{}, core:{}, names:{} }; root.names.SOME_LONG_NAMED_CONST='Angel'; alert(root.names.SOME_LONG_NAMED_CONST);
It is true that outside the function there is no access to the root object, so overriding property names is safe, and the following code will do the same:
(function() { var a = { b:{}, c:{}, d:{} }; ade='Angel'; alert(ade); })();
But even if you are in your private area, you can access and, more importantly, assign variables from the outside area! Imagine the following:
(function() { var root = { api:{}, core:{}, names:{} }; root.api.perform = function(param_for_api) { } window.lib_name = root.api; })();
You not only expose a function, but also an object with a function on it. And the function will be visible from any place where the window will be visible.
So, for example, writing the following in the javascript console will give different results with and without thumbnails:
window.lib_name.perform(asdf);
With minimization, you will need to write:
window.lib_name.f(asdf);
Or something similar.
Remember that there can always be code outside your minimum.
It is not necessary to have an absolute minimum JS, but if for some reason it is important, for example: aliens have stolen your stepdaughter, and the only way to return it to a minimum is less than 100 characters or so), you can manually replace the unwanted long property name with shorter, just make sure that it will not be displayed anywhere and will not be accessible through an associative array entry ( root['api'] ).