From 63f1dd163de0ccd9c21af4f1efc54d9d447a0c94 Mon Sep 17 00:00:00 2001 From: aurimasv Date: Sun, 25 Nov 2012 05:05:52 -0600 Subject: [PATCH] Make varDump more resilient to property access errors --- chrome/content/zotero/xpcom/utilities.js | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/chrome/content/zotero/xpcom/utilities.js b/chrome/content/zotero/xpcom/utilities.js index f9b9b8f27..a5622c66f 100644 --- a/chrome/content/zotero/xpcom/utilities.js +++ b/chrome/content/zotero/xpcom/utilities.js @@ -1092,11 +1092,11 @@ Zotero.Utilities = { */ "varDump":function(arr,level,maxLevel,parentObjects,path) { var dumped_text = ""; - if (!level){ + if (level === undefined){ level = 0; } - if (!maxLevel) { + if (maxLevel === undefined) { maxLevel = 4; } @@ -1119,7 +1119,12 @@ Zotero.Utilities = { } for (var item in arr) { - var value = arr[item]; + try { + var value = arr[item]; + } catch(e) { + dumped_text += level_padding + "'" + item + "' => <>\n"; + continue; + } if (typeof(value) == 'object') { // If it is an array //check for recursion @@ -1139,9 +1144,13 @@ Zotero.Utilities = { dumped_text += level_padding + "'" + item + "' => " + openBrace; //only recurse if there's anything in the object, purely cosmetical - for(var i in value) { - dumped_text += "\n" + Zotero.Utilities.varDump(value,level+1,maxLevel,parentObjects.concat([value]),path.concat([item])) + level_padding; - break; + try { + for(var i in value) { + dumped_text += "\n" + Zotero.Utilities.varDump(value,level+1,maxLevel,parentObjects.concat([value]),path.concat([item])) + level_padding; + break; + } + } catch(e) { + dumped_text += "<>\n"; } dumped_text += closeBrace + "\n"; }