Unmodified span
span : [object HTMLSpanElement]
[span] : [object HTMLSpanElement]
String(span) : [object HTMLSpanElement]
String([span]) : [object HTMLSpanElement]
span.toString : function toString() { [native code] }
span.toString() (cached in variable) : [object Undefined]
span.toString() : [object HTMLSpanElement]
[span].toString() : [object HTMLSpanElement]
span.valueOf() : [object HTMLSpanElement]
[span].valueOf() : [object HTMLSpanElement]

span with modified toString and valueOf
span : valueOf
[span] : toString
String(span) : toString
String([span]) : toString
span.toString : function () { return "toString"; }
span.toString() (cached in variable) : toString
span.toString() : toString
[span].toString() : toString
span.valueOf() : valueOf
[span].valueOf() : toString

span with modified toString that returns an Object
span : valueOf
[span] : valueOf
String(span) : valueOf
String([span]) : valueOf
span.toString : function () { return new Object(); }
span.toString() (cached in variable) : [object Object]
span.toString() : [object Object]
[span].toString() : valueOf
span.valueOf() : valueOf
[span].valueOf() : valueOf

span with modified valueOf that returns an Object
span : toString
[span] : toString
String(span) : toString
String([span]) : toString
span.toString : function () { return 'toString'; }
span.toString() (cached in variable) : toString
span.toString() : toString
[span].toString() : toString
span.valueOf() : [object Object]
[span].valueOf() : toString

span with modified toString and valueOf that returns an Object
TypeError: No default value
TypeError: No default value
TypeError: No default value
TypeError: No default value
span.toString : function () { return new Object(); }
span.toString() (cached in variable) : [object Object]
span.toString() : [object Object]
TypeError: No default value
span.valueOf() : [object Object]
TypeError: No default value

span with modified toString that throws an exception
span : valueOf
Exception
Exception
Exception
span.toString : function () { throw "Exception"; }
Exception
Exception
Exception
span.valueOf() : valueOf
Exception

span with modified valueOf that throws an exception
Exception
[span] : toString
String(span) : toString
String([span]) : toString
span.toString : function () { return 'toString'; }
span.toString() (cached in variable) : toString
span.toString() : toString
[span].toString() : toString
Exception
[span].valueOf() : toString

span with modified toString an valueOf that throw exceptions
Exception
Exception
Exception
Exception
span.toString : function () { throw "Exception"; }
Exception
Exception
Exception
Exception
Exception


Unmodified window
window : [object Window]
[window] : [object Window]
String(window) : [object Window]
String([window]) : [object Window]
window.toString : function toString() { [native code] }
window.toString() (cached in variable) : [object Undefined]
window.toString() : [object Window]
[window].toString() : [object Window]
window.valueOf() : [object Window]
[window].valueOf() : [object Window]

window with modified toString and valueOf
window : valueOf
[window] : toString
String(window) : toString
String([window]) : toString
window.toString : function () { return "toString"; }
window.toString() (cached in variable) : toString
window.toString() : toString
[window].toString() : toString
window.valueOf() : valueOf
[window].valueOf() : toString

window with modified toString that returns an Object
window : valueOf
[window] : valueOf
String(window) : valueOf
String([window]) : valueOf
window.toString : function () { return new Object(); }
window.toString() (cached in variable) : [object Object]
window.toString() : [object Object]
[window].toString() : valueOf
window.valueOf() : valueOf
[window].valueOf() : valueOf

window with modified valueOf that returns an Object
window : toString
[window] : toString
String(window) : toString
String([window]) : toString
window.toString : function () { return 'toString'; }
window.toString() (cached in variable) : toString
window.toString() : toString
[window].toString() : toString
window.valueOf() : [object Object]
[window].valueOf() : toString

window with modified toString and valueOf that returns an Object
TypeError: No default value
TypeError: No default value
TypeError: No default value
TypeError: No default value
window.toString : function () { return new Object(); }
window.toString() (cached in variable) : [object Object]
window.toString() : [object Object]
TypeError: No default value
window.valueOf() : [object Object]
TypeError: No default value

