Math.random () función de JavaScript * undefined * en Chrome

En primer lugar, estoy convencido de que esta es una pregunta trivial, pero no puedo entender por qué sucede esto y no pude encontrar una respuesta en ningún otro lado. Busqué en Google mi problema con poco éxito, pero si me perdí algo y solo perdí tu tiempo, por favor apúntame en la dirección correcta y acepta mis humildes excusas.

Dicho esto, esto es lo que sucede. Estoy creando un script simple para mostrar un gráfico dibujado por un algoritmo distribuido (giraph) y estoy trabajando en Linux. Importo todas las bibliotecas y, en particular, jQuery y todo funciona en Firefox (versión 36.0.1). Al cambiar a Chrome (versión 41.0.2272.89 (64 bits)), la página deja de funcionar. Investigando el problema, descubrí que el error estaba dentro deljQuery.extend() funcionar en la biblioteca jQuery, en la siguiente línea:

expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),

De hecho, tratando de invocarMath.random() en la consola del navegador conduce a:

> Math.random();
> Uncaught TypeError: Undefined is not a function

De todos modos, al escribir la consola se completa automáticamente la variable "Matemáticas", con el siguiente resultado:

> Math
> function (){return "";}

Esto no sucede con Chrome en MacOS X Mavericks. ¿Alguien ha experimentado este tipo de comportamiento antes?

EDITAR: Desafortunadamente, no creo que este sea un conflicto de espacio de nombres. En mi biblioteca, importo solo otra biblioteca (que no sea jQuery), que esSigma js. Como sugerí, escribí Math en la consola e intenté entender qué biblioteca anulaba Math (usando "Show Function Definition"), con el siguiente resultado, tomado de un archivo llamado "VM53" (que no escribí y / o enlacé directamente).

(function (){
    for (var i in window)
    {
    try {
            var jsType = typeof window[i];
            switch (jsType.toUpperCase())
            {                   
                case "FUNCTION": 
                    if (window[i] !== window.location)
                    {
                        if (window[i] === window.open || (window.showModelessDialog && window[i] === window.showModelessDialog))
                            window[i] = function(){return true;};
                        else if (window[i] === window.onbeforeunload)   // To try to fix onbeforeunload pop ups some users report seeing but I can't replicate.
                            window.onbeforeunload = null;
                        else if (window[i] === window.onunload)
                            window.onunload = null;                             
                        else
                            window[i] = function(){return "";};
                    }
                    break;                          
            }           
        }
        catch(err)
        {}      
    }

    for (var i in document)
    {
        try {
            var jsType = typeof document[i];
            switch (jsType.toUpperCase())
            {                   
                case "FUNCTION":
                    document[i] = function(){return "";};
                    break;                  
            }           
        }
        catch(err)
        {}      
    }

    try {
        eval = function(){return "";};              
        unescape = function(){return "";};
        String = function(){return "";};
        parseInt = function(){return "";};
        parseFloat = function(){return "";};
        Number = function(){return "";};
        isNaN = function(){return "";};
        isFinite = function(){return "";};
        escape = function(){return "";};
        encodeURIComponent = function(){return "";};
        encodeURI = function(){return "";};
        decodeURIComponent = function(){return "";};
        decodeURI = function(){return "";};
        Array = function(){return "";};
        Boolean = function(){return "";};
        Date = function(){return "";};
        Math = function(){return "";};
        Number = function(){return "";};
        RegExp = function(){return "";};

        var oNav = navigator;
        navigator = function(){return "";};
        oNav = null;            
    }
    catch(err)
    {}

})();

Respuestas a la pregunta(4)

Su respuesta a la pregunta