<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[288085] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/288085">288085</a></dd>
<dt>Author</dt> <dd>lmoura@igalia.com</dd>
<dt>Date</dt> <dd>2022-01-16 21:18:06 -0800 (Sun, 16 Jan 2022)</dd>
</dl>

<h3>Log Message</h3>
<pre>Fix C++20 build warnings with GCC
https://bugs.webkit.org/show_bug.cgi?id=235023

Reviewed by Alex Christensen.

Mostly related to deprecating operations between enums of different
types and not capturing this by default in lambdas.

Source/JavaScriptCore:

* assembler/X86Assembler.h: Casting enums to same type.
(JSC::X86Assembler::cmovcc):
(JSC::X86Assembler::jccRel32):
(JSC::X86Assembler::setccOpcode):
* b3/B3CheckSpecial.cpp: Capture this in lambda.
(JSC::B3::CheckSpecial::generate):
* b3/B3Type.cpp: Replace is_pod_v is is_standard_layout_v and
is_trivial_v
* bytecode/AccessCase.cpp: Capture this in lambda.
(JSC::AccessCase::generateImpl):
* bytecode/CallLinkInfo.cpp: Ditto.
(JSC::OptimizingCallLinkInfo::emitDirectFastPath):
(JSC::OptimizingCallLinkInfo::emitDirectTailCallFastPath):
(JSC::OptimizingCallLinkInfo::initializeDirectCall):
* dfg/DFGSpeculativeJIT.cpp: Ditto.
* dfg/DFGSpeculativeJIT64.cpp: Ditto.
(JSC::DFG::SpeculativeJIT::compile):
* jit/ICStats.h: Cast enums to same type.
(JSC::ICEvent::hash const):
* jit/JITArithmetic.cpp: Capture this in lambda.
(JSC::JIT::emitMathICSlow):
* jit/JITSizeStatistics.cpp: Ditto.
(JSC::JITSizeStatistics::markEnd):
* runtime/VM.cpp: Ditto.
(JSC::VM::deleteAllLinkedCode):
(JSC::VM::deleteAllCode):
(JSC::VM::shrinkFootprintWhenIdle):
* wasm/WasmAirIRGenerator.cpp: Ditto.
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::addTableGet):
(JSC::Wasm::AirIRGenerator::addTableSet):
(JSC::Wasm::AirIRGenerator::addTableInit):
(JSC::Wasm::AirIRGenerator::addTableFill):
(JSC::Wasm::AirIRGenerator::addTableCopy):
(JSC::Wasm::AirIRGenerator::addMemoryFill):
(JSC::Wasm::AirIRGenerator::addMemoryCopy):
(JSC::Wasm::AirIRGenerator::addMemoryInit):
(JSC::Wasm::AirIRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::AirIRGenerator::emitAtomicLoadOp):
(JSC::Wasm::AirIRGenerator::emitAtomicStoreOp):
(JSC::Wasm::AirIRGenerator::emitAtomicBinaryRMWOp):
(JSC::Wasm::AirIRGenerator::emitAtomicCompareExchange):
(JSC::Wasm::AirIRGenerator::atomicWait):
(JSC::Wasm::AirIRGenerator::atomicNotify):
(JSC::Wasm::AirIRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addCallIndirect):
(JSC::Wasm::AirIRGenerator::addCallRef):
(JSC::Wasm::AirIRGenerator::emitChecksForModOrDiv):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF32>):
* wasm/WasmB3IRGenerator.cpp: Ditto.
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::addTableGet):
(JSC::Wasm::B3IRGenerator::addTableSet):
(JSC::Wasm::B3IRGenerator::addTableInit):
(JSC::Wasm::B3IRGenerator::addTableFill):
(JSC::Wasm::B3IRGenerator::addTableCopy):
(JSC::Wasm::B3IRGenerator::emitIndirectCall):
(JSC::Wasm::B3IRGenerator::addMemoryFill):
(JSC::Wasm::B3IRGenerator::addMemoryInit):
(JSC::Wasm::B3IRGenerator::addMemoryCopy):
(JSC::Wasm::B3IRGenerator::fixupPointerPlusOffsetForAtomicOps):
(JSC::Wasm::B3IRGenerator::atomicWait):
(JSC::Wasm::B3IRGenerator::atomicNotify):
(JSC::Wasm::B3IRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
(JSC::Wasm::B3IRGenerator::addCallRef):
(JSC::Wasm::B3IRGenerator::emitChecksForModOrDiv):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncSF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncSF32>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncUF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncUF32>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncSF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncUF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncSF32>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncUF32>):
* yarr/YarrJIT.cpp: Ditto.

Source/WebCore:

* dom/ViewportArguments.h: Replace enum with constexpr ints as they're
compared to doubles in various places through ViewportArguments.cpp.
* dom/WheelEvent.h: Replace single-valued enum with constexpr
variable.
* platform/animation/Animation.h: Ditto.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
Ditto.
(WebCore::CoordinatedGraphicsLayer::shouldDirectlyCompositeImage const):
* rendering/style/RenderStyleConstants.h: Merge two enums that are
used only in the context of being combined to form a third enum.

Source/WebKit:

* WebProcess/Inspector/WebInspector.cpp: Capture this in lambdas.
(WebKit::WebInspector::showConsole):
(WebKit::WebInspector::showResources):
(WebKit::WebInspector::showMainResourceForFrame):
(WebKit::WebInspector::startPageProfiling):
(WebKit::WebInspector::stopPageProfiling):
(WebKit::WebInspector::startElementSelection):
(WebKit::WebInspector::stopElementSelection):

Source/WTF:

