Uglify-js verändert keine Variablennamen

Ich versuche, eine gute Build-Umgebung für meine js-Bibliothek vorzubereiten. Laut Bewertungen im WebUglifyJS scheint eines der besten Komprimierungsmodule zu sein, das unter NodeJS funktioniert. Hier ist die empfohlene Methode zum Minimieren des Codes:

var jsp = require("uglify-js").parser;
var pro = require("uglify-js").uglify;

var orig_code = "... JS code here";
var ast = jsp.parse(orig_code); // parse code and get the initial AST
ast = pro.ast_mangle(ast); // get a new AST with mangled names
ast = pro.ast_squeeze(ast); // get an AST with compression optimizations
var final_code = pro.gen_code(ast); // compressed code here

Wie hier zu sehen,pro.ast_mangle(ast) sollte Variablennamen entstellen, tut es aber nicht. Alles, was ich aus dieser Pipe bekomme, ist Javascript-Code ohne Leerzeichen. Zuerst dachte ich, mein Code sei nicht für die Komprimierung optimiert, aber dann versuchte ich es mitGoogle Closure und bekam eine ziemliche Komprimierung (mit verstümmelten Variablennamen und allem).

UglifyJS-Experten, gibt es einen Hinweis darauf, was ich falsch mache?

AKTUALISIEREN:

Der tatsächliche Code ist zu groß, um hier darauf zu verweisen, aber selbst ein Ausschnitt wie dieser wird nicht entstellt:

;(function(window, document, undefined) {

    function o(id) {
        if (typeof id !== 'string') {
            return id;  
        }
        return document.getElementById(id);
    }   

    // ...

    /** @namespace */
    window.mOxie = o;

}(window, document));

Das bekomme ich (ich schätze, nur Leerzeichen werden entfernt):

(function(window,document,undefined){function o(id){return typeof id!="string"?id:document.getElementById(id)}window.mOxie=window.o=o})(window,document)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage