We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

JS GetFunctionObject

Retrieves the object for a specified function.


JSObject * JS_GetFunctionObject(JSFunction *fun);
Name Type Description
fun JSFunction * Pointer to a JS function. fun should be a native function or JSAPI-compiled function. See below.


JS_GetFunctionObject returns the JavaScript Function object for a specified function pointer, fun.

Warning: fun must be either a function implemented by a JSNative or JSFastNative or the result of a call to JS_CompileFunction, JS_CompileUCFunction, JS_CompileFunctionForPrincipals, or JS_CompileUCFunctionForPrincipals. In other cases, the object returned by JS_GetFunctionObject is not necessarily safe to call and should not be exposed to script.

In the JavaScript language, functions are objects. But in the JSAPI there are two separate concepts: a JSObject is what is exposed to scripts and has properties and can be stored in variables; and the corresponding JSFunction contains the code of a function. For certain functions, the two have a strictly one-to-one relationship, and for those functions it is safe to call JS_GetFunctionObject to move from the JSFunction to the JSObject.

However, for other functions, and particularly for JavaScript closures, many JSObjects may share the same JSFunction. In these cases, this function should not be called. Calling the JSObject returned by it could cause a crash or worse.

JS_GetFunctionObject always returns a pointer to an object.

MXR ID Search for JS_GetFunctionObject

Document Tags and Contributors

Last updated by: Jorend,