old_contents: /**
   * Copyright (c) 2015-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 flattenStyle
   * @flow
   */
  'use strict';
  
  var StyleSheetRegistry = require('StyleSheetRegistry');
  var invariant = require('invariant');
  
  type Atom = number | bool | Object | Array<?Atom>
  type StyleObj = Atom | Array<?StyleObj>
  
  function getStyle(style) {
    if (typeof style === 'number') {
      return StyleSheetRegistry.getStyleByID(style);
    }
    return style;
  }
  
  function flattenStyle(style: ?StyleObj): ?Object {
    if (!style) {
      return undefined;
    }
    invariant(style !== true, 'style may be false but not true');
  
    if (!Array.isArray(style)) {
      return getStyle(style);
    }
  
    var result = {};
    for (var i = 0; i < style.length; ++i) {
      var computedStyle = flattenStyle(style[i]);
      if (computedStyle) {
        for (var key in computedStyle) {
          result[key] = computedStyle[key];
  
          if (__DEV__) {
            var value = computedStyle[key];
            invariant(
              !value || typeof value !== 'object' || !value.getValue,
                'You passed an Animated.Value to a normal component. ' +
                'You need to wrap that component in an Animated. For example, ' +
                'replace <View /> by <Animated.View />.'
            );
          }
        }
      }
    }
    return result;
  }
  
  module.exports = flattenStyle;
  
new_contents: /**
   * Copyright (c) 2015-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 flattenStyle
   * @flow
   */
  'use strict';
  
  var StyleSheetRegistry = require('StyleSheetRegistry');
  var invariant = require('invariant');
  
  type Atom = number | bool | Object | Array<?Atom>
  type StyleObj = Atom | Array<?StyleObj>
  
  function getStyle(style) {
    if (typeof style === 'number') {
      return StyleSheetRegistry.getStyleByID(style);
    }
    return style;
  }
  
  function flattenStyle(style: ?StyleObj): ?Object {
    if (!style) {
      return undefined;
    }
    invariant(style !== true, 'style may be false but not true');
  
    if (!Array.isArray(style)) {
      return getStyle(style);
    }
  
    var result = {};
    for (var i = 0; i < style.length; ++i) {
      var computedStyle = flattenStyle(style[i]);
      if (computedStyle) {
        for (var key in computedStyle) {
          result[key] = computedStyle[key];
  
          if (__DEV__) {
            var value = computedStyle[key];
          }
        }
      }
    }
    return result;
  }
  
  module.exports = flattenStyle;
  
subject: Revert D2134877