rem: return 'String'; 
add: return 'CString'; 
context:     _typeOf: function(obj) {        // XPConnect alows JS to pass in anything, because we are a regular        // JS object to it. So we have to test rigorously.        if (typeof obj != 'object') return 'Unknown';        // Anything else not nsISupports is not allowed.        if (typeof obj.QueryInterface != 'function') return 'Unknown';        // Now we will have to eliminate by trying all possebilities.        try {            obj.QueryInterface(Components.interfaces.nsISupportsPRUint8);            return 'PRUint8';        } catch(e) {}                try {            obj.QueryInterface(Components.interfaces.nsISupportsPRUint16);            return 'PRUint16';        } catch(e) {}                try {            obj.QueryInterface(Components.interfaces.nsISupportsPRInt16);            return 'PRInt16';        } catch(e) {}                try {            obj.QueryInterface(Components.interfaces.nsISupportsPRInt32);            return 'PRInt32';        } catch(e) {}                try {            obj.QueryInterface(Components.interfaces.nsISupportsPRBool);            return 'PRBool';        } catch(e) {}                try {            obj.QueryInterface(Components.interfaces.nsISupportsChar);            return 'Char';        } catch(e) {}                try {            obj.QueryInterface(Components.interfaces.nsISupportsCString);            return 'String';        } catch(e) {}                try {            obj.QueryInterface(Components.interfaces.nsISupportsFloat);            return 'Float';        } catch(e) {}                try {            obj.QueryInterface(Components.interfaces.nsISupportsDouble);            return 'Double';        } catch(e) {}                try {            obj.QueryInterface(Components.interfaces.nsISupportsPRTime);            return 'PRTime';        } catch(e) {}                try {            obj.QueryInterface(Components.interfaces.nsIInputStream);            return 'InputStream';        } catch(e) {}                try {            obj.QueryInterface(Components.interfaces.nsISupportsArray);            return 'Array';        } catch(e) {}                try {            obj.QueryInterface(Components.interfaces.nsIDictionary);            return 'Dictionary';        } catch(e) {}                // Not a supported type        return 'Unknown';    },
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8395/2a28a97e955859c19e9126a0bcf8b134ee0f92b0/nsXmlRpcClient.js/clean/extensions/xml-rpc/src/nsXmlRpcClient.js