diff options
author | Andreas Kling <kling@serenityos.org> | 2021-10-25 12:30:54 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-10-25 12:57:21 +0200 |
commit | 3618ca242052d56ea20a05d94b6d46951567a8b5 (patch) | |
tree | dee8e7cf96587fbfb4861afd6fc7d6128de48c57 /Userland/Utilities/chown.cpp | |
parent | 5a099b98cdd28a181aa5d7e61e35ffbc7c740ce6 (diff) | |
download | serenity-3618ca242052d56ea20a05d94b6d46951567a8b5.zip |
LibJS: Propagate exceptions across bytecode executable boundaries
To support situations like this:
function foo() { throw 1; }
try {
foo();
} catch (e) {
}
Each unwind context now keeps track of its origin executable.
When an exception is thrown, we return from run() immediately if the
nearest unwind context isn't in the current executable.
This causes a natural unwind to the point where we find the
catch/finally block(s) to jump into.
Diffstat (limited to 'Userland/Utilities/chown.cpp')
0 files changed, 0 insertions, 0 deletions