Repository: storybook
Issue: Infinite loop with array of objects in args
Labels: bug,has workaround,block: source

**Describe the bug**
I have a dropdown component created in React. However, trying to load up the story after upgrading from 6.3.12 to 6.4.9 causes the docs page to freeze and crash. I was only able to get a stack trace once before a crash and it was the `prettyPrint` in an infinite loop when trying to parse a complex object.

In my argTypes, I have a prop defined as an object:
```
options: {
      description: 'List of options to display. Make sure values are NOT an object or array, or it can cause multi-select issues. This is required for any regular dropdown. However, if using the calendar prop, options are not required (or needed).',
      type: { required: false },
      table: {
        type: {
          summary: `
          array({
            badgeColorType:string,
            badgeText:string,
            className:string,
            description:string,
            disabled:boolean,
            icon:string(src)|node(any),
            name:string:required,
            tooltip:string,
            value:string|number|null:required
          })
          `,
          // detail: '',
        },
        defaultValue: {
          summary: '[]',
          // detail: '',
        },
        category: '',
      },
      control: { type: 'object' },
    },
```

And my args defaults has:
```
options: [
      {
        badgeColorType: '',
        badgeText: '',
        className: '',
        description: '',
        disabled: false,
        icon: '<node>',
        name: 'With Icon & Tooltip',
        tooltip: 'some tooltip',
        value: 1,
      },
      {
        badgeColorType: '',
        badgeText: '',
        className: '',
        description: '',
        disabled: true,
        icon: null,
        name: 'Disabled',
        tooltip: '',
        value: 2,
      },
      {
        badgeColorType: 'primary',
        badgeText: 'Primary',
        className: '',
        description: '',
        disabled: false,
        icon: null,
        name: 'With Badge',
        tooltip: '',
        value: 3,
      },
      {
        badgeColorType: '',
        badgeText: '',
        className: '',
        description: 'some description',
        disabled: false,
        icon: null,
        name: 'With Description',
        tooltip: '',
        value: 4,
      },
    ],
```

When I render, this displays fine. However, when I add in the custom code for the template (commented out in the repro link), then the whole page freezes and crashes.
```
  if (args.options) {
    args.options = _.forEach(_.cloneDeep(args.options), (item) => {
      if (item.icon) item.icon = <div>hi</div>;
    });
  }
```

I'm effectively just doing what the docs say to do here: https://storybook.js.org/docs/react/essentials/controls#dealing-with-complex-values, but it obviously doesn't like it in 6.4 anymore.

**To Reproduce**
- See here for running code: https://codesandbox.io/s/storybook-bug-6-4-9-g1l81?file=/src/stories/Dropdown.stories.jsx
- Once done compiling, in the browser part, go to `https://g1l81.sse.codesandbox.io/?path=/docs/components-dropdown--dropdown` to jump straight to the docs. It should render at this point.
- Uncomment the 5 lines of code at the bottom of the story file and watch the page freeze.

**System**
`npx sb@next info` did not work for me. My system is mac latest, but it happens on any container running the webpack storybook react setup (evidenced by the codesandbox link above).