关于3.8中resolveAfterPromiseResolved和rejectAfterPromiseResolved错误

你在 ScriptEngine::cleanup 里面,清空一下 _promiseArray,应该就可以修复。这个应该是之前处理这块逻辑,没有考虑到这种极端条件(即,在 restart 前刚好有 pushPromiseExeception 一次)

3.8.4 修复此问题:

我这样加完以后,确实不crash了,但是正常的业务promise错误好像都没了。可以帮忙试一下你们那边ok吗

都已经在重启(game.restart) 了,那么缓存住的 promise 异常没有必要处理了。
如果你确定还要处理,可以在这里直接调用 handlePromiseException 强行处理一下。如果是 cpp 层监听回调,那么会走cpp回调;如果是 js 层通过 jsb.onError 监听错误,那么调用 js 后如果有异步逻辑的话,由于 虚拟机即将重启,一些异步逻辑也不会执行了。

嗯 验证ok的