ScriptingCore is the main class which manages interaction with JavaScript environment. More...
Inherits ScriptEngineProtocol.
Public Member Functions | |
| virtual cocos2d::ccScriptType | getScriptType () override |
Gets the script type, for ScriptingCore, it will return cocos2d::kScriptTypeJavascript More... | |
| local | getScriptType () |
Gets the script type, for ScriptingCore, it will return cocos2d::kScriptTypeJavascript More... | |
| virtual void | retainScriptObject (cocos2d::Ref *owner, cocos2d::Ref *target) override |
| Reflect the retain relationship to script scope. | |
| var | retainScriptObject ( var owner, var target) |
| Reflect the retain relationship to script scope. | |
| local | retainScriptObject ( local owner, local target) |
| Reflect the retain relationship to script scope. | |
| virtual void | rootScriptObject (cocos2d::Ref *target) override |
| Add the script object to root object. | |
| virtual void | releaseScriptObject (cocos2d::Ref *owner, cocos2d::Ref *target) override |
| Reflect the release relationship to script scope. | |
| var | releaseScriptObject ( var owner, var target) |
| Reflect the release relationship to script scope. | |
| local | releaseScriptObject ( local owner, local target) |
| Reflect the release relationship to script scope. | |
| virtual void | unrootScriptObject (cocos2d::Ref *target) override |
| Remove the script object from root object. | |
| virtual void | releaseAllChildrenRecursive (cocos2d::Node *node) override |
| Release all children in script scope. | |
| virtual void | releaseAllNativeRefs (cocos2d::Ref *owner) override |
| Release all native refs for the given owner in script scope. | |
| local | releaseAllNativeRefs ( local owner) |
| Release all native refs for the given owner in script scope. | |
| virtual void | removeScriptObjectByObject (cocos2d::Ref *obj) override |
| Removes the C++ object's linked JavaScript proxy object from JavaScript context. More... | |
| virtual int | executeString (const char *codes) override |
| Useless in ScriptingCore, please use evalString. More... | |
| void | pauseSchedulesAndActions (js_proxy_t *p) |
| Pause scheduled tasks and actions for an object proxy. More... | |
| void | resumeSchedulesAndActions (js_proxy_t *p) |
| Resume scheduled tasks and actions for an object proxy. More... | |
| void | cleanupSchedulesAndActions (js_proxy_t *p) |
| Cleanup scheduled tasks and actions for an object proxy. More... | |
| virtual int | executeScriptFile (const char *filename) override |
| Useless in ScriptingCore, please use runScript. More... | |
| virtual int | executeGlobalFunction (const char *functionName) override |
| Useless in ScriptingCore, please use executeFunctionWithOwner. More... | |
| virtual int | sendEvent (cocos2d::ScriptEvent *message) override |
| When trigger a script event ,call this func,add params needed into ScriptEvent object.nativeObject is object triggering the event, can be nullptr in Lua. | |
| virtual bool | parseConfig (ConfigType type, const std::string &str) override |
| Parse configuration file. More... | |
| local | parseConfig ( local type, local str) |
| Parse configuration file. More... | |
| virtual bool | handleAssert (const char *msg) override |
| Useless in ScriptingCore. More... | |
| virtual void | setCalledFromScript (bool callFromScript) override |
| Useless for Lua. | |
| virtual bool | isCalledFromScript () override |
| Useless for Lua. | |
| bool | executeFunctionWithObjectData (void *nativeObj, const char *name, JSObject *obj) |
| Execute a js function with a JavaScript object as parameter. More... | |
| bool | executeFunctionWithOwner (jsval owner, const char *name, uint32_t argc, jsval *vp) |
| Execute a js function with a JavaScript caller, function name, arguments count and arguments. More... | |
| var | executeFunctionWithOwner ( var owner, var name, var argc, var vp) |
| Execute a js function with a JavaScript caller, function name, arguments count and arguments. More... | |
| local | executeFunctionWithOwner ( local owner, local name, local argc, local vp) |
| Execute a js function with a JavaScript caller, function name, arguments count and arguments. More... | |
| bool | executeFunctionWithOwner (jsval owner, const char *name, uint32_t argc, jsval *vp, JS::MutableHandleValue retVal) |
| Execute a js function with a JavaScript caller, function name, arguments count, arguments and a return value. More... | |
| var | executeFunctionWithOwner ( var owner, var name, var argc, var vp, var retVal) |
| Execute a js function with a JavaScript caller, function name, arguments count, arguments and a return value. More... | |
| local | executeFunctionWithOwner ( local owner, local name, local argc, local vp, local retVal) |
| Execute a js function with a JavaScript caller, function name, arguments count, arguments and a return value. More... | |
| bool | executeFunctionWithOwner (jsval owner, const char *name, const JS::HandleValueArray &args) |
| Execute a js function with a JavaScript caller, function name, arguments array. More... | |
| bool | executeFunctionWithOwner (jsval owner, const char *name, const JS::HandleValueArray &args, JS::MutableHandleValue retVal) |
| Execute a js function with a JavaScript caller, function name, arguments array and a return value. More... | |
| void | executeJSFunctionWithThisObj (JS::HandleValue thisObj, JS::HandleValue callback) |
| Execute a js function with a js this object and the js function object. More... | |
| void | executeJSFunctionWithThisObj (JS::HandleValue thisObj, JS::HandleValue callback, const JS::HandleValueArray &vp, JS::MutableHandleValue retVal) |
| Execute a js function with a js this object, the js function object, arguments and a return value. More... | |
| bool | evalString (const char *string, JS::MutableHandleValue outVal, const char *filename, JSContext *cx, JS::HandleObject global) |
| Evaluate the specified js code string. More... | |
| bool | evalString (const char *string, JS::MutableHandleValue outVal) |
| Evaluate the specified js code string. More... | |
| bool | evalString (const char *string) |
| Evaluate the specified js code string. More... | |
| JS::PersistentRootedScript * | getScript (const std::string &path) |
| Get script object for the given path. More... | |
| local | getScript ( local path) |
| Get script object for the given path. More... | |
| JS::PersistentRootedScript * | compileScript (const std::string &path, JS::HandleObject global, JSContext *cx=nullptr) |
| Compile the specified js file. More... | |
| local | compileScript ( local path, local global, local nullptr) |
| Compile the specified js file. More... | |
| bool | runScript (const std::string &path) |
| Run the specified js file. More... | |
| bool | runScript (const std::string &path, JS::HandleObject global, JSContext *cx=NULL) |
| Run the specified js file. More... | |
| local | runScript ( local path, local global, local NULL) |
| Run the specified js file. More... | |
| bool | requireScript (const char *path, JS::MutableHandleValue jsvalRet) |
| Require the specified js file The difference between run and require is that require returns the export object of the script. More... | |
| local | requireScript ( local path, local jsvalRet) |
| Require the specified js file The difference between run and require is that require returns the export object of the script. More... | |
| bool | requireScript (const char *path, JS::HandleObject global, JSContext *cx, JS::MutableHandleValue jsvalRet) |
| Require the specified js file The difference between run and require is that require returns the export object of the script. More... | |
| local | requireScript ( local path, local global, local cx, local jsvalRet) |
| Require the specified js file The difference between run and require is that require returns the export object of the script. More... | |
| void | cleanScript (const char *path) |
| Clean script object for the specified js file. More... | |
| std::unordered_map < std::string, JS::PersistentRootedScript * > & | getFileScript () |
| Gets the cached script objects for all executed js file. More... | |
| void | cleanAllScript () |
| Clean all script objects. | |
| std::chrono::steady_clock::time_point | getEngineStartTime () const |
| Gets the time that the ScriptingCore was initalized. | |
| local | getEngineStartTime () |
| Gets the time that the ScriptingCore was initalized. | |
| void | start () |
| Initialize everything, including the js context, js global object etc. | |
| void | cleanup () |
| Cleanup everything, including script cache, js context, global object etc. | |
| void | reset () |
| Cleanup everything then initialize everything. | |
| void | addRegisterCallback (sc_register_sth callback) |
| Add the register_sth callback to the list of functions that need to be called after the creation of the context. More... | |
| void | createGlobalContext () |
| Create a new context. More... | |
| int | executeCustomTouchEvent (cocos2d::EventTouch::EventCode eventType, cocos2d::Touch *pTouch, JSObject *obj, JS::MutableHandleValue retval) |
| Simulate a touch event and dispatch it to a js object. More... | |
| int | executeCustomTouchEvent (cocos2d::EventTouch::EventCode eventType, cocos2d::Touch *pTouch, JSObject *obj) |
| Simulate a touch event and dispatch it to a js object. More... | |
| int | executeCustomTouchesEvent (cocos2d::EventTouch::EventCode eventType, const std::vector< cocos2d::Touch * > &touches, JSObject *obj) |
| Simulate a multi touch event and dispatch it to a js object. More... | |
| JSContext * | getGlobalContext () |
| Gets the current global context. More... | |
| bool | setReservedSpot (uint32_t i, JSObject *obj, jsval value) |
| Sets a js value to the targeted js object's reserved slot, which is not exposed to script environment. More... | |
| void | debugProcessInput (const std::string &str) |
| Log a string to the debug environment. More... | |
| void | enableDebugger (unsigned int port=5086) |
| Enable the debug environment, mozilla Firefox's remote debugger or Code IDE can connect to it. More... | |
| JSObject * | getDebugGlobal () |
| Gets the debug environment's global object. More... | |
| JSObject * | getGlobalObject () |
| Gets the global object. More... | |
| bool | isFunctionOverridedInJS (JS::HandleObject obj, const std::string &name, JSNative native) |
| Checks whether a C++ function is overridden in js prototype chain. More... | |
| virtual void | rootObject (cocos2d::Ref *ref) override |
| Roots the associated JSObj. More... | |
| virtual void | unrootObject (cocos2d::Ref *ref) override |
| Unroots the associated JSObj. More... | |
| local | unrootObject ( local ref) |
| Unroots the associated JSObj. More... | |
| virtual void | removeObjectProxy (cocos2d::Ref *obj) override |
| Remove proxy for a native object. | |
| local | removeObjectProxy ( local obj) |
| Remove proxy for a native object. | |
| virtual void | garbageCollect () override |
| Calls the Garbage Collector. | |
| void | setFinalizing (JSObject *finalizing) |
| Sets the js object that is being finalizing in the script engine, internal use only, please do not call this function. | |
| JSObject * | getFinalizing () |
| Gets the js object that is being finalizing in the script engine. | |
Public Member Functions inherited from ScriptEngineProtocol | |
| ScriptEngineProtocol () | |
| Constructor of ScriptEngineProtocol. | |
| virtual | ~ScriptEngineProtocol () |
| Destructor of ScriptEngineProtocol. | |
| virtual void | removeScriptHandler (int) |
| Remove script function handler, only LuaEngine class need to implement this function. More... | |
| virtual int | reallocateScriptHandler (int) |
| Reallocate script function handler, only LuaEngine class need to implement this function. More... | |
Static Public Member Functions | |
| static ScriptingCore * | getInstance () |
| ScriptingCore is a singleton class, you can retrieve its instance with this function. More... | |
| static void | removeAllRoots (JSContext *cx) |
| Removes all rooted object in the given js context, rooted object won't be garbage collected. More... | |
| static void | reportError (JSContext *cx, const char *message, JSErrorReport *report) |
| Report an error in the js context. More... | |
| var | reportError ( var cx, var message, var report) |
| Report an error in the js context. More... | |
| local | reportError ( local cx, local message, local report) |
| Report an error in the js context. More... | |
| static bool | log (JSContext *cx, uint32_t argc, jsval *vp) |
| Log something to the js context using CCLog. More... | |
| static bool | executeScript (JSContext *cx, uint32_t argc, jsval *vp) |
Runs a script from script environment, it should be invoked from script environment Bound to __jsc__.executeScript and window.executeScript More... | |
| local | executeScript ( local cx, local argc, local vp) |
Runs a script from script environment, it should be invoked from script environment Bound to __jsc__.executeScript and window.executeScript More... | |
| static bool | forceGC (JSContext *cx, uint32_t argc, jsval *vp) |
Forces a cycle of garbage collection, it should be invoked from script environment Bound to __jsc__.garbageCollect and window.garbageCollect More... | |
| local | forceGC ( local cx, local argc, local vp) |
Forces a cycle of garbage collection, it should be invoked from script environment Bound to __jsc__.garbageCollect and window.garbageCollect More... | |
| static bool | dumpRoot (JSContext *cx, uint32_t argc, jsval *vp) |
Dump all named rooted objects, it should be invoked from script environment Bound to __jsc__.dumpRoot More... | |
| local | dumpRoot ( local cx, local argc, local vp) |
Dump all named rooted objects, it should be invoked from script environment Bound to __jsc__.dumpRoot More... | |
| static bool | isObjectValid (JSContext *cx, uint32_t argc, jsval *vp) |
Check whether a js object's C++ proxy is still valid, it should be invoked from script environment Bound to window.__isObjectValid More... | |
| local | isObjectValid ( local cx, local argc, local vp) |
Check whether a js object's C++ proxy is still valid, it should be invoked from script environment Bound to window.__isObjectValid More... | |
Additional Inherited Members | |
Public Types inherited from ScriptEngineProtocol | |
| enum | ConfigType |
| ConfigType enum. More... | |
ScriptingCore is the main class which manages interaction with JavaScript environment.
It creates the JavaScript context and its global object. It also manages object bindings between C++ scope and JavaScript scope, for most cocos2d classes, if you create an object in JavaScript scope, it will also create a C++ object, ScriptingCore will manage a proxy between them and synchronize the life cycle. It can: