After updating react-dom to version 17 the build now includes Array.fill() which isn't supported by ie11 without polyfilling. Coming from this line. Tested with just the default cra production build to make sure it wasn't a problem with my webpack config and the same issue.

https://github.com/facebook/react/blob/96ac799eace5d989de3b4f80e6414e94a08ff77a/packages/react-reconciler/src/ReactFiberLane.js#L671

Tested using CRA on version 16.9.8 of react and react-dom which works with the production build for ie11. 


break;
    case OffscreenLanePriority:
    case NoLanePriority:
      lane = NoLane;
      break;
    default:
      invariant(false, 'Invalid lane: %s. This is a bug in React.', lane);
  }
   Check if the lane we chose is suspended. If so, that indicates that we
   already attempted and failed to hydrate at that level. Also check if we're
   already rendering that lane, which is rare but could happen.
  if ((lane & (root.suspendedLanes | renderLanes)) !== NoLane) {
     
    return NoLane;
  }
  return lane;
}
const clz32 = Math.clz32 ? Math.clz32 : clz32Fallback;
 Count leading zeros. Only used on lanes, so assume input is an integer.
 Based on:
 https:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32
const log = Math.log;
const LN2 = Math.LN2;
function clz32Fallback(lanes: Lanes | Lane) {
  if (lanes === 0) {
    return 32;
  }
  return (31 - ((log(lanes) / LN2) | 0)) | 0;
}