wrappedJSObject is only for piercing XPCOM interfaces to see the underlying JS object.  Specifically, in our observer, we are receiving an nsISupports XPCOM interface.  The object JS perceives in that case is limited to the defined interface for nsISupports and we must QueryInterface it to gain any other .idl-defined interfaces it supports.  In this case, it's known to only be a JS object and the observer notification mechanism is theoretically being abused, so really all we can do is access wrappedJSObject.  See http://dxr.mozilla.org/mozilla-central/source/dom/base/Console.cpp#1037 for the actual wrapping