@@ -377,7 +377,8 @@ bool JSB_restartGame(JSContext *cx, uint32_t argc, jsval *vp)
377
377
JS_SET_RVAL (cx, vp, JSVAL_VOID);
378
378
JSB_PRECONDITION2 (argc==0 , cx, false , " Invalid number of arguments in executeScript" );
379
379
ScriptingCore::getInstance ()->reset ();
380
- }
380
+ return true ;
381
+ };
381
382
382
383
bool JSB_core_restartVM (JSContext *cx, uint32_t argc, jsval *vp)
383
384
{
@@ -731,8 +732,23 @@ bool ScriptingCore::runScript(const char *path, JSObject* global, JSContext* cx)
731
732
732
733
void ScriptingCore::reset ()
733
734
{
735
+ auto director = Director::getInstance ();
736
+ FontFNT::purgeCachedData ();
737
+ if (director->getOpenGLView ())
738
+ {
739
+ SpriteFrameCache::getInstance ()->removeSpriteFrames ();
740
+ director->getTextureCache ()->removeAllTextures ();
741
+ }
742
+ FileUtils::getInstance ()->purgeCachedEntries ();
743
+ director->getScheduler ()->unscheduleAll ();
744
+
734
745
cleanup ();
735
- start ();
746
+
747
+ this ->addRegisterCallback (registerDefaultClasses);
748
+ this ->_runLoop = new SimpleRunLoop ();
749
+
750
+ Application::getInstance ()->run ();
751
+ // start();
736
752
}
737
753
738
754
ScriptingCore::~ScriptingCore ()
@@ -768,6 +784,7 @@ void ScriptingCore::cleanup()
768
784
769
785
_js_global_type_map.clear ();
770
786
filename_script.clear ();
787
+ registrationList.clear ();
771
788
}
772
789
773
790
void ScriptingCore::reportError (JSContext *cx, const char *message, JSErrorReport *report)
0 commit comments