Unmodified span span : [object HTMLElement] [span] : [object HTMLElement] String(span) : [object HTMLElement] String([span]) : [object HTMLElement] span.toString() : [object HTMLElement] [span].toString() : [object HTMLElement] span.valueOf() : [object HTMLElement] [span].valueOf() : [object HTMLElement] span with modified toString and valueOf span : valueOf [span] : toString String(span) : toString String([span]) : 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() : [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() : 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() : [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 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() : toString [span].toString() : toString Exception [span].valueOf() : toString span with modified toString an valueOf that throw exceptions Exception Exception Exception Exception Exception Exception Exception Exception Unmodified window window : [object DOMWindow] [window] : [object DOMWindow] String(window) : [object DOMWindow] String([window]) : [object DOMWindow] window.toString() : [object DOMWindow] [window].toString() : [object DOMWindow] window.valueOf() : [object DOMWindow] [window].valueOf() : [object DOMWindow] window with modified toString and valueOf window : valueOf [window] : toString String(window) : toString String([window]) : 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() : [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() : 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() : [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 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() : toString [window].toString() : toString Exception [window].valueOf() : toString window with modified toString an valueOf that throw exceptions Exception Exception Exception Exception Exception Exception Exception Exception Unmodified Navigator Navigator : [object Navigator] [Navigator] : [object Navigator] String(Navigator) : [object Navigator] String([Navigator]) : [object Navigator] 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() : 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() : [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() : 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() : [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 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() : toString [Navigator].toString() : toString Exception [Navigator].valueOf() : toString Navigator with modified toString an valueOf that throw exceptions Exception Exception Exception Exception Exception Exception Exception Exception Unmodified History History : [object History] [History] : [object History] String(History) : [object History] String([History]) : [object History] 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() : 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() : [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() : 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() : [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 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() : toString [History].toString() : toString Exception [History].valueOf() : toString History with modified toString an valueOf that throw exceptions Exception Exception Exception Exception Exception Exception Exception Exception Unmodified Selection Selection : [Selection] : String(Selection) : String([Selection]) : 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() : 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() : [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() : 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() : [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 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() : toString [Selection].toString() : toString Exception [Selection].valueOf() : toString Selection with modified toString an valueOf that throw exceptions Exception Exception Exception Exception Exception Exception Exception Exception