context: function pm_getpref(prefName, reload){    var prefManager = this;        function updateArrayPref() { prefManager.updateArrayPref(prefName); };        var record = this.prefRecords[prefName];    if (!ASSERT(record, "Unknown pref: " + prefName))        return null;        var defaultValue;    if (typeof record.defaultValue == "function")    {        // deferred pref, call the getter, and don't cache the result.        defaultValue = record.defaultValue(prefName);    }    else    {        if (!reload && record.realValue != null)            return record.realValue;        defaultValue = record.defaultValue;    }        var realValue = null;    try    {        if (typeof defaultValue == "boolean")        {            realValue = this.prefBranch.getBoolPref(prefName);        }        else if (typeof defaultValue == "number")        {            realValue = this.prefBranch.getIntPref(prefName);        }        else if (defaultValue instanceof Array)        {            realValue = this.prefBranch.getCharPref(prefName);            realValue = this.stringToArray(realValue);            realValue.update = updateArrayPref;        }        else if (typeof defaultValue == "string" ||                 defaultValue == null)        {            realValue = toUnicode(this.prefBranch.getCharPref(prefName),                                  PREF_CHARSET);        }    }    catch (ex)    {        // if the pref doesn't exist, ignore the exception.    }    if (realValue == null)        return defaultValue;    record.realValue = realValue;    return realValue;}
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/10234/f5d25c66f7584289878d8059c950d4b8786bb948/pref-manager.js/buggy/extensions/irc/js/lib/pref-manager.js