code: function makeNativeSimulator(eventType) {
    return function (domComponentOrNode, nativeEventData) {
      var fakeNativeEvent = new Event(eventType);
      _assign(fakeNativeEvent, nativeEventData);
      if (ReactTestUtils.isDOMComponent(domComponentOrNode)) {
        ReactTestUtils.simulateNativeEventOnDOMComponent(eventType, domComponentOrNode, fakeNativeEvent);
      } else if (domComponentOrNode.tagName) {
        // Will allow on actual dom nodes.
        ReactTestUtils.simulateNativeEventOnNode(eventType, domComponentOrNode, fakeNativeEvent);
      }
    };
  }
docs: Exports:
  
  - `ReactTestUtils.SimulateNative.click(Element/ReactDOMComponent)`
  - `ReactTestUtils.SimulateNative.mouseMove(Element/ReactDOMComponent)`
  - `ReactTestUtils.SimulateNative.mouseIn/ReactDOMComponent)`
  - `ReactTestUtils.SimulateNative.mouseOut(Element/ReactDOMComponent)`
  - ... (All keys from `EventConstants.topLevelTypes`)
  
  Note: Top level event types are a subset of the entire set of handler types
  (which include a broader set of "synthetic" events). For example, onDragDone
  is a synthetic event. Except when testing an event plugin or React's event
  handling code specifically, you probably want to use ReactTestUtils.Simulate
  to dispatch synthetic events.