window with modified toString that throws an exception
window : valueOf
Exception
Exception
Exception
window.toString : function () { throw "Exception"; }
Exception
Exception
Exception
window.valueOf() : valueOf
Exception

window with modified valueOf that throws an exception
Exception
[window] : toString
String(window) : toString
String([window]) : toString
window.toString : function () { return 'toString'; }
window.toString() (cached in variable) : toString
window.toString() : toString
[window].toString() : toString
Exception
[window].valueOf() : toString

window with modified toString an valueOf that throw exceptions
Exception
Exception
Exception
Exception
window.toString : function () { throw "Exception"; }
Exception
Exception
Exception
Exception
Exception


Unmodified Navigator
Navigator : [object Navigator]
[Navigator] : [object Navigator]
String(Navigator) : [object Navigator]
String([Navigator]) : [object Navigator]
Navigator.toString : function toString() { [native code] }
Navigator.toString() (cached in variable) : [object Undefined]
Navigator.toString() : [object Navigator]
[Navigator].toString() : [object Navigator]
Navigator.valueOf() : [object Navigator]
[Navigator].valueOf() : [object Navigator]

Navigator with modified toString and valueOf
Navigator : valueOf
[Navigator] : toString
String(Navigator) : toString
String([Navigator]) : toString
Navigator.toString : function () { return "toString"; }
Navigator.toString() (cached in variable) : toString
Navigator.toString() : toString
[Navigator].toString() : toString
Navigator.valueOf() : valueOf
[Navigator].valueOf() : toString

Navigator with modified toString that returns an Object
Navigator : valueOf
[Navigator] : valueOf
String(Navigator) : valueOf
String([Navigator]) : valueOf
Navigator.toString : function () { return new Object(); }
Navigator.toString() (cached in variable) : [object Object]
Navigator.toString() : [object Object]
[Navigator].toString() : valueOf
Navigator.valueOf() : valueOf
[Navigator].valueOf() : valueOf

Navigator with modified valueOf that returns an Object
Navigator : toString
[Navigator] : toString
String(Navigator) : toString
String([Navigator]) : toString
Navigator.toString : function () { return 'toString'; }
Navigator.toString() (cached in variable) : toString
Navigator.toString() : toString
[Navigator].toString() : toString
Navigator.valueOf() : [object Object]
[Navigator].valueOf() : toString

Navigator with modified toString and valueOf that returns an Object
TypeError: No default value
TypeError: No default value
TypeError: No default value
TypeError: No default value
Navigator.toString : function () { return new Object(); }
Navigator.toString() (cached in variable) : [object Object]
Navigator.toString() : [object Object]
TypeError: No default value
Navigator.valueOf() : [object Object]
TypeError: No default value

Navigator with modified toString that throws an exception
Navigator : valueOf
Exception
Exception
Exception
Navigator.toString : function () { throw "Exception"; }
Exception
Exception
Exception
Navigator.valueOf() : valueOf
Exception

Navigator with modified valueOf that throws an exception
Exception
[Navigator] : toString
String(Navigator) : toString
String([Navigator]) : toString
Navigator.toString : function () { return 'toString'; }
Navigator.toString() (cached in variable) : toString
Navigator.toString() : toString
[Navigator].toString() : toString
Exception
[Navigator].valueOf() : toString

Navigator with modified toString an valueOf that throw exceptions
Exception
Exception
Exception
Exception
Navigator.toString : function () { throw "Exception"; }
Exception
Exception
Exception
Exception
Exception


Unmodified History
History : [object History]
[History] : [object History]
String(History) : [object History]
String([History]) : [object History]
History.toString : function toString() { [native code] }
History.toString() (cached in variable) : [object Undefined]
History.toString() : [object History]
[History].toString() : [object History]
History.valueOf() : [object History]
[History].valueOf() : [object History]

History with modified toString and valueOf
History : valueOf
[History] : toString
String(History) : toString
String([History]) : toString
History.toString : function () { return "toString"; }
History.toString() (cached in variable) : toString
History.toString() : toString
[History].toString() : toString
History.valueOf() : valueOf
[History].valueOf() : toString

