code: function(view, attrs) {
      if (Ember.View.detect(view)) {
        attrs = attrs || {};
        attrs._parentView = this;
        attrs.templateData = attrs.templateData || get(this, 'templateData');
  
        view = view.create(attrs);
  
        // don't set the property on a virtual view, as they are invisible to
        // consumers of the view API
        if (view.viewName) { set(get(this, 'concreteView'), view.viewName, view); }
      } else {
        Ember.assert('You must pass instance or subclass of View', view instanceof Ember.View);
        Ember.assert("You can only pass attributes when a class is provided", !attrs);
  
        if (!get(view, 'templateData')) {
          set(view, 'templateData', get(this, 'templateData'));
        }
  
        set(view, '_parentView', this);
      }
  
      return view;
    }
docs: Instantiates a view to be added to the childViews array during view
  initialization. You generally will not call this method directly unless
  you are overriding createChildViews(). Note that this method will
  automatically configure the correct settings on the new view instance to
  act as a child of the parent.
  
  @param {Class} viewClass
  @param {Hash} [attrs] Attributes to add
  @returns {Ember.View} new instance
  @test in createChildViews