zloirock / core-js

Standard Library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

3.32.1 breaks structuredClone fallback

thatsmydoing opened this issue · comments

Reproduction case:

<html>
  <body>
    <script src="https://cdn.jsdelivr.net/npm/core-js-bundle@3.32.1/index.js"></script>
    <script>
      img = new Image();
      img.onload = () => {
        createImageBitmap(img).then(bmp => structuredClone(bmp));
      };
      img.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8zwQAAgYBAyKDV6YAAAAASUVORK5CYII=";
    </script>
  </body>
</html>

Throws DOMException: Cloning of ImageBitmap cannot be properly polyfilled in this engine but doesn't on 3.32.0. I've tested on FF 117 and Safari 16.6.

It seems that changing != 7 to !== 7 in

return set2 === set1 || !set2.has(7) || typeof number != 'object' || number !== 7;
causes the bug since structuredClone(Object(7)) == 7 but not ===. This disables the fallback to native structuredClone and prevents it from working when it should.

Oops, thanks.