<!DOCTYPE html>
<body>
Image object may not be captured by the promise of Image.decode.</br>
If GC kicks in before promise is resolved/rejected, Image object should be kept alive.</br>
</body>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
let decode_promises = [];
for (var i = 0; i < 5; i++) {
let image = new Image();
image.src = '../../images/resources/apng00.png';
decode_promises.push(image.decode());
}
Promise.all(decode_promises).then(() => {
document.body.innerHTML += 'PASS; no crash.';
if (window.testRunner)
testRunner.notifyDone();
});
// Aggressive GC to trigger "GC when decode callback is pending".
if (window.GCController) {
setInterval(() => {
GCController.collectAll();
}, 1);
}
</script>