**Do you want to request a *feature* or report a *bug*?**

Bug

**What is the current behavior?**

Calling `this.isMounted()` in `componentWillUnmount` in prior versions would return `true`. Now it returns `false`.

I believe this was untested behavior before, but the new tests that were added may check the wrong value: https://github.com/facebook/react/blob/master/src/isomorphic/classic/class/__tests__/create-react-class-integration-test.js#L417 Changing this line to test for `true` will exhibit the behavior.

The fix would be to defer setting the  `__isMounted` flag to `false` until after all mixins and the `componentWillUnmount` method were called on the component.

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**

15.5.x and anything using `create-react-class` is broken. Working correctly in 15.4.x with `React.createClass`.

React.isValidElement,
      new React.Component().updater,
    );
  });
  it('should throw when `render` is not specified', () => {
    expect(function() {
      createReactClass({});
    }).toThrowError(
      'createClass(...): Class specification must implement a `render` method.',
    );
  });
  it('should copy prop types onto the Constructor', () => {
    var propValidator = jest.fn();
    var TestComponent = createReactClass({
      propTypes: {
        value: propValidator,
      },
      render: function() {
        return <div />;
      },
    });
    expect(TestComponent.propTypes).toBeDefined();
    expect(TestComponent.propTypes.value).toBe(propValidator);
  });
  it('should warn on invalid prop types', () => {
    spyOn(console, 'error');
    createReactClass({
      displayName: 'Component',
      propTypes: {
        prop: null,