summaryrefslogtreecommitdiff
path: root/Userland/DevTools
diff options
context:
space:
mode:
authorLinus Groh <mail@linusgroh.de>2022-01-05 19:11:16 +0100
committerLinus Groh <mail@linusgroh.de>2022-01-06 12:36:23 +0100
commit9d0d3affd4feaab62c37e284a17432815c071c24 (patch)
tree205b9f342ad4c53e5865ff80906873992ccc759f /Userland/DevTools
parenteed764e1dd3288f203108229c7e1ca9d09aef4d5 (diff)
downloadserenity-9d0d3affd4feaab62c37e284a17432815c071c24.zip
LibJS: Replace the custom unwind mechanism with completions :^)
This includes: - Parsing proper LabelledStatements with try_parse_labelled_statement() - Removing LabelableStatement - Implementing the LoopEvaluation semantics via loop_evaluation() in each IterationStatement subclass; and IterationStatement evaluation via {For,ForIn,ForOf,ForAwaitOf,While,DoWhile}Statement::execute() - Updating ReturnStatement, BreakStatement and ContinueStatement to return the appropriate completion types - Basically reimplementing TryStatement and SwitchStatement according to the spec, using completions - Honoring result completion types in AsyncBlockStart and OrdinaryCallEvaluateBody - Removing any uses of the VM unwind mechanism - most importantly, VM::throw_exception() now exclusively sets an exception and no longer triggers any unwinding mechanism. However, we already did a good job updating all of LibWeb and userland applications to not use it, and the few remaining uses elsewhere don't rely on unwinding AFAICT.
Diffstat (limited to 'Userland/DevTools')
0 files changed, 0 insertions, 0 deletions