* wtf/AutomaticThread.cpp: Capture this in lambda.
(WTF::AutomaticThread::start):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreassemblerX86Assemblerh">trunk/Source/JavaScriptCore/assembler/X86Assembler.h</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3B3CheckSpecialcpp">trunk/Source/JavaScriptCore/b3/B3CheckSpecial.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreb3B3Typecpp">trunk/Source/JavaScriptCore/b3/B3Type.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeAccessCasecpp">trunk/Source/JavaScriptCore/bytecode/AccessCase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeCallLinkInfocpp">trunk/Source/JavaScriptCore/bytecode/CallLinkInfo.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGSpeculativeJITcpp">trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGSpeculativeJIT64cpp">trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitICStatsh">trunk/Source/JavaScriptCore/jit/ICStats.h</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITArithmeticcpp">trunk/Source/JavaScriptCore/jit/JITArithmetic.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITSizeStatisticscpp">trunk/Source/JavaScriptCore/jit/JITSizeStatistics.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeVMcpp">trunk/Source/JavaScriptCore/runtime/VM.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmWasmAirIRGeneratorcpp">trunk/Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorewasmWasmB3IRGeneratorcpp">trunk/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreyarrYarrJITcpp">trunk/Source/JavaScriptCore/yarr/YarrJIT.cpp</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtfAutomaticThreadcpp">trunk/Source/WTF/wtf/AutomaticThread.cpp</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomViewportArgumentsh">trunk/Source/WebCore/dom/ViewportArguments.h</a></li>
<li><a href="#trunkSourceWebCoredomWheelEventh">trunk/Source/WebCore/dom/WheelEvent.h</a></li>
<li><a href="#trunkSourceWebCoreplatformanimationAnimationh">trunk/Source/WebCore/platform/animation/Animation.h</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsLayercpp">trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingstyleRenderStyleConstantsh">trunk/Source/WebCore/rendering/style/RenderStyleConstants.h</a></li>
<li><a href="#trunkSourceWebKitChangeLog">trunk/Source/WebKit/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitWebProcessInspectorWebInspectorcpp">trunk/Source/WebKit/WebProcess/Inspector/WebInspector.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog    2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/ChangeLog       2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -1,3 +1,100 @@
</span><ins>+2022-01-16  Lauro Moura  <lmoura@igalia.com>
+
+        Fix C++20 build warnings with GCC
+        https://bugs.webkit.org/show_bug.cgi?id=235023
+
+        Reviewed by Alex Christensen.
+
+        Mostly related to deprecating operations between enums of different
+        types and not capturing this by default in lambdas.
+
+        * assembler/X86Assembler.h: Casting enums to same type.
+        (JSC::X86Assembler::cmovcc):
+        (JSC::X86Assembler::jccRel32):
+        (JSC::X86Assembler::setccOpcode):
+        * b3/B3CheckSpecial.cpp: Capture this in lambda.
+        (JSC::B3::CheckSpecial::generate):
+        * b3/B3Type.cpp: Replace is_pod_v is is_standard_layout_v and
+        is_trivial_v
+        * bytecode/AccessCase.cpp: Capture this in lambda.
+        (JSC::AccessCase::generateImpl):
+        * bytecode/CallLinkInfo.cpp: Ditto.
+        (JSC::OptimizingCallLinkInfo::emitDirectFastPath):
+        (JSC::OptimizingCallLinkInfo::emitDirectTailCallFastPath):
+        (JSC::OptimizingCallLinkInfo::initializeDirectCall):
+        * dfg/DFGSpeculativeJIT.cpp: Ditto.
+        * dfg/DFGSpeculativeJIT64.cpp: Ditto.
+        (JSC::DFG::SpeculativeJIT::compile):
+        * jit/ICStats.h: Cast enums to same type.
+        (JSC::ICEvent::hash const):
+        * jit/JITArithmetic.cpp: Capture this in lambda.
+        (JSC::JIT::emitMathICSlow):
+        * jit/JITSizeStatistics.cpp: Ditto.
+        (JSC::JITSizeStatistics::markEnd):
+        * runtime/VM.cpp: Ditto.
+        (JSC::VM::deleteAllLinkedCode):
+        (JSC::VM::deleteAllCode):
+        (JSC::VM::shrinkFootprintWhenIdle):
+        * wasm/WasmAirIRGenerator.cpp: Ditto.
+        (JSC::Wasm::AirIRGenerator::AirIRGenerator):
+        (JSC::Wasm::AirIRGenerator::addTableGet):
+        (JSC::Wasm::AirIRGenerator::addTableSet):
+        (JSC::Wasm::AirIRGenerator::addTableInit):
+        (JSC::Wasm::AirIRGenerator::addTableFill):
+        (JSC::Wasm::AirIRGenerator::addTableCopy):
+        (JSC::Wasm::AirIRGenerator::addMemoryFill):
+        (JSC::Wasm::AirIRGenerator::addMemoryCopy):
+        (JSC::Wasm::AirIRGenerator::addMemoryInit):
+        (JSC::Wasm::AirIRGenerator::emitCheckAndPreparePointer):
+        (JSC::Wasm::AirIRGenerator::emitAtomicLoadOp):
+        (JSC::Wasm::AirIRGenerator::emitAtomicStoreOp):
+        (JSC::Wasm::AirIRGenerator::emitAtomicBinaryRMWOp):
+        (JSC::Wasm::AirIRGenerator::emitAtomicCompareExchange):
+        (JSC::Wasm::AirIRGenerator::atomicWait):
+        (JSC::Wasm::AirIRGenerator::atomicNotify):
+        (JSC::Wasm::AirIRGenerator::emitEntryTierUpCheck):
+        (JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
+        (JSC::Wasm::AirIRGenerator::addCallIndirect):
+        (JSC::Wasm::AirIRGenerator::addCallRef):
+        (JSC::Wasm::AirIRGenerator::emitChecksForModOrDiv):
+        (JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF64>):
+        (JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF32>):
+        (JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF64>):
+        (JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF32>):
+        (JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF64>):
+        (JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF64>):
+        (JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF32>):
+        (JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF32>):
+        * wasm/WasmB3IRGenerator.cpp: Ditto.
+        (JSC::Wasm::B3IRGenerator::B3IRGenerator):
+        (JSC::Wasm::B3IRGenerator::addTableGet):
+        (JSC::Wasm::B3IRGenerator::addTableSet):
+        (JSC::Wasm::B3IRGenerator::addTableInit):
+        (JSC::Wasm::B3IRGenerator::addTableFill):
+        (JSC::Wasm::B3IRGenerator::addTableCopy):
+        (JSC::Wasm::B3IRGenerator::emitIndirectCall):
+        (JSC::Wasm::B3IRGenerator::addMemoryFill):
+        (JSC::Wasm::B3IRGenerator::addMemoryInit):
+        (JSC::Wasm::B3IRGenerator::addMemoryCopy):
+        (JSC::Wasm::B3IRGenerator::fixupPointerPlusOffsetForAtomicOps):
+        (JSC::Wasm::B3IRGenerator::atomicWait):
+        (JSC::Wasm::B3IRGenerator::atomicNotify):
+        (JSC::Wasm::B3IRGenerator::emitEntryTierUpCheck):
+        (JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
+        (JSC::Wasm::B3IRGenerator::addCall):
+        (JSC::Wasm::B3IRGenerator::addCallIndirect):
+        (JSC::Wasm::B3IRGenerator::addCallRef):
+        (JSC::Wasm::B3IRGenerator::emitChecksForModOrDiv):
+        (JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncSF64>):
+        (JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncSF32>):
+        (JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncUF64>):
+        (JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncUF32>):
+        (JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncSF64>):
+        (JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncUF64>):
+        (JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncSF32>):
+        (JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncUF32>):
+        * yarr/YarrJIT.cpp: Ditto.
+
</ins><span class="cx"> 2022-01-15  Yusuke Suzuki  <ysuzuki@apple.com>
</span><span class="cx"> 
</span><span class="cx">         [JSC] Fix Date functions' argument coercion
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreassemblerX86Assemblerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/assembler/X86Assembler.h (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/assembler/X86Assembler.h     2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/assembler/X86Assembler.h        2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -335,17 +335,17 @@
</span><span class="cx">     
</span><span class="cx">     TwoByteOpcodeID cmovcc(Condition cond)
</span><span class="cx">     {
</span><del>-        return (TwoByteOpcodeID)(OP2_CMOVCC + cond);
</del><ins>+        return (TwoByteOpcodeID)(OP2_CMOVCC + static_cast<TwoByteOpcodeID>(cond));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     TwoByteOpcodeID jccRel32(Condition cond)
</span><span class="cx">     {
</span><del>-        return (TwoByteOpcodeID)(OP2_JCC_rel32 + cond);
</del><ins>+        return (TwoByteOpcodeID)(OP2_JCC_rel32 + static_cast<TwoByteOpcodeID>(cond));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     TwoByteOpcodeID setccOpcode(Condition cond)
</span><span class="cx">     {
</span><del>-        return (TwoByteOpcodeID)(OP_SETCC + cond);
</del><ins>+        return (TwoByteOpcodeID)(OP_SETCC + static_cast<TwoByteOpcodeID>(cond));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     typedef enum {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3B3CheckSpecialcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/B3CheckSpecial.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/B3CheckSpecial.cpp        2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/b3/B3CheckSpecial.cpp   2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -176,7 +176,7 @@
</span><span class="cx"> 
</span><span class="cx">     context.latePaths.append(
</span><span class="cx">         createSharedTask<GenerationContext::LatePathFunction>(
</span><del>-            [=] (CCallHelpers& jit, GenerationContext& context) {
</del><ins>+            [=, this] (CCallHelpers& jit, GenerationContext& context) {
</ins><span class="cx">                 fail.link(&jit);
</span><span class="cx"> 
</span><span class="cx">                 // If necessary, undo the operation.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreb3B3Typecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/b3/B3Type.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/b3/B3Type.cpp        2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/b3/B3Type.cpp   2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">     RELEASE_ASSERT_NOT_REACHED();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static_assert(std::is_pod_v<JSC::B3::TypeKind>);
</del><ins>+static_assert(std::is_standard_layout_v<JSC::B3::TypeKind> && std::is_trivial_v<JSC::B3::TypeKind>);
</ins><span class="cx"> } // namespace WTF
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeAccessCasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/AccessCase.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/AccessCase.cpp      2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/bytecode/AccessCase.cpp 2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -2108,7 +2108,7 @@
</span><span class="cx">             bool callHasReturnValue = isGetter();
</span><span class="cx">             restoreLiveRegistersFromStackForCall(spillState, callHasReturnValue);
</span><span class="cx"> 
</span><del>-            jit.addLinkTask([=] (LinkBuffer& linkBuffer) {
</del><ins>+            jit.addLinkTask([=, this] (LinkBuffer& linkBuffer) {
</ins><span class="cx">                 this->as<GetterSetterAccessCase>().callLinkInfo()->setCodeLocations(
</span><span class="cx">                     linkBuffer.locationOf<JSInternalPtrTag>(slowPathStart),
</span><span class="cx">                     linkBuffer.locationOf<JSInternalPtrTag>(doneLocation));
</span><span class="lines">@@ -2172,7 +2172,7 @@
</span><span class="cx">                 operationCall = jit.call(OperationPtrTag);
</span><span class="cx">             else
</span><span class="cx">                 operationCall = jit.call(CustomAccessorPtrTag);
</span><del>-            jit.addLinkTask([=] (LinkBuffer& linkBuffer) {
</del><ins>+            jit.addLinkTask([=, this] (LinkBuffer& linkBuffer) {
</ins><span class="cx">                 if (Options::useJITCage()) {
</span><span class="cx">                     if (m_type == CustomValueGetter || m_type == CustomAccessorGetter)
</span><span class="cx">                         linkBuffer.link(operationCall, FunctionPtr<OperationPtrTag>(vmEntryCustomGetter));
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCallLinkInfocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CallLinkInfo.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CallLinkInfo.cpp    2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/bytecode/CallLinkInfo.cpp       2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -463,7 +463,7 @@
</span><span class="cx">     setUsesDataICs(UseDataIC::No);
</span><span class="cx"> 
</span><span class="cx">     auto call = jit.nearCall();
</span><del>-    jit.addLinkTask([=] (LinkBuffer& linkBuffer) {
</del><ins>+    jit.addLinkTask([=, this] (LinkBuffer& linkBuffer) {
</ins><span class="cx">         m_callLocation = linkBuffer.locationOfNearCall<JSInternalPtrTag>(call);
</span><span class="cx">     });
</span><span class="cx">     jit.addLateLinkTask([this] (LinkBuffer&) {
</span><span class="lines">@@ -478,7 +478,7 @@
</span><span class="cx">     setUsesDataICs(UseDataIC::No);
</span><span class="cx"> 
</span><span class="cx">     auto fastPathStart = jit.label();
</span><del>-    jit.addLinkTask([=] (LinkBuffer& linkBuffer) {
</del><ins>+    jit.addLinkTask([=, this] (LinkBuffer& linkBuffer) {
</ins><span class="cx">         m_fastPathStart = linkBuffer.locationOf<JSInternalPtrTag>(fastPathStart);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -488,7 +488,7 @@
</span><span class="cx"> 
</span><span class="cx">     prepareForTailCall();
</span><span class="cx">     auto call = jit.nearTailCall();
</span><del>-    jit.addLinkTask([=] (LinkBuffer& linkBuffer) {
</del><ins>+    jit.addLinkTask([=, this] (LinkBuffer& linkBuffer) {
</ins><span class="cx">         m_callLocation = linkBuffer.locationOfNearCall<JSInternalPtrTag>(call);
</span><span class="cx">     });
</span><span class="cx">     jit.addLateLinkTask([this] (LinkBuffer&) {
</span><span class="lines">@@ -504,7 +504,7 @@
</span><span class="cx">         RELEASE_ASSERT(fastPathStart());
</span><span class="cx">         CCallHelpers::emitJITCodeOver(fastPathStart(), scopedLambda<void(CCallHelpers&)>([&](CCallHelpers& jit) {
</span><span class="cx">             auto jump = jit.jump();
</span><del>-            jit.addLinkTask([=] (LinkBuffer& linkBuffer) {
</del><ins>+            jit.addLinkTask([=, this] (LinkBuffer& linkBuffer) {
</ins><span class="cx">                 linkBuffer.link(jump, slowPathStart());
</span><span class="cx">             });
</span><span class="cx">         }), "initialize direct call");
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGSpeculativeJITcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp    2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp       2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -5392,7 +5392,7 @@
</span><span class="cx"> 
</span><span class="cx">         auto done = m_jit.label();
</span><span class="cx"> 
</span><del>-        addSlowPathGeneratorLambda([=, savePlans = WTFMove(savePlans)] () {
</del><ins>+        addSlowPathGeneratorLambda([=, this, savePlans = WTFMove(savePlans)] () {
</ins><span class="cx">             addICGenerationState->slowPathJumps.link(&m_jit);
</span><span class="cx">             addICGenerationState->slowPathStart = m_jit.label();
</span><span class="cx"> #if ENABLE(MATH_IC_STATS)
</span><span class="lines">@@ -6015,7 +6015,7 @@
</span><span class="cx"> 
</span><span class="cx">         auto done = m_jit.label();
</span><span class="cx"> 
</span><del>-        addSlowPathGeneratorLambda([=, savePlans = WTFMove(savePlans)] () {
</del><ins>+        addSlowPathGeneratorLambda([=, this, savePlans = WTFMove(savePlans)] () {
</ins><span class="cx">             icGenerationState->slowPathJumps.link(&m_jit);
</span><span class="cx">             icGenerationState->slowPathStart = m_jit.label();
</span><span class="cx"> #if ENABLE(MATH_IC_STATS)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGSpeculativeJIT64cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp  2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp     2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -5950,7 +5950,7 @@
</span><span class="cx">         silentSpillAllRegistersImpl(false, savePlans, InvalidGPRReg);
</span><span class="cx">         BytecodeIndex bytecodeIndex = node->origin.semantic.bytecodeIndex();
</span><span class="cx"> 
</span><del>-        addSlowPathGeneratorLambda([=]() {
</del><ins>+        addSlowPathGeneratorLambda([=, this]() {
</ins><span class="cx">             callTierUp.link(&m_jit);
</span><span class="cx"> 
</span><span class="cx">             silentSpill(savePlans);
</span><span class="lines">@@ -6002,7 +6002,7 @@
</span><span class="cx">         unsigned streamIndex = m_stream->size();
</span><span class="cx">         m_jit.jitCode()->bytecodeIndexToStreamIndex.add(bytecodeIndex, streamIndex);
</span><span class="cx"> 
</span><del>-        addSlowPathGeneratorLambda([=]() {
</del><ins>+        addSlowPathGeneratorLambda([=, this]() {
</ins><span class="cx">             forceOSREntry.link(&m_jit);
</span><span class="cx">             overflowedCounter.link(&m_jit);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitICStatsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/ICStats.h (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/ICStats.h        2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/jit/ICStats.h   2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -150,8 +150,8 @@
</span><span class="cx">     unsigned hash() const
</span><span class="cx">     {
</span><span class="cx">         if (m_propertyName.isNull())
</span><del>-            return m_kind + m_propertyLocation + WTF::PtrHash<const ClassInfo*>::hash(m_classInfo);
-        return m_kind + m_propertyLocation + WTF::PtrHash<const ClassInfo*>::hash(m_classInfo) + StringHash::hash(m_propertyName.string());
</del><ins>+            return static_cast<unsigned>(m_kind) + static_cast<unsigned>(m_propertyLocation) + WTF::PtrHash<const ClassInfo*>::hash(m_classInfo);
+        return static_cast<unsigned>(m_kind) + static_cast<unsigned>(m_propertyLocation) + WTF::PtrHash<const ClassInfo*>::hash(m_classInfo) + StringHash::hash(m_propertyName.string());
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     bool isHashTableDeletedValue() const
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITArithmeticcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITArithmetic.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITArithmetic.cpp        2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/jit/JITArithmetic.cpp   2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -858,7 +858,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitPutVirtualRegister(result, resultRegs);
</span><span class="cx"> 
</span><del>-    addLinkTask([=] (LinkBuffer& linkBuffer) {
</del><ins>+    addLinkTask([=, this] (LinkBuffer& linkBuffer) {
</ins><span class="cx">         MathICGenerationState& mathICGenerationState = m_instructionToMathICGenerationState.find(currentInstruction)->value.get();
</span><span class="cx">         mathIC->finalizeInlineCode(mathICGenerationState, linkBuffer);
</span><span class="cx">     });
</span><span class="lines">@@ -919,7 +919,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitPutVirtualRegister(result, resultRegs);
</span><span class="cx"> 
</span><del>-    addLinkTask([=] (LinkBuffer& linkBuffer) {
</del><ins>+    addLinkTask([=, this] (LinkBuffer& linkBuffer) {
</ins><span class="cx">         MathICGenerationState& mathICGenerationState = m_instructionToMathICGenerationState.find(currentInstruction)->value.get();
</span><span class="cx">         mathIC->finalizeInlineCode(mathICGenerationState, linkBuffer);
</span><span class="cx">     });
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITSizeStatisticscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITSizeStatistics.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITSizeStatistics.cpp    2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/jit/JITSizeStatistics.cpp       2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -45,9 +45,9 @@
</span><span class="cx"> void JITSizeStatistics::markEnd(Marker marker, CCallHelpers& jit)
</span><span class="cx"> {
</span><span class="cx">     CCallHelpers::Label end = jit.labelIgnoringWatchpoints();
</span><del>-    jit.addLinkTask([=] (LinkBuffer& linkBuffer) {
</del><ins>+    jit.addLinkTask([=, this] (LinkBuffer& linkBuffer) {
</ins><span class="cx">         size_t size = linkBuffer.locationOf<NoPtrTag>(end).untaggedExecutableAddress<char*>() - linkBuffer.locationOf<NoPtrTag>(marker.start).untaggedExecutableAddress<char*>();
</span><del>-        linkBuffer.addMainThreadFinalizationTask([=] {
</del><ins>+        linkBuffer.addMainThreadFinalizationTask([=, this] {
</ins><span class="cx">             auto& entry = m_data.add(marker.identifier, Entry { }).iterator->value;
</span><span class="cx">             ++entry.count;
</span><span class="cx">             entry.totalBytes += size;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeVMcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/VM.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/VM.cpp       2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/runtime/VM.cpp  2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -774,7 +774,7 @@
</span><span class="cx"> 
</span><span class="cx"> void VM::deleteAllLinkedCode(DeleteAllCodeEffort effort)
</span><span class="cx"> {
</span><del>-    whenIdle([=] () {
</del><ins>+    whenIdle([=, this] () {
</ins><span class="cx">         heap.deleteAllCodeBlocks(effort);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -781,7 +781,7 @@
</span><span class="cx"> 
</span><span class="cx"> void VM::deleteAllCode(DeleteAllCodeEffort effort)
</span><span class="cx"> {
</span><del>-    whenIdle([=] () {
</del><ins>+    whenIdle([=, this] () {
</ins><span class="cx">         m_codeCache->clear();
</span><span class="cx">         m_regExpCache->deleteAllCode();
</span><span class="cx">         heap.deleteAllCodeBlocks(effort);
</span><span class="lines">@@ -792,7 +792,7 @@
</span><span class="cx"> 
</span><span class="cx"> void VM::shrinkFootprintWhenIdle()
</span><span class="cx"> {
</span><del>-    whenIdle([=] () {
</del><ins>+    whenIdle([=, this] () {
</ins><span class="cx">         sanitizeStackForVM(*this);
</span><span class="cx">         deleteAllCode(DeleteAllCodeIfNotCollecting);
</span><span class="cx">         heap.collectNow(Synchronousness::Sync, CollectionScope::Full);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmWasmAirIRGeneratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp  2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp     2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -963,7 +963,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_prologueWasmContextGPR = Context::useFastTLS() ? wasmCallingConvention().prologueScratchGPRs[1] : m_wasmContextInstanceGPR;
</span><span class="cx"> 
</span><del>-    m_prologueGenerator = createSharedTask<B3::Air::PrologueGeneratorFunction>([=] (CCallHelpers& jit, B3::Air::Code& code) {
</del><ins>+    m_prologueGenerator = createSharedTask<B3::Air::PrologueGeneratorFunction>([=, this] (CCallHelpers& jit, B3::Air::Code& code) {
</ins><span class="cx">         AllowMacroScratchRegisterUsage allowScratch(jit);
</span><span class="cx">         code.emitDefaultPrologue(jit);
</span><span class="cx"> 
</span><span class="lines">@@ -1329,7 +1329,7 @@
</span><span class="cx">     emitCCall(&operationGetWasmTableElement, result, instanceValue(), addConstant(Types::I32, tableIndex), index);
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::Zero), result, result);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -1348,7 +1348,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::Zero), shouldThrow, shouldThrow);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -1375,7 +1375,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::Zero), result, result);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -1425,7 +1425,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::Zero), result, result);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -1452,7 +1452,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::Zero), result, result);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -1527,7 +1527,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::Zero), result, result);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsMemoryAccess);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -1552,7 +1552,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::Zero), result, result);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -1578,7 +1578,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::Zero), result, result);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -1785,7 +1785,7 @@
</span><span class="cx"> 
</span><span class="cx">         emitCheck([&] {
</span><span class="cx">             return Inst(Branch64, nullptr, Arg::relCond(MacroAssembler::AboveOrEqual), temp, Tmp(m_boundsCheckingSizeGPR));
</span><del>-        }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitThrowException(jit, ExceptionType::OutOfBoundsMemoryAccess);
</span><span class="cx">         });
</span><span class="cx">         break;
</span><span class="lines">@@ -1811,7 +1811,7 @@
</span><span class="cx"> 
</span><span class="cx">             emitCheck([&] {
</span><span class="cx">                 return Inst(Branch64, nullptr, Arg::relCond(MacroAssembler::AboveOrEqual), temp, sizeMax);
</span><del>-            }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+            }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">                 this->emitThrowException(jit, ExceptionType::OutOfBoundsMemoryAccess);
</span><span class="cx">             });
</span><span class="cx">         }
</span><span class="lines">@@ -2382,7 +2382,7 @@
</span><span class="cx">     if (accessWidth(op) != B3::Width8) {
</span><span class="cx">         emitCheck([&] {
</span><span class="cx">             return Inst(BranchTest64, nullptr, Arg::resCond(MacroAssembler::NonZero), newPtr, isX86() ? Arg::bitImm(sizeOfAtomicOpMemoryAccess(op) - 1) : Arg::bitImm64(sizeOfAtomicOpMemoryAccess(op) - 1));
</span><del>-        }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitThrowException(jit, ExceptionType::OutOfBoundsMemoryAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -2454,7 +2454,7 @@
</span><span class="cx">     if (accessWidth(op) != B3::Width8) {
</span><span class="cx">         emitCheck([&] {
</span><span class="cx">             return Inst(BranchTest64, nullptr, Arg::resCond(MacroAssembler::NonZero), newPtr, isX86() ? Arg::bitImm(sizeOfAtomicOpMemoryAccess(op) - 1) : Arg::bitImm64(sizeOfAtomicOpMemoryAccess(op) - 1));
</span><del>-        }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitThrowException(jit, ExceptionType::OutOfBoundsMemoryAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -2508,7 +2508,7 @@
</span><span class="cx">     if (accessWidth(op) != B3::Width8) {
</span><span class="cx">         emitCheck([&] {
</span><span class="cx">             return Inst(BranchTest64, nullptr, Arg::resCond(MacroAssembler::NonZero), newPtr, isX86() ? Arg::bitImm(sizeOfAtomicOpMemoryAccess(op) - 1) : Arg::bitImm64(sizeOfAtomicOpMemoryAccess(op) - 1));
</span><del>-        }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitThrowException(jit, ExceptionType::OutOfBoundsMemoryAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -2680,7 +2680,7 @@
</span><span class="cx">     if (accessWidth != B3::Width8) {
</span><span class="cx">         emitCheck([&] {
</span><span class="cx">             return Inst(BranchTest64, nullptr, Arg::resCond(MacroAssembler::NonZero), newPtr, isX86() ? Arg::bitImm(sizeOfAtomicOpMemoryAccess(op) - 1) : Arg::bitImm64(sizeOfAtomicOpMemoryAccess(op) - 1));
</span><del>-        }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitThrowException(jit, ExceptionType::OutOfBoundsMemoryAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -2778,7 +2778,7 @@
</span><span class="cx">         emitCCall(&operationMemoryAtomicWait64, result, instanceValue(), pointer, addConstant(Types::I32, offset), value, timeout);
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(Branch32, nullptr, Arg::relCond(MacroAssembler::LessThan), result, Arg::imm(0));
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsMemoryAccess);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -2792,7 +2792,7 @@
</span><span class="cx">     emitCCall(&operationMemoryAtomicNotify, result, instanceValue(), pointer, addConstant(Types::I32, offset), count);
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(Branch32, nullptr, Arg::relCond(MacroAssembler::LessThan), result, Arg::imm(0));
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsMemoryAccess);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -3029,13 +3029,13 @@
</span><span class="cx">     patch->effects = effects;
</span><span class="cx">     patch->clobber(RegisterSet::macroScratchRegisters());
</span><span class="cx"> 
</span><del>-    patch->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</del><ins>+    patch->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</ins><span class="cx">         AllowMacroScratchRegisterUsage allowScratch(jit);
</span><span class="cx"> 
</span><span class="cx">         CCallHelpers::Jump tierUp = jit.branchAdd32(CCallHelpers::PositiveOrZero, CCallHelpers::TrustedImm32(TierUpCount::functionEntryIncrement()), CCallHelpers::Address(params[0].gpr()));
</span><span class="cx">         CCallHelpers::Label tierUpResume = jit.label();
</span><span class="cx"> 
</span><del>-        params.addLatePath([=] (CCallHelpers& jit) {
</del><ins>+        params.addLatePath([=, this] (CCallHelpers& jit) {
</ins><span class="cx">             tierUp.link(&jit);
</span><span class="cx"> 
</span><span class="cx">             const unsigned extraPaddingBytes = 0;
</span><span class="lines">@@ -3093,7 +3093,7 @@
</span><span class="cx">     TierUpCount::TriggerReason* forceEntryTrigger = &(m_tierUp->osrEntryTriggers().last());
</span><span class="cx">     static_assert(!static_cast<uint8_t>(TierUpCount::TriggerReason::DontTrigger), "the JIT code assumes non-zero means 'enter'");
</span><span class="cx">     static_assert(sizeof(TierUpCount::TriggerReason) == 1, "branchTest8 assumes this size");
</span><del>-    patch->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</del><ins>+    patch->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</ins><span class="cx">         AllowMacroScratchRegisterUsage allowScratch(jit);
</span><span class="cx">         CCallHelpers::Jump forceOSREntry = jit.branchTest8(CCallHelpers::NonZero, CCallHelpers::AbsoluteAddress(forceEntryTrigger));
</span><span class="cx">         CCallHelpers::Jump tierUp = jit.branchAdd32(CCallHelpers::PositiveOrZero, CCallHelpers::TrustedImm32(TierUpCount::loopIncrement()), CCallHelpers::Address(params[0].gpr()));
</span><span class="lines">@@ -3610,7 +3610,7 @@
</span><span class="cx">             // FIXME: We shouldn't have to do this: https://bugs.webkit.org/show_bug.cgi?id=172181
</span><span class="cx">             patchpoint->clobberLate(PinnedRegisterInfo::get().toSave(MemoryMode::BoundsChecking));
</span><span class="cx"> 
</span><del>-            patchpoint->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</del><ins>+            patchpoint->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</ins><span class="cx">                 AllowMacroScratchRegisterUsage allowScratch(jit);
</span><span class="cx">                 exceptionHandle.generate(jit, params, this);
</span><span class="cx">                 CCallHelpers::Call call = jit.threadSafePatchableNearCall();
</span><span class="lines">@@ -3639,7 +3639,7 @@
</span><span class="cx">             // We pessimistically assume we could be calling to something that is bounds checking.
</span><span class="cx">             // FIXME: We shouldn't have to do this: https://bugs.webkit.org/show_bug.cgi?id=172181
</span><span class="cx">             patchpoint->clobberLate(PinnedRegisterInfo::get().toSave(MemoryMode::BoundsChecking));
</span><del>-            patchpoint->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</del><ins>+            patchpoint->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</ins><span class="cx">                 AllowMacroScratchRegisterUsage allowScratch(jit);
</span><span class="cx">                 exceptionHandle.generate(jit, params, this);
</span><span class="cx">                 jit.call(params[params.proc().resultCount(params.value()->type())].gpr(), WasmEntryPtrTag);
</span><span class="lines">@@ -3659,7 +3659,7 @@
</span><span class="cx">         // We need to clobber the size register since the LLInt always bounds checks
</span><span class="cx">         if (m_mode == MemoryMode::Signaling || m_info.memory.isShared())
</span><span class="cx">             patchpoint->clobberLate(RegisterSet { PinnedRegisterInfo::get().boundsCheckingSizeRegister });
</span><del>-        patchpoint->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</del><ins>+        patchpoint->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</ins><span class="cx">             AllowMacroScratchRegisterUsage allowScratch(jit);
</span><span class="cx">             exceptionHandle.generate(jit, params, this);
</span><span class="cx">             CCallHelpers::Call call = jit.threadSafePatchableNearCall();
</span><span class="lines">@@ -3709,7 +3709,7 @@
</span><span class="cx">     // Check the index we are looking for is valid.
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(Branch32, nullptr, Arg::relCond(MacroAssembler::AboveOrEqual), calleeIndex, callableFunctionBufferLength);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsCallIndirect);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -3736,7 +3736,7 @@
</span><span class="cx">         emitCheck([&] {
</span><span class="cx">             static_assert(Signature::invalidIndex == 0, "");
</span><span class="cx">             return Inst(BranchTest64, nullptr, Arg::resCond(MacroAssembler::Zero), calleeSignatureIndex, calleeSignatureIndex);
</span><del>-        }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitThrowException(jit, ExceptionType::NullTableEntry);
</span><span class="cx">         });
</span><span class="cx"> 
</span><span class="lines">@@ -3744,7 +3744,7 @@
</span><span class="cx">         append(Move, Arg::bigImm(SignatureInformation::get(signature)), expectedSignatureIndex);
</span><span class="cx">         emitCheck([&] {
</span><span class="cx">             return Inst(Branch64, nullptr, Arg::relCond(MacroAssembler::NotEqual), calleeSignatureIndex, expectedSignatureIndex);
</span><del>-        }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitThrowException(jit, ExceptionType::BadSignature);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -3769,7 +3769,7 @@
</span><span class="cx">     append(Move, Arg::bigImm(JSValue::encode(jsNull())), tmpForNull);
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(Branch64, nullptr, Arg::relCond(MacroAssembler::Equal), calleeFunction, tmpForNull);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::NullReference);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -3852,7 +3852,7 @@
</span><span class="cx"> 
</span><span class="cx">     patchpoint->clobberLate(PinnedRegisterInfo::get().toSave(MemoryMode::BoundsChecking));
</span><span class="cx"> 
</span><del>-    patchpoint->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</del><ins>+    patchpoint->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</ins><span class="cx">         AllowMacroScratchRegisterUsage allowScratch(jit);
</span><span class="cx">         exceptionHandle.generate(jit, params, this);
</span><span class="cx">         jit.call(params[params.proc().resultCount(params.value()->type())].gpr(), WasmEntryPtrTag);
</span><span class="lines">@@ -3967,7 +3967,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(sizeof(IntType) == 4 ? BranchTest32 : BranchTest64, nullptr, Arg::resCond(MacroAssembler::Zero), right, right);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::DivisionByZero);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -3990,7 +3990,7 @@
</span><span class="cx">         emitCheck([&] {
</span><span class="cx">             return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::NonZero), minTmp, negOne);
</span><span class="cx">         },
</span><del>-        [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitThrowException(jit, ExceptionType::IntegerOverflow);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -4351,7 +4351,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::NonZero), temp2, temp2);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -4380,7 +4380,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::NonZero), temp2, temp2);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -4409,7 +4409,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::NonZero), temp2, temp2);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -4437,7 +4437,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::NonZero), temp2, temp2);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -4465,7 +4465,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::NonZero), temp2, temp2);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -4494,7 +4494,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::NonZero), temp2, temp2);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -4541,7 +4541,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::NonZero), temp2, temp2);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -4569,7 +4569,7 @@
</span><span class="cx"> 
</span><span class="cx">     emitCheck([&] {
</span><span class="cx">         return Inst(BranchTest32, nullptr, Arg::resCond(MacroAssembler::NonZero), temp2, temp2);
</span><del>-    }, [=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+    }, [=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">         this->emitThrowException(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorewasmWasmB3IRGeneratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp   2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp      2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -642,7 +642,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (info.memory) {
</span><del>-        m_proc.setWasmBoundsCheckGenerator([=] (CCallHelpers& jit, GPRReg pinnedGPR) {
</del><ins>+        m_proc.setWasmBoundsCheckGenerator([=, this] (CCallHelpers& jit, GPRReg pinnedGPR) {
</ins><span class="cx">             AllowMacroScratchRegisterUsage allowScratch(jit);
</span><span class="cx">             switch (m_mode) {
</span><span class="cx">             case MemoryMode::BoundsChecking:
</span><span class="lines">@@ -714,7 +714,7 @@
</span><span class="cx">         stackOverflowCheck->appendSomeRegister(framePointer());
</span><span class="cx">         stackOverflowCheck->clobber(RegisterSet::macroScratchRegisters());
</span><span class="cx">         stackOverflowCheck->numGPScratchRegisters = 2;
</span><del>-        stackOverflowCheck->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</del><ins>+        stackOverflowCheck->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</ins><span class="cx">             const Checked<int32_t> wasmFrameSize = params.proc().frameSize();
</span><span class="cx">             const unsigned minimumParentCheckSize = WTF::roundUpToMultipleOf(stackAlignmentBytes(), 1024);
</span><span class="cx">             const unsigned extraFrameSize = WTF::roundUpToMultipleOf(stackAlignmentBytes(), std::max<uint32_t>(
</span><span class="lines">@@ -949,7 +949,7 @@
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), resultValue, m_currentBlock->appendNew<Const64Value>(m_proc, origin(), 0)));
</span><span class="cx"> 
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -968,7 +968,7 @@
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), shouldThrow, m_currentBlock->appendNew<Const32Value>(m_proc, origin(), 0)));
</span><span class="cx"> 
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -1001,7 +1001,7 @@
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), resultValue, m_currentBlock->appendNew<Const32Value>(m_proc, origin(), 0)));
</span><span class="cx"> 
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -1049,7 +1049,7 @@
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), resultValue, m_currentBlock->appendNew<Const32Value>(m_proc, origin(), 0)));
</span><span class="cx"> 
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -1071,7 +1071,7 @@
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), resultValue, m_currentBlock->appendNew<Const32Value>(m_proc, origin(), 0)));
</span><span class="cx"> 
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -1146,7 +1146,7 @@
</span><span class="cx"> 
</span><span class="cx">     B3::Type returnType = toB3ResultType(&signature);
</span><span class="cx">     Value* callResult = createCallPatchpoint(m_currentBlock, origin(), signature, args,
</span><del>-        scopedLambdaRef<void(PatchpointValue*, Box<PatchpointExceptionHandle>)>([=] (PatchpointValue* patchpoint, Box<PatchpointExceptionHandle> handle) -> void {
</del><ins>+        scopedLambdaRef<void(PatchpointValue*, Box<PatchpointExceptionHandle>)>([=, this] (PatchpointValue* patchpoint, Box<PatchpointExceptionHandle> handle) -> void {
</ins><span class="cx">             patchpoint->effects.writesPinned = true;
</span><span class="cx">             patchpoint->effects.readsPinned = true;
</span><span class="cx">             // We need to clobber all potential pinned registers since we might be leaving the instance.
</span><span class="lines">@@ -1157,7 +1157,7 @@
</span><span class="cx">             patchpoint->clobberLate(PinnedRegisterInfo::get().toSave(MemoryMode::BoundsChecking));
</span><span class="cx"> 
</span><span class="cx">             patchpoint->append(calleeCode, ValueRep::SomeRegister);
</span><del>-            patchpoint->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</del><ins>+            patchpoint->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) {
</ins><span class="cx">                 AllowMacroScratchRegisterUsage allowScratch(jit);
</span><span class="cx">                 handle->generate(jit, params, this);
</span><span class="cx">                 jit.call(params[params.proc().resultCount(returnType)].gpr(), WasmEntryPtrTag);
</span><span class="lines">@@ -1227,7 +1227,7 @@
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), resultValue, m_currentBlock->appendNew<Const32Value>(m_proc, origin(), 0)));
</span><span class="cx"> 
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsMemoryAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -1248,7 +1248,7 @@
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), resultValue, m_currentBlock->appendNew<Const32Value>(m_proc, origin(), 0)));
</span><span class="cx"> 
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -1268,7 +1268,7 @@
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), resultValue, m_currentBlock->appendNew<Const32Value>(m_proc, origin(), 0)));
</span><span class="cx"> 
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTableAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -1730,7 +1730,7 @@
</span><span class="cx">     if (accessWidth(op) != B3::Width8) {
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, BitAnd, origin(), pointer, constant(pointerType(), sizeOfAtomicOpMemoryAccess(op) - 1)));
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsMemoryAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -2057,7 +2057,7 @@
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, LessThan, origin(), resultValue, m_currentBlock->appendNew<Const32Value>(m_proc, origin(), 0)));
</span><span class="cx"> 
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsMemoryAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -2075,7 +2075,7 @@
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, LessThan, origin(), resultValue, m_currentBlock->appendNew<Const32Value>(m_proc, origin(), 0)));
</span><span class="cx"> 
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsMemoryAccess);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -2280,12 +2280,12 @@
</span><span class="cx">     patch->clobber(RegisterSet::macroScratchRegisters());
</span><span class="cx"> 
</span><span class="cx">     patch->append(countDownLocation, ValueRep::SomeRegister);
</span><del>-    patch->setGenerator([=] (CCallHelpers& jit, const StackmapGenerationParams& params) {
</del><ins>+    patch->setGenerator([=, this] (CCallHelpers& jit, const StackmapGenerationParams& params) {
</ins><span class="cx">         AllowMacroScratchRegisterUsage allowScratch(jit);
</span><span class="cx">         CCallHelpers::Jump tierUp = jit.branchAdd32(CCallHelpers::PositiveOrZero, CCallHelpers::TrustedImm32(TierUpCount::functionEntryIncrement()), CCallHelpers::Address(params[0].gpr()));
</span><span class="cx">         CCallHelpers::Label tierUpResume = jit.label();
</span><span class="cx"> 
</span><del>-        params.addLatePath([=] (CCallHelpers& jit) {
</del><ins>+        params.addLatePath([=, this] (CCallHelpers& jit) {
</ins><span class="cx">             tierUp.link(&jit);
</span><span class="cx"> 
</span><span class="cx">             const unsigned extraPaddingBytes = 0;
</span><span class="lines">@@ -2356,7 +2356,7 @@
</span><span class="cx">     TierUpCount::TriggerReason* forceEntryTrigger = &(m_tierUp->osrEntryTriggers().last());
</span><span class="cx">     static_assert(!static_cast<uint8_t>(TierUpCount::TriggerReason::DontTrigger), "the JIT code assumes non-zero means 'enter'");
</span><span class="cx">     static_assert(sizeof(TierUpCount::TriggerReason) == 1, "branchTest8 assumes this size");
</span><del>-    patch->setGenerator([=] (CCallHelpers& jit, const StackmapGenerationParams& params) {
</del><ins>+    patch->setGenerator([=, this] (CCallHelpers& jit, const StackmapGenerationParams& params) {
</ins><span class="cx">         AllowMacroScratchRegisterUsage allowScratch(jit);
</span><span class="cx">         CCallHelpers::Jump forceOSREntry = jit.branchTest8(CCallHelpers::NonZero, CCallHelpers::AbsoluteAddress(forceEntryTrigger));
</span><span class="cx">         CCallHelpers::Jump tierUp = jit.branchAdd32(CCallHelpers::PositiveOrZero, CCallHelpers::TrustedImm32(TierUpCount::loopIncrement()), CCallHelpers::Address(params[0].gpr()));
</span><span class="lines">@@ -2879,7 +2879,7 @@
</span><span class="cx">         m_currentBlock->appendNewControlValue(m_proc, B3::Branch, origin(), isWasmCall, FrequentedBlock(isWasmBlock), FrequentedBlock(isEmbedderBlock));
</span><span class="cx"> 
</span><span class="cx">         Value* wasmCallResult = createCallPatchpoint(isWasmBlock, origin(), signature, args,
</span><del>-            scopedLambdaRef<void(PatchpointValue*, Box<PatchpointExceptionHandle>)>([=] (PatchpointValue* patchpoint, Box<PatchpointExceptionHandle> handle) -> void {
</del><ins>+            scopedLambdaRef<void(PatchpointValue*, Box<PatchpointExceptionHandle>)>([=, this] (PatchpointValue* patchpoint, Box<PatchpointExceptionHandle> handle) -> void {
</ins><span class="cx">                 patchpoint->effects.writesPinned = true;
</span><span class="cx">                 patchpoint->effects.readsPinned = true;
</span><span class="cx">                 // We need to clobber all potential pinned registers since we might be leaving the instance.
</span><span class="lines">@@ -2906,7 +2906,7 @@
</span><span class="cx">             Load, pointerType(), origin(), instanceValue(), safeCast<int32_t>(Instance::offsetOfWasmToEmbedderStub(functionIndex)));
</span><span class="cx"> 
</span><span class="cx">         Value* embedderCallResult = createCallPatchpoint(isEmbedderBlock, origin(), signature, args,
</span><del>-            scopedLambdaRef<void(PatchpointValue*, Box<PatchpointExceptionHandle>)>([=] (PatchpointValue* patchpoint, Box<PatchpointExceptionHandle> handle) -> void {
</del><ins>+            scopedLambdaRef<void(PatchpointValue*, Box<PatchpointExceptionHandle>)>([=, this] (PatchpointValue* patchpoint, Box<PatchpointExceptionHandle> handle) -> void {
</ins><span class="cx">                 patchpoint->effects.writesPinned = true;
</span><span class="cx">                 patchpoint->effects.readsPinned = true;
</span><span class="cx">                 patchpoint->append(jumpDestination, ValueRep::SomeRegister);
</span><span class="lines">@@ -2937,7 +2937,7 @@
</span><span class="cx">     } else {
</span><span class="cx"> 
</span><span class="cx">         Value* patch = createCallPatchpoint(m_currentBlock, origin(), signature, args,
</span><del>-            scopedLambdaRef<void(PatchpointValue*, Box<PatchpointExceptionHandle>)>([=] (PatchpointValue* patchpoint, Box<PatchpointExceptionHandle> handle) -> void {
</del><ins>+            scopedLambdaRef<void(PatchpointValue*, Box<PatchpointExceptionHandle>)>([=, this] (PatchpointValue* patchpoint, Box<PatchpointExceptionHandle> handle) -> void {
</ins><span class="cx">                 patchpoint->effects.writesPinned = true;
</span><span class="cx">                 patchpoint->effects.readsPinned = true;
</span><span class="cx"> 
</span><span class="lines">@@ -2989,7 +2989,7 @@
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, AboveEqual, origin(), calleeIndex, callableFunctionBufferLength));
</span><span class="cx"> 
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsCallIndirect);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -3013,7 +3013,7 @@
</span><span class="cx">                     calleeSignatureIndex,
</span><span class="cx">                     m_currentBlock->appendNew<Const64Value>(m_proc, origin(), Signature::invalidIndex)));
</span><span class="cx"> 
</span><del>-            check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+            check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">                 this->emitExceptionCheck(jit, ExceptionType::NullTableEntry);
</span><span class="cx">             });
</span><span class="cx">         }
</span><span class="lines">@@ -3024,7 +3024,7 @@
</span><span class="cx">             CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">                 m_currentBlock->appendNew<Value>(m_proc, NotEqual, origin(), calleeSignatureIndex, expectedSignatureIndex));
</span><span class="cx"> 
</span><del>-            check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+            check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">                 this->emitExceptionCheck(jit, ExceptionType::BadSignature);
</span><span class="cx">             });
</span><span class="cx">         }
</span><span class="lines">@@ -3064,7 +3064,7 @@
</span><span class="cx">     {
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), callee, m_currentBlock->appendNew<Const64Value>(m_proc, origin(), JSValue::encode(jsNull()))));
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::NullReference);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -3227,7 +3227,7 @@
</span><span class="cx">         CheckValue* check = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(),
</span><span class="cx">             m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), right, constant(type, 0)));
</span><span class="cx"> 
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::DivisionByZero);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -3240,7 +3240,7 @@
</span><span class="cx">                 m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), left, constant(type, min)),
</span><span class="cx">                 m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), right, constant(type, -1))));
</span><span class="cx"> 
</span><del>-        check->setGenerator([=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</del><ins>+        check->setGenerator([=, this] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
</ins><span class="cx">             this->emitExceptionCheck(jit, ExceptionType::IntegerOverflow);
</span><span class="cx">         });
</span><span class="cx">     }
</span><span class="lines">@@ -3517,7 +3517,7 @@
</span><span class="cx">         m_currentBlock->appendNew<Value>(m_proc, GreaterThan, origin(), arg, min));
</span><span class="cx">     outOfBounds = m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), outOfBounds, constant(Int32, 0));
</span><span class="cx">     CheckValue* trap = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(), outOfBounds);
</span><del>-    trap->setGenerator([=] (CCallHelpers& jit, const StackmapGenerationParams&) {
</del><ins>+    trap->setGenerator([=, this] (CCallHelpers& jit, const StackmapGenerationParams&) {
</ins><span class="cx">         this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx">     PatchpointValue* patchpoint = m_currentBlock->appendNew<PatchpointValue>(m_proc, Int32, origin());
</span><span class="lines">@@ -3541,7 +3541,7 @@
</span><span class="cx">         m_currentBlock->appendNew<Value>(m_proc, GreaterEqual, origin(), arg, min));
</span><span class="cx">     outOfBounds = m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), outOfBounds, constant(Int32, 0));
</span><span class="cx">     CheckValue* trap = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(), outOfBounds);
</span><del>-    trap->setGenerator([=] (CCallHelpers& jit, const StackmapGenerationParams&) {
</del><ins>+    trap->setGenerator([=, this] (CCallHelpers& jit, const StackmapGenerationParams&) {
</ins><span class="cx">         this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx">     PatchpointValue* patchpoint = m_currentBlock->appendNew<PatchpointValue>(m_proc, Int32, origin());
</span><span class="lines">@@ -3566,7 +3566,7 @@
</span><span class="cx">         m_currentBlock->appendNew<Value>(m_proc, GreaterThan, origin(), arg, min));
</span><span class="cx">     outOfBounds = m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), outOfBounds, constant(Int32, 0));
</span><span class="cx">     CheckValue* trap = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(), outOfBounds);
</span><del>-    trap->setGenerator([=] (CCallHelpers& jit, const StackmapGenerationParams&) {
</del><ins>+    trap->setGenerator([=, this] (CCallHelpers& jit, const StackmapGenerationParams&) {
</ins><span class="cx">         this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx">     PatchpointValue* patchpoint = m_currentBlock->appendNew<PatchpointValue>(m_proc, Int32, origin());
</span><span class="lines">@@ -3590,7 +3590,7 @@
</span><span class="cx">         m_currentBlock->appendNew<Value>(m_proc, GreaterThan, origin(), arg, min));
</span><span class="cx">     outOfBounds = m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), outOfBounds, constant(Int32, 0));
</span><span class="cx">     CheckValue* trap = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(), outOfBounds);
</span><del>-    trap->setGenerator([=] (CCallHelpers& jit, const StackmapGenerationParams&) {
</del><ins>+    trap->setGenerator([=, this] (CCallHelpers& jit, const StackmapGenerationParams&) {
</ins><span class="cx">         this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx">     PatchpointValue* patchpoint = m_currentBlock->appendNew<PatchpointValue>(m_proc, Int32, origin());
</span><span class="lines">@@ -3614,7 +3614,7 @@
</span><span class="cx">         m_currentBlock->appendNew<Value>(m_proc, GreaterEqual, origin(), arg, min));
</span><span class="cx">     outOfBounds = m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), outOfBounds, constant(Int32, 0));
</span><span class="cx">     CheckValue* trap = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(), outOfBounds);
</span><del>-    trap->setGenerator([=] (CCallHelpers& jit, const StackmapGenerationParams&) {
</del><ins>+    trap->setGenerator([=, this] (CCallHelpers& jit, const StackmapGenerationParams&) {
</ins><span class="cx">         this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx">     PatchpointValue* patchpoint = m_currentBlock->appendNew<PatchpointValue>(m_proc, Int64, origin());
</span><span class="lines">@@ -3638,7 +3638,7 @@
</span><span class="cx">         m_currentBlock->appendNew<Value>(m_proc, GreaterThan, origin(), arg, min));
</span><span class="cx">     outOfBounds = m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), outOfBounds, constant(Int32, 0));
</span><span class="cx">     CheckValue* trap = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(), outOfBounds);
</span><del>-    trap->setGenerator([=] (CCallHelpers& jit, const StackmapGenerationParams&) {
</del><ins>+    trap->setGenerator([=, this] (CCallHelpers& jit, const StackmapGenerationParams&) {
</ins><span class="cx">         this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx"> 
</span><span class="lines">@@ -3682,7 +3682,7 @@
</span><span class="cx">         m_currentBlock->appendNew<Value>(m_proc, GreaterEqual, origin(), arg, min));
</span><span class="cx">     outOfBounds = m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), outOfBounds, constant(Int32, 0));
</span><span class="cx">     CheckValue* trap = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(), outOfBounds);
</span><del>-    trap->setGenerator([=] (CCallHelpers& jit, const StackmapGenerationParams&) {
</del><ins>+    trap->setGenerator([=, this] (CCallHelpers& jit, const StackmapGenerationParams&) {
</ins><span class="cx">         this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx">     PatchpointValue* patchpoint = m_currentBlock->appendNew<PatchpointValue>(m_proc, Int64, origin());
</span><span class="lines">@@ -3706,7 +3706,7 @@
</span><span class="cx">         m_currentBlock->appendNew<Value>(m_proc, GreaterThan, origin(), arg, min));
</span><span class="cx">     outOfBounds = m_currentBlock->appendNew<Value>(m_proc, Equal, origin(), outOfBounds, constant(Int32, 0));
</span><span class="cx">     CheckValue* trap = m_currentBlock->appendNew<CheckValue>(m_proc, Check, origin(), outOfBounds);
</span><del>-    trap->setGenerator([=] (CCallHelpers& jit, const StackmapGenerationParams&) {
</del><ins>+    trap->setGenerator([=, this] (CCallHelpers& jit, const StackmapGenerationParams&) {
</ins><span class="cx">         this->emitExceptionCheck(jit, ExceptionType::OutOfBoundsTrunc);
</span><span class="cx">     });
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreyarrYarrJITcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/yarr/YarrJIT.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/yarr/YarrJIT.cpp     2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/JavaScriptCore/yarr/YarrJIT.cpp        2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -4282,7 +4282,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (!m_tryReadUnicodeCharacterCalls.isEmpty()) {
</span><del>-            m_jit.addLinkTask([=] (LinkBuffer& linkBuffer) {
</del><ins>+            m_jit.addLinkTask([=, this] (LinkBuffer& linkBuffer) {
</ins><span class="cx">                 CodeLocationLabel<NoPtrTag> tryReadUnicodeCharacterHelper = linkBuffer.locationOf<NoPtrTag>(m_tryReadUnicodeCharacterEntry);
</span><span class="cx"> 
</span><span class="cx">                 for (auto call : m_tryReadUnicodeCharacterCalls)
</span><span class="lines">@@ -4401,7 +4401,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (!m_tryReadUnicodeCharacterCalls.isEmpty()) {
</span><del>-            m_jit.addLinkTask([=] (LinkBuffer& linkBuffer) {
</del><ins>+            m_jit.addLinkTask([=, this] (LinkBuffer& linkBuffer) {
</ins><span class="cx">                 CodeLocationLabel<NoPtrTag> tryReadUnicodeCharacterHelper = linkBuffer.locationOf<NoPtrTag>(m_tryReadUnicodeCharacterEntry);
</span><span class="cx"> 
</span><span class="cx">                 for (auto call : m_tryReadUnicodeCharacterCalls)
</span></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog       2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/WTF/ChangeLog  2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2022-01-16  Lauro Moura  <lmoura@igalia.com>
+
+        Fix C++20 build warnings with GCC
+        https://bugs.webkit.org/show_bug.cgi?id=235023
+
+        Reviewed by Alex Christensen.
+
+        Mostly related to deprecating operations between enums of different
+        types and not capturing this by default in lambdas.
+
+        * wtf/AutomaticThread.cpp: Capture this in lambda.
+        (WTF::AutomaticThread::start):
+
</ins><span class="cx"> 2022-01-16  David Kilzer  <ddkilzer@apple.com>
</span><span class="cx"> 
</span><span class="cx">         [WTF] Add TollFreeBridging.h to Xcode project
</span></span></pre></div>
<a id="trunkSourceWTFwtfAutomaticThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/AutomaticThread.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/AutomaticThread.cpp 2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/WTF/wtf/AutomaticThread.cpp    2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -170,7 +170,7 @@
</span><span class="cx">     
</span><span class="cx">     Thread::create(
</span><span class="cx">         name(),
</span><del>-        [=] () {
</del><ins>+        [=, this] () {
</ins><span class="cx">             if (verbose)
</span><span class="cx">                 dataLog(RawPointer(this), ": Running automatic thread!\n");
</span><span class="cx">             
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/WebCore/ChangeLog      2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -1,3 +1,24 @@
</span><ins>+2022-01-16  Lauro Moura  <lmoura@igalia.com>
+
+        Fix C++20 build warnings with GCC
+        https://bugs.webkit.org/show_bug.cgi?id=235023
+
+        Reviewed by Alex Christensen.
+
+        Mostly related to deprecating operations between enums of different
+        types and not capturing this by default in lambdas.
+
+        * dom/ViewportArguments.h: Replace enum with constexpr ints as they're
+        compared to doubles in various places through ViewportArguments.cpp.
+        * dom/WheelEvent.h: Replace single-valued enum with constexpr
+        variable.
+        * platform/animation/Animation.h: Ditto.
+        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
+        Ditto.
+        (WebCore::CoordinatedGraphicsLayer::shouldDirectlyCompositeImage const):
+        * rendering/style/RenderStyleConstants.h: Merge two enums that are
+        used only in the context of being combined to form a third enum.
+
</ins><span class="cx"> 2022-01-16  Brady Eidson  <beidson@apple.com>
</span><span class="cx"> 
</span><span class="cx">         database names leak cross-origin within the same browser session
</span></span></pre></div>
<a id="trunkSourceWebCoredomViewportArgumentsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ViewportArguments.h (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ViewportArguments.h     2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/WebCore/dom/ViewportArguments.h        2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -74,13 +74,11 @@
</span><span class="cx">         CSSDeviceAdaptation
</span><span class="cx">     } type;
</span><span class="cx"> 
</span><del>-    enum {
-        ValueAuto = -1,
-        ValueDeviceWidth = -2,
-        ValueDeviceHeight = -3,
-        ValuePortrait = -4,
-        ValueLandscape = -5
-    };
</del><ins>+    static constexpr int ValueAuto = -1;
+    static constexpr int ValueDeviceWidth = -2;
+    static constexpr int ValueDeviceHeight = -3;
+    static constexpr int ValuePortrait = -4;
+    static constexpr int ValueLandscape = -5;
</ins><span class="cx"> 
</span><span class="cx">     explicit ViewportArguments(Type type = Implicit)
</span><span class="cx">         : type(type)
</span></span></pre></div>
<a id="trunkSourceWebCoredomWheelEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/WheelEvent.h (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/WheelEvent.h    2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/WebCore/dom/WheelEvent.h       2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> class WheelEvent final : public MouseEvent {
</span><span class="cx">     WTF_MAKE_ISO_ALLOCATED(WheelEvent);
</span><span class="cx"> public:
</span><del>-    enum { TickMultiplier = 120 };
</del><ins>+    static constexpr int TickMultiplier = 120;
</ins><span class="cx"> 
</span><span class="cx">     enum {
</span><span class="cx">         DOM_DELTA_PIXEL = 0,
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformanimationAnimationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/animation/Animation.h (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/animation/Animation.h      2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/WebCore/platform/animation/Animation.h 2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -129,7 +129,7 @@
</span><span class="cx">         bool isIdentifier { false };
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    enum { IterationCountInfinite = -1 };
</del><ins>+    static constexpr double IterationCountInfinite = -1;
</ins><span class="cx">     double iterationCount() const { return m_iterationCount; }
</span><span class="cx">     const Name& name() const { return m_name; }
</span><span class="cx">     Style::ScopeOrdinal nameStyleScopeOrdinal() const { return m_nameStyleScopeOrdinal; }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicstexmapcoordinatedCoordinatedGraphicsLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp   2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp      2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -638,7 +638,7 @@
</span><span class="cx">     if (!image || !image->isBitmapImage())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    enum { MaxDimenstionForDirectCompositing = 2000 };
</del><ins>+    static constexpr float MaxDimenstionForDirectCompositing = 2000;
</ins><span class="cx">     if (image->width() > MaxDimenstionForDirectCompositing || image->height() > MaxDimenstionForDirectCompositing)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingstyleRenderStyleConstantsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.h (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.h      2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.h 2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -1073,12 +1073,9 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> static const size_t GridAutoFlowBits = 4;
</span><del>-enum InternalGridAutoFlowAlgorithm {
</del><ins>+enum InternalGridAutoFlow {
</ins><span class="cx">     InternalAutoFlowAlgorithmSparse = 1 << 0,
</span><span class="cx">     InternalAutoFlowAlgorithmDense  = 1 << 1,
</span><del>-};
-
-enum InternalGridAutoFlowDirection {
</del><span class="cx">     InternalAutoFlowDirectionRow    = 1 << 2,
</span><span class="cx">     InternalAutoFlowDirectionColumn = 1 << 3
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebKitChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ChangeLog (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ChangeLog    2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/WebKit/ChangeLog       2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -1,3 +1,22 @@
</span><ins>+2022-01-16  Lauro Moura  <lmoura@igalia.com>
+
+        Fix C++20 build warnings with GCC
+        https://bugs.webkit.org/show_bug.cgi?id=235023
+
+        Reviewed by Alex Christensen.
+
+        Mostly related to deprecating operations between enums of different
+        types and not capturing this by default in lambdas.
+
+        * WebProcess/Inspector/WebInspector.cpp: Capture this in lambdas.
+        (WebKit::WebInspector::showConsole):
+        (WebKit::WebInspector::showResources):
+        (WebKit::WebInspector::showMainResourceForFrame):
+        (WebKit::WebInspector::startPageProfiling):
+        (WebKit::WebInspector::stopPageProfiling):
+        (WebKit::WebInspector::startElementSelection):
+        (WebKit::WebInspector::stopElementSelection):
+
</ins><span class="cx"> 2022-01-16  Cameron McCormack  <heycam@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Ensure in flight layer transactions don't accumulate further canvas drawing
</span></span></pre></div>
<a id="trunkSourceWebKitWebProcessInspectorWebInspectorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/WebProcess/Inspector/WebInspector.cpp (288084 => 288085)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/WebProcess/Inspector/WebInspector.cpp        2022-01-17 03:56:40 UTC (rev 288084)
+++ trunk/Source/WebKit/WebProcess/Inspector/WebInspector.cpp   2022-01-17 05:18:06 UTC (rev 288085)
</span><span class="lines">@@ -173,7 +173,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_page->corePage()->inspectorController().show();
</span><span class="cx"> 
</span><del>-    whenFrontendConnectionEstablished([=] {
</del><ins>+    whenFrontendConnectionEstablished([=, this] {
</ins><span class="cx">         m_frontendConnection->send(Messages::WebInspectorUI::ShowConsole(), 0);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -185,7 +185,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_page->corePage()->inspectorController().show();
</span><span class="cx"> 
</span><del>-    whenFrontendConnectionEstablished([=] {
</del><ins>+    whenFrontendConnectionEstablished([=, this] {
</ins><span class="cx">         m_frontendConnection->send(Messages::WebInspectorUI::ShowResources(), 0);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -203,7 +203,7 @@
</span><span class="cx"> 
</span><span class="cx">     String inspectorFrameIdentifier = m_page->corePage()->inspectorController().ensurePageAgent().frameId(frame->coreFrame());
</span><span class="cx"> 
</span><del>-    whenFrontendConnectionEstablished([=] {
</del><ins>+    whenFrontendConnectionEstablished([=, this] {
</ins><span class="cx">         m_frontendConnection->send(Messages::WebInspectorUI::ShowMainResourceForFrame(inspectorFrameIdentifier), 0);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -215,7 +215,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_page->corePage()->inspectorController().show();
</span><span class="cx"> 
</span><del>-    whenFrontendConnectionEstablished([=] {
</del><ins>+    whenFrontendConnectionEstablished([=, this] {
</ins><span class="cx">         m_frontendConnection->send(Messages::WebInspectorUI::StartPageProfiling(), 0);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -227,7 +227,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_page->corePage()->inspectorController().show();
</span><span class="cx"> 
</span><del>-    whenFrontendConnectionEstablished([=] {
</del><ins>+    whenFrontendConnectionEstablished([=, this] {
</ins><span class="cx">         m_frontendConnection->send(Messages::WebInspectorUI::StopPageProfiling(), 0);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -237,7 +237,7 @@
</span><span class="cx">     if (!m_page->corePage())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    whenFrontendConnectionEstablished([=] {
</del><ins>+    whenFrontendConnectionEstablished([=, this] {
</ins><span class="cx">         m_frontendConnection->send(Messages::WebInspectorUI::StartElementSelection(), 0);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -247,7 +247,7 @@
</span><span class="cx">     if (!m_page->corePage())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    whenFrontendConnectionEstablished([=] {
</del><ins>+    whenFrontendConnectionEstablished([=, this] {
</ins><span class="cx">         m_frontendConnection->send(Messages::WebInspectorUI::StopElementSelection(), 0);
</span><span class="cx">     });
</span><span class="cx"> }
</span></span></pre>
</div>
</div>

</body>
</html>