Как и обещал вот тут ещё ошибки в свежем API 2.0.13
Рассмотрим код нескольких функций:
// ListBox.remove()
remove: function (listItem) {
delete this._childWidths[id.get(listItem)];
this._recalculateSize();
ListBox.superclass.remove.call(this, listItem);
},
// ToolBar.remove()
remove: function (button) {
delete this._childWidths[id.get(button)];
this._recalculateSize();
ToolBar.superclass.remove.call(this, button);
},
CollectionImplementation.prototype = {
add: function (child) {
this._parentCollection.add(child);
},
remove: function (child) {
this._parentCollection.remove(child);
},
removeAll: function () {
this._parentCollection.removeAll();
},
/** @lends LayerCollection.prototype */
imports.util.augment(LayerCollection, imports.Collection, {
add: function (child) {
LayerCollection.superclass.add.call(this, child);
if (typeof child.getZoomRange == 'function') {
this._zoomRangeObserver.addProvider(child);
}
if (typeof child.getCopyrights == 'function') {
this._copyrightsObserver.addProvider(child);
}
if (typeof child.getBrightness == 'function') {
child.events.add('brightnesschange', this._onChildBrightnessChange, this);
this._onChildBrightnessChange();
}
},
remove: function (child) {
LayerCollection.superclass.remove.call(this, child);
if (typeof child.getZoomRange == 'function') {
this._zoomRangeObserver.removeProvider(child);
}
if (typeof child.getCopyrights == 'function') {
this._copyrightsObserver.removeProvider(child);
}
if (typeof child.getBrightness == 'function') {
child.events.remove('brightnesschange', this._onChildBrightnessChange, this);
this._onChildBrightnessChange();
}
},
И т.д... Вроде бы всё корректно, что же их объединяет? Читаем пример документации:
remove
{ICollection} remove(object)
Удаляет из коллекции дочерний объект.
Возвращает ссылку на себя.
А на деле получается, что функции ничего не возвращают и вызовы "по цепочке" не срабатывают. Я привёл примеры, которые быстро попались под руку, и всё это реализации ICollection. Для исправления требуется дописать одно-единственное ключевое слово, очень надеюсь на это не уйдёт ещё один месяц :)