¿Cómo uso el constructor de una página remota para crear un objeto en mi Greasemonkey UserScript?

La página en la que se ejecutará mi script de usuario tiene un espacio de nombres, el espacio de nombres define una función constructora. Me gustaría crear un objeto usando el mismo constructor y usar métodos del objeto en mi script de usuario. Hasta ahora no he tenido éxito. Esto es lo que estoy tratando de hacer.

La página tiene el siguiente bloque de JavaScript nativo:

var namespace={ constructor : function(){
   this.sum = function(value1,value2){
   alert(value1+value2);
    }
  }
}

siendo utilizado como:

var pageObject=new namespace.constructor();
pageObject.sum(1,2);

En My Userscript es mi intención crear un objeto como pageObject y llamar a la suma de eso con mis propios parámetros.

He intentado hacer lo siguiente:

var greaseNameSpace = unsafeWindow.namespace;
var greaseObject = new greaseNameSpace.constructor();
greaseObject.sum(1,2);

No Luck, aparece aunque greaseNameSpace existe, e incluso greaseNameSpace.constructor es una función válida, el uso de greaseNameSpace.constructor () produce rendimientos indefinidos.

También intenté lo siguiente:

var greaseObject =new unsafeWindow.namespace.constructor();

nuevamente greaseObject permanece indefinido.

Encontré un hilo aquí¿Cómo puedo crear un objeto de una clase que se define en la página remota?

Pero usa eval, y me pregunto si esa es la forma correcta.

Cualquier ayuda sería muy apreciada :) ¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta