Bug 658909 - Stop doing all the crazy stuff in GetWrappedNativeOfJSObject. r=mrbkap
Bug 658909 - Add a new, much simpler API for getting WNs from JS objects. r=mrbkap
Bug 658909 - Remove GWNOJO from MarkWrappedNative. r=mrbkap
Bug 658909 - Remove GWNOJO for helper stubs. r=mrbkap
Bug 658909 - Remove GWNOJO from JSObject2NativeInterface. r=mrbkap
Bug 658909 - Remove GWNOJO from JSValToXPCException. r=mrbkap
Bug 658909 - Remove GWNOJO from XPCJSID. r=mrbkap
Bug 658909 - Remove GWNOJO from XPCVariant. r=mrbkap

The old code seems to be deciding whether we have a double-wrapped object by
checking _either_ the rv of GWNOJO _or_ the potential slim wrapper. This is
nonsensical, because double-wrapped objects are never slim wrappers.
Furthermore, that variable here is named 'proto', which further suggests
that this code is nonsensical. So let's just check for WNs.

Also, it seems pretty wack to be innerizing here before storing the jsval,
but I'm going to leave that for now.
Bug 658909 - Remove GWNOJO from nsXPConnect. r=mrbkap
Bug 658909 - Remove GWNOJO from AccessCheck. r=mrbkap
Bug 658909 - Remove GWNOJO from nsDOMClassInfo. r=mrbkap
Bug 658909 - Remove GWNOJO from PreserveWrapper. r=mrbkap
Bug 658909 - Port tearoff-handling guts of GWNOJO to XPCCallContext and remove GWNOJO. r=mrbkap
Bug 658909 - Tests. r=mrbkap
Bug 851895 - Don't assert against a failure in CanCallNow. r=mrbkap

This can definitely happen now if the |this| object is wrong. It's possible
that we should be checking this earlier, but as the code stands this assertion
is incorrect.
Bug 851895 - Expand the this-fixup hack to include Cu. r=mrbkap
Bug 851895 - Tests. r=mrbkap
Bug 844783 - Disable XBL scopes for XUL-whitelisted domains. r=bz
Bug 844783 - Tests. r=bz
Bug 848939 - De-field scale.xml. r=jaws