author | Boris Zbarsky <bzbarsky@mit.edu> |
Thu, 26 Feb 2015 15:58:59 -0500 | |
changeset 231122 | 2dac197193b72d9c43bd6c50553c8f683ec195a2 |
parent 231121 | eed045e1478f91b01b153dcc7203149e9b6353c0 |
child 231123 | 84c7cadc7dd22d536019a6b8b5eec86b1f1c4c84 |
push id | 28344 |
push user | ryanvm@gmail.com |
push date | Fri, 27 Feb 2015 18:20:08 +0000 |
treeherder | mozilla-central@9dd9d1e5b43c [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | waldo |
bugs | 1136925 |
milestone | 39.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
dom/bindings/BindingUtils.cpp | file | annotate | diff | comparison | revisions | |
js/src/jsfriendapi.cpp | file | annotate | diff | comparison | revisions | |
js/src/jsfriendapi.h | file | annotate | diff | comparison | revisions | |
js/src/jsobj.cpp | file | annotate | diff | comparison | revisions | |
js/src/jsobj.h | file | annotate | diff | comparison | revisions |
--- a/dom/bindings/BindingUtils.cpp +++ b/dom/bindings/BindingUtils.cpp @@ -1808,17 +1808,17 @@ ReparentWrapper(JSContext* aCx, JS::Hand // return early we must avoid ending up with two reflectors pointing to the // same native. Other than that, the objects we create will just go away. JS::Handle<JSObject*> proto = (domClass->mGetProto)(aCx, newParent); if (!proto) { return NS_ERROR_FAILURE; } - JS::Rooted<JSObject*> newobj(aCx, JS_CloneObject(aCx, aObj, proto, newParent)); + JS::Rooted<JSObject*> newobj(aCx, JS_CloneObject(aCx, aObj, proto)); if (!newobj) { return NS_ERROR_FAILURE; } js::SetReservedOrProxyPrivateSlot(newobj, DOM_OBJECT_SLOT, js::GetReservedOrProxyPrivateSlot(aObj, DOM_OBJECT_SLOT)); // At this point, both |aObj| and |newobj| point to the same native
--- a/js/src/jsfriendapi.cpp +++ b/js/src/jsfriendapi.cpp @@ -617,20 +617,20 @@ js::StringToLinearStringSlow(JSContext * JS_FRIEND_API(void) JS_SetAccumulateTelemetryCallback(JSRuntime *rt, JSAccumulateTelemetryDataCallback callback) { rt->setTelemetryCallback(rt, callback); } JS_FRIEND_API(JSObject *) -JS_CloneObject(JSContext *cx, HandleObject obj, HandleObject protoArg, HandleObject parent) +JS_CloneObject(JSContext *cx, HandleObject obj, HandleObject protoArg) { Rooted<TaggedProto> proto(cx, TaggedProto(protoArg.get())); - return CloneObject(cx, obj, proto, parent); + return CloneObject(cx, obj, proto); } #ifdef DEBUG JS_FRIEND_API(void) js_DumpString(JSString *str) { str->dump(); }
--- a/js/src/jsfriendapi.h +++ b/js/src/jsfriendapi.h @@ -143,18 +143,17 @@ JS_ScriptHasMutedErrors(JSScript *script extern JS_FRIEND_API(JSObject *) JS_ObjectToInnerObject(JSContext *cx, JS::HandleObject obj); /* Requires obj != nullptr. */ extern JS_FRIEND_API(JSObject *) JS_ObjectToOuterObject(JSContext *cx, JS::HandleObject obj); extern JS_FRIEND_API(JSObject *) -JS_CloneObject(JSContext *cx, JS::HandleObject obj, JS::HandleObject proto, - JS::HandleObject parent); +JS_CloneObject(JSContext *cx, JS::HandleObject obj, JS::HandleObject proto); /* * Copy the own properties of src to dst in a fast way. src and dst must both * be native and must be in the compartment of cx. They must have the same * class, the same parent, and the same prototype. Class reserved slots will * NOT be copied. * * dst must not have any properties on it before this function is called.
--- a/js/src/jsobj.cpp +++ b/js/src/jsobj.cpp @@ -1772,43 +1772,43 @@ CopyProxyObject(JSContext *cx, Handle<Pr return false; SetProxyExtra(to, n, v); } return true; } JSObject * -js::CloneObject(JSContext *cx, HandleObject obj, Handle<js::TaggedProto> proto, HandleObject parent) +js::CloneObject(JSContext *cx, HandleObject obj, Handle<js::TaggedProto> proto) { if (!obj->isNative() && !obj->is<ProxyObject>()) { JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr, JSMSG_CANT_CLONE_OBJECT); return nullptr; } RootedObject clone(cx); if (obj->isNative()) { - clone = NewObjectWithGivenTaggedProto(cx, obj->getClass(), proto, parent); + clone = NewObjectWithGivenTaggedProto(cx, obj->getClass(), proto, NullPtr()); if (!clone) return nullptr; if (clone->is<JSFunction>() && (obj->compartment() != clone->compartment())) { JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr, JSMSG_CANT_CLONE_OBJECT); return nullptr; } if (obj->as<NativeObject>().hasPrivate()) clone->as<NativeObject>().setPrivate(obj->as<NativeObject>().getPrivate()); } else { ProxyOptions options; options.setClass(obj->getClass()); - clone = ProxyObject::New(cx, GetProxyHandler(obj), JS::NullHandleValue, proto, parent, options); + clone = ProxyObject::New(cx, GetProxyHandler(obj), JS::NullHandleValue, proto, nullptr, options); if (!clone) return nullptr; if (!CopyProxyObject(cx, obj.as<ProxyObject>(), clone.as<ProxyObject>())) return nullptr; } return clone;
--- a/js/src/jsobj.h +++ b/js/src/jsobj.h @@ -1132,17 +1132,17 @@ CreateThisForFunctionWithProto(JSContext extern JSObject * CreateThisForFunction(JSContext *cx, js::HandleObject callee, NewObjectKind newKind); // Generic call for constructing |this|. extern JSObject * CreateThis(JSContext *cx, const js::Class *clasp, js::HandleObject callee); extern JSObject * -CloneObject(JSContext *cx, HandleObject obj, Handle<js::TaggedProto> proto, HandleObject parent); +CloneObject(JSContext *cx, HandleObject obj, Handle<js::TaggedProto> proto); extern NativeObject * DeepCloneObjectLiteral(JSContext *cx, HandleNativeObject obj, NewObjectKind newKind = GenericObject); extern bool DefineProperties(JSContext *cx, HandleObject obj, HandleObject props); /*