The current polyfill approach needs to be done at the loading level of the main JS-File like:
<script>
var appElement = document.createElement('script');
appElement.src = '/app.js';
var scriptElement = document.createElement('script');
if('MutationObserver' in window
&& 'content' in document.createElement('template')) {
document.body.appendChild(appElement);
} else {
window.addEventListener('load', function() {
scriptElement.src = 'https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.0.10/webcomponents-loader.js';
document.body.appendChild(scriptElement);
});
}
window.addEventListener('WebComponentsReady', function() {
document.body.appendChild(appElement);
});
</script>
This could be optimized and be done internally so developers only need to load the main script in their html - like:
<script src="/mysupercoolapp.js" async></script>