This article covers features introduced in SpiderMonkey 38
Create a new
Function object from an existing
JSObject * JS::CloneFunctionObject(JSContext *cx, JS::HandleObject funobj); JSObject * JS::CloneFunctionObject(JSContext *cx, JS::HandleObject funobj, JS::AutoObjectVector &scopeChain);
||Pointer to a JS context from which to derive runtime information. Requires request. In a
||The new function's scope chain.|
JS::CloneFunctionObject creates a new function object from
funobj. The new object has the same code and argument list as
scopeChain is supplied, it uses
scopeChain as its enclosing scope. If
scopeChain is omitted, it creates a new function object in
cx's global. This can be helpful if
funobj is an extant function that you wish to use as if it were enclosed by a newly-created global object.
The new object's prototype is
JS_NewObject : Choosing a Default Prototype explains exactly how this is computed.
JS::CloneFunctionObject takes care to choose a prototype that shares a global object with the given
parent whenever possible.
JS::CloneFunctionObject returns a pointer to the newly created object. If the class of
funobj is not Function, then
funobj itself. On failure, it returns