docs: function handlebarsGetView(context, path, container, options) {
        var viewClass;
        var data;
        var pathType;
        if (options) {
          data      = options.data;
          pathType  = options.types && options.types[0];
        }
  
        if ('string' === typeof path) {
          if('STRING' === pathType && container) {
            viewClass = lookupViewInContainer(container, path);
            Ember.deprecate('Quoted view names must refer to a view in the container.', viewClass);
  
          }
  
          if(!viewClass) {
            viewClass = lookupViewByClassName(path);
          }
  
          if(!viewClass) {
            if (data) {
              var normalizedPath = normalizePath(context, path, data);
              context = normalizedPath.root;
              path = normalizedPath.path;
            }
  
            // Only lookup view class on context if there is a context. If not,
            // the global lookup path on get may kick in.
            viewClass = context && get(context, path);
  
            if(!viewClass) {
              // try the container once more with the normalized path
              viewClass = lookupViewInContainer(container, path);
            }
          }
        } else {
          viewClass = path;
        }
  
        // Sometimes a view's value is yet another path
        if ('string' === typeof viewClass && data && data.view) {
          viewClass = handlebarsGetView(data.view, viewClass, container, {
            data: data,
            types: ['ID']
          });
        }
  
        Ember.assert(
          fmt(path+" must be a subclass or an instance of Ember.View, not %@", [viewClass]),
          View.detect(viewClass) || View.detectInstance(viewClass)
        );
  
        return viewClass;
      }