关于lua binding 和 js binding的疑问

lua和js两种脚本绑定,它们的消息实现逻辑都不一样,如:

void Node::onEnter()
{
if (_onEnterCallback)
_onEnterCallback();

if (_componentContainer && !_componentContainer->isEmpty())
{
    _componentContainer->onEnter();
}

#if CC_ENABLE_SCRIPT_BINDING
if (_scriptType == kScriptTypeJavascript)
{
if (ScriptEngineManager::sendNodeEventToJS(this, kNodeOnEnter))
return;
}
#endif

_isTransitionFinished = false;

for( const auto &child: _children)
    child->onEnter();

this->resume();

_running = true;

#if CC_ENABLE_SCRIPT_BINDING
if (_scriptType == kScriptTypeLua)
{
ScriptEngineManager::sendNodeEventToLua(this, kNodeOnEnter);
}
#endif
}

再如:
bool Layer::onTouchBegan(Touch *touch, Event *event)
{
#if CC_ENABLE_SCRIPT_BINDING
if (kScriptTypeLua == _scriptType)
{
return executeScriptTouchHandler(EventTouch::EventCode::BEGAN, touch, event) == 0 ? false : true;
}
#endif
CC_UNUSED_PARAM(event);
CCASSERT(false, “Layer#ccTouchBegan override me”);
return true;
}

我只是想问问为什么这样做?
当我第一次看到Layer的onTouchBegan, move, end时,我还以为这是专门提供给lua binding的版本,跟js没什么关系,
这些地方能否统一一下呢?