add:   if (value == "true") value = true; else if (value == "false") value = false; else { var num = Number(value); if (!isNaN(num)) value = num; } }  
context: function dataSourceToObject(datasource, root){    var result = null;    var arcs = datasource.ArcLabelsOut(root);    while (arcs.HasMoreElements()) {        var arc = arcs.GetNext().QueryInterface(nsIRDFResource);        var arcName = arc.Value;        arcName = arcName.substring(NClength, arcName.length);        if (!result) result = new Object;                var target = datasource.GetTarget(root, arc, true);                var value;        var targetHasChildren = false;        try {            target = target.QueryInterface(nsIRDFResource);            targetHasChildren = true;        } catch (ex) {            target = target.QueryInterface(nsIRDFLiteral);        }        if (targetHasChildren)            value = dataSourceToObject(datasource, target);        else            value = target.Value;                // add this value        result[arcName] = value;    }    return result;}
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/10234/083fedbb1c0649b946181fe320292ea8edca8974/ispUtils.js/buggy/mailnews/base/prefs/resources/content/ispUtils.js