diff --git a/content/util.js b/content/util.js index e6cae247..2fb5f167 100644 --- a/content/util.js +++ b/content/util.js @@ -45,40 +45,48 @@ vimperator.util = { { var type = typeof(arg); - if (type == "number") + // some objects like window.JSON or getBrowsers()._browsers need the try/catch + try { - return "" + arg + ""; - } - else if (type == "string") - { - if (process_strings) - arg = '"' + vimperator.util.escapeHTML(arg.replace(/\n/, "\\n")) + '"'; + if (type == "number") + { + return "" + arg + ""; + } + else if (type == "string") + { + if (process_strings) + arg = '"' + vimperator.util.escapeHTML(arg.replace(/\n/, "\\n")) + '"'; - return "" + arg + ""; - } - else if (type == "boolean") - { - return "" + arg + ""; - } - else if (arg == null || arg == "undefined") - { - return "" + arg + ""; - } - else if (type == "object" || type == "function") - { - // for java packages value.toString() would crash so badly - // that we cannot even try/catch it - if (/^\[JavaPackage.*\]$/.test(arg)) - return "[JavaPackage]"; + return "" + arg + ""; + } + else if (type == "boolean") + { + return "" + arg + ""; + } + else if (arg == null || arg == "undefined") + { + return "" + arg + ""; + } + else if (type == "object" || type == "function") + { + // for java packages value.toString() would crash so badly + // that we cannot even try/catch it + if (/^\[JavaPackage.*\]$/.test(arg)) + return "[JavaPackage]"; - var str = arg.toString(); - if (typeof str == "string") // can be "undefined" - return vimperator.util.escapeHTML(str); - else - return "undefined"; + var str = arg.toString(); + if (typeof str == "string") // can be "undefined" + return vimperator.util.escapeHTML(str); + else + return "undefined"; + } + } + catch (e) + { + return "<unknown>"; } - return arg; + return "<unknown type>"; }, // takes a string like 'google bla, www.osnews.com' @@ -160,7 +168,7 @@ vimperator.util = { highlightURL: function (str, force) { - if (force || /^[a-zA-Z]+:\/\/.*\//.test(str)) + if (force || /^[a-zA-Z]+:\/\//.test(str)) return "" + vimperator.util.escapeHTML(str) + ""; else return str;