function needsTemplatePolyfill() {
  // no real <template> because no `content` property (IE and older browsers)
  const template = document.createElement('template');
  if (!('content' in template)) {
    return true;
  }
  // broken doc fragment (older Edge)
  if (!(template.content.cloneNode() instanceof DocumentFragment)) {
    return true;
  }
  // broken <template> cloning (Edge up to at least version 17)
  const template2 = document.createElement('template');
  template2.content.appendChild(document.createElement('div'));
  template.content.appendChild(template2);
  const clone = template.cloneNode(true);
  return (
    // @ts-ignore
    clone.content.childNodes.length === 0 ||
    // @ts-ignore
    clone.content.firstChild.content.childNodes.length === 0
  );
}
function needsTemplatePolyfill() {
  
  const template = document.createElement('template');
  if (!('content' in template)) {
    return true;
  }
  
  if (!(template.content.cloneNode() instanceof DocumentFragment)) {
    return true;
  }
  
  const template2 = document.createElement('template');
  template2.content.appendChild(document.createElement('div'));
  template.content.appendChild(template2);
  const clone = template.cloneNode(true);
  return (
    
    clone.content.childNodes.length === 0 ||
    
    clone.content.firstChild.content.childNodes.length === 0
  );
}
function needsTemplatePolyfill ( ) { // no real <template> because no `content` property (IE and older browsers) const template = document . createElement ( 'template' ) ; if ( ! ( 'content' in template ) ) { return true ; } // broken doc fragment (older Edge) if ( ! ( template . content . cloneNode ( ) instanceof DocumentFragment ) ) { return true ; } // broken <template> cloning (Edge up to at least version 17) const template2 = document . createElement ( 'template' ) ; template2 . content . appendChild ( document . createElement ( 'div' ) ) ; template . content . appendChild ( template2 ) ; const clone = template . cloneNode ( true ) ; return ( // @ts-ignore clone . content . childNodes . length === 0 || // @ts-ignore clone . content . firstChild . content . childNodes . length === 0 ) ; }
Web component polyfills loader, based on: https://github.com/webcomponents/webcomponentsjs/blob/master/webcomponents-loader.js

Adapted to not load language polyfills and use dynamic imports
Web component polyfills loader based on : https : // github . com / webcomponents / webcomponentsjs / blob / master / webcomponents - loader . js