The experimental lambda processor is currently crashing MSVC when compiling WebKit code in Visual Studio 16.5.0.
Created attachment 394111 [details] Patch
*** Bug 209311 has been marked as a duplicate of this bug. ***
See also: Bug 209358 – [MSVC] Remove experimental lambda processor usage
Comment on attachment 394111 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=394111&action=review > Source/WebCore/dom/DocumentStorageAccess.cpp:200 > + m_document.eventLoop().queueMicrotask([this, weakThis = WTFMove(weakThis)] { You can't WTFMove(weakThis) twice. You need to copy the weak ptr.
Comment on attachment 394111 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=394111&action=review >> Source/WebCore/dom/DocumentStorageAccess.cpp:200 >> + m_document.eventLoop().queueMicrotask([this, weakThis = WTFMove(weakThis)] { > > You can't WTFMove(weakThis) twice. You need to copy the weak ptr. It can be copied by [this, weakThis].
Created attachment 394390 [details] Patch
Comment on attachment 394390 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=394390&action=review > Source/WebCore/dom/DocumentStorageAccess.cpp:185 > + m_document.eventLoop().queueMicrotask([this, weakThis = makeWeakPtr(*weakThis)] { Doesn’t the syntax [this, weakThis] work without a call to makeWeakPtr?
Confirmed that the crash is still there in VS 16.5.1.
You mean you tried [this, weakThis] and it also failed? I think we need a comment here otherwise people won't know and will keep re-breaking it.
Did you test it by removing /experimental:newLambdaProcessor switch? The compiler crash is caused by the switch. I confirmed [this, weakThis] works with my VS 16.5.1.
Created attachment 394697 [details] Patch
Committed r259104: <https://trac.webkit.org/changeset/259104> All reviewed patches have been landed. Closing bug and clearing flags on attachment 394697 [details].
<rdar://problem/60951813>