Can not extend from ccs.UILayer in jsb

as the title says.
var CustomLayer = ccs.UILayer.extend({
});

You can try:
var CustomLayer = cc.Layer.extend({
uiLayer:null,
init:function(){
uiLayer = ccs.UILayer.create();
}
});

This will work, but there will be a issue when two buttons overlap with each other(put a button inside the uiLayer of the CustomLayer), the outer button can’t be clicked and the button inside the CustomLayer(behind) will be clicked instead.

var RootLayer = cc.Layer.extend({
    init: function () {
        var layer = CustomLayer.create();
        this.addChild(layer);

        var uiLayer = ccs.UILayer.create();
        var btn = ccs.UIButton.create();
        btn.loadTextures(s_btn, s_btn, '');
        btn.setPosition(cc.p(winSize.width / 2, winSize.height / 2));
        btn.setTouchEnable(true);
        btn.setPressedActionEnabled(true);
        btn.addTouchEventListener(function (sender, type) {
            if (type == ccs.TouchEventType.ended) {
                // do something
            }
        }, uiLayer);
        uiLayer.addWidget(btn);
        this.addChild(uiLayer);
    }
});

You can set priority of button for different case needed.