Instead of using two uthash entires, it uses two unordered_map entries.
Benefits are:
easier to debug. I can inspect the contents of the unorderd_map with the
debugger
less memory. I don't need to allocate two proxies. I only allocate one
proxy and I added it into both maps
If also fixes an important bug when unrooting objects. Unroot was
cleaning the heap object. So now proxy adds a _jsobj, which is a raw
pointer. Needed under certain cases.
Fixed https://github.com/cocos2d/cocos2d-x/issues/13248
Reason: `ScriptingCore::executeJSFunctionWithThisObj` is somehow broken in release mode.
Solution: Use `JSFunctionWrapper` to manage callbacks instead of managing JS values manually.
I also did the following in this commit:
- Correct the coding style in jsb_socketio.cpp
- Remove android.mk in the Xcode project