docs: function (listeners, change, listenerToExclude) {
          for (var idx = 0, length = listeners.length; idx < length; idx++) {
              var lsn = listeners[idx];
              if (lsn == listenerToExclude || !lsn) {
                  continue;
              }
              var fn = lsn.fn;
              if (fn) {
                  // note that calling $callback has an impact on performances (x2)
                  // that's why we don't do it here
                  fn.call(lsn.scope, change, lsn.args);
              }
          }
      }