Я пытаюсь обновить расширение оболочки Gnome. В нем я переопределяю метод _init объекта, что делаю так:
function newInitAppSwitcherPopup() {
this.parent();
...
}
AltTab.AppSwitcherPopup.prototype._init = newInitAppSwitcherPopup;
Новый метод терпит неудачу с:
ОШИБКА JS: TypeError: метод «родительский» не может быть вызван
Что меня очень удивляет, так это то, что метод parent
действительно существует (если я изменю имя, я получу ошибку «не определено»).
Чего я не понимаю, так это того, что оригинальный AppSwitcherPopup._init все еще использует этот вызов для родителя (https://git.gnome.org/browse/gnome-shell/tree/js/ui/altTab.js?h=gnome-3-16#n54).
Это хорошо работало в Gnome 3.12, но не работает в Gnome 3.16... Думаю, они что-то изменили в своих моделях GObject или наследования?