Observed this on react@16.0.0-beta.5

```js
import React from 'react';
import { renderToString } from 'react-dom/server';

const B = () => 'b';

console.log(renderToString(<div>{'a'}<B />{'c'}</div>));
```

This renders as `<div data-reactroot="">a<!-- -->bc</div>`. If you try to hydrate this you'll get the error: Text content did not match. Server: "bc" Client: "b".
getChildContext() {
          return {text2: 'red'};
        }
        render() {
          return <Grandchild />;
        }
      }
      Child.childContextTypes = {text2: PropTypes.string};
      const Grandchild = (props, context) => {
        return (
          <div>
            <div id="first">{context.text1}</div>
            <div id="second">{context.text2}</div>
          </div>
        );
      };
      Grandchild.contextTypes = {
        text1: PropTypes.string,
        text2: PropTypes.string,
      };
      const e = await render(<Parent />);
      expect(e.querySelector('#first').textContent).toBe('purple');
      expect(e.querySelector('#second').textContent).toBe('red');
    });
    itRenders(
      'with a call to componentWillMount before getChildContext',
      async render => {
        class WillMountContext extends React.Component {