Uglify-js no mangle nombres de variables

Tratando de preparar un buen entorno de compilación para mi biblioteca js. Según opiniones en la web.UglifyJS Parece ser uno de los mejores módulos de compresión por ahí, trabajando bajo NodeJS. Así que aquí es la mejor forma recomendada de minimizar el código:

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

Como se ve aquí,pro.ast_mangle(ast) debe mangle nombres de variables, pero no lo hace. Todo lo que salgo de esta tubería es el código javascript, sin espacios. Al principio pensé que mi código no estaba optimizado para la compresión, pero luego lo probé conCierre de Google y consiguió una gran compresión (con nombres de variables destrozados y todo).

Expertos de UglifyJS, ¿alguna pista de lo que estoy haciendo mal?

ACTUALIZAR:

El código real es demasiado grande para hacer referencia aquí, pero incluso un fragmento de este tipo no se destruye:

;(function(window, document, undefined) {

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

    // ...

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

}(window, document));

Esto es lo que obtengo (solo los espacios se eliminan, supongo):

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

Respuestas a la pregunta(4)

Su respuesta a la pregunta