Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use "immediate" instead of "set-immediate-shim" #716

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

antimatter15
Copy link

I was using ExcelJS to parse a XLSX file recently and noticed that it was taking a lot of time because the particular set-immediate-shim being used in JSZip is very inefficient on browsers that don't natively implement setImmediate (which is, with the deprecation of IE, every modern browser). With this change applied, it cuts down the parsing time for Excel files by over 30%!

jszip already depends on lie for promises, which in turn depends on immediate - which is a much better set-immediate polyfill that uses different techniques so it doesn't create long spans of idle time. By swapping out set-immediate-shim for immediate, the bundler is able to use the same package for both and JSZip actually becomes smaller.

This PR only changes a single line- it changes require('set-immediate-shim') into require('immediate').

johnfactotum added a commit to johnfactotum/foliate that referenced this pull request Apr 1, 2021
The fixed file is from `dist/jszip.js` from
Stuk/jszip#716.
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Apr 3, 2021
Changes since 2.6.2:

2.6.3

Changes:

  * Fixed a performance issue with zipped files (including EPUB files)
    (Stuk/jszip#716)
rozhuk-im pushed a commit to rozhuk-im/freebsd-ports that referenced this pull request Apr 6, 2021
Changes since 2.6.2:

2.6.3

Changes:

  * Fixed a performance issue with zipped files (including EPUB files)
    (Stuk/jszip#716)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant