Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f862b9eefaacaacf7664bacad44054a4d3ff1533
https://github.com/WebKit/WebKit/commit/f862b9eefaacaacf7664bacad44054a4d3ff1533
Author: Timothy Hatcher <[email protected]>
Date: 2025-09-13 (Sat, 13 Sep 2025)
Changed paths:
M Source/WebCore/bindings/scripts/CodeGenerator.pm
M Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
M Source/WebCore/bindings/scripts/test/DOMWindowConstructors.idl
M Source/WebCore/bindings/scripts/test/JS/JSDOMWindow.cpp
A Source/WebCore/bindings/scripts/test/JS/JSTestConditional.cpp
A Source/WebCore/bindings/scripts/test/JS/JSTestConditional.h
M Source/WebCore/bindings/scripts/test/SupplementalDependencies.dep
A Source/WebCore/bindings/scripts/test/TestConditional.idl
Log Message:
-----------
Add support for ! in Conditional IDL attributes.
https://webkit.org/b/298793
Reviewed by Darin Adler and Brian Weinstein.
This change allows `Conditional` attribute values in IDL files to be prefixed
with `!`, which outputs
a negated form of `ENABLE()`. Because `!` is not a valid character in IDL
attribute values, the value
must be wrapped in quotes when used. Bare conditionals continue to work as
before, maintaining
compatibility with existing IDL files.
Example:
[Conditional="!FEATURE_FLAG"] readonly attribute double someName;
Cleaned up the function to use more idiomatic Perl with proper use of map.
* Source/WebCore/bindings/scripts/CodeGenerator.pm:
(GenerateConditionalStringFromAttributeValue):
* Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:
(AddToIncludes):
* Source/WebCore/bindings/scripts/test/DOMWindowConstructors.idl:
* Source/WebCore/bindings/scripts/test/JS/JSDOMWindow.cpp:
(WebCore::JSDOMWindowDOMConstructor::prototypeForStructure):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::jsDOMWindow_TestConditionalConstructorGetter):
* Source/WebCore/bindings/scripts/test/JS/JSTestConditional.cpp: Added.
(WebCore::JSTestConditionalDOMConstructor::prototypeForStructure):
(WebCore::JSTestConditionalDOMConstructor::initializeProperties):
(WebCore::JSTestConditionalPrototype::finishCreation):
(WebCore::JSTestConditional::JSTestConditional):
(WebCore::JSTestConditional::createPrototype):
(WebCore::JSTestConditional::prototype):
(WebCore::JSTestConditional::getConstructor):
(WebCore::JSTestConditional::destroy):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::jsTestConditional_fooEnabledGetter):
(WebCore::jsTestConditional_fooDisabledGetter):
(WebCore::jsTestConditional_barOrBazEnabledGetter):
(WebCore::jsTestConditional_fooEnabledOrBarDisabledGetter):
(WebCore::jsTestConditional_fooOrBarBothDisabledGetter):
(WebCore::jsTestConditional_fooAndBarEnabledGetter):
(WebCore::jsTestConditional_fooAndBarDisabledGetter):
(WebCore::jsTestConditional_fooAndBarBothDisabledGetter):
(WebCore::jsTestConditional_fooOrBarAndBazGetter):
(WebCore::jsTestConditional_fooAndBarOrBazGetter):
(WebCore::jsTestConditional_fooOrBarAndBazDisabledGetter):
(WebCore::jsTestConditional_fooAndBarDisabledOrBazGetter):
(WebCore::jsTestConditional_fooDisabledOrBarAndBazGetter):
(WebCore::JSTestConditional::subspaceForImpl):
(WebCore::JSTestConditional::analyzeHeap):
(WebCore::JSTestConditionalOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestConditionalOwner::finalize):
(WebCore::verifyVTable):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestConditional::toWrapped):
* Source/WebCore/bindings/scripts/test/JS/JSTestConditional.h: Added.
(WebCore::JSTestConditional::create):
(WebCore::JSTestConditional::createStructure):
(WebCore::JSTestConditional::subspaceFor):
(WebCore::wrapperOwner):
(WebCore::wrapperKey):
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
* Source/WebCore/bindings/scripts/test/SupplementalDependencies.dep:
* Source/WebCore/bindings/scripts/test/TestConditional.idl: Added.
Canonical link: https://commits.webkit.org/299931@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes