Upgrade to SpiderMonkey 91
Upgrade to SpiderMonkey 91. The release date of Firefox 91 is August 10, 2021, which is four days before the GNOME 41 feature freeze. Therefore, this may not be feasible to include in the GNOME 41 milestone, and should be considered for early merging in the GNOME 42 cycle. But some preparation can already be done.
Incomplete list of improvements:
Promise.any()
-
??=
operator -
||=
operator -
&&=
operator export * as foo
Intl.DisplayNames
Steps to do, roughly in order:
-
To make optimal use of help and information from Mozilla, port https://github.com/spidermonkey-embedders/spidermonkey-embedding-examples/ to SpiderMonkey 91 first ➡ https://github.com/mozilla-spidermonkey/spidermonkey-embedding-examples/commits/next-
Write a migration guide while doing it ➡ https://github.com/mozilla-spidermonkey/spidermonkey-embedding-examples/pull/46 -
Get SpiderMonkey team members to review the port and the migration guide, and learn from them
-
-
Attempt to get all open merge requests merged so that we don't have to do extra porting later -
Port GJS and make sure all the tests pass (!632 (merged)) -
Make sure all the comments and documentation are up to date, git grep 78
will usually reveal some stragglers -
git grep COMPAT:
for any comments about code that is waiting on SpiderMonkey bugfixes - Fix any bugs in SpiderMonkey that are revealed by porting
-
More embedder API for BigInt https://bugzilla.mozilla.org/show_bug.cgi?id=1706866 -
Don't override Firefox GC reasons https://bugzilla.mozilla.org/show_bug.cgi?id=1721549 -
Missing types in include file https://bugzilla.mozilla.org/show_bug.cgi?id=1724553 -
Embedder API for Error.cause https://bugzilla.mozilla.org/show_bug.cgi?id=1735200
-
-
Upload a definitive SpiderMonkey 91 source tarball to http://ftp.acc.umu.se/pub/GNOME/teams/releng/tarballs-needing-help/mozjs/ -
Build mozjs91 images in GJS's CI -
Add mozjs91 module to the GNOME SDK ➡ gnome-build-meta!1335 (closed) -
Add mozjs91 module to JHBuild ➡ jhbuild!147 (closed) -
Write release notes, which can be compiled from the Firefox developer release notes of versions 79 through 91: for example, https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/69#JavaScript -
Send a notification to distributor-list -
Post a notification on Discourse with the tag "distributor" ➡ https://discourse.gnome.org/t/gnome-42-to-depend-on-spidermonkey-91/8665