[webkit-changes] [WebKit/WebKit] 1c9bd7: [JSC] returnEarlyFromInfiniteLoopsForFuzzing shoul...

Yusuke Suzuki noreply at github.com
Fri Sep 16 18:08:58 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1c9bd752d9596b1d7f1cb0c0a5d7db26b5ad4e02
      https://github.com/WebKit/WebKit/commit/1c9bd752d9596b1d7f1cb0c0a5d7db26b5ad4e02
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2022-09-16 (Fri, 16 Sep 2022)

  Changed paths:
    A JSTests/stress/proxy-helper-this.js
    M Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
    M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
    M Source/JavaScriptCore/jit/JITOpcodes.cpp
    M Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
    M Source/JavaScriptCore/llint/LowLevelInterpreter64.asm

  Log Message:
  -----------
  [JSC] returnEarlyFromInfiniteLoopsForFuzzing should return globalThis
https://bugs.webkit.org/show_bug.cgi?id=245293
<rdar://99569065>

Reviewed by Justin Michaud.

Raw JSGlobalObject is not expected to be exposed directly to the user JS code usually.
Instead, we expect globalThis is exposed. But returnEarlyFromInfiniteLoopsForFuzzing fuzzing
feature accidentally exposes JSGlobalObject and causing trouble in Proxy implementation
(when JSGlobalObject is passed as |this| to JS strict code, it becomes undefined instead of an object)
This patch fixes returnEarlyFromInfiniteLoopsForFuzzing so that it returns globalThis instead.

* JSTests/stress/proxy-helper-this.js: Added.
(foo):
(let.handler.string_appeared_here):
(async let):
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileLoopHint):
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
* Source/JavaScriptCore/jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_loop_hint):
* Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:
* Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:

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




More information about the webkit-changes mailing list