Use "immediate" instead of "set-immediate-shim" #716
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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').