We define a new root list to support this, because the two existing root lists won't work: rootlist is stack-oriented, while the e variable during throw() is being carried backwards through the stack; and globalrootlist (reasonably) has no mechanism for removing a root, which is necessary for the very ephemeral exception lists.
This fixes a (niche) class of memory unsafety.
We define a new root list to support this, because the two existing root lists won't work: rootlist is stack-oriented, while the e variable during throw() is being carried backwards through the stack; and globalrootlist (reasonably) has no mechanism for removing a root, which is necessary for the very ephemeral exception lists.
Fixes #85.