[webkit-changes] [WebKit/WebKit] 0bf376: REGRESSION(273782 at main): Missing exception check i...

Commit Queue noreply at github.com
Wed Feb 7 19:09:08 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0bf37696c4bd041298c11c55b47aeb5b8e461816
      https://github.com/WebKit/WebKit/commit/0bf37696c4bd041298c11c55b47aeb5b8e461816
  Author: Alexey Shvayka <ashvayka at apple.com>
  Date:   2024-02-07 (Wed, 07 Feb 2024)

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

  Log Message:
  -----------
  REGRESSION(273782 at main): Missing exception check in commonCallDirectEval()
https://bugs.webkit.org/show_bug.cgi?id=268942
<rdar://problem/122493988>

Reviewed by Yusuke Suzuki.

Since eval() may throw an exception, 273782 at main moving throwScope.release() to come after it broke
exception scope validation. Also, we would like to avoid calling setUpCall() in case of exception,
reserving it only for indirect eval().

This change adds LLINT_CALL_CHECK_EXCEPTION() to fix both issues, and also makes eval() consistently
return empty JSValue() in case of exception, which is non-observable code tweak.

* Source/JavaScriptCore/interpreter/Interpreter.cpp:
(JSC::eval):
* Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:
(JSC::LLInt::commonCallDirectEval):

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




More information about the webkit-changes mailing list