History with modified toString that returns an Object
History : valueOf
[History] : valueOf
String(History) : valueOf
String([History]) : valueOf
History.toString : function () { return new Object(); }
History.toString() (cached in variable) : [object Object]
History.toString() : [object Object]
[History].toString() : valueOf
History.valueOf() : valueOf
[History].valueOf() : valueOf

History with modified valueOf that returns an Object
History : toString
[History] : toString
String(History) : toString
String([History]) : toString
History.toString : function () { return 'toString'; }
History.toString() (cached in variable) : toString
History.toString() : toString
[History].toString() : toString
History.valueOf() : [object Object]
[History].valueOf() : toString

History with modified toString and valueOf that returns an Object
TypeError: No default value
TypeError: No default value
TypeError: No default value
TypeError: No default value
History.toString : function () { return new Object(); }
History.toString() (cached in variable) : [object Object]
History.toString() : [object Object]
TypeError: No default value
History.valueOf() : [object Object]
TypeError: No default value

History with modified toString that throws an exception
History : valueOf
Exception
Exception
Exception
History.toString : function () { throw "Exception"; }
Exception
Exception
Exception
History.valueOf() : valueOf
Exception

History with modified valueOf that throws an exception
Exception
[History] : toString
String(History) : toString
String([History]) : toString
History.toString : function () { return 'toString'; }
History.toString() (cached in variable) : toString
History.toString() : toString
[History].toString() : toString
Exception
[History].valueOf() : toString

History with modified toString an valueOf that throw exceptions
Exception
Exception
Exception
Exception
History.toString : function () { throw "Exception"; }
Exception
Exception
Exception
Exception
Exception


Unmodified Selection
Selection : 
[Selection] : 
String(Selection) : 
String([Selection]) : 
Selection.toString : function toString() { [native code] }
TypeError: Type error
Selection.toString() : 
[Selection].toString() : 
Selection.valueOf() : 
[Selection].valueOf() : 

Selection with modified toString and valueOf
Selection : valueOf
[Selection] : toString
String(Selection) : toString
String([Selection]) : toString
Selection.toString : function () { return "toString"; }
Selection.toString() (cached in variable) : toString
Selection.toString() : toString
[Selection].toString() : toString
Selection.valueOf() : valueOf
[Selection].valueOf() : toString

Selection with modified toString that returns an Object
Selection : valueOf
[Selection] : valueOf
String(Selection) : valueOf
String([Selection]) : valueOf
Selection.toString : function () { return new Object(); }
Selection.toString() (cached in variable) : [object Object]
Selection.toString() : [object Object]
[Selection].toString() : valueOf
Selection.valueOf() : valueOf
[Selection].valueOf() : valueOf

Selection with modified valueOf that returns an Object
Selection : toString
[Selection] : toString
String(Selection) : toString
String([Selection]) : toString
Selection.toString : function () { return 'toString'; }
Selection.toString() (cached in variable) : toString
Selection.toString() : toString
[Selection].toString() : toString
Selection.valueOf() : [object Object]
[Selection].valueOf() : toString

Selection with modified toString and valueOf that returns an Object
TypeError: No default value
TypeError: No default value
TypeError: No default value
TypeError: No default value
Selection.toString : function () { return new Object(); }
Selection.toString() (cached in variable) : [object Object]
Selection.toString() : [object Object]
TypeError: No default value
Selection.valueOf() : [object Object]
TypeError: No default value

Selection with modified toString that throws an exception
Selection : valueOf
Exception
Exception
Exception
Selection.toString : function () { throw "Exception"; }
Exception
Exception
Exception
Selection.valueOf() : valueOf
Exception

Selection with modified valueOf that throws an exception
Exception
[Selection] : toString
String(Selection) : toString
String([Selection]) : toString
Selection.toString : function () { return 'toString'; }
Selection.toString() (cached in variable) : toString
Selection.toString() : toString
[Selection].toString() : toString
Exception
[Selection].valueOf() : toString

Selection with modified toString an valueOf that throw exceptions
Exception
Exception
Exception
Exception
Selection.toString : function () { throw "Exception"; }
Exception
Exception
Exception
Exception
Exception



