return <span prop="Function" />;
    }
    function Foo(props) {
      return (
        <div>
          {props.useClass ? (
            <ClassComponent key="a" />
          ) : props.useFunction ? (
            <FunctionalComponent key="a" />
          ) : null}
          Trail
        </div>
      );
    }
    ReactNoop.render(<Foo useClass={true} />);
    ReactNoop.flush();
    expect(ReactNoop.getChildren()).toEqual([div(span('Class'), 'Trail')]);
    expect(unmounted).toBe(false);
    ReactNoop.render(<Foo useFunction={true} />);
    ReactNoop.flush();
    expect(ReactNoop.getChildren()).toEqual([div(span('Function'), 'Trail')]);
    expect(unmounted).toBe(true);
    ReactNoop.render(<Foo />);
    ReactNoop.flush();
    expect(ReactNoop.getChildren()).toEqual([div('Trail')]);
  });
  it('does not update child nodes if a flush is aborted', () => {
    function Bar(props) {