Detached event
by shaseley
HTML
<!DOCTYPE html>
<meta charset="utf-8">
<title>Creating a new object in a detached realm</title>
<script>
'use strict';
(async function() {
await new Promise((resolve) => {
window.addEventListener('load', resolve);
});
const frame = document.createElement('iframe');
frame.srcdoc = `<script>
window.parent.controller = new AbortController();
<\/script>`
await new Promise((resolve) => {
frame.addEventListener('load', resolve);
document.body.appendChild(frame);
});
console.log('Child frame loaded. Starting test...');
let didRun = false;
function listener() {
didRun = true;
}
controller.signal.addEventListener('abort', listener);
window.document.body.removeChild(frame);
window.controller.abort();
console.log('Signal is aborted? : ' + window.controller.signal.aborted);
console.log('Did the handler run? : ' + didRun);
})();
</script>