rem: if (!obj || (typeof obj != "object")) 
add: if (!ASSERT(obj && typeof obj == "object", "INVALID OBJECT passed to getObjectDetails (" + obj + "). **")) 
context: function getObjectDetails (obj, rv){    if (!rv)        rv = new Object();    if (!obj || (typeof obj != "object"))    {        dd ("** INVALID OBJECT passed to getObjectDetails (" + obj + "). **");        dd (getStackTrace());    }    rv.orig = obj;    rv.parent = ("parent" in obj) ? obj.parent : null;        switch (obj.TYPE)    {        case "IRCChannel":            rv.channel = obj;            rv.server = rv.channel.parent;            rv.network = rv.server.parent;            break;        case "IRCUser":            rv.user = obj;            rv.server = rv.user.parent;            rv.network = rv.server.parent;            break;        case "IRCChanUser":            rv.user = obj;            rv.channel = rv.user.parent;            rv.server = rv.channel.parent;            rv.network = rv.server.parent;            break;        case "IRCNetwork":            rv.network = obj;            if ("primServ" in rv.network)                rv.server = rv.network.primServ;            break;        case "IRCClient":            if ("lastNetwork" in obj)            {                rv.network = obj.lastNetwork;                if (rv.network.isConnected())                    rv.server = rv.network.primServ;            }            break;                    default:            /* no setup for unknown object */            break;    }    return rv;    }
meta: 1567	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/1567/ec1f57a2df47ea77b6ce245c6e2bd99b25d52195/static.js/clean/xul/content/static.js