clearListeners() does not check for the existence of the _emitterListeners property before calling _emitterListeners.filterAll(). If _emitterListeners is undefined, it throws an error.
clearListeners: function clearListeners(context) {
...
this._emitterListeners.filterAll(function(record) {
...
}
off() checks for _emitterListeners, so using off(null, null, this), which calls clearListeners(), works as expected.
off: function off(eventIdentifier, callback, context) {
// not initialised - so no listeners of any kind
if (this._emitterListeners == null) { return false; }
...
...
this.clearListeners(this);
...
}