old_contents: /**
   * Copyright 2014, Facebook, Inc.
   * All rights reserved.
   *
   * This source code is licensed under the BSD-style license found in the
   * LICENSE file in the root directory of this source tree. An additional grant
   * of patent rights can be found in the PATENTS file in the same directory.
   *
   * @providesModule ReactNativeComponent
   */
  
  "use strict";
  
  var assign = require('Object.assign');
  var invariant = require('invariant');
  
  var genericComponentClass = null;
  // This registry keeps track of wrapper classes around native tags
  var tagToComponentClass = {};
  
  var ReactNativeComponentInjection = {
    // This accepts a class that receives the tag string. This is a catch all
    // that can render any kind of tag.
    injectGenericComponentClass: function(componentClass) {
      genericComponentClass = componentClass;
    },
    // This accepts a keyed object with classes as values. Each key represents a
    // tag. That particular tag will use this class instead of the generic one.
    injectComponentClasses: function(componentClasses) {
      assign(tagToComponentClass, componentClasses);
    }
  };
  
  /**
   * Create an internal class for a specific tag.
   *
   * @param {string} tag The tag for which to create an internal instance.
   * @param {any} props The props passed to the instance constructor.
   * @return {ReactComponent} component The injected empty component.
   */
  function createInstanceForTag(tag, props, parentType) {
    var componentClass = tagToComponentClass[tag];
    if (componentClass == null) {
      invariant(
        genericComponentClass,
        'There is no registered component for the tag %s',
        tag
      );
      return new genericComponentClass(tag, props);
    }
    if (parentType === tag) {
      // Avoid recursion
      invariant(
        genericComponentClass,
        'There is no registered component for the tag %s',
        tag
      );
      return new genericComponentClass(tag, props);
    }
    // Unwrap legacy factories
    return new componentClass(props);
  }
  
  var ReactNativeComponent = {
    createInstanceForTag: createInstanceForTag,
    injection: ReactNativeComponentInjection,
  };
  
  module.exports = ReactNativeComponent;
  
new_contents: /**
   * Copyright 2014, Facebook, Inc.
   * All rights reserved.
   *
   * This source code is licensed under the BSD-style license found in the
   * LICENSE file in the root directory of this source tree. An additional grant
   * of patent rights can be found in the PATENTS file in the same directory.
   *
   * @providesModule ReactNativeComponent
   */
  
  "use strict";
  
  var assign = require('Object.assign');
  var invariant = require('invariant');
  
  var genericComponentClass = null;
  // This registry keeps track of wrapper classes around native tags
  var tagToComponentClass = {};
  
  var ReactNativeComponentInjection = {
    // This accepts a class that receives the tag string. This is a catch all
    // that can render any kind of tag.
    injectGenericComponentClass: function(componentClass) {
      genericComponentClass = componentClass;
    },
    // This accepts a keyed object with classes as values. Each key represents a
    // tag. That particular tag will use this class instead of the generic one.
    injectComponentClasses: function(componentClasses) {
      assign(tagToComponentClass, componentClasses);
    }
  };
  
  /**
   * Create an internal class for a specific tag.
   *
   * @param {string} tag The tag for which to create an internal instance.
   * @param {any} props The props passed to the instance constructor.
   * @return {ReactComponent} component The injected empty component.
   */
  function createInstanceForTag(tag, props, parentType) {
    var componentClass = tagToComponentClass[tag];
    if (componentClass == null) {
      invariant(
        genericComponentClass,
        'There is no registered component for the tag %s',
        tag
      );
      return new genericComponentClass(tag, props);
    }
    if (parentType === tag) {
      // Avoid recursion
      invariant(
        genericComponentClass,
        'There is no registered component for the tag %s',
        tag
      );
      return new genericComponentClass(tag, props);
    }
    return new componentClass(props);
  }
  
  var ReactNativeComponent = {
    createInstanceForTag: createInstanceForTag,
    injection: ReactNativeComponentInjection,
  };
  
  module.exports = ReactNativeComponent;
  
subject: Remove unrelated comment