cocos2dx C++ JS 混合开发的问题。

折腾了一天 引擎用的3.7.1 工程时用的 -l js 创建的,主体框架是用C++ 写 ,在菜单 Layer 一个按钮 单击 进入 js编写的模块

ScriptingCore* sc = ScriptingCore::getInstance();
sc->runScript(“src/app.js”);

app.js 是 cc.director.pushScene(new aaa.SceneGame());
js 模块返回 是 cc.director.popScene();

重复步骤 1 进入 js 模块 2 退出 返回 C++ Menu
重复4次 就会报错,直接卡死在 红色字体。

ool ScriptingCore::runScript(const char path, JS::HandleObject global, JSContext cx)
{
if (cx == NULL) {
cx = _cx;
}

compileScript(path,global,cx);
JS::RootedScript script(cx, getScript(path));
bool evaluatedOK = false;
if (script) {
    JS::RootedValue rval(cx);
    JSAutoCompartment ac(cx, global);

    evaluatedOK = JS_ExecuteScript(cx, global, script, &rval);
    if (false == evaluatedOK) {

cocos2d::log("(evaluatedOK == JS_FALSE)");
JS_ReportPendingException(cx);
}
}

return evaluatedOK;

}