summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibJS/Runtime/Exception.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Libraries/LibJS/Runtime/Exception.cpp')
-rw-r--r--Userland/Libraries/LibJS/Runtime/Exception.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/Userland/Libraries/LibJS/Runtime/Exception.cpp b/Userland/Libraries/LibJS/Runtime/Exception.cpp
index fa59a07e54..a3fd15a1f2 100644
--- a/Userland/Libraries/LibJS/Runtime/Exception.cpp
+++ b/Userland/Libraries/LibJS/Runtime/Exception.cpp
@@ -18,18 +18,18 @@ Exception::Exception(Value value)
{
auto& vm = this->vm();
m_traceback.ensure_capacity(vm.call_stack().size());
- for (auto* call_frame : vm.call_stack()) {
+ for (ssize_t i = vm.call_stack().size() - 1; i >= 0; i--) {
+ auto* call_frame = vm.call_stack()[i];
auto function_name = call_frame->function_name;
if (function_name.is_empty())
function_name = "<anonymous>";
- m_traceback.prepend({
- .function_name = move(function_name),
+ m_traceback.empend(
+ move(function_name),
// We might not have an AST node associated with the call frame, e.g. in promise
// reaction jobs (which aren't called anywhere from the source code).
// They're not going to generate any _unhandled_ exceptions though, so a meaningless
// source range is fine.
- .source_range = call_frame->current_node ? call_frame->current_node->source_range() : SourceRange {},
- });
+ call_frame->current_node ? call_frame->current_node->source_range() : SourceRange {});
}
}