docs: function addListener(obj, eventName, target, method, once) {
      _emberMetalDebug.assert('You must pass at least an object and event name to Ember.addListener', !!obj && !!eventName);
  
      if (eventName === 'didInitAttrs' && obj.isComponent) {
        _emberMetalDebug.deprecate('[DEPRECATED] didInitAttrs called in ' + obj.toString() + '.', false, {
          id: 'ember-views.did-init-attrs',
          until: '3.0.0',
          url: 'http://emberjs.com/deprecations/v2.x#toc_ember-component-didinitattrs'
        });
      }
  
      if (!method && 'function' === typeof target) {
        method = target;
        target = null;
      }
  
      var flags = 0;
      if (once) {
        flags |= _emberMetalMeta_listeners.ONCE;
      }
  
      _emberMetalMeta.meta(obj).addToListeners(eventName, target, method, flags);
  
      if ('function' === typeof obj.didAddListener) {
        obj.didAddListener(eventName, target, method);
      }
    }