text: /**
   * Copyright 2013-present, 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 ReactComponentWithPureRenderMixin
   */
  
  'use strict';
  
  var shallowCompare = require('shallowCompare');
  
  /**
   * If your React component's render function is "pure", e.g. it will render the
   * same result given the same props and state, provide this mixin for a
   * considerable performance boost.
   *
   * Most React components have pure render functions.
   *
   * Example:
   *
   *   var ReactComponentWithPureRenderMixin =
   *     require('ReactComponentWithPureRenderMixin');
   *   React.createClass({
   *     mixins: [ReactComponentWithPureRenderMixin],
   *
   *     render: function() {
   *       return <div className={this.props.className}>foo</div>;
   *     }
   *   });
   *
   * Note: This only checks shallow equality for props and state. If these contain
   * complex data structures this mixin may have false-negatives for deeper
   * differences. Only mixin to components which have simple props and state, or
   * use `forceUpdate()` when you know deep data structures have changed.
   *
   * See https://facebook.github.io/react/docs/pure-render-mixin.html
   */
  var ReactComponentWithPureRenderMixin = {
    shouldComponentUpdate: function(nextProps, nextState, nextContext) {
      return shallowCompare(this, nextProps, nextState, nextContext);
    },
  };
  
  module.exports = ReactComponentWithPureRenderMixin;
  