用1.6版引擎分支生成的jsBinding代码 参数有问题

定义这样一个 c++类
class TileLayer : public cocos2d::Node {
public:
void setTile(int32_t cx, int32_t cy, uint16_t bufferIndex, RegionMap *map, uint32_t index);
}

执行JsBinding生成的 jsb_xx_auto.cpp里代码如下
bool js_ff_TileLayer_setTile(JSContext *cx, uint32_t argc, JS::Value *vp)
{
JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
bool ok = true; CC_UNUSED_PARAM(ok);
JS::RootedObject obj(cx, args.thisv().toObjectOrNull());
js_proxy_t proxy = jsb_get_js_proxy(cx, obj);
fufu::TileLayer
cobj = (fufu::TileLayer )(proxy ? proxy->ptr : NULL);
JSB_PRECONDITION2( cobj, cx, false, “js_ff_TileLayer_setTile : Invalid Native Object”);
if (argc == 5) {
int arg0 = 0;
int arg1 = 0;
unsigned short arg2 = 0;
fufu::RegionMap
arg3 = nullptr;
unsigned int arg4 = 0;
ok &= jsval_to_int32(cx, args.get(0), (int32_t *)&arg0);
ok &= jsval_to_int32(cx, args.get(1), (int32_t *)&arg1);
ok &= jsval_to_uint32(cx, args.get(2), (uint32_t *)&arg2);
do {
if (args.get(3).isNull()) { arg3 = nullptr; break; }
if (!args.get(3).isObject()) { ok = false; break; }
js_proxy_t jsProxy;
JS::RootedObject tmpObj(cx, args.get(3).toObjectOrNull());
jsProxy = jsb_get_js_proxy(cx, tmpObj);
arg3 = (fufu::RegionMap
)(jsProxy ? jsProxy->ptr : NULL);
JSB_PRECONDITION2( arg3, cx, false, “Invalid Native Object”);
} while (0);
ok &= jsval_to_int32(cx, args.get(4), (int32_t *)&arg4);
JSB_PRECONDITION2(ok, cx, false, “js_ff_TileLayer_setTile : Error processing arguments”);
cobj->setTile(arg0, arg1, arg2, arg3, arg4);
args.rval().setUndefined();
return true;
}

JS_ReportErrorUTF8(cx, "js_ff_TileLayer_setTile : wrong number of arguments: %d, was expecting %d", argc, 5);
return false;

}

看arg2的转换 代码:
ok &= jsval_to_uint32(cx, args.get(2), (uint32_t *)&arg2); arg2定义的是uint16_t, 但是是按照uint32_t转换的, 导致 arg1里的内容 被修改了, arg1里的内容 不管传什么 永远都是0

难道 没有人 遇到过这个问题吗? creator 官方能看下吗