add maxLevels to varDump to avoid infinite loops

This commit is contained in:
aurimasv 2012-03-12 20:33:59 -05:00
parent 19a6b08b51
commit 5be84a5d59

View file

@ -1014,17 +1014,25 @@ Zotero.Utilities = {
* *
* Adapted from http://binnyva.blogspot.com/2005/10/dump-function-javascript-equivalent-of.html * Adapted from http://binnyva.blogspot.com/2005/10/dump-function-javascript-equivalent-of.html
*/ */
"varDump":function(arr,level) { "varDump":function(arr,level,maxLevel) {
var dumped_text = ""; var dumped_text = "";
if (!level){ if (!level){
level = 0; level = 0;
} }
if (!maxLevel) {
maxLevel = 4;
}
// The padding given at the beginning of the line. // The padding given at the beginning of the line.
var level_padding = ""; var level_padding = "";
for (var j=0;j<level+1;j++){ for (var j=0;j<level+1;j++){
level_padding += " "; level_padding += " ";
} }
if (level > maxLevel){
return dumped_text + level_padding + "...\n";
}
if (typeof(arr) == 'object') { // Array/Hashes/Objects if (typeof(arr) == 'object') { // Array/Hashes/Objects
for (var item in arr) { for (var item in arr) {
@ -1032,7 +1040,7 @@ Zotero.Utilities = {
if (typeof(value) == 'object') { // If it is an array, if (typeof(value) == 'object') { // If it is an array,
dumped_text += level_padding + "'" + item + "' ...\n"; dumped_text += level_padding + "'" + item + "' ...\n";
dumped_text += arguments.callee(value,level+1); dumped_text += arguments.callee(value,level+1,maxLevel);
} }
else { else {
if (typeof value == 'function'){ if (typeof value == 'function'){