Permission denied to access property 'toString'
        Posted  
        
            by 
                Anders
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Anders
        
        
        
        Published on 2012-12-13T17:02:02Z
        Indexed on 
            2012/12/13
            17:03 UTC
        
        
        Read the original article
        Hit count: 315
        
JavaScript
I'm trying to find a generic way of getting the name of Constructors. My goal is to create a Convention over configuration framework for KnockoutJS
My idea is to iterate over all objects in the window and when I find the contructor i'm looking for then I can use the index to get the name of the contructor
The code sofar
(function() {
    constructors = {};
    window.findConstructorName = function(instance) {
        var constructor = instance.constructor;
        var name = constructors[constructor];
        if(name !== undefined) {
            return name;
        }
        var traversed = [];
        var nestedFind = function(root) {       
            if(typeof root == "function" || traversed[root]) {
                return       
            }
            traversed[root] = true;
            for(var index in root) {               
                if(root[index] == constructor) {
                    return index;
                }
                var found = nestedFind(root[index]);  
                if(found !== undefined) {
                    return found;
                }
            }
        }
        name = nestedFind(window);
        constructors[constructor] = name;
        return name;
    }
})();
var MyApp = {};
MyApp.Foo = function() {
};
var instance = new MyApp.Foo();
console.log(findConstructorName(instance));     
The problem is that I get a Permission denied to access property 'toString' Exception, and i cant even try catch so see which object is causing the problem
Fiddle http://jsfiddle.net/4ZwaV/
© Stack Overflow or respective owner