While working on the DevTools profiler, I've noticed that durations are sometimes incorrect. This seems to be vaguely related to high/low priority state updates. Need to track this down more so I'm filing an issue for myself.
const [mountCall, updateCall] = callback.mock.calls;
      expect(mountCall[0]).toBe('one');
      expect(mountCall[1]).toBe('mount');
      expect(mountCall[2]).toBe(2); 
      expect(mountCall[3]).toBe(2); 
      expect(mountCall[4]).toBe(5); 
      expect(updateCall[0]).toBe('two');
      expect(updateCall[1]).toBe('update');
      expect(updateCall[2]).toBe(1); 
      expect(updateCall[3]).toBe(1); 
      expect(updateCall[4]).toBe(27); 
    });
  });
  it('should handle interleaved async yields and batched commits', () => {
    jest.resetModules();
    mockDevToolsForTest();
    loadModules({useNoopRenderer: true});
    const Child = ({duration, id}) => {
      ReactNoop.advanceTime(duration);
      ReactNoop.yield(`Child:render:${id}`);
      return null;
    };
    class Parent extends React.Component {
      componentDidMount() {
        ReactNoop.yield(`Parent:componentDidMount:${this.props.id}`);
      }
      render() {
        const {duration, id} = this.props;
        return (
          <React.Fragment>