From af62678c3112aaee45b1bfeeeacf5386b33e4e46 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sun, 25 Apr 2021 21:45:23 +0200 Subject: [PATCH] LibJS: Don't assume call_frame->current_node in Exception constructor It's a nullptr in promise reaction job functions, for example. Regressed in 97d49cb. Fixes #6641. --- Userland/Libraries/LibJS/Runtime/Exception.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibJS/Runtime/Exception.cpp b/Userland/Libraries/LibJS/Runtime/Exception.cpp index 9043be5869..fa59a07e54 100644 --- a/Userland/Libraries/LibJS/Runtime/Exception.cpp +++ b/Userland/Libraries/LibJS/Runtime/Exception.cpp @@ -24,7 +24,11 @@ Exception::Exception(Value value) function_name = ""; m_traceback.prepend({ .function_name = move(function_name), - .source_range = call_frame->current_node->source_range(), + // 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 {}, }); } }