JSObject * TransplantObject(JSContext *cx, JS::HandleObject origobj, JS::HandleObject target) { RootedObject oldWaiver(cx, WrapperFactory::GetXrayWaiver(origobj)); RootedObject newIdentity(cx, JS_TransplantObject(cx, origobj, target)); if (!newIdentity || !oldWaiver) return newIdentity; if (!FixWaiverAfterTransplant(cx, oldWaiver, newIdentity)) return nullptr; return newIdentity; }
JSObject * TransplantObject(JSContext *cx, JSObject *origobj, JSObject *target) { JSObject *oldWaiver = WrapperFactory::GetXrayWaiver(origobj); JSObject *newIdentity = JS_TransplantObject(cx, origobj, target); if (!newIdentity || !oldWaiver) return newIdentity; if (!FixWaiverAfterTransplant(cx, oldWaiver, newIdentity)) return NULL; return newIdentity; }