### Website or app

https://codesandbox.io/s/react-playground-forked-j4niq

### Repro steps

Emoji seem supported but produce strange symbole

![image](https://user-images.githubusercontent.com/24865815/133793744-55a55582-90ad-425f-8a40-4c061a3c1d80.png)

To test emoji on Window Os, use `[win]+[.]` 🟩


### How often does this bug happen?

Every time

### DevTools package (automated)

_No response_

### DevTools version (automated)

_No response_

### Error message (automated)

_No response_

### Error call stack (automated)

_No response_

### Error component stack (automated)

_No response_

### GitHub query string (automated)

_No response_
document.createElement('div'),
        );
        legacyRender(
          <React.Fragment>
            <Grandparent />
            <Grandparent />
          </React.Fragment>,
          document.createElement('div'),
        );
      });
      for (let i = 0; i < store.numElements; i++) {
        expect(store.getIndexOfElementID(store.getElementIDAtIndex(i))).toBe(i);
      }
    });
  });
  it('detects and updates profiling support based on the attached roots', () => {
    const Component = () => null;
    const containerA = document.createElement('div');
    const containerB = document.createElement('div');
    expect(store.supportsProfiling).toBe(false);
    act(() => legacyRender(<Component />, containerA));
    expect(store.supportsProfiling).toBe(true);
    act(() => legacyRender(<Component />, containerB));
    act(() => ReactDOM.unmountComponentAtNode(containerA));
    expect(store.supportsProfiling).toBe(true);
    act(() => ReactDOM.unmountComponentAtNode(containerB));
    expect(store.supportsProfiling).toBe(false);
  });
  it('should properly serialize non-string key values', () => {
    const Child = () => null;