Skip to content

Upstream: Apply closure patches#55

Merged
clefebvre merged 2 commits intolinuxmint:masterfrom
jaszhix:closure-patches
Oct 21, 2017
Merged

Upstream: Apply closure patches#55
clefebvre merged 2 commits intolinuxmint:masterfrom
jaszhix:closure-patches

Conversation

@jaszhix
Copy link
Copy Markdown
Contributor

@jaszhix jaszhix commented Oct 3, 2017

Not seeing any regressions in stability or performance with these so far.

This turned out to cause a lot of problems; it has been responsible for
almost all of the crashes in gnome-shell since 1.48. We revert back to
the original code modulo a few improvements that have been made along the
way.

This state at least does not crash in the test suite, although it is
definitely not correct since it breaks SpiderMonkey's garbage collector
pre barrier verification mode (the reason the change was made in the
first place.) That still must be fixed using a different approach.

This partially reverts commits [41b78ae], [db3e387], [bace908],
[9eb4a2b], [2593d3d], and [334ba96].

https://bugzilla.gnome.org/show_bug.cgi?id=786668

https://bugzilla.gnome.org/show_bug.cgi?id=785657
It's not possible to stop tracing an object in the middle of GC. However,
by using JS::ExposeObjectToActiveJS(), it is possible to mark an object
as reachable for the duration of one GC. This is exactly what we need for
closures, to keep the closure's callable object from disappearing while
GC is going on.

https://bugzilla.gnome.org/show_bug.cgi?id=786668

https://bugzilla.gnome.org/show_bug.cgi?id=785657
@clefebvre
Copy link
Copy Markdown
Member

Bug report: #56

@clefebvre clefebvre merged commit c7c13b5 into linuxmint:master Oct 21, 2017
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.

3 participants