commit 63f1dd163de0ccd9c21af4f1efc54d9d447a0c94
parent 5f66482537d2e5bfce451f71fae138b3302fb6c3
Author: aurimasv <aurimas.dev@gmail.com>
Date: Sun, 25 Nov 2012 05:05:52 -0600
Make varDump more resilient to property access errors
Diffstat:
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git 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 + "' => <<Access Denied>>\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 += "<<Error processing object:\n" + e + ">>\n";
}
dumped_text += closeBrace + "\n";
}