-
-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Description
Current Behavior
According to the Pixi.js FAQ, it supports old browsers https://github.com/pixijs/pixijs/wiki/FAQs
However, it fails to initialize itself for Chrome 64 with the following issue
Expected Behavior
No errors in the console, and the page is not blank.
Steps to Reproduce
I created a small example here https://github.com/Vlad160/pixi-js-chrome-64
Polyfills and Vite are already configured.
- Clone https://github.com/Vlad160/pixi-js-chrome-64
- npm i
- npm run build
- npm run preview
Environment
pixi.jsversion: 8.9.2- Browser & Version: Chrome 64
- OS & Version: Windows 11
- Running Example: https://github.com/Vlad160/pixi-js-chrome-64
Possible Solution
This issue doesn’t appear in Pixi v7.
Some systems in Pixi.js depend on each other — for example, GlBufferSystem requires gl to be initialized by GlContextSystem. This means the context change hook of GlContextSystem must run before GlBufferSystem's hook.
System execution order is determined by .sort(). But before ES10, array sorting was unstable, so items with equal priority might be reordered — which is exactly what happens here.
I added console.log statements to Extensions.handleByNamedList, and here's what I found:
In Chrome 64:
GlContextSystem runs after GlBufferSystem — incorrect.
In modern Firefox:
The order is correct.
Fix
Manual stable sort implementation
Additional Information
No response


