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.
   *
   * 
   */
  
  'use strict';
  
  var _require = require('./ReactFiberRoot'),
      createFiberRoot = _require.createFiberRoot;
  
  var ReactFiberScheduler = require('./ReactFiberScheduler');
  
  module.exports = function (config) {
    var _ReactFiberScheduler = ReactFiberScheduler(config),
        scheduleWork = _ReactFiberScheduler.scheduleWork,
        performWithPriority = _ReactFiberScheduler.performWithPriority;
  
    return {
      mountContainer: function (element, containerInfo) {
        var root = createFiberRoot(containerInfo);
        var container = root.current;
        // TODO: Use pending work/state instead of props.
        // TODO: This should not override the pendingWorkPriority if there is
        // higher priority work in the subtree.
        container.pendingProps = element;
  
        scheduleWork(root);
  
        // It may seem strange that we don't return the root here, but that will
        // allow us to have containers that are in the middle of the tree instead
        // of being roots.
        return container;
      },
      updateContainer: function (element, container) {
        // TODO: If this is a nested container, this won't be the root.
        var root = container.stateNode;
        // TODO: Use pending work/state instead of props.
        root.current.pendingProps = element;
  
        scheduleWork(root);
      },
      unmountContainer: function (container) {
        // TODO: If this is a nested container, this won't be the root.
        var root = container.stateNode;
        // TODO: Use pending work/state instead of props.
        root.current.pendingProps = [];
  
        scheduleWork(root);
      },
  
  
      performWithPriority: performWithPriority,
  
      getPublicRootInstance: function (container) {
        return null;
      }
    };
  };