Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0693d90fa79881a734fa412c7717f2575f398789
      
https://github.com/WebKit/WebKit/commit/0693d90fa79881a734fa412c7717f2575f398789
  Author: Yijia Huang <hyjo...@gmail.com>
  Date:   2025-08-25 (Mon, 25 Aug 2025)

  Changed paths:
    M Source/JavaScriptCore/llint/LLIntSlowPaths.cpp

  Log Message:
  -----------
  [JSC] Fix exception scope handling in llint_check_stack_and_vm_traps
https://bugs.webkit.org/show_bug.cgi?id=297794
rdar://158958322

Reviewed by Mark Lam.

The bug in timer-exception.js is an unchecked exception validation failure where
llint_check_stack_and_vm_traps calls handleTraps which can throw a termination
exception, but the exception is never checked before the ThrowScope destructor
runs, causing the assertion "exception check validation failed" when the 
watchdog
timer fires during JavaScript function prologue execution.

This patch fixes exception scope validation failures on throwScope in
llint_check_stack_and_vm_traps since handleTrapsIfNeeded can throw a
termination exception.

1. When a termination exception is pending after trap handling, we now
   properly release the throwScope before propagating the exception.

2. When no traps are handled, we assert that no exceptions should be
   present, updating m_needExceptionCheck to false.

The fix ensures proper exception scope lifecycle management while
maintaining the integrity of the exception handling system for both normal
execution and termination scenarios.

Canonical link: https://commits.webkit.org/299116@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to