1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-22 14:27:58 +01:00

improvements in :echo object, :echo getBrowser() should work now reliable

This commit is contained in:
Martin Stubenschrott
2007-10-16 23:40:35 +00:00
parent 233e5aa58a
commit d6f61d7278
2 changed files with 56 additions and 46 deletions

View File

@@ -41,40 +41,48 @@ vimperator.util = {
{ {
var type = typeof(arg); var type = typeof(arg);
if (type == "number") // some objects like window.JSON or getBrowsers()._browsers need the try/catch
try
{ {
return "<span style=\"color: red;\">" + arg + "</span>"; if (type == "number")
} {
else if (type == "string") return "<span style=\"color: red;\">" + arg + "</span>";
{ }
if (process_strings) else if (type == "string")
arg = '"' + vimperator.util.escapeHTML(arg.replace(/\n/, "\\n")) + '"'; {
if (process_strings)
arg = '"' + vimperator.util.escapeHTML(arg.replace(/\n/, "\\n")) + '"';
return "<span style=\"color: green;\">" + arg + "</span>"; return "<span style=\"color: green;\">" + arg + "</span>";
} }
else if (type == "boolean") else if (type == "boolean")
{ {
return "<span style=\"color: blue;\">" + arg + "</span>"; return "<span style=\"color: blue;\">" + arg + "</span>";
} }
else if (arg == null || arg == "undefined") else if (arg == null || arg == "undefined")
{ {
return "<span style=\"color: blue;\">" + arg + "</span>"; return "<span style=\"color: blue;\">" + arg + "</span>";
} }
else if (type == "object" || type == "function") else if (type == "object" || type == "function")
{ {
// for java packages value.toString() would crash so badly // for java packages value.toString() would crash so badly
// that we cannot even try/catch it // that we cannot even try/catch it
if (/^\[JavaPackage.*\]$/.test(arg)) if (/^\[JavaPackage.*\]$/.test(arg))
return "[JavaPackage]"; return "[JavaPackage]";
var str = arg.toString(); var str = arg.toString();
if (typeof str == "string") // can be "undefined" if (typeof str == "string") // can be "undefined"
return vimperator.util.escapeHTML(str); return vimperator.util.escapeHTML(str);
else else
return "undefined"; return "undefined";
}
}
catch (e)
{
return "&lt;unknown&gt;";
} }
return arg; return "&lt;unknown type&gt;";
} }
} }

View File

@@ -360,29 +360,31 @@ const vimperator = (function() //{{{
else else
string += obj + "::\n"; string += obj + "::\n";
for (var i in object) try // window.content often does not want to be queried with "var i in object"
{ {
var value; for (var i in object)
try
{ {
if (i == "JSON") // without this ugly hack, ":echo window" does not work var value;
value = "[object JSON]"; try
else {
value = object[i]; value = object[i];
} }
catch (e) catch (e)
{ {
value = ""; value = "&lt;no value&gt;";
} }
if (color) if (color)
{ {
value = vimperator.util.colorize(value, true); value = vimperator.util.colorize(value, true);
string += "<span style=\"font-weight: bold;\">" + i + "</span>: " + value + "\n"; string += "<span style=\"font-weight: bold;\">" + i + "</span>: " + value + "\n";
}
else
string += i + ": " + value + "\n";
} }
else
string += i + ": " + value + "\n";
} }
catch (e) { };
return string; return string;
}, },