js/libs/ember-1.5.1.js
function(props) {
    // must call _super here to ensure that the ActionHandler
    // mixin is setup properly (moves actions -> _actions)
    //
    // Calling super is only OK here since we KNOW that
    // there is another Mixin loaded first.
    this._super.apply(this, arguments);

    var deprecatedProperty, replacementProperty,
        layoutSpecified = (props.layoutName || props.layout || get(this, 'layoutName'));

    if (props.templateName && !layoutSpecified) {
      deprecatedProperty = 'templateName';
      replacementProperty = 'layoutName';

      props.layoutName = props.templateName;
      delete props['templateName'];
    }

    if (props.template && !layoutSpecified) {
      deprecatedProperty = 'template';
      replacementProperty = 'layout';

      props.layout = props.template;
      delete props['template'];
    }

    if (deprecatedProperty) {
      Ember.deprecate('Do not specify ' + deprecatedProperty + ' on a Component, use ' + replacementProperty + ' instead.', false);
    }
  }
function(props) {
    // must call _super here to ensure that the ActionHandler
    // mixin is setup properly (moves actions -> _actions)
    //
    // Calling super is only OK here since we KNOW that
    // there is another Mixin loaded first.
    this._super.apply(this, arguments);

    var deprecatedProperty, replacementProperty,
        layoutSpecified = (props.layoutName || props.layout || get(this, 'layoutName'));

    if (props.templateName && !layoutSpecified) {
      deprecatedProperty = 'templateName';
      replacementProperty = 'layoutName';

      props.layoutName = props.templateName;
      delete props['templateName'];
    }

    if (props.template && !layoutSpecified) {
      deprecatedProperty = 'template';
      replacementProperty = 'layout';

      props.layout = props.template;
      delete props['template'];
    }

    if (deprecatedProperty) {
      Ember.deprecate('Do not specify ' + deprecatedProperty + ' on a Component, use ' + replacementProperty + ' instead.', false);
    }
  }
@private

Moves `templateName` to `layoutName` and `template` to `layout` at extend
time if a layout is not also specified.

Note that this currently modifies the mixin themselves, which is technically
dubious but is practically of little consequence. This may change in the
future.

@method willMergeMixin