diff --git a/dom/base/nsWrapperCache.cpp b/dom/base/nsWrapperCache.cpp index b73ec15ab505..f603b1bd0ef8 100644 --- a/dom/base/nsWrapperCache.cpp +++ b/dom/base/nsWrapperCache.cpp @@ -8,7 +8,6 @@ #include "js/Class.h" #include "js/Proxy.h" -#include "mozilla/dom/DOMJSProxyHandler.h" #include "mozilla/CycleCollectedJSRuntime.h" #include "mozilla/HoldDropJSObjects.h" #include "nsCycleCollectionTraversalCallback.h" @@ -50,13 +49,6 @@ void nsWrapperCache::ReleaseWrapper(void* aScriptObjectHolder) { if (PreservingWrapper()) { - // PreserveWrapper puts new DOM bindings in the JS holders hash, but they - // can also be in the DOM expando hash, so we need to try to remove them - // from both here. - JSObject* obj = GetWrapperPreserveColor(); - if (IsDOMBinding() && obj && js::IsProxy(obj)) { - DOMProxyHandler::ClearExternalRefsForWrapperRelease(obj); - } SetPreservingWrapper(false); cyclecollector::DropJSObjectsImpl(aScriptObjectHolder); } diff --git a/dom/bindings/DOMJSProxyHandler.cpp b/dom/bindings/DOMJSProxyHandler.cpp index b5e620747e1d..ecc38d1b6eaa 100644 --- a/dom/bindings/DOMJSProxyHandler.cpp +++ b/dom/bindings/DOMJSProxyHandler.cpp @@ -70,25 +70,6 @@ struct SetDOMProxyInformation SetDOMProxyInformation gSetDOMProxyInformation; -// static -void -DOMProxyHandler::ClearExternalRefsForWrapperRelease(JSObject* obj) -{ - MOZ_ASSERT(IsDOMProxy(obj), "expected a DOM proxy object"); - JS::Value v = js::GetProxyPrivate(obj); - if (v.isUndefined() || v.isObject()) { - // No expando, or an expando that we reference from our slot anyway, so - // don't have to clear state for. - return; - } - - // Prevent having a dangling pointer to our expando from the - // ExpandoAndGeneration. - js::ExpandoAndGeneration* expandoAndGeneration = - static_cast(v.toPrivate()); - expandoAndGeneration->expando = UndefinedValue(); -} - // static JSObject* DOMProxyHandler::GetAndClearExpandoObject(JSObject* obj) diff --git a/dom/bindings/DOMJSProxyHandler.h b/dom/bindings/DOMJSProxyHandler.h index 0a9d9c7c0102..85cb84148707 100644 --- a/dom/bindings/DOMJSProxyHandler.h +++ b/dom/bindings/DOMJSProxyHandler.h @@ -131,16 +131,6 @@ public: */ static JSObject* GetExpandoObject(JSObject* obj); - /* - * Clear the "external references" to this object. If you are not - * nsWrapperCAche::ReleaseWrapper, you do NOT want to be calling this method. - * - * XXXbz if we nixed the DOM expando hash and just had a finalizer that - * cleared out the value in the ExpandoAndGeneration in the shadowing case, - * could we just get rid of this function altogether? - */ - static void ClearExternalRefsForWrapperRelease(JSObject* obj); - /* * Clear the expando object for the given DOM proxy and return it. This * function will ensure that the returned object is exposed to active JS if