<!--
  Note: if the issue is about documentation or the website, please file it at:
  https://github.com/reactjs/reactjs.org/issues/new
-->

**Do you want to request a *feature* or report a *bug*?**
Bug. Behavior regression.

**What is the current behavior?**
Package throws when being required in Node.

**If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem. Your bug will get fixed much faster if we can run your code and it doesn't have dependencies other than React. Paste the link to your JSFiddle (https://jsfiddle.net/Luktwrdm/) or CodeSandbox (https://codesandbox.io/s/new) example below:**

```
avi@localhost  ~/projects/r168  node
> require('react-dom/test-utils')
ReferenceError: document is not defined
    at /home/avi/projects/r168/node_modules/react-dom/cjs/react-dom-test-utils.development.js:944:27
    at Object.<anonymous> (/home/avi/projects/r168/node_modules/react-dom/cjs/react-dom-test-utils.development.js:1283:5)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
```

**What is the expected behavior?**
`react-dom/test-utils` should not throw in "pure" node (without `jsdom` providing fake document on global).

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**
happens on 16.8.0
previous versions work.
'Do not await the result of calling ReactTestUtils.act(...), it is not a Promise.',
          );
        }
      },
    };
  },
};
/**
 * Exports:
 *
 * - `ReactTestUtils.Simulate.click(Element)`
 * - `ReactTestUtils.Simulate.mouseMove(Element)`
 * - `ReactTestUtils.Simulate.change(Element)`
 * - ... (All keys from event plugin `eventTypes` objects)
 */
function makeSimulator(eventType) {
  return function(domNode, eventData) {
    invariant(
      !React.isValidElement(domNode),
      'TestUtils.Simulate expected a DOM node as the first argument but received ' +
        'a React element. Pass the DOM node you wish to simulate the event on instead. ' +
        'Note that TestUtils.Simulate will not work if you are using shallow rendering.',
    );
    invariant(
      !ReactTestUtils.isCompositeComponent(domNode),
      'TestUtils.Simulate expected a DOM node as the first argument but received ' +
        'a component instance. Pass the DOM node you wish to simulate the event on instead.',
    );
    const dispatchConfig = eventNameDispatchConfigs[eventType];
    const fakeNativeEvent = new Event();