<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test.js"></script>
</head>
<script>
description("Check that trying to deserialize an ArrayBuffer when there's not enough memory does not crash (test may only fail flakily)");
const a = [0];
a.__proto__ = {};
Object.defineProperty(a, 0, { get: foo });
Object.defineProperty(a, 80000000, {});
function foo() {
  new Uint8Array(a);
}
new Promise(foo);


window.addEventListener('message', e => e.data);

var ab;
try {
    ab = new ArrayBuffer(2**23);
for (let i=0; i<10; i++) {
  window.postMessage(ab, '*');
}
} catch { }
</script>
</html>
