<!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>[209001] trunk/Source/WebCore</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/209001">209001</a></dd>
<dt>Author</dt> <dd>dbates@webkit.org</dd>
<dt>Date</dt> <dd>2016-11-28 11:11:38 -0800 (Mon, 28 Nov 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Replace CSSPropertyNames.in with a JSON file
https://bugs.webkit.org/show_bug.cgi?id=164691

Reviewed by Simon Fraser.

Convert CSSPropertyNames.in to a structured JSON file. This is the first step towards
exposing a CSS feature status dashboard and generating more of the boilerplate code
for a CSS property.

A side effect of this change is that makeprop.pl no longer detects duplicate CSS property
definitions. We will look to bring such duplication detection back in a subsequent
commit.

* CMakeLists.txt: Substitute CSSProperties.json for CSSPropertyNames.in and update the
invocation of makeprop.pl as we no longer need to pass the bindings/scripts/preprocessor.pm
Perl module. Makeprop.pl supports conditional CSS properties and values without the need
to preprocess CSSProperties.json using the C preprocessor.
* DerivedSources.make: Ditto. Pass WTF_PLATFORM_IOS to makeprop.pl when building for iOS
as we no longer make use of bindings/scripts/preprocessor.pm.
* css/CSSProperties.json: Added.
* css/CSSPropertyNames.in: Removed.
* css/StyleResolver.cpp: Remove variable lastHighPriorityProperty as we now generate it.
* css/makeprop.pl: Extracted the input file name, now CSSProperties.json, into a global variable
and referenced this variable throughout this script instead of hardcoding the input file name at
each call site. Updated code to handle CSS longhand names being encoded in a JSON array as opposed
to a string of '|'-separated values. I added a FIXME comment to do the same for the codegen property
&quot;custom&quot;. Fixed Perl uninitialized variable warnings when die()-ing with error &quot;Unknown CSS property
used in all shorthand ...&quot; or &quot;Unknown CSS property used in longhands ...&quot;.
(isPropertyEnabled): Added. Determine whether code should be generated for a property.
(addProperty): Added.
(sortByDescendingPriorityAndName): Added.
(getScopeForFunction): Lowercase option names so that we can use a consistent case throughout
the JSON file.
(getNameForMethods): Ditto.
(generateColorValueSetter):
(generateAnimationPropertyInitialValueSetter): Ditto.
(generateAnimationPropertyInheritValueSetter): Ditto.
(generateFillLayerPropertyInitialValueSetter): Ditto.
(generateFillLayerPropertyInheritValueSetter): Ditto.
(generateSetValueStatement): Ditto.
(generateInitialValueSetter): Ditto.
(generateInheritValueSetter): Ditto.
(generateValueSetter): Ditto.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesmake">trunk/Source/WebCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceWebCorecssStyleResolvercpp">trunk/Source/WebCore/css/StyleResolver.cpp</a></li>
<li><a href="#trunkSourceWebCorecssmakeproppl">trunk/Source/WebCore/css/makeprop.pl</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorecssCSSPropertiesjson">trunk/Source/WebCore/css/CSSProperties.json</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorecssCSSPropertyNamesin">trunk/Source/WebCore/css/CSSPropertyNames.in</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (209000 => 209001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-11-28 18:28:50 UTC (rev 209000)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-11-28 19:11:38 UTC (rev 209001)
</span><span class="lines">@@ -3002,7 +3002,7 @@
</span><span class="cx"> endif ()
</span><span class="cx"> 
</span><span class="cx"> set(WebCore_CSS_PROPERTY_NAMES
</span><del>-    ${WEBCORE_DIR}/css/CSSPropertyNames.in
</del><ins>+    ${WEBCORE_DIR}/css/CSSProperties.json
</ins><span class="cx"> )
</span><span class="cx"> 
</span><span class="cx"> set(WebCore_CSS_VALUE_KEYWORDS
</span><span class="lines">@@ -3602,12 +3602,12 @@
</span><span class="cx"> 
</span><span class="cx"> # Generate CSS property names
</span><span class="cx"> add_custom_command(
</span><del>-    OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/CSSPropertyNames.in ${DERIVED_SOURCES_WEBCORE_DIR}/CSSPropertyNames.h ${DERIVED_SOURCES_WEBCORE_DIR}/CSSPropertyNames.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/CSSPropertyNames.gperf ${DERIVED_SOURCES_WEBCORE_DIR}/StyleBuilder.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/StylePropertyShorthandFunctions.h ${DERIVED_SOURCES_WEBCORE_DIR}/StylePropertyShorthandFunctions.cpp
</del><ins>+    OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/CSSProperties.json ${DERIVED_SOURCES_WEBCORE_DIR}/CSSPropertyNames.h ${DERIVED_SOURCES_WEBCORE_DIR}/CSSPropertyNames.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/CSSPropertyNames.gperf ${DERIVED_SOURCES_WEBCORE_DIR}/StyleBuilder.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/StylePropertyShorthandFunctions.h ${DERIVED_SOURCES_WEBCORE_DIR}/StylePropertyShorthandFunctions.cpp
</ins><span class="cx">     MAIN_DEPENDENCY ${WEBCORE_DIR}/css/makeprop.pl
</span><span class="cx">     DEPENDS ${WebCore_CSS_PROPERTY_NAMES}
</span><span class="cx">     WORKING_DIRECTORY ${DERIVED_SOURCES_WEBCORE_DIR}
</span><del>-    COMMAND ${PERL_EXECUTABLE} -ne &quot;print&quot; ${WebCore_CSS_PROPERTY_NAMES} &gt; ${DERIVED_SOURCES_WEBCORE_DIR}/CSSPropertyNames.in
-    COMMAND ${PERL_EXECUTABLE} ${WEBCORE_DIR}/css/makeprop.pl --defines &quot;${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}&quot; --preprocessor &quot;${CODE_GENERATOR_PREPROCESSOR}&quot; --gperf-executable &quot;${GPERF_EXECUTABLE}&quot;
</del><ins>+    COMMAND ${PERL_EXECUTABLE} -ne &quot;print&quot; ${WebCore_CSS_PROPERTY_NAMES} &gt; ${DERIVED_SOURCES_WEBCORE_DIR}/CSSProperties.json
+    COMMAND ${PERL_EXECUTABLE} ${WEBCORE_DIR}/css/makeprop.pl --defines &quot;${FEATURE_DEFINES_WITH_SPACE_SEPARATOR}&quot; --gperf-executable &quot;${GPERF_EXECUTABLE}&quot;
</ins><span class="cx">     VERBATIM)
</span><span class="cx"> list(APPEND WebCore_DERIVED_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/CSSPropertyNames.cpp)
</span><span class="cx"> list(APPEND WebCore_DERIVED_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/StyleBuilder.cpp)
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (209000 => 209001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-11-28 18:28:50 UTC (rev 209000)
+++ trunk/Source/WebCore/ChangeLog        2016-11-28 19:11:38 UTC (rev 209001)
</span><span class="lines">@@ -1,3 +1,49 @@
</span><ins>+2016-11-28  Daniel Bates  &lt;dabates@apple.com&gt;
+
+        Replace CSSPropertyNames.in with a JSON file
+        https://bugs.webkit.org/show_bug.cgi?id=164691
+
+        Reviewed by Simon Fraser.
+
+        Convert CSSPropertyNames.in to a structured JSON file. This is the first step towards
+        exposing a CSS feature status dashboard and generating more of the boilerplate code
+        for a CSS property.
+
+        A side effect of this change is that makeprop.pl no longer detects duplicate CSS property
+        definitions. We will look to bring such duplication detection back in a subsequent
+        commit.
+
+        * CMakeLists.txt: Substitute CSSProperties.json for CSSPropertyNames.in and update the
+        invocation of makeprop.pl as we no longer need to pass the bindings/scripts/preprocessor.pm
+        Perl module. Makeprop.pl supports conditional CSS properties and values without the need
+        to preprocess CSSProperties.json using the C preprocessor.
+        * DerivedSources.make: Ditto. Pass WTF_PLATFORM_IOS to makeprop.pl when building for iOS
+        as we no longer make use of bindings/scripts/preprocessor.pm.
+        * css/CSSProperties.json: Added.
+        * css/CSSPropertyNames.in: Removed.
+        * css/StyleResolver.cpp: Remove variable lastHighPriorityProperty as we now generate it.
+        * css/makeprop.pl: Extracted the input file name, now CSSProperties.json, into a global variable
+        and referenced this variable throughout this script instead of hardcoding the input file name at
+        each call site. Updated code to handle CSS longhand names being encoded in a JSON array as opposed
+        to a string of '|'-separated values. I added a FIXME comment to do the same for the codegen property
+        &quot;custom&quot;. Fixed Perl uninitialized variable warnings when die()-ing with error &quot;Unknown CSS property
+        used in all shorthand ...&quot; or &quot;Unknown CSS property used in longhands ...&quot;.
+        (isPropertyEnabled): Added. Determine whether code should be generated for a property.
+        (addProperty): Added.
+        (sortByDescendingPriorityAndName): Added.
+        (getScopeForFunction): Lowercase option names so that we can use a consistent case throughout
+        the JSON file.
+        (getNameForMethods): Ditto.
+        (generateColorValueSetter):
+        (generateAnimationPropertyInitialValueSetter): Ditto.
+        (generateAnimationPropertyInheritValueSetter): Ditto.
+        (generateFillLayerPropertyInitialValueSetter): Ditto.
+        (generateFillLayerPropertyInheritValueSetter): Ditto.
+        (generateSetValueStatement): Ditto.
+        (generateInitialValueSetter): Ditto.
+        (generateInheritValueSetter): Ditto.
+        (generateValueSetter): Ditto.
+
</ins><span class="cx"> 2016-11-28  Dave Hyatt  &lt;hyatt@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [CSS Parser] Support -webkit-animation-trigger
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (209000 => 209001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make        2016-11-28 18:28:50 UTC (rev 209000)
+++ trunk/Source/WebCore/DerivedSources.make        2016-11-28 19:11:38 UTC (rev 209001)
</span><span class="lines">@@ -932,18 +932,27 @@
</span><span class="cx"> 
</span><span class="cx"> # --------
</span><span class="cx"> 
</span><ins>+ADDITIONAL_CSS_PROPERTIES_DEFINES :=
+
+ifeq ($(WTF_PLATFORM_IOS), 1)
+    ADDITIONAL_CSS_PROPERTIES_DEFINES := WTF_PLATFORM_IOS
+endif
+
+# --------
+
</ins><span class="cx"> # CSS property names and value keywords
</span><span class="cx"> 
</span><del>-WEBCORE_CSS_PROPERTY_NAMES := $(WebCore)/css/CSSPropertyNames.in
</del><ins>+WEBCORE_CSS_PROPERTY_NAMES := $(WebCore)/css/CSSProperties.json
</ins><span class="cx"> WEBCORE_CSS_VALUE_KEYWORDS := $(WebCore)/css/CSSValueKeywords.in
</span><span class="cx"> WEBCORE_CSS_VALUE_KEYWORDS := $(WEBCORE_CSS_VALUE_KEYWORDS) $(WebCore)/css/SVGCSSValueKeywords.in
</span><span class="cx"> WEBCORE_CSS_VALUE_KEYWORDS_DEFINES := $(FEATURE_DEFINES) $(ADDITIONAL_CSS_VALUE_KEYWORDS_DEFINES)
</span><ins>+WEBCORE_CSS_PROPERTIES_DEFINES := $(FEATURE_DEFINES) $(ADDITIONAL_CSS_PROPERTIES_DEFINES)
</ins><span class="cx"> 
</span><span class="cx"> CSSPropertyNames.h CSSPropertyNames.cpp StyleBuilder.cpp StylePropertyShorthandFunctions.h StylePropertyShorthandFunctions.cpp : makeprop.intermediate
</span><span class="cx"> .INTERMEDIATE : makeprop.intermediate
</span><del>-makeprop.intermediate : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl bindings/scripts/preprocessor.pm $(PLATFORM_FEATURE_DEFINES)
-        $(PERL) -pe '' $(WEBCORE_CSS_PROPERTY_NAMES) &gt; CSSPropertyNames.in
-        $(PERL) &quot;$(WebCore)/css/makeprop.pl&quot; --defines &quot;$(FEATURE_DEFINES)&quot;
</del><ins>+makeprop.intermediate : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl $(PLATFORM_FEATURE_DEFINES)
+        $(PERL) -pe '' $(WEBCORE_CSS_PROPERTY_NAMES) &gt; CSSProperties.json
+        $(PERL) &quot;$(WebCore)/css/makeprop.pl&quot; --defines &quot;$(WEBCORE_CSS_PROPERTIES_DEFINES)&quot;
</ins><span class="cx"> 
</span><span class="cx"> CSSValueKeywords.h CSSValueKeywords.cpp : makevalues.intermediate
</span><span class="cx"> .INTERMEDIATE : makevalues.intermediate
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertiesjson"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/css/CSSProperties.json (0 => 209001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSProperties.json                                (rev 0)
+++ trunk/Source/WebCore/css/CSSProperties.json        2016-11-28 19:11:38 UTC (rev 209001)
</span><span class="lines">@@ -0,0 +1,4151 @@
</span><ins>+{
+    &quot;instructions&quot;: [
+        &quot;CSS Properties&quot;,
+        &quot;&quot;,
+        &quot;Some properties are used internally, but are not part of CSS. They are used to get&quot;,
+        &quot;HTML4 compatibility in the rendering engine.&quot;,
+        &quot;&quot;,
+        &quot;Microsoft extensions are documented here:&quot;,
+        &quot;http://msdn.microsoft.com/workshop/author/css/reference/attributes.asp&quot;,
+        &quot;&quot;,
+        &quot;1. Possible Keys&quot;,
+        &quot;&quot;,
+        &quot;Keys that control CSS behavior:&quot;,
+        &quot;&quot;,
+        &quot;* inherited:&quot;,
+        &quot;Whether the property is inherited.&quot;,
+        &quot;&quot;,
+        &quot;* animatable:&quot;,
+        &quot;Indicates that this CSS property is an animation / transition property.&quot;,
+        &quot;It must have corresponding methods on the Animation class.&quot;,
+        &quot;&quot;,
+        &quot;Keys that control code generation:&quot;,
+        &quot;&quot;,
+        &quot;* initial:&quot;,
+        &quot;Overrides the method name on RenderStyle to get the initial value for&quot;,
+        &quot;the property. By default, \&quot;initial\&quot; + PropertyId is used (e.g.&quot;,
+        &quot;initialBorderCollapse()).&quot;,
+        &quot;&quot;,
+        &quot;* getter:&quot;,
+        &quot;Overrides the method name on RenderStyle to get the current value for&quot;,
+        &quot;the property. By default, the PropertyId with first letter lowercased&quot;,
+        &quot;is used (e.g. borderCollapse()).&quot;,
+        &quot;&quot;,
+        &quot;* setter:&quot;,
+        &quot;Overrides the method name on RenderStyle to set the current value for&quot;,
+        &quot;the property. By default, \&quot;set\&quot; + PropertyId is used (e.g.&quot;,
+        &quot;setBorderCollapse()).&quot;,
+        &quot;&quot;,
+        &quot;* name-for-methods:&quot;,
+        &quot;Overrides the getter / setter / initial method names on RenderStyle.&quot;,
+        &quot;For example, '\&quot;name-for-methods\&quot;: \&quot;OverflowWrap\&quot;' will use&quot;,
+        &quot;\&quot;overflowWrap() / setOverflowWrap() / initialOverflowWrap()\&quot;.&quot;,
+        &quot;&quot;,
+        &quot;* converter:&quot;,
+        &quot;The name of the converter helper function in css/StyleBuilderConverter.h&quot;,
+        &quot;to use. The converter helper function takes &quot;,
+        &quot;If converting the input CSSValue into the setter method argument type&quot;,
+        &quot;is not trivial (i.e. the CSSPrimitiveValue cannot be implicitly converted&quot;,
+        &quot;to the expected type), then you can indicate that a converter helper&quot;,
+        &quot;function in css/StyleBuilderConverter.h should be used.&quot;,
+        &quot;&quot;,
+        &quot;* conditional-converter:&quot;,
+        &quot;Similar to property converter, but the converter function returns a&quot;,
+        &quot;WTF::Optional&lt;&gt; to indicate if the property setter should be called&quot;,
+        &quot;or not.&quot;,
+        &quot;&quot;,
+        &quot;* custom:&quot;,
+        &quot;A string that is \&quot;All\&quot;, \&quot;Initial\&quot;, \&quot;Inherit\&quot;, or \&quot;Value\&quot; or some combination&quot;,
+        &quot;of the latter three separated by '|' (e.g. \&quot;Inherit|Value\&quot;). These options&quot;,
+        &quot;are described as follows:&quot;,
+        &quot;&quot;,
+        &quot;All - the CSS property requires special handling to set its initial value,&quot;,
+        &quot;inherit value, and its value. Prefer this option over listing the individual&quot;,
+        &quot;options.&quot;,
+        &quot;&quot;,
+        &quot;Initial - the CSS property requires special handling to set its initial value.&quot;,
+        &quot;&quot;,
+        &quot;Inherit - the CSS property requires special handling to set its inherit value.&quot;,
+        &quot;&quot;,
+        &quot;Value - the CSS property requires special handling to set its value, and a&quot;,
+        &quot;regular converter helper cannot be used.&quot;,
+        &quot;&quot;,
+        &quot;The custom code for the property should be located in css/StyleBuilderCustom.h&quot;,
+        &quot;and named applyValue[CSSPropertyName]().&quot;,
+        &quot;&quot;,
+        &quot;* svg:&quot;,
+        &quot;Indicates that this is an SVG CSS property and that the corresponding&quot;,
+        &quot;methods are on SVGRenderStyle instead of RenderStyle.&quot;,
+        &quot;&quot;,
+        &quot;* auto-functions:&quot;,
+        &quot;Indicates that this CSS property requires handling of \&quot;auto\&quot; and has&quot;,
+        &quot;corresponding hasAutoXXX() / setHasAutoXXX() methods on RenderStyle.&quot;,
+        &quot;&quot;,
+        &quot;* visited-link-color-support:&quot;,
+        &quot;Indicates that this CSS property is a color property with a&quot;,
+        &quot;\&quot;setVisitedLinkXXX()\&quot; setter on RenderStyle to be called when&quot;,
+        &quot;StyleResolver::applyPropertyToVisitedLinkStyle() return true.&quot;,
+        &quot;The regular setter on RenderStyle will only be called if&quot;,
+        &quot;StyleResolver::applyPropertyToRegularStyle() returns true.&quot;,
+        &quot;&quot;,
+        &quot;* no-default-color:&quot;,
+        &quot;Should only with used with \&quot;VisitedLinkColorSupport\&quot;. It indicates that for&quot;,
+        &quot;setting the inherited value, it will not fallback to using the parent's&quot;,
+        &quot;\&quot;color\&quot; property if the inherited color is invalid.&quot;,
+        &quot;&quot;,
+        &quot;* fone-property:&quot;,
+        &quot;Indicates that this CSS property is font-related. It must have corresponding&quot;,
+        &quot;methods on the FontDescription class.&quot;,
+        &quot;&quot;,
+        &quot;* fill-layer-property:&quot;,
+        &quot;Indicates that this CSS property is a FillLayer property. It must have&quot;,
+        &quot;corresponding methods on the FillLayer class.&quot;,
+        &quot;&quot;,
+        &quot;* skip-builder:&quot;,
+        &quot;Ignore this property in the StyleBuilder.&quot;,
+        &quot;&quot;,
+        &quot;* longhands:&quot;,
+        &quot;Indicated the array longhand property names associated with this shorthand&quot;,
+        &quot;property. Shorthand properties should not use the StyleBuilder. An&quot;,
+        &quot;ASSERT_NOT_REACHED() will be generated for this property in the StyleBuilder.&quot;,
+        &quot;property1, property2, ... are the longhands for this shorthand property. A&quot;,
+        &quot;corresponding \&quot;StylePropertyShorthand propertyIdShorthand()\&quot; function will be&quot;,
+        &quot;generated in StylePropertyShorthandFunctions.h header.&quot;,
+        &quot;&quot;,
+        &quot;* high-priority:&quot;,
+        &quot;Whether the property needs to be applied before non-high-priority properties&quot;,
+        &quot;in CSS cascading order.&quot;,
+        &quot;&quot;,
+        &quot;* aliases:&quot;,
+        &quot;An array of the alternative names for this property.&quot;,
+        &quot;&quot;,
+        &quot;* enable-if:&quot;,
+        &quot;Indicates that code should only be generated for this property/value if the&quot;,
+        &quot;specified macro define is enabled. Prefix the macro define with '!' to&quot;,
+        &quot;generate code when the macro define is not enabled.&quot;,
+        &quot;&quot;,
+        &quot;2. Lesser known capabilities of this file format&quot;,
+        &quot;&quot;,
+        &quot;Conditional CSS keyword value:&quot;,
+        &quot;&quot;,
+        &quot;Typically the value of key \&quot;values\&quot; is an array of strings that represent the&quot;,
+        &quot;CSS keyword values that are recognized by a CSS property. This array may also&quot;,
+        &quot;contain objects of the form:&quot;,
+        &quot;&quot;,
+        &quot;    {&quot;,
+        &quot;        \&quot;value\&quot;: \&quot;awesome\&quot;,&quot;,
+        &quot;        \&quot;enable-if\&quot;: \&quot;ENABLE_AWESOME_FEATURE\&quot;&quot;,
+        &quot;    }&quot;,
+        &quot;&quot;,
+        &quot;The key \&quot;value\&quot; is the name of the conditional keyword and key \&quot;enable-if\&quot;&quot;,
+        &quot;describes the code generation criterion. See the documentation for \&quot;enable-if\&quot;&quot;,
+        &quot;above for more details.&quot;,
+        &quot;&quot;,
+        &quot;Conditonal CSS property definition:&quot;,
+        &quot;&quot;,
+        &quot;A CSS property can have more than one definition so long as the key \&quot;enable-if\&quot;&quot;,
+        &quot;differs in each definition. For example, &quot;,
+        &quot;&quot;,
+        &quot;    \&quot;awesome-property\&quot;: [&quot;,
+        &quot;        {&quot;,
+        &quot;            \&quot;inherited\&quot;: true,&quot;,
+        &quot;            ...,&quot;,
+        &quot;            \&quot;codegen-properties\&quot;: {&quot;,
+        &quot;                ...&quot;,
+        &quot;                \&quot;enable-if\&quot;: \&quot;ENABLE_AWESOME_FEATURE\&quot;&quot;,
+        &quot;            }&quot;,
+        &quot;        },&quot;,
+        &quot;        {&quot;,
+        &quot;            \&quot;inherited\&quot;: false,&quot;,
+        &quot;            ...,&quot;,
+        &quot;            \&quot;codegen-properties\&quot;: {&quot;,
+        &quot;                ...&quot;,
+        &quot;                \&quot;enable-if\&quot;: \&quot;!ENABLE_AWESOME_FEATURE\&quot;&quot;,
+        &quot;            }&quot;,
+        &quot;        },&quot;,
+        &quot;        ...&quot;,
+        &quot;    ],&quot;,
+        &quot;&quot;,
+        &quot;The first definition in parse order whose \&quot;enable-if\&quot; criterion evaluates&quot;,
+        &quot;to true is chosen for code generation.&quot;
+    ],
+    &quot;properties&quot;: {
+        &quot;color&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;visited-link-color-support&quot;: true,
+                &quot;no-default-color&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;direction&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;ltr&quot;,
+                &quot;rtl&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;Value&quot;,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;display&quot;: {
+            &quot;values&quot;: [
+                &quot;inline&quot;,
+                &quot;block&quot;,
+                &quot;list-item&quot;,
+                &quot;compact&quot;,
+                &quot;inline-block&quot;,
+                &quot;table&quot;,
+                &quot;inline-table&quot;,
+                &quot;table-row-group&quot;,
+                &quot;table-header-group&quot;,
+                &quot;table-footer-group&quot;,
+                &quot;table-row&quot;,
+                &quot;table-column-group&quot;,
+                &quot;table-column&quot;,
+                &quot;table-cell&quot;,
+                &quot;table-caption&quot;,
+                &quot;-webkit-box&quot;,
+                &quot;-webkit-inline-box&quot;,
+                &quot;flex&quot;,
+                &quot;-webkit-flex&quot;,
+                &quot;inline-flex&quot;,
+                &quot;-webkit-inline-flex&quot;,
+                &quot;contents&quot;,
+                &quot;none&quot;,
+                {
+                    &quot;value&quot;: &quot;grid&quot;,
+                    &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+                },
+                {
+                    &quot;value&quot;: &quot;inline-grid&quot;,
+                    &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+                }
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;Inherit|Value&quot;,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;font-family&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;font-size&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;font-style&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;italic&quot;,
+                &quot;oblique&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Italic&quot;,
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;font-weight&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;text-rendering&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;optimizespeed&quot;,
+                &quot;optimizelegibility&quot;,
+                &quot;geometricprecision&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;TextRenderingMode&quot;,
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;font-feature-settings&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;FeatureSettings&quot;,
+                &quot;converter&quot;: &quot;FontFeatureSettings&quot;,
+                &quot;custom&quot;: &quot;Initial|Inherit&quot;,
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;font-variation-settings&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;VariationSettings&quot;,
+                &quot;converter&quot;: &quot;FontVariationSettings&quot;,
+                &quot;custom&quot;: &quot;Initial|Inherit&quot;,
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true,
+                &quot;enable-if&quot;: &quot;ENABLE_VARIATION_FONTS&quot;
+            }
+        },
+        &quot;-webkit-font-kerning&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;normal&quot;,
+                &quot;none&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;font-kerning&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;Kerning&quot;,
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;-webkit-font-smoothing&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;none&quot;,
+                &quot;antialiased&quot;,
+                &quot;subpixel-antialiased&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;font-variant-ligatures&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;VariantLigatures&quot;,
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;font-variant-position&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;sub&quot;,
+                &quot;super&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;VariantPosition&quot;,
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;font-variant-caps&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;small-caps&quot;,
+                &quot;all-small-caps&quot;,
+                &quot;petite-caps&quot;,
+                &quot;all-petite-caps&quot;,
+                &quot;unicase&quot;,
+                &quot;titling-caps&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;VariantCaps&quot;,
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;font-variant-numeric&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;VariantNumeric&quot;,
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;font-variant-alternates&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;historical-forms&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;VariantAlternates&quot;,
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;font-variant-east-asian&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;VariantEastAsian&quot;,
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;-webkit-locale&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;Value&quot;,
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;-webkit-text-orientation&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;sideways&quot;,
+                &quot;sideways-right&quot;,
+                &quot;vertical-right&quot;,
+                &quot;mixed&quot;,
+                &quot;upright&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-epub-text-orientation&quot;
+                ],
+                &quot;custom&quot;: &quot;Value&quot;,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;-webkit-text-size-adjust&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;Value&quot;,
+                &quot;high-priority&quot;: true,
+                &quot;enable-if&quot;: &quot;ENABLE_TEXT_AUTOSIZING&quot;
+            }
+        },
+        &quot;writing-mode&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;lr-tb&quot;,
+                &quot;rl-tb&quot;,
+                &quot;tb-rl&quot;,
+                &quot;lr&quot;,
+                &quot;rl&quot;,
+                &quot;tb&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-writing-mode&quot;,
+                    &quot;-epub-writing-mode&quot;
+                ],
+                &quot;custom&quot;: &quot;Value&quot;,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;-webkit-text-zoom&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;reset&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;Value&quot;,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;zoom&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;font-synthesis&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;FontSynthesis&quot;,
+                &quot;font-property&quot;: true,
+                &quot;high-priority&quot;: true
+            }
+        },
+        &quot;-webkit-ruby-position&quot;: {
+            &quot;*&quot;: [
+                &quot;This is the highest priority property and \&quot;is resolved before all other properties&quot;,
+                &quot;to ensure that its value can be checked when determining a smart default font size\&quot;&quot;,
+                &quot;(&lt;https://trac.webkit.org/browser/trunk/Source/WebCore/ChangeLog?rev=172861&gt;).&quot;
+            ],
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;before&quot;,
+                &quot;after&quot;,
+                &quot;inter-character&quot;
+            ]
+        },
+        &quot;alignment-baseline&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;baseline&quot;,
+                &quot;middle&quot;,
+                &quot;before-edge&quot;,
+                &quot;after-edge&quot;,
+                &quot;central&quot;,
+                &quot;text-before-edge&quot;,
+                &quot;text-after-edge&quot;,
+                &quot;ideographic&quot;,
+                &quot;hanging&quot;,
+                &quot;mathematical&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;all&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;all&quot;
+                ]
+            }
+        },
+        &quot;animation&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-animation&quot;
+                ],
+                &quot;longhands&quot;: [
+                    &quot;animation-name&quot;,
+                    &quot;animation-duration&quot;,
+                    &quot;animation-timing-function&quot;,
+                    &quot;animation-delay&quot;,
+                    &quot;animation-iteration-count&quot;,
+                    &quot;animation-direction&quot;,
+                    &quot;animation-fill-mode&quot;,
+                    &quot;animation-play-state&quot;
+                ]
+            }
+        },
+        &quot;animation-delay&quot;: {
+            &quot;animatable&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-animation-delay&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;Delay&quot;
+            }
+        },
+        &quot;animation-direction&quot;: {
+            &quot;animatable&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-animation-direction&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;Direction&quot;
+            }
+        },
+        &quot;animation-duration&quot;: {
+            &quot;animatable&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-animation-duration&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;Duration&quot;
+            }
+        },
+        &quot;animation-fill-mode&quot;: {
+            &quot;animatable&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-animation-fill-mode&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;FillMode&quot;
+            }
+        },
+        &quot;animation-iteration-count&quot;: {
+            &quot;animatable&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-animation-iteration-count&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;IterationCount&quot;
+            }
+        },
+        &quot;animation-name&quot;: {
+            &quot;animatable&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-animation-name&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;Name&quot;
+            }
+        },
+        &quot;animation-play-state&quot;: {
+            &quot;animatable&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-animation-play-state&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;PlayState&quot;
+            }
+        },
+        &quot;animation-timing-function&quot;: {
+            &quot;animatable&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-animation-timing-function&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;TimingFunction&quot;
+            }
+        },
+        &quot;background&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;background-image&quot;,
+                    &quot;background-position-x&quot;,
+                    &quot;background-position-y&quot;,
+                    &quot;background-size&quot;,
+                    &quot;background-repeat-x&quot;,
+                    &quot;background-repeat-y&quot;,
+                    &quot;background-attachment&quot;,
+                    &quot;background-origin&quot;,
+                    &quot;background-clip&quot;,
+                    &quot;background-color&quot;
+                ]
+            }
+        },
+        &quot;background-attachment&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Attachment&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;background-blend-mode&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;BlendMode&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;background-clip&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Clip&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;background-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;visited-link-color-support&quot;: true,
+                &quot;no-default-color&quot;: true
+            }
+        },
+        &quot;background-image&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Image&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;background-origin&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Origin&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;background-position&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;background-position-x&quot;,
+                    &quot;background-position-y&quot;
+                ]
+            }
+        },
+        &quot;background-position-x&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;XPosition&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;background-position-y&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;YPosition&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;background-repeat&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;background-repeat-x&quot;,
+                    &quot;background-repeat-y&quot;
+                ]
+            }
+        },
+        &quot;background-repeat-x&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;RepeatX&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;background-repeat-y&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;RepeatY&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;background-size&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Size&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;baseline-shift&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;Value&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;border&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;border-top-color&quot;,
+                    &quot;border-top-style&quot;,
+                    &quot;border-top-width&quot;,
+                    &quot;border-right-color&quot;,
+                    &quot;border-right-style&quot;,
+                    &quot;border-right-width&quot;,
+                    &quot;border-bottom-color&quot;,
+                    &quot;border-bottom-style&quot;,
+                    &quot;border-bottom-width&quot;,
+                    &quot;border-left-color&quot;,
+                    &quot;border-left-style&quot;,
+                    &quot;border-left-width&quot;
+                ]
+            }
+        },
+        &quot;border-bottom&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;border-bottom-width&quot;,
+                    &quot;border-bottom-style&quot;,
+                    &quot;border-bottom-color&quot;
+                ]
+            }
+        },
+        &quot;border-bottom-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;invalidColor&quot;,
+                &quot;visited-link-color-support&quot;: true
+            }
+        },
+        &quot;border-bottom-left-radius&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-border-bottom-left-radius&quot;
+                ],
+                &quot;initial&quot;: &quot;initialBorderRadius&quot;,
+                &quot;converter&quot;: &quot;Radius&quot;
+            }
+        },
+        &quot;border-bottom-right-radius&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-border-bottom-right-radius&quot;
+                ],
+                &quot;initial&quot;: &quot;initialBorderRadius&quot;,
+                &quot;converter&quot;: &quot;Radius&quot;
+            }
+        },
+        &quot;border-bottom-style&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;hidden&quot;,
+                &quot;inset&quot;,
+                &quot;groove&quot;,
+                &quot;outset&quot;,
+                &quot;ridge&quot;,
+                &quot;dotted&quot;,
+                &quot;dashed&quot;,
+                &quot;solid&quot;,
+                &quot;double&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBorderStyle&quot;
+            }
+        },
+        &quot;border-bottom-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBorderWidth&quot;,
+                &quot;converter&quot;: &quot;LineWidth&lt;float&gt;&quot;
+            }
+        },
+        &quot;border-collapse&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;collapse&quot;,
+                &quot;separate&quot;
+            ]
+        },
+        &quot;border-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;border-top-color&quot;,
+                    &quot;border-right-color&quot;,
+                    &quot;border-bottom-color&quot;,
+                    &quot;border-left-color&quot;
+                ]
+            }
+        },
+        &quot;border-image&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;border-image-source&quot;,
+                    &quot;border-image-slice&quot;,
+                    &quot;border-image-width&quot;,
+                    &quot;border-image-outset&quot;,
+                    &quot;border-image-repeat&quot;
+                ]
+            }
+        },
+        &quot;border-image-outset&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;border-image-repeat&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;border-image-slice&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;border-image-source&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;StyleImage&lt;CSSPropertyBorderImageSource&gt;&quot;
+            }
+        },
+        &quot;border-image-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;border-left&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;border-left-width&quot;,
+                    &quot;border-left-style&quot;,
+                    &quot;border-left-color&quot;
+                ]
+            }
+        },
+        &quot;border-left-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;invalidColor&quot;,
+                &quot;visited-link-color-support&quot;: true
+            }
+        },
+        &quot;border-left-style&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;hidden&quot;,
+                &quot;inset&quot;,
+                &quot;groove&quot;,
+                &quot;outset&quot;,
+                &quot;ridge&quot;,
+                &quot;dotted&quot;,
+                &quot;dashed&quot;,
+                &quot;solid&quot;,
+                &quot;double&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBorderStyle&quot;
+            }
+        },
+        &quot;border-left-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBorderWidth&quot;,
+                &quot;converter&quot;: &quot;LineWidth&lt;float&gt;&quot;
+            }
+        },
+        &quot;border-radius&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;border-top-left-radius&quot;,
+                    &quot;border-top-right-radius&quot;,
+                    &quot;border-bottom-right-radius&quot;,
+                    &quot;border-bottom-left-radius&quot;
+                ]
+            }
+        },
+        &quot;border-right&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;border-right-width&quot;,
+                    &quot;border-right-style&quot;,
+                    &quot;border-right-color&quot;
+                ]
+            }
+        },
+        &quot;border-right-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;invalidColor&quot;,
+                &quot;visited-link-color-support&quot;: true
+            }
+        },
+        &quot;border-right-style&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;hidden&quot;,
+                &quot;inset&quot;,
+                &quot;groove&quot;,
+                &quot;outset&quot;,
+                &quot;ridge&quot;,
+                &quot;dotted&quot;,
+                &quot;dashed&quot;,
+                &quot;solid&quot;,
+                &quot;double&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBorderStyle&quot;
+            }
+        },
+        &quot;border-right-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBorderWidth&quot;,
+                &quot;converter&quot;: &quot;LineWidth&lt;float&gt;&quot;
+            }
+        },
+        &quot;border-spacing&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;-webkit-border-horizontal-spacing&quot;,
+                    &quot;-webkit-border-vertical-spacing&quot;
+                ]
+            }
+        },
+        &quot;border-style&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;border-top-style&quot;,
+                    &quot;border-right-style&quot;,
+                    &quot;border-bottom-style&quot;,
+                    &quot;border-left-style&quot;
+                ]
+            }
+        },
+        &quot;border-top&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;border-top-width&quot;,
+                    &quot;border-top-style&quot;,
+                    &quot;border-top-color&quot;
+                ]
+            }
+        },
+        &quot;border-top-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;invalidColor&quot;,
+                &quot;visited-link-color-support&quot;: true
+            }
+        },
+        &quot;border-top-left-radius&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-border-top-left-radius&quot;
+                ],
+                &quot;initial&quot;: &quot;initialBorderRadius&quot;,
+                &quot;converter&quot;: &quot;Radius&quot;
+            }
+        },
+        &quot;border-top-right-radius&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-border-top-right-radius&quot;
+                ],
+                &quot;initial&quot;: &quot;initialBorderRadius&quot;,
+                &quot;converter&quot;: &quot;Radius&quot;
+            }
+        },
+        &quot;border-top-style&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;hidden&quot;,
+                &quot;inset&quot;,
+                &quot;groove&quot;,
+                &quot;outset&quot;,
+                &quot;ridge&quot;,
+                &quot;dotted&quot;,
+                &quot;dashed&quot;,
+                &quot;solid&quot;,
+                &quot;double&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBorderStyle&quot;
+            }
+        },
+        &quot;border-top-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBorderWidth&quot;,
+                &quot;converter&quot;: &quot;LineWidth&lt;float&gt;&quot;
+            }
+        },
+        &quot;border-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;border-top-width&quot;,
+                    &quot;border-right-width&quot;,
+                    &quot;border-bottom-width&quot;,
+                    &quot;border-left-width&quot;
+                ]
+            }
+        },
+        &quot;bottom&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialOffset&quot;,
+                &quot;converter&quot;: &quot;LengthOrAuto&quot;
+            }
+        },
+        &quot;box-shadow&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;box-sizing&quot;: {
+            &quot;*&quot;: [
+                &quot;-webkit-box-sizing worked in Safari 4 and earlier.&quot;
+            ],
+            &quot;values&quot;: [
+                &quot;border-box&quot;,
+                &quot;content-box&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-box-sizing&quot;
+                ]
+            }
+        },
+        &quot;break-after&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;avoid&quot;,
+                &quot;left&quot;,
+                &quot;right&quot;,
+                &quot;recto&quot;,
+                &quot;verso&quot;,
+                &quot;column&quot;,
+                &quot;page&quot;,
+                &quot;region&quot;,
+                &quot;avoid-column&quot;,
+                &quot;avoid-page&quot;,
+                &quot;avoid-region&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBreakBetween&quot;
+            }
+        },
+        &quot;break-before&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;avoid&quot;,
+                &quot;left&quot;,
+                &quot;right&quot;,
+                &quot;recto&quot;,
+                &quot;verso&quot;,
+                &quot;column&quot;,
+                &quot;page&quot;,
+                &quot;region&quot;,
+                &quot;avoid-column&quot;,
+                &quot;avoid-page&quot;,
+                &quot;avoid-region&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBreakBetween&quot;
+            }
+        },
+        &quot;break-inside&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;avoid&quot;,
+                &quot;avoid-column&quot;,
+                &quot;avoid-page&quot;,
+                &quot;avoid-region&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBreakInside&quot;
+            }
+        },
+        &quot;buffered-rendering&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;dynamic&quot;,
+                &quot;static&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;caption-side&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;left&quot;,
+                &quot;right&quot;,
+                &quot;top&quot;,
+                &quot;bottom&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-epub-caption-side&quot;
+                ]
+            }
+        },
+        &quot;clear&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;left&quot;,
+                &quot;right&quot;,
+                &quot;both&quot;
+            ]
+        },
+        &quot;clip&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;-webkit-clip-path&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;ClipPath&quot;
+            }
+        },
+        &quot;clip-path&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;ClipperResource&quot;,
+                &quot;converter&quot;: &quot;SVGURIReference&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;clip-rule&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;nonzero&quot;,
+                &quot;evenodd&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;color-interpolation&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;srgb&quot;,
+                &quot;linearrgb&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;color-interpolation-filters&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;srgb&quot;,
+                &quot;linearrgb&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;color-profile&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;color-rendering&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;optimizespeed&quot;,
+                &quot;optimizequality&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;content&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;counter-increment&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;counter-reset&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;cursor&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;-webkit-cursor-visibility&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;auto-hide&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;enable-if&quot;: &quot;ENABLE_CURSOR_VISIBILITY&quot;
+            }
+        },
+        &quot;cx&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialZeroLength&quot;,
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;cy&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialZeroLength&quot;,
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;dominant-baseline&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;middle&quot;,
+                &quot;use-script&quot;,
+                &quot;no-change&quot;,
+                &quot;reset-size&quot;,
+                &quot;central&quot;,
+                &quot;text-before-edge&quot;,
+                &quot;text-after-edge&quot;,
+                &quot;ideographic&quot;,
+                &quot;hanging&quot;,
+                &quot;mathematical&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;empty-cells&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;show&quot;,
+                &quot;hide&quot;
+            ]
+        },
+        &quot;enable-background&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;fill&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;fill-opacity&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;Opacity&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;fill-rule&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;nonzero&quot;,
+                &quot;evenodd&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;float&quot;: {
+            &quot;values&quot;: [
+                &quot;left&quot;,
+                &quot;right&quot;,
+                &quot;none&quot;,
+                &quot;center&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Floating&quot;
+            }
+        },
+        &quot;flood-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;SVGColor&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;flood-opacity&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;Opacity&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;font&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;font-family&quot;,
+                    &quot;font-size&quot;,
+                    &quot;font-style&quot;,
+                    &quot;font-variant-caps&quot;,
+                    &quot;font-weight&quot;,
+                    &quot;line-height&quot;
+                ]
+            }
+        },
+        &quot;font-variant&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;font-variant-ligatures&quot;,
+                    &quot;font-variant-position&quot;,
+                    &quot;font-variant-caps&quot;,
+                    &quot;font-variant-numeric&quot;,
+                    &quot;font-variant-alternates&quot;,
+                    &quot;font-variant-east-asian&quot;
+                ]
+            }
+        },
+        &quot;font-stretch&quot;: {
+            &quot;values&quot;: [],
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;glyph-orientation-horizontal&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;GlyphOrientation&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;glyph-orientation-vertical&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;GlyphOrientationOrAuto&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;hanging-punctuation&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;HangingPunctuation&quot;
+            }
+        },
+        &quot;height&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialSize&quot;,
+                &quot;converter&quot;: &quot;LengthSizing&quot;
+            }
+        },
+        &quot;image-orientation&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_IMAGE_ORIENTATION&quot;
+            }
+        },
+        &quot;image-rendering&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;optimizespeed&quot;,
+                &quot;optimizequality&quot;,
+                &quot;-webkit-crisp-edges&quot;,
+                &quot;-webkit-optimize-contrast&quot;,
+                &quot;crisp-edges&quot;,
+                &quot;pixelated&quot;
+            ]
+        },
+        &quot;image-resolution&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_IMAGE_RESOLUTION&quot;
+            }
+        },
+        &quot;kerning&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;SVGLengthValue&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;left&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialOffset&quot;,
+                &quot;converter&quot;: &quot;LengthOrAuto&quot;
+            }
+        },
+        &quot;letter-spacing&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;Spacing&quot;
+            }
+        },
+        &quot;lighting-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;SVGColor&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;line-height&quot;: [
+            {
+                &quot;inherited&quot;: true,
+                &quot;codegen-properties&quot;: {
+                    &quot;custom&quot;: &quot;All&quot;,
+                    &quot;enable-if&quot;: &quot;ENABLE_TEXT_AUTOSIZING&quot;
+                }
+            },
+            {
+                &quot;inherited&quot;: true,
+                &quot;codegen-properties&quot;: {
+                    &quot;getter&quot;: &quot;specifiedLineHeight&quot;,
+                    &quot;conditional-converter&quot;: &quot;LineHeight&quot;,
+                    &quot;enable-if&quot;: &quot;!ENABLE_TEXT_AUTOSIZING&quot;
+                }
+            }
+        ],
+        &quot;list-style&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;list-style-type&quot;,
+                    &quot;list-style-position&quot;,
+                    &quot;list-style-image&quot;
+                ]
+            }
+        },
+        &quot;list-style-image&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;StyleImage&lt;CSSPropertyListStyleImage&gt;&quot;
+            }
+        },
+        &quot;list-style-position&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;inside&quot;,
+                &quot;outside&quot;
+            ]
+        },
+        &quot;list-style-type&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;disc&quot;,
+                &quot;circle&quot;,
+                &quot;square&quot;,
+                &quot;decimal&quot;,
+                &quot;decimal-leading-zero&quot;,
+                &quot;arabic-indic&quot;,
+                &quot;binary&quot;,
+                &quot;bengali&quot;,
+                &quot;cambodian&quot;,
+                &quot;khmer&quot;,
+                &quot;devanagari&quot;,
+                &quot;gujarati&quot;,
+                &quot;gurmukhi&quot;,
+                &quot;kannada&quot;,
+                &quot;lower-hexadecimal&quot;,
+                &quot;lao&quot;,
+                &quot;malayalam&quot;,
+                &quot;mongolian&quot;,
+                &quot;myanmar&quot;,
+                &quot;octal&quot;,
+                &quot;oriya&quot;,
+                &quot;persian&quot;,
+                &quot;urdu&quot;,
+                &quot;telugu&quot;,
+                &quot;tibetan&quot;,
+                &quot;thai&quot;,
+                &quot;upper-hexadecimal&quot;,
+                &quot;lower-roman&quot;,
+                &quot;upper-roman&quot;,
+                &quot;lower-greek&quot;,
+                &quot;lower-alpha&quot;,
+                &quot;lower-latin&quot;,
+                &quot;upper-alpha&quot;,
+                &quot;upper-latin&quot;,
+                &quot;afar&quot;,
+                &quot;ethiopic-halehame-aa-et&quot;,
+                &quot;ethiopic-halehame-aa-er&quot;,
+                &quot;amharic&quot;,
+                &quot;ethiopic-halehame-am-et&quot;,
+                &quot;amharic-abegede&quot;,
+                &quot;ethiopic-abegede-am-et&quot;,
+                &quot;cjk-earthly-branch&quot;,
+                &quot;cjk-heavenly-stem&quot;,
+                &quot;ethiopic&quot;,
+                &quot;ethiopic-halehame-gez&quot;,
+                &quot;ethiopic-abegede&quot;,
+                &quot;ethiopic-abegede-gez&quot;,
+                &quot;hangul-consonant&quot;,
+                &quot;hangul&quot;,
+                &quot;lower-norwegian&quot;,
+                &quot;oromo&quot;,
+                &quot;ethiopic-halehame-om-et&quot;,
+                &quot;sidama&quot;,
+                &quot;ethiopic-halehame-sid-et&quot;,
+                &quot;somali&quot;,
+                &quot;ethiopic-halehame-so-et&quot;,
+                &quot;tigre&quot;,
+                &quot;ethiopic-halehame-tig&quot;,
+                &quot;tigrinya-er&quot;,
+                &quot;ethiopic-halehame-ti-er&quot;,
+                &quot;tigrinya-er-abegede&quot;,
+                &quot;ethiopic-abegede-ti-er&quot;,
+                &quot;tigrinya-et&quot;,
+                &quot;ethiopic-halehame-ti-et&quot;,
+                &quot;tigrinya-et-abegede&quot;,
+                &quot;ethiopic-abegede-ti-et&quot;,
+                &quot;upper-greek&quot;,
+                &quot;upper-norwegian&quot;,
+                &quot;asterisks&quot;,
+                &quot;footnotes&quot;,
+                &quot;hebrew&quot;,
+                &quot;armenian&quot;,
+                &quot;lower-armenian&quot;,
+                &quot;upper-armenian&quot;,
+                &quot;georgian&quot;,
+                &quot;cjk-ideographic&quot;,
+                &quot;hiragana&quot;,
+                &quot;katakana&quot;,
+                &quot;hiragana-iroha&quot;,
+                &quot;katakana-iroha&quot;,
+                &quot;none&quot;
+            ]
+        },
+        &quot;margin&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;margin-top&quot;,
+                    &quot;margin-right&quot;,
+                    &quot;margin-bottom&quot;,
+                    &quot;margin-left&quot;
+                ]
+            }
+        },
+        &quot;margin-bottom&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialMargin&quot;,
+                &quot;converter&quot;: &quot;LengthOrAuto&quot;
+            }
+        },
+        &quot;margin-left&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialMargin&quot;,
+                &quot;converter&quot;: &quot;LengthOrAuto&quot;
+            }
+        },
+        &quot;margin-right&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialMargin&quot;,
+                &quot;converter&quot;: &quot;LengthOrAuto&quot;
+            }
+        },
+        &quot;margin-top&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialMargin&quot;,
+                &quot;converter&quot;: &quot;LengthOrAuto&quot;
+            }
+        },
+        &quot;marker&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;marker-start&quot;,
+                    &quot;marker-mid&quot;,
+                    &quot;marker-end&quot;
+                ]
+            }
+        },
+        &quot;marker-end&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;MarkerEndResource&quot;,
+                &quot;converter&quot;: &quot;SVGURIReference&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;marker-mid&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;MarkerMidResource&quot;,
+                &quot;converter&quot;: &quot;SVGURIReference&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;marker-start&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;MarkerStartResource&quot;,
+                &quot;converter&quot;: &quot;SVGURIReference&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;mask&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;MaskerResource&quot;,
+                &quot;converter&quot;: &quot;SVGURIReference&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;mask-type&quot;: {
+            &quot;values&quot;: [
+                &quot;luminance&quot;,
+                &quot;alpha&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;max-height&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialMaxSize&quot;,
+                &quot;converter&quot;: &quot;LengthMaxSizing&quot;
+            }
+        },
+        &quot;max-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialMaxSize&quot;,
+                &quot;converter&quot;: &quot;LengthMaxSizing&quot;
+            }
+        },
+        &quot;min-height&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialMinSize&quot;,
+                &quot;converter&quot;: &quot;LengthSizing&quot;
+            }
+        },
+        &quot;min-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialMinSize&quot;,
+                &quot;converter&quot;: &quot;LengthSizing&quot;
+            }
+        },
+        &quot;object-fit&quot;: {
+            &quot;values&quot;: [
+                &quot;fill&quot;,
+                &quot;contain&quot;,
+                &quot;cover&quot;,
+                &quot;none&quot;,
+                &quot;scale-down&quot;
+            ]
+        },
+        &quot;object-position&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;ObjectPosition&quot;
+            }
+        },
+        &quot;opacity&quot;: {
+            &quot;*&quot;: [
+                &quot;Honor -webkit-opacity as a synonym for opacity. This was the only syntax that worked in Safari 1.1,&quot;,
+                &quot;and may be in use on some websites and widgets.&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-opacity&quot;
+                ]
+            }
+        },
+        &quot;orphans&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;auto-functions&quot;: true
+            }
+        },
+        &quot;outline&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;outline-color&quot;,
+                    &quot;outline-style&quot;,
+                    &quot;outline-width&quot;
+                ]
+            }
+        },
+        &quot;outline-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;invalidColor&quot;,
+                &quot;visited-link-color-support&quot;: true
+            }
+        },
+        &quot;outline-offset&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;ComputedLength&lt;float&gt;&quot;
+            }
+        },
+        &quot;outline-style&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;none&quot;,
+                &quot;inset&quot;,
+                &quot;groove&quot;,
+                &quot;outset&quot;,
+                &quot;ridge&quot;,
+                &quot;dotted&quot;,
+                &quot;dashed&quot;,
+                &quot;solid&quot;,
+                &quot;double&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;outline-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;LineWidth&lt;float&gt;&quot;
+            }
+        },
+        &quot;overflow&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;overflow-x&quot;,
+                    &quot;overflow-y&quot;
+                ]
+            }
+        },
+        &quot;overflow-wrap&quot;: {
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;break-word&quot;
+            ]
+        },
+        &quot;overflow-x&quot;: {
+            &quot;values&quot;: [
+                &quot;visible&quot;,
+                &quot;hidden&quot;,
+                &quot;scroll&quot;,
+                &quot;auto&quot;,
+                &quot;overlay&quot;
+            ]
+        },
+        &quot;overflow-y&quot;: {
+            &quot;values&quot;: [
+                &quot;visible&quot;,
+                &quot;hidden&quot;,
+                &quot;scroll&quot;,
+                &quot;auto&quot;,
+                &quot;overlay&quot;,
+                &quot;-webkit-paged-x&quot;,
+                &quot;-webkit-paged-y&quot;
+            ]
+        },
+        &quot;padding&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;padding-top&quot;,
+                    &quot;padding-right&quot;,
+                    &quot;padding-bottom&quot;,
+                    &quot;padding-left&quot;
+                ]
+            }
+        },
+        &quot;padding-bottom&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialPadding&quot;,
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;padding-left&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialPadding&quot;,
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;padding-right&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialPadding&quot;,
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;padding-top&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialPadding&quot;,
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;page&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;page-break-after&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;always&quot;,
+                &quot;avoid&quot;,
+                &quot;left&quot;,
+                &quot;right&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBreakBetween&quot;,
+                &quot;name-for-methods&quot;: &quot;BreakAfter&quot;,
+                &quot;converter&quot;: &quot;PageBreakBetween&quot;
+            }
+        },
+        &quot;page-break-before&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;always&quot;,
+                &quot;avoid&quot;,
+                &quot;left&quot;,
+                &quot;right&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBreakBetween&quot;,
+                &quot;name-for-methods&quot;: &quot;BreakBefore&quot;,
+                &quot;converter&quot;: &quot;PageBreakBetween&quot;
+            }
+        },
+        &quot;page-break-inside&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;avoid&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBreakInside&quot;,
+                &quot;name-for-methods&quot;: &quot;BreakInside&quot;,
+                &quot;converter&quot;: &quot;PageBreakInside&quot;
+            }
+        },
+        &quot;paint-order&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;PaintOrder&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;pointer-events&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;visible&quot;,
+                &quot;none&quot;,
+                &quot;all&quot;,
+                &quot;auto&quot;,
+                &quot;visiblepainted&quot;,
+                &quot;visiblefill&quot;,
+                &quot;visiblestroke&quot;,
+                &quot;painted&quot;,
+                &quot;fill&quot;,
+                &quot;stroke&quot;
+            ]
+        },
+        &quot;position&quot;: {
+            &quot;values&quot;: [
+                &quot;static&quot;,
+                &quot;relative&quot;,
+                &quot;absolute&quot;,
+                &quot;fixed&quot;,
+                &quot;-webkit-sticky&quot;
+            ]
+        },
+        &quot;quotes&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;Quotes&quot;
+            }
+        },
+        &quot;r&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialZeroLength&quot;,
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;resize&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;both&quot;,
+                &quot;horizontal&quot;,
+                &quot;vertical&quot;,
+                &quot;auto&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;Resize&quot;
+            }
+        },
+        &quot;right&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialOffset&quot;,
+                &quot;converter&quot;: &quot;LengthOrAuto&quot;
+            }
+        },
+        &quot;rx&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialZeroLength&quot;,
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;ry&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialZeroLength&quot;,
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;shape-rendering&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;optimizespeed&quot;,
+                &quot;crispedges&quot;,
+                &quot;geometricprecision&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;size&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;src&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;stop-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;SVGColor&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;stop-opacity&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;Opacity&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;stroke&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;stroke-dasharray&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;StrokeDashArray&quot;,
+                &quot;converter&quot;: &quot;StrokeDashArray&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;stroke-dashoffset&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialZeroLength&quot;,
+                &quot;name-for-methods&quot;: &quot;StrokeDashOffset&quot;,
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;stroke-linecap&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;butt&quot;,
+                &quot;round&quot;,
+                &quot;square&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;CapStyle&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;stroke-linejoin&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;miter&quot;,
+                &quot;round&quot;,
+                &quot;bevel&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;JoinStyle&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;stroke-miterlimit&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;StrokeMiterLimit&quot;,
+                &quot;converter&quot;: &quot;Number&lt;float&gt;&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;stroke-opacity&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;Opacity&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;stroke-width&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialOneLength&quot;,
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;speak&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;normal&quot;,
+                &quot;spell-out&quot;,
+                &quot;digits&quot;,
+                &quot;literal-punctuation&quot;,
+                &quot;no-punctuation&quot;
+            ]
+        },
+        &quot;table-layout&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;fixed&quot;
+            ]
+        },
+        &quot;tab-size&quot;: {
+            &quot;inherited&quot;: true
+        },
+        &quot;text-align&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;-webkit-auto&quot;,
+                &quot;left&quot;,
+                &quot;right&quot;,
+                &quot;center&quot;,
+                &quot;justify&quot;,
+                &quot;-webkit-left&quot;,
+                &quot;-webkit-right&quot;,
+                &quot;-webkit-center&quot;,
+                &quot;-webkit-match-parent&quot;,
+                &quot;start&quot;,
+                &quot;end&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;TextAlign&quot;
+            }
+        },
+        &quot;text-anchor&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;start&quot;,
+                &quot;middle&quot;,
+                &quot;end&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;text-decoration&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;TextDecoration&quot;
+            }
+        },
+        &quot;text-indent&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;text-line-through&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-line-through-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-line-through-mode&quot;: {
+            &quot;values&quot;: [
+                &quot;continuous&quot;,
+                &quot;skip-white-space&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-line-through-style&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;solid&quot;,
+                &quot;double&quot;,
+                &quot;dashed&quot;,
+                &quot;dot-dash&quot;,
+                &quot;dot-dot-dash&quot;,
+                &quot;wave&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-line-through-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-overflow&quot;: {
+            &quot;values&quot;: [
+                &quot;clip&quot;,
+                &quot;ellipsis&quot;
+            ]
+        },
+        &quot;text-overline&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-overline-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-overline-mode&quot;: {
+            &quot;values&quot;: [
+                &quot;continuous&quot;,
+                &quot;skip-white-space&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-overline-style&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;solid&quot;,
+                &quot;double&quot;,
+                &quot;dashed&quot;,
+                &quot;dot-dash&quot;,
+                &quot;dot-dot-dash&quot;,
+                &quot;wave&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-overline-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-shadow&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;text-transform&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;capitalize&quot;,
+                &quot;uppercase&quot;,
+                &quot;lowercase&quot;,
+                &quot;none&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-epub-text-transform&quot;
+                ]
+            }
+        },
+        &quot;text-underline&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-underline-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-underline-mode&quot;: {
+            &quot;values&quot;: [
+                &quot;continuous&quot;,
+                &quot;skip-white-space&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-underline-style&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;solid&quot;,
+                &quot;double&quot;,
+                &quot;dashed&quot;,
+                &quot;dot-dash&quot;,
+                &quot;dot-dot-dash&quot;,
+                &quot;wave&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;text-underline-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;top&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialOffset&quot;,
+                &quot;converter&quot;: &quot;LengthOrAuto&quot;
+            }
+        },
+        &quot;transition&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-transition&quot;
+                ],
+                &quot;longhands&quot;: [
+                    &quot;transition-property&quot;,
+                    &quot;transition-duration&quot;,
+                    &quot;transition-timing-function&quot;,
+                    &quot;transition-delay&quot;
+                ]
+            }
+        },
+        &quot;transition-delay&quot;: {
+            &quot;animatable&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-transition-delay&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;Delay&quot;
+            }
+        },
+        &quot;transition-duration&quot;: {
+            &quot;animatable&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-transition-duration&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;Duration&quot;
+            }
+        },
+        &quot;transition-property&quot;: {
+            &quot;animatable&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-transition-property&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;Property&quot;
+            }
+        },
+        &quot;transition-timing-function&quot;: {
+            &quot;animatable&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-transition-timing-function&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;TimingFunction&quot;
+            }
+        },
+        &quot;unicode-bidi&quot;: {
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;embed&quot;,
+                &quot;bidi-override&quot;,
+                &quot;-webkit-isolate&quot;,
+                &quot;-webkit-isolate-override&quot;,
+                &quot;-webkit-plaintext&quot;
+            ]
+        },
+        &quot;unicode-range&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;vector-effect&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;non-scaling-stroke&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;vertical-align&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;Value&quot;
+            }
+        },
+        &quot;visibility&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;visible&quot;,
+                &quot;hidden&quot;,
+                &quot;collapse&quot;
+            ]
+        },
+        &quot;white-space&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;pre&quot;,
+                &quot;pre-wrap&quot;,
+                &quot;pre-line&quot;,
+                &quot;nowrap&quot;
+            ]
+        },
+        &quot;widows&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;auto-functions&quot;: true
+            }
+        },
+        &quot;width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialSize&quot;,
+                &quot;converter&quot;: &quot;LengthSizing&quot;
+            }
+        },
+        &quot;will-change&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;Value&quot;
+            }
+        },
+        &quot;word-break&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;break-all&quot;,
+                &quot;keep-all&quot;,
+                &quot;break-word&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-epub-word-break&quot;
+                ]
+            }
+        },
+        &quot;word-spacing&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;conditional-converter&quot;: &quot;WordSpacing&quot;
+            }
+        },
+        &quot;word-wrap&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;break-word&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;OverflowWrap&quot;
+            }
+        },
+        &quot;x&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialZeroLength&quot;,
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;y&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialZeroLength&quot;,
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;z-index&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;auto-functions&quot;: true
+            }
+        },
+        &quot;alt&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-alt&quot;
+                ],
+                &quot;name-for-methods&quot;: &quot;ContentAltText&quot;,
+                &quot;custom&quot;: &quot;Value&quot;
+            }
+        },
+        &quot;-webkit-animation-trigger&quot;: {
+            &quot;animatable&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Trigger&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_ANIMATIONS_LEVEL_2&quot;
+            }
+        },
+        &quot;-webkit-appearance&quot;: {
+            &quot;values&quot;: [
+                &quot;checkbox&quot;,
+                &quot;radio&quot;,
+                &quot;push-button&quot;,
+                &quot;square-button&quot;,
+                &quot;button&quot;,
+                &quot;button-bevel&quot;,
+                &quot;default-button&quot;,
+                &quot;inner-spin-button&quot;,
+                &quot;listbox&quot;,
+                &quot;listitem&quot;,
+                &quot;media-controls-background&quot;,
+                &quot;media-controls-dark-bar-background&quot;,
+                &quot;media-controls-fullscreen-background&quot;,
+                &quot;media-controls-light-bar-background&quot;,
+                &quot;media-current-time-display&quot;,
+                &quot;media-enter-fullscreen-button&quot;,
+                &quot;media-exit-fullscreen-button&quot;,
+                &quot;media-fullscreen-volume-slider&quot;,
+                &quot;media-fullscreen-volume-slider-thumb&quot;,
+                &quot;media-mute-button&quot;,
+                &quot;media-overlay-play-button&quot;,
+                &quot;media-play-button&quot;,
+                &quot;media-return-to-realtime-button&quot;,
+                &quot;media-rewind-button&quot;,
+                &quot;media-seek-back-button&quot;,
+                &quot;media-seek-forward-button&quot;,
+                &quot;media-slider&quot;,
+                &quot;media-sliderthumb&quot;,
+                &quot;media-time-remaining-display&quot;,
+                &quot;media-toggle-closed-captions-button&quot;,
+                &quot;media-volume-slider&quot;,
+                &quot;media-volume-slider-container&quot;,
+                &quot;media-volume-slider-mute-button&quot;,
+                &quot;media-volume-sliderthumb&quot;,
+                &quot;menulist&quot;,
+                &quot;menulist-button&quot;,
+                &quot;menulist-text&quot;,
+                &quot;menulist-textfield&quot;,
+                &quot;meter&quot;,
+                &quot;progress-bar&quot;,
+                &quot;progress-bar-value&quot;,
+                &quot;slider-horizontal&quot;,
+                &quot;slider-vertical&quot;,
+                &quot;sliderthumb-horizontal&quot;,
+                &quot;sliderthumb-vertical&quot;,
+                &quot;caret&quot;,
+                &quot;searchfield&quot;,
+                &quot;searchfield-decoration&quot;,
+                &quot;searchfield-results-decoration&quot;,
+                &quot;searchfield-results-button&quot;,
+                &quot;searchfield-cancel-button&quot;,
+                &quot;snapshotted-plugin-overlay&quot;,
+                &quot;textfield&quot;,
+                &quot;relevancy-level-indicator&quot;,
+                &quot;continuous-capacity-level-indicator&quot;,
+                &quot;discrete-capacity-level-indicator&quot;,
+                &quot;rating-level-indicator&quot;,
+                &quot;image-controls-button&quot;,
+                &quot;-apple-pay-button&quot;,
+                &quot;textarea&quot;,
+                &quot;attachment&quot;,
+                &quot;caps-lock-indicator&quot;,
+                &quot;none&quot;
+            ]
+        },
+        &quot;-webkit-aspect-ratio&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;-webkit-backface-visibility&quot;: {
+            &quot;values&quot;: [
+                &quot;visible&quot;,
+                &quot;hidden&quot;
+            ]
+        },
+        &quot;-webkit-background-clip&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Clip&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-background-composite&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Composite&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-background-origin&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Origin&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-background-size&quot;: {
+            &quot;*&quot;: [
+                &quot;Differs from background-size only in the interpretation of a single value: \&quot;-webkit-background-size: l;\&quot;&quot;,
+                &quot;is equivalent to \&quot;background-size: l l;\&quot; whereas \&quot;background-size: l;\&quot; is equivalent to&quot;,
+                &quot;\&quot;background-size: l auto;\&quot;&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Size&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-border-after&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;-webkit-border-after-width&quot;,
+                    &quot;-webkit-border-after-style&quot;,
+                    &quot;-webkit-border-after-color&quot;
+                ]
+            }
+        },
+        &quot;-webkit-border-after-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-border-after-style&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;hidden&quot;,
+                &quot;inset&quot;,
+                &quot;groove&quot;,
+                &quot;outset&quot;,
+                &quot;ridge&quot;,
+                &quot;dotted&quot;,
+                &quot;dashed&quot;,
+                &quot;solid&quot;,
+                &quot;double&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-border-after-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-border-before&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;-webkit-border-before-width&quot;,
+                    &quot;-webkit-border-before-style&quot;,
+                    &quot;-webkit-border-before-color&quot;
+                ]
+            }
+        },
+        &quot;-webkit-border-before-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-border-before-style&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;hidden&quot;,
+                &quot;inset&quot;,
+                &quot;groove&quot;,
+                &quot;outset&quot;,
+                &quot;ridge&quot;,
+                &quot;dotted&quot;,
+                &quot;dashed&quot;,
+                &quot;solid&quot;,
+                &quot;double&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-border-before-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-border-end&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;-webkit-border-end-width&quot;,
+                    &quot;-webkit-border-end-style&quot;,
+                    &quot;-webkit-border-end-color&quot;
+                ]
+            }
+        },
+        &quot;-webkit-border-end-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-border-end-style&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;hidden&quot;,
+                &quot;inset&quot;,
+                &quot;groove&quot;,
+                &quot;outset&quot;,
+                &quot;ridge&quot;,
+                &quot;dotted&quot;,
+                &quot;dashed&quot;,
+                &quot;solid&quot;,
+                &quot;double&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-border-end-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-border-fit&quot;: {
+            &quot;values&quot;: [
+                &quot;border&quot;,
+                &quot;lines&quot;
+            ]
+        },
+        &quot;-webkit-border-horizontal-spacing&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;HorizontalBorderSpacing&quot;,
+                &quot;converter&quot;: &quot;ComputedLength&lt;float&gt;&quot;
+            }
+        },
+        &quot;-webkit-border-image&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialNinePieceImage&quot;,
+                &quot;converter&quot;: &quot;BorderImage&lt;CSSPropertyWebkitBorderImage&gt;&quot;
+            }
+        },
+        &quot;-webkit-border-radius&quot;: {
+            &quot;*&quot;: [
+                &quot;Differs from border-radius only in the interpretation of a value consisting of two lengths:&quot;,
+                &quot;\&quot;-webkit-border-radius: l1 l2;\&quot; is equivalent to \&quot;border-radius: l1 / l2;\&quot;.&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;border-top-left-radius&quot;,
+                    &quot;border-top-right-radius&quot;,
+                    &quot;border-bottom-right-radius&quot;,
+                    &quot;border-bottom-left-radius&quot;
+                ]
+            }
+        },
+        &quot;-webkit-border-start&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;-webkit-border-start-width&quot;,
+                    &quot;-webkit-border-start-style&quot;,
+                    &quot;-webkit-border-start-color&quot;
+                ]
+            }
+        },
+        &quot;-webkit-border-start-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-border-start-style&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;hidden&quot;,
+                &quot;inset&quot;,
+                &quot;groove&quot;,
+                &quot;outset&quot;,
+                &quot;ridge&quot;,
+                &quot;dotted&quot;,
+                &quot;dashed&quot;,
+                &quot;solid&quot;,
+                &quot;double&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-border-start-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-border-vertical-spacing&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;VerticalBorderSpacing&quot;,
+                &quot;converter&quot;: &quot;ComputedLength&lt;float&gt;&quot;
+            }
+        },
+        &quot;-webkit-box-align&quot;: {
+            &quot;values&quot;: [
+                &quot;stretch&quot;,
+                &quot;start&quot;,
+                &quot;end&quot;,
+                &quot;center&quot;,
+                &quot;baseline&quot;
+            ]
+        },
+        &quot;-webkit-box-direction&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;reverse&quot;
+            ]
+        },
+        &quot;-webkit-box-flex&quot;: {},
+        &quot;-webkit-box-flex-group&quot;: {},
+        &quot;-webkit-box-lines&quot;: {
+            &quot;values&quot;: [
+                &quot;single&quot;,
+                &quot;multiple&quot;
+            ]
+        },
+        &quot;-webkit-box-ordinal-group&quot;: {},
+        &quot;-webkit-box-orient&quot;: {
+            &quot;values&quot;: [
+                &quot;horizontal&quot;,
+                &quot;vertical&quot;,
+                &quot;inline-axis&quot;,
+                &quot;block-axis&quot;
+            ]
+        },
+        &quot;-webkit-box-pack&quot;: {
+            &quot;values&quot;: [
+                &quot;start&quot;,
+                &quot;end&quot;,
+                &quot;center&quot;,
+                &quot;justify&quot;
+            ]
+        },
+        &quot;-webkit-box-reflect&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;Reflection&quot;
+            }
+        },
+        &quot;-webkit-box-shadow&quot;: {
+            &quot;*&quot;: [
+                &quot;Differs from box-shadow in its treatement of blur radii &gt; 8px. Let -webkit-box-shadow blur&quot;,
+                &quot;radius be w_r and box-shadow blur radius be b_r. For w_r &gt; 8px, b_r = 8 + 4 * sqrt((w_r - 8) / 2).&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;-webkit-column-axis&quot;: {
+            &quot;values&quot;: [
+                &quot;horizontal&quot;,
+                &quot;vertical&quot;,
+                &quot;auto&quot;
+            ]
+        },
+        &quot;-webkit-column-break-after&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;always&quot;,
+                &quot;avoid&quot;,
+                &quot;left&quot;,
+                &quot;right&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBreakBetween&quot;,
+                &quot;name-for-methods&quot;: &quot;BreakAfter&quot;,
+                &quot;converter&quot;: &quot;ColumnBreakBetween&quot;
+            }
+        },
+        &quot;-webkit-column-break-before&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;always&quot;,
+                &quot;avoid&quot;,
+                &quot;left&quot;,
+                &quot;right&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBreakBetween&quot;,
+                &quot;name-for-methods&quot;: &quot;BreakBefore&quot;,
+                &quot;converter&quot;: &quot;ColumnBreakBetween&quot;
+            }
+        },
+        &quot;-webkit-column-break-inside&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;avoid&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBreakInside&quot;,
+                &quot;name-for-methods&quot;: &quot;BreakInside&quot;,
+                &quot;converter&quot;: &quot;ColumnBreakInside&quot;
+            }
+        },
+        &quot;column-count&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-column-count&quot;
+                ],
+                &quot;auto-functions&quot;: true
+            }
+        },
+        &quot;column-fill&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;balance&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-column-fill&quot;
+                ]
+            }
+        },
+        &quot;column-gap&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-column-gap&quot;
+                ],
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;-webkit-column-progression&quot;: {
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;reverse&quot;
+            ]
+        },
+        &quot;column-rule&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-column-rule&quot;
+                ],
+                &quot;longhands&quot;: [
+                    &quot;column-rule-width&quot;,
+                    &quot;column-rule-style&quot;,
+                    &quot;column-rule-color&quot;
+                ]
+            }
+        },
+        &quot;column-rule-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-column-rule-color&quot;
+                ],
+                &quot;initial&quot;: &quot;invalidColor&quot;,
+                &quot;visited-link-color-support&quot;: true
+            }
+        },
+        &quot;column-rule-style&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;hidden&quot;,
+                &quot;inset&quot;,
+                &quot;groove&quot;,
+                &quot;outset&quot;,
+                &quot;ridge&quot;,
+                &quot;dotted&quot;,
+                &quot;dashed&quot;,
+                &quot;solid&quot;,
+                &quot;double&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-column-rule-style&quot;
+                ],
+                &quot;initial&quot;: &quot;initialBorderStyle&quot;
+            }
+        },
+        &quot;column-rule-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-column-rule-width&quot;
+                ],
+                &quot;converter&quot;: &quot;LineWidth&lt;unsigned short&gt;&quot;
+            }
+        },
+        &quot;column-span&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-column-span&quot;
+                ]
+            }
+        },
+        &quot;column-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-column-width&quot;
+                ],
+                &quot;converter&quot;: &quot;ComputedLength&lt;float&gt;&quot;,
+                &quot;auto-functions&quot;: true
+            }
+        },
+        &quot;columns&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-columns&quot;
+                ],
+                &quot;longhands&quot;: [
+                    &quot;column-width&quot;,
+                    &quot;column-count&quot;
+                ]
+            }
+        },
+        &quot;-webkit-box-decoration-break&quot;: {
+            &quot;values&quot;: [
+                &quot;clone&quot;,
+                &quot;slice&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_BOX_DECORATION_BREAK&quot;
+            }
+        },
+        &quot;mix-blend-mode&quot;: {
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;multiply&quot;,
+                &quot;screen&quot;,
+                &quot;overlay&quot;,
+                &quot;darken&quot;,
+                &quot;lighten&quot;,
+                &quot;color-dodge&quot;,
+                &quot;color-burn&quot;,
+                &quot;hard-light&quot;,
+                &quot;soft-light&quot;,
+                &quot;difference&quot;,
+                &quot;exclusion&quot;,
+                &quot;plus-darker&quot;,
+                &quot;plus-lighter&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;BlendMode&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_COMPOSITING&quot;
+            }
+        },
+        &quot;isolation&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;isolate&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_COMPOSITING&quot;
+            }
+        },
+        &quot;filter&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-filter&quot;
+                ],
+                &quot;conditional-converter&quot;: &quot;FilterOperations&quot;
+            }
+        },
+        &quot;align-content&quot;: {
+            &quot;values&quot;: [
+                &quot;flex-start&quot;,
+                &quot;flex-end&quot;,
+                &quot;center&quot;,
+                &quot;space-between&quot;,
+                &quot;space-around&quot;,
+                &quot;stretch&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-align-content&quot;
+                ],
+                &quot;initial&quot;: &quot;initialContentAlignment&quot;,
+                &quot;converter&quot;: &quot;ContentAlignmentData&quot;
+            }
+        },
+        &quot;align-items&quot;: {
+            &quot;values&quot;: [
+                &quot;flex-start&quot;,
+                &quot;flex-end&quot;,
+                &quot;center&quot;,
+                &quot;baseline&quot;,
+                &quot;stretch&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-align-items&quot;
+                ],
+                &quot;initial&quot;: &quot;initialDefaultAlignment&quot;,
+                &quot;converter&quot;: &quot;SelfOrDefaultAlignmentData&quot;
+            }
+        },
+        &quot;align-self&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;flex-start&quot;,
+                &quot;flex-end&quot;,
+                &quot;center&quot;,
+                &quot;baseline&quot;,
+                &quot;stretch&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-align-self&quot;
+                ],
+                &quot;initial&quot;: &quot;initialSelfAlignment&quot;,
+                &quot;converter&quot;: &quot;SelfOrDefaultAlignmentData&quot;
+            }
+        },
+        &quot;flex&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-flex&quot;
+                ],
+                &quot;longhands&quot;: [
+                    &quot;flex-grow&quot;,
+                    &quot;flex-shrink&quot;,
+                    &quot;flex-basis&quot;
+                ]
+            }
+        },
+        &quot;flex-basis&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-flex-basis&quot;
+                ],
+                &quot;converter&quot;: &quot;LengthOrAuto&quot;
+            }
+        },
+        &quot;flex-direction&quot;: {
+            &quot;values&quot;: [
+                &quot;row&quot;,
+                &quot;row-reverse&quot;,
+                &quot;column&quot;,
+                &quot;column-reverse&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-flex-direction&quot;
+                ]
+            }
+        },
+        &quot;flex-flow&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-flex-flow&quot;
+                ],
+                &quot;longhands&quot;: [
+                    &quot;flex-direction&quot;,
+                    &quot;flex-wrap&quot;
+                ]
+            }
+        },
+        &quot;flex-grow&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-flex-grow&quot;
+                ]
+            }
+        },
+        &quot;flex-shrink&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-flex-shrink&quot;
+                ]
+            }
+        },
+        &quot;flex-wrap&quot;: {
+            &quot;values&quot;: [
+                &quot;nowrap&quot;,
+                &quot;wrap&quot;,
+                &quot;wrap-reverse&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-flex-wrap&quot;
+                ]
+            }
+        },
+        &quot;justify-content&quot;: {
+            &quot;values&quot;: [
+                &quot;flex-start&quot;,
+                &quot;flex-end&quot;,
+                &quot;center&quot;,
+                &quot;space-between&quot;,
+                &quot;space-around&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-justify-content&quot;
+                ],
+                &quot;initial&quot;: &quot;initialContentAlignment&quot;,
+                &quot;converter&quot;: &quot;ContentAlignmentData&quot;
+            }
+        },
+        &quot;-webkit-backdrop-filter&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;conditional-converter&quot;: &quot;FilterOperations&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_FILTERS_LEVEL_2&quot;
+            }
+        },
+        &quot;-webkit-font-size-delta&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;justify-self&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialSelfAlignment&quot;,
+                &quot;converter&quot;: &quot;SelfOrDefaultAlignmentData&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;justify-items&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-justify-items&quot;
+                ],
+                &quot;initial&quot;: &quot;initialSelfAlignment&quot;,
+                &quot;converter&quot;: &quot;SelfOrDefaultAlignmentData&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;grid-template-rows&quot;,
+                    &quot;grid-template-columns&quot;,
+                    &quot;grid-template-areas&quot;,
+                    &quot;grid-auto-flow&quot;,
+                    &quot;grid-auto-rows&quot;,
+                    &quot;grid-auto-columns&quot;,
+                    &quot;grid-column-gap&quot;,
+                    &quot;grid-row-gap&quot;
+                ],
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-area&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;grid-row-start&quot;,
+                    &quot;grid-column-start&quot;,
+                    &quot;grid-row-end&quot;,
+                    &quot;grid-column-end&quot;
+                ],
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-auto-columns&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;GridTrackSizeList&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-auto-rows&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;GridTrackSizeList&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-column-end&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;GridItemColumnEnd&quot;,
+                &quot;conditional-converter&quot;: &quot;GridPosition&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-column-gap&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialZeroLength&quot;,
+                &quot;converter&quot;: &quot;Length&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-column-start&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;GridItemColumnStart&quot;,
+                &quot;conditional-converter&quot;: &quot;GridPosition&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-template&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;grid-template-rows&quot;,
+                    &quot;grid-template-columns&quot;,
+                    &quot;grid-template-areas&quot;
+                ],
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-template-columns&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-template-rows&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-row-end&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;GridItemRowEnd&quot;,
+                &quot;conditional-converter&quot;: &quot;GridPosition&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-row-gap&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialZeroLength&quot;,
+                &quot;converter&quot;: &quot;Length&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-row-start&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;GridItemRowStart&quot;,
+                &quot;conditional-converter&quot;: &quot;GridPosition&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-column&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;grid-column-start&quot;,
+                    &quot;grid-column-end&quot;
+                ],
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-gap&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;grid-row-gap&quot;,
+                    &quot;grid-column-gap&quot;
+                ],
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-row&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;grid-row-start&quot;,
+                    &quot;grid-row-end&quot;
+                ],
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-template-areas&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;grid-auto-flow&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;GridAutoFlow&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_GRID_LAYOUT&quot;
+            }
+        },
+        &quot;-webkit-hyphenate-character&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;HyphenationString&quot;,
+                &quot;converter&quot;: &quot;StringOrAuto&quot;
+            }
+        },
+        &quot;-webkit-hyphenate-limit-after&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;HyphenationLimitAfter&quot;,
+                &quot;converter&quot;: &quot;NumberOrAuto&lt;short&gt;&quot;
+            }
+        },
+        &quot;-webkit-hyphenate-limit-before&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;HyphenationLimitBefore&quot;,
+                &quot;converter&quot;: &quot;NumberOrAuto&lt;short&gt;&quot;
+            }
+        },
+        &quot;-webkit-hyphenate-limit-lines&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;HyphenationLimitLines&quot;,
+                &quot;converter&quot;: &quot;WebkitHyphenateLimitLines&quot;
+            }
+        },
+        &quot;-webkit-hyphens&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;manual&quot;,
+                &quot;auto&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-epub-hyphens&quot;
+                ]
+            }
+        },
+        &quot;-webkit-initial-letter&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;InitialLetter&quot;
+            }
+        },
+        &quot;-webkit-line-box-contain&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;LineBoxContain&quot;
+            }
+        },
+        &quot;-webkit-line-align&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;edges&quot;
+            ]
+        },
+        &quot;-webkit-line-break&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;loose&quot;,
+                &quot;normal&quot;,
+                &quot;strict&quot;,
+                &quot;after-white-space&quot;
+            ]
+        },
+        &quot;-webkit-line-clamp&quot;: {},
+        &quot;-webkit-line-grid&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;StringOrNone&quot;
+            }
+        },
+        &quot;-webkit-line-snap&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;baseline&quot;,
+                &quot;contain&quot;
+            ]
+        },
+        &quot;-webkit-logical-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-logical-height&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-margin-after-collapse&quot;: {
+            &quot;values&quot;: [
+                &quot;collapse&quot;,
+                &quot;separate&quot;,
+                &quot;discard&quot;
+            ]
+        },
+        &quot;-webkit-margin-before-collapse&quot;: {
+            &quot;values&quot;: [
+                &quot;collapse&quot;,
+                &quot;separate&quot;,
+                &quot;discard&quot;
+            ]
+        },
+        &quot;-webkit-margin-bottom-collapse&quot;: {
+            &quot;values&quot;: [
+                &quot;collapse&quot;,
+                &quot;separate&quot;,
+                &quot;discard&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;MarginAfterCollapse&quot;
+            }
+        },
+        &quot;-webkit-margin-top-collapse&quot;: {
+            &quot;values&quot;: [
+                &quot;collapse&quot;,
+                &quot;separate&quot;,
+                &quot;discard&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;MarginBeforeCollapse&quot;
+            }
+        },
+        &quot;-webkit-margin-collapse&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;-webkit-margin-before-collapse&quot;,
+                    &quot;-webkit-margin-after-collapse&quot;
+                ]
+            }
+        },
+        &quot;-webkit-margin-after&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-margin-before&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-margin-end&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-margin-start&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-marquee&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;-webkit-marquee-direction&quot;,
+                    &quot;-webkit-marquee-increment&quot;,
+                    &quot;-webkit-marquee-repetition&quot;,
+                    &quot;-webkit-marquee-style&quot;,
+                    &quot;-webkit-marquee-speed&quot;
+                ]
+            }
+        },
+        &quot;-webkit-marquee-direction&quot;: {
+            &quot;values&quot;: [
+                &quot;forwards&quot;,
+                &quot;backwards&quot;,
+                &quot;ahead&quot;,
+                &quot;reverse&quot;,
+                &quot;left&quot;,
+                &quot;right&quot;,
+                &quot;down&quot;,
+                &quot;up&quot;,
+                &quot;auto&quot;
+            ]
+        },
+        &quot;-webkit-marquee-increment&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;conditional-converter&quot;: &quot;MarqueeIncrement&quot;
+            }
+        },
+        &quot;-webkit-marquee-repetition&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;MarqueeLoopCount&quot;,
+                &quot;converter&quot;: &quot;MarqueeRepetition&quot;
+            }
+        },
+        &quot;-webkit-marquee-speed&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;MarqueeSpeed&quot;
+            }
+        },
+        &quot;-webkit-marquee-style&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;slide&quot;,
+                &quot;scroll&quot;,
+                &quot;alternate&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;MarqueeBehavior&quot;
+            }
+        },
+        &quot;-webkit-mask&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;-webkit-mask-image&quot;,
+                    &quot;-webkit-mask-source-type&quot;,
+                    &quot;-webkit-mask-position-x&quot;,
+                    &quot;-webkit-mask-position-y&quot;,
+                    &quot;-webkit-mask-size&quot;,
+                    &quot;-webkit-mask-repeat-x&quot;,
+                    &quot;-webkit-mask-repeat-y&quot;,
+                    &quot;-webkit-mask-origin&quot;,
+                    &quot;-webkit-mask-clip&quot;
+                ]
+            }
+        },
+        &quot;-webkit-mask-box-image&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialNinePieceImage&quot;,
+                &quot;converter&quot;: &quot;BorderMask&lt;CSSPropertyWebkitMaskBoxImage&gt;&quot;
+            }
+        },
+        &quot;-webkit-mask-box-image-outset&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;-webkit-mask-box-image-repeat&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;-webkit-mask-box-image-slice&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;-webkit-mask-box-image-source&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;StyleImage&lt;CSSPropertyWebkitMaskBoxImageSource&gt;&quot;
+            }
+        },
+        &quot;-webkit-mask-box-image-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;-webkit-mask-clip&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Clip&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-mask-composite&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Composite&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-mask-image&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Image&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-mask-origin&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Origin&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-mask-position&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;-webkit-mask-position-x&quot;,
+                    &quot;-webkit-mask-position-y&quot;
+                ]
+            }
+        },
+        &quot;-webkit-mask-position-x&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;XPosition&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-mask-position-y&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;YPosition&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-mask-repeat&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;-webkit-mask-repeat-x&quot;,
+                    &quot;-webkit-mask-repeat-y&quot;
+                ]
+            }
+        },
+        &quot;-webkit-mask-repeat-x&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;RepeatX&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-mask-repeat-y&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;RepeatY&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-mask-size&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;Size&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-mask-source-type&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;MaskSourceType&quot;,
+                &quot;fill-layer-property&quot;: true
+            }
+        },
+        &quot;-webkit-max-logical-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-max-logical-height&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-min-logical-width&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-min-logical-height&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-nbsp-mode&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;normal&quot;,
+                &quot;space&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialNBSPMode&quot;,
+                &quot;setter&quot;: &quot;setNBSPMode&quot;
+            }
+        },
+        &quot;order&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-order&quot;
+                ]
+            }
+        },
+        &quot;-webkit-padding-after&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-padding-before&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-padding-end&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-padding-start&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;perspective&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-perspective&quot;
+                ],
+                &quot;conditional-converter&quot;: &quot;Perspective&quot;
+            }
+        },
+        &quot;perspective-origin&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-perspective-origin&quot;
+                ],
+                &quot;longhands&quot;: [
+                    &quot;perspective-origin-x&quot;,
+                    &quot;perspective-origin-y&quot;
+                ]
+            }
+        },
+        &quot;perspective-origin-x&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-perspective-origin-x&quot;
+                ],
+                &quot;converter&quot;: &quot;PositionComponentX&quot;
+            }
+        },
+        &quot;perspective-origin-y&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-perspective-origin-y&quot;
+                ],
+                &quot;converter&quot;: &quot;PositionComponentY&quot;
+            }
+        },
+        &quot;-webkit-print-color-adjust&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;exact&quot;,
+                &quot;economy&quot;
+            ]
+        },
+        &quot;-webkit-rtl-ordering&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;logical&quot;,
+                &quot;visual&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialRTLOrdering&quot;,
+                &quot;setter&quot;: &quot;setRTLOrdering&quot;
+            }
+        },
+        &quot;-webkit-scroll-snap-points-x&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;ScrollSnapPoints&quot;,
+                &quot;custom&quot;: &quot;Initial|Inherit&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_SCROLL_SNAP&quot;
+            }
+        },
+        &quot;-webkit-scroll-snap-points-y&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;ScrollSnapPoints&quot;,
+                &quot;custom&quot;: &quot;Initial|Inherit&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_SCROLL_SNAP&quot;
+            }
+        },
+        &quot;-webkit-scroll-snap-type&quot;: {
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;mandatory&quot;,
+                &quot;proximity&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_SCROLL_SNAP&quot;
+            }
+        },
+        &quot;-webkit-scroll-snap-destination&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;SnapCoordinatePair&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_SCROLL_SNAP&quot;
+            }
+        },
+        &quot;-webkit-scroll-snap-coordinate&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;ScrollSnapCoordinates&quot;,
+                &quot;converter&quot;: &quot;ScrollSnapCoordinates&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_SCROLL_SNAP&quot;
+            }
+        },
+        &quot;-webkit-svg-shadow&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;custom&quot;: &quot;All&quot;,
+                &quot;svg&quot;: true
+            }
+        },
+        &quot;-webkit-text-combine&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;none&quot;,
+                &quot;horizontal&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-epub-text-combine&quot;
+                ]
+            }
+        },
+        &quot;-webkit-text-align-last&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;left&quot;,
+                &quot;right&quot;,
+                &quot;center&quot;,
+                &quot;justify&quot;,
+                &quot;start&quot;,
+                &quot;end&quot;,
+                &quot;auto&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;enable-if&quot;: &quot;ENABLE_CSS3_TEXT&quot;
+            }
+        },
+        &quot;-webkit-text-justify&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;inter-word&quot;,
+                &quot;distribute&quot;,
+                &quot;auto&quot;,
+                &quot;none&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;enable-if&quot;: &quot;ENABLE_CSS3_TEXT&quot;
+            }
+        },
+        &quot;-webkit-text-decoration&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;-webkit-text-decoration-line&quot;,
+                    &quot;-webkit-text-decoration-style&quot;,
+                    &quot;-webkit-text-decoration-color&quot;
+                ]
+            }
+        },
+        &quot;-webkit-text-decoration-line&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;TextDecoration&quot;,
+                &quot;converter&quot;: &quot;TextDecoration&quot;
+            }
+        },
+        &quot;-webkit-text-decoration-style&quot;: {
+            &quot;values&quot;: [
+                &quot;solid&quot;,
+                &quot;double&quot;,
+                &quot;dotted&quot;,
+                &quot;dashed&quot;,
+                &quot;wavy&quot;
+            ]
+        },
+        &quot;-webkit-text-decoration-color&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;invalidColor&quot;,
+                &quot;visited-link-color-support&quot;: true
+            }
+        },
+        &quot;-webkit-text-decoration-skip&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;TextDecorationSkip&quot;
+            }
+        },
+        &quot;-webkit-text-underline-position&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;TextUnderlinePosition&quot;
+            }
+        },
+        &quot;-webkit-text-decorations-in-effect&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true
+            }
+        },
+        &quot;-webkit-text-emphasis&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-epub-text-emphasis&quot;,
+                    &quot;text-emphasis&quot;
+                ],
+                &quot;longhands&quot;: [
+                    &quot;-webkit-text-emphasis-style&quot;,
+                    &quot;-webkit-text-emphasis-color&quot;
+                ]
+            }
+        },
+        &quot;-webkit-text-emphasis-color&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-epub-text-emphasis-color&quot;,
+                    &quot;text-emphasis-color&quot;
+                ],
+                &quot;initial&quot;: &quot;invalidColor&quot;,
+                &quot;visited-link-color-support&quot;: true
+            }
+        },
+        &quot;-webkit-text-emphasis-position&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;text-emphasis-position&quot;
+                ],
+                &quot;converter&quot;: &quot;TextEmphasisPosition&quot;
+            }
+        },
+        &quot;-webkit-text-emphasis-style&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-epub-text-emphasis-style&quot;,
+                    &quot;text-emphasis-style&quot;
+                ],
+                &quot;custom&quot;: &quot;All&quot;
+            }
+        },
+        &quot;-webkit-text-fill-color&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;invalidColor&quot;,
+                &quot;visited-link-color-support&quot;: true
+            }
+        },
+        &quot;-webkit-text-security&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;disc&quot;,
+                &quot;circle&quot;,
+                &quot;square&quot;,
+                &quot;none&quot;
+            ]
+        },
+        &quot;-webkit-text-stroke&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;longhands&quot;: [
+                    &quot;-webkit-text-stroke-width&quot;,
+                    &quot;-webkit-text-stroke-color&quot;
+                ]
+            }
+        },
+        &quot;-webkit-text-stroke-color&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;invalidColor&quot;,
+                &quot;visited-link-color-support&quot;: true
+            }
+        },
+        &quot;-webkit-text-stroke-width&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;TextStrokeWidth&quot;
+            }
+        },
+        &quot;transform&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-transform&quot;
+                ],
+                &quot;converter&quot;: &quot;Transform&quot;
+            }
+        },
+        &quot;transform-origin&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-transform-origin&quot;
+                ],
+                &quot;longhands&quot;: [
+                    &quot;transform-origin-x&quot;,
+                    &quot;transform-origin-y&quot;,
+                    &quot;transform-origin-z&quot;
+                ]
+            }
+        },
+        &quot;transform-origin-x&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-transform-origin-x&quot;
+                ],
+                &quot;converter&quot;: &quot;PositionComponentX&quot;
+            }
+        },
+        &quot;transform-origin-y&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-transform-origin-y&quot;
+                ],
+                &quot;converter&quot;: &quot;PositionComponentY&quot;
+            }
+        },
+        &quot;transform-origin-z&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-transform-origin-z&quot;
+                ],
+                &quot;converter&quot;: &quot;ComputedLength&lt;float&gt;&quot;
+            }
+        },
+        &quot;transform-style&quot;: {
+            &quot;values&quot;: [
+                &quot;flat&quot;,
+                &quot;preserve-3d&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;TransformStyle3D&quot;
+            }
+        },
+        &quot;-webkit-transform-style&quot;: {
+            &quot;*&quot;: [
+                &quot;Keeping -webkit-transform-style around is how we'll detect legacy content. At that point&quot;,
+                &quot;we'll have to add a custom builder and a new ETransformStyle3D type.&quot;
+            ],
+            &quot;values&quot;: [
+                &quot;flat&quot;,
+                &quot;preserve-3d&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;TransformStyle3D&quot;
+            }
+        },
+        &quot;-webkit-user-drag&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;none&quot;,
+                &quot;element&quot;
+            ]
+        },
+        &quot;-webkit-user-modify&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: []
+        },
+        &quot;-webkit-user-select&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: []
+        },
+        &quot;-webkit-flow-into&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;FlowThread&quot;,
+                &quot;converter&quot;: &quot;StringOrNone&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_REGIONS&quot;
+            }
+        },
+        &quot;-webkit-flow-from&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;RegionThread&quot;,
+                &quot;converter&quot;: &quot;StringOrNone&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_REGIONS&quot;
+            }
+        },
+        &quot;-webkit-region-fragment&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;break&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_REGIONS&quot;
+            }
+        },
+        &quot;-webkit-region-break-after&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;always&quot;,
+                &quot;avoid&quot;,
+                &quot;left&quot;,
+                &quot;right&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBreakBetween&quot;,
+                &quot;name-for-methods&quot;: &quot;BreakAfter&quot;,
+                &quot;converter&quot;: &quot;RegionBreakBetween&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_REGIONS&quot;
+            }
+        },
+        &quot;-webkit-region-break-before&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;always&quot;,
+                &quot;avoid&quot;,
+                &quot;left&quot;,
+                &quot;right&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBreakBetween&quot;,
+                &quot;name-for-methods&quot;: &quot;BreakBefore&quot;,
+                &quot;converter&quot;: &quot;RegionBreakBetween&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_REGIONS&quot;
+            }
+        },
+        &quot;-webkit-region-break-inside&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;avoid&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;initial&quot;: &quot;initialBreakInside&quot;,
+                &quot;name-for-methods&quot;: &quot;BreakInside&quot;,
+                &quot;converter&quot;: &quot;RegionBreakInside&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_REGIONS&quot;
+            }
+        },
+        &quot;shape-outside&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-shape-outside&quot;
+                ],
+                &quot;converter&quot;: &quot;ShapeValue&quot;
+            }
+        },
+        &quot;shape-margin&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-shape-margin&quot;
+                ],
+                &quot;converter&quot;: &quot;Length&quot;
+            }
+        },
+        &quot;shape-image-threshold&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;aliases&quot;: [
+                    &quot;-webkit-shape-image-threshold&quot;
+                ],
+                &quot;converter&quot;: &quot;NumberOrAuto&lt;float&gt;&quot;
+            }
+        },
+        &quot;max-zoom&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_DEVICE_ADAPTATION&quot;
+            }
+        },
+        &quot;min-zoom&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_DEVICE_ADAPTATION&quot;
+            }
+        },
+        &quot;orientation&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_DEVICE_ADAPTATION&quot;
+            }
+        },
+        &quot;user-zoom&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;skip-builder&quot;: true,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_DEVICE_ADAPTATION&quot;
+            }
+        },
+        &quot;-webkit-tap-highlight-color&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;codegen-properties&quot;: {
+                &quot;converter&quot;: &quot;TapHighlightColor&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_TOUCH_EVENTS&quot;
+            }
+        },
+        &quot;-webkit-dashboard-region&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;DashboardRegions&quot;,
+                &quot;custom&quot;: &quot;Value&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_DASHBOARD_SUPPORT&quot;
+            }
+        },
+        &quot;-webkit-overflow-scrolling&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;touch&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;UseTouchOverflowScrolling&quot;,
+                &quot;converter&quot;: &quot;OverflowScrolling&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_ACCELERATED_OVERFLOW_SCROLLING&quot;
+            }
+        },
+        &quot;touch-action&quot;: {
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;manipulation&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;enable-if&quot;: &quot;ENABLE_TOUCH_EVENTS&quot;
+            }
+        },
+        &quot;-webkit-touch-callout&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;default&quot;,
+                &quot;none&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;TouchCalloutEnabled&quot;,
+                &quot;converter&quot;: &quot;TouchCallout&quot;,
+                &quot;enable-if&quot;: &quot;WTF_PLATFORM_IOS&quot;
+            }
+        },
+        &quot;-apple-trailing-word&quot;: {
+            &quot;inherited&quot;: true,
+            &quot;values&quot;: [
+                &quot;auto&quot;,
+                &quot;-webkit-partially-balanced&quot;
+            ],
+            &quot;codegen-properties&quot;: {
+                &quot;name-for-methods&quot;: &quot;TrailingWord&quot;,
+                &quot;enable-if&quot;: &quot;ENABLE_CSS_TRAILING_WORD&quot;
+            }
+        },
+        &quot;-apple-pay-button-style&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;enable-if&quot;: &quot;ENABLE_APPLE_PAY&quot;
+            }
+        },
+        &quot;-apple-pay-button-type&quot;: {
+            &quot;codegen-properties&quot;: {
+                &quot;enable-if&quot;: &quot;ENABLE_APPLE_PAY&quot;
+            }
+        }
+    }
+}
</ins></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertyNamesin"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/css/CSSPropertyNames.in (209000 => 209001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPropertyNames.in        2016-11-28 18:28:50 UTC (rev 209000)
+++ trunk/Source/WebCore/css/CSSPropertyNames.in        2016-11-28 19:11:38 UTC (rev 209001)
</span><span class="lines">@@ -1,691 +0,0 @@
</span><del>-//
-// CSS property names
-//
-// Some properties are used internally, but are not part of CSS. They are used to get
-// HTML4 compatibility in the rendering engine.
-//
-// Microsoft extensions are documented here:
-// http://msdn.microsoft.com/workshop/author/css/reference/attributes.asp
-//
-// StyleBuilder options:
-// * Initial:
-// Overrides the method name on RenderStyle to get the initial value for
-// the property. By default, initial' + PropertyId is used (e.g.
-// initialBorderCollapse()).
-//
-// * Getter:
-// Overrides the method name on RenderStyle to get the current value for
-// the property. By default, the PropertyId with first letter lowercased
-// is used (e.g. borderCollapse()).
-//
-// * Setter:
-// Overrides the method name on RenderStyle to set the current value for
-// the property. By default, 'set' + PropertyId is used (e.g.
-// setBorderCollapse()).
-//
-// * NameForMethods:
-// Overrides the Getter / Setter / Initial method names on RenderStyle.
-// For e.g. &quot;NameForMethods=OverflowWrap&quot; will use
-// &quot;overflowWrap() / setOverflowWrap() / initialOverflowWrap()&quot;.
-//
-// * Converter=XXX:
-// If converting the input CSSValue into the setter method argument type
-// is not trivial (i.e. the CSSPrimitiveValue cannot be implicitly converted
-// to the expected type), then you can indicate that a Converter helper
-// function in css/StyleBuilderConverter.h should be used.
-//
-// * ConditionalConverter=XXX:
-// Similar to Converter=XXX but the converter function returns a std::optional&lt;&gt;
-// to indicate if the property setter should be called or not.
-//
-// * Custom=[Initial|Value|Inherit|All]:
-// Custom=Initial option is used to indicate that the CSS property requires
-// special handling to set its initial value.
-// Custom=Inherit option is used to indicate that the CSS property requires
-// special handling to set its inherit value.
-// Custom=Value option is used to indicate that the CSS property requires special
-// handling to set its value, and a regular Converter helper cannot be
-// used. The Custom code for the property should be located in
-// css/StyleBuilderCustom.h and named applyValue[CSSPropertyName]().
-// If special handling is also needed to apply inherit or initial value, use
-// Custom=All. Alternatively, several '|'-separated options can be passed:
-// e.g. 'Custom=Inherit|Value&quot;.
-//
-// * SVG:
-// Indicates that this is an SVG CSS property and that the corresponding
-// methods are on SVGRenderStyle instead of RenderStyle.
-//
-// * AutoFunctions:
-// Indicates that this CSS property requires handling of &quot;auto&quot; and has
-// corresponding hasAutoXXX() / setHasAutoXXX() methods on RenderStyle.
-//
-// * VisitedLinkColorSupport:
-// Indicates that this CSS property is a color property with a
-// &quot;setVisitedLinkXXX()&quot; setter on RenderStyle to be called when
-// StyleResolver::applyPropertyToVisitedLinkStyle() return true.
-// The regular setter on RenderStyle will only be called if
-// StyleResolver::applyPropertyToRegularStyle() returns true.
-//
-// * NoDefaultColor:
-// Should only with used with &quot;VisitedLinkColorSupport&quot;. It indicates that for
-// setting the inherited value, it will not fallback to using the parent's
-// &quot;color&quot; property if the inherited color is invalid.
-//
-// * AnimationProperty:
-// Indicates that this CSS property is an animation / transition property.
-// It must have corresponding methods on the Animation class.
-//
-// * FontProperty:
-// Indicates that this CSS property is font-related. It must have corresponding
-// methods on the FontDescription class.
-//
-// * FillLayerProperty:
-// Indicates that this CSS property is a FillLayer property. It must have
-// corresponding methods on the FillLayer class.
-//
-// * SkipBuilder:
-// Ignore this property in the StyleBuilder.
-//
-// * Longhands=property1|property2|...:
-// This is a shorthand property so it should not use the StyleBuilder. An
-// ASSERT_NOT_REACHED() will be generated for this property in the StyleBuilder.
-// property1, property2, ... are the longhands for this shorthand property. A
-// corresponding &quot;StylePropertyShorthand propertyIdShorthand()&quot; function will be
-// generated in StylePropertyShorthandFunctions.h header.
-
-
-// high-priority property names have to be listed first, to simplify the check
-// for applying them first.
-color [Inherited, VisitedLinkColorSupport, NoDefaultColor]
-direction [Inherited, Custom=Value]
-display [Custom=Inherit|Value]
-font-family [Inherited, Custom=All]
-font-size [Inherited, Custom=All]
-font-style [Inherited, FontProperty, NameForMethods=Italic]
-font-weight [Inherited, Custom=All]
-text-rendering [Inherited, FontProperty, NameForMethods=TextRenderingMode]
-font-feature-settings [Inherited, FontProperty, Custom=Initial|Inherit, Converter=FontFeatureSettings, NameForMethods=FeatureSettings]
-#if defined(ENABLE_VARIATION_FONTS) &amp;&amp; ENABLE_VARIATION_FONTS
-font-variation-settings [Inherited, FontProperty, Custom=Initial|Inherit, Converter=FontVariationSettings, NameForMethods=VariationSettings]
-#endif
--webkit-font-kerning [Inherited, FontProperty, NameForMethods=Kerning]
-font-kerning = -webkit-font-kerning
--webkit-font-smoothing [Inherited, FontProperty]
-font-variant-ligatures [Inherited, FontProperty, NameForMethods=VariantLigatures, Custom=All]
-font-variant-position [Inherited, FontProperty, NameForMethods=VariantPosition]
-font-variant-caps [Inherited, FontProperty, NameForMethods=VariantCaps]
-font-variant-numeric [Inherited, FontProperty, NameForMethods=VariantNumeric, Custom=All]
-font-variant-alternates [Inherited, FontProperty, NameForMethods=VariantAlternates]
-font-variant-east-asian [Inherited, FontProperty, NameForMethods=VariantEastAsian, Custom=All]
--webkit-locale [Inherited, FontProperty, Custom=Value]
--webkit-text-orientation [Inherited, Custom=Value]
--epub-text-orientation = -webkit-text-orientation
-#if defined(ENABLE_TEXT_AUTOSIZING) &amp;&amp; ENABLE_TEXT_AUTOSIZING
--webkit-text-size-adjust [Inherited, Custom=Value]
-#endif
-writing-mode [Inherited, Custom=Value]
--webkit-writing-mode = writing-mode
--epub-writing-mode = writing-mode
--webkit-text-zoom [Inherited, Custom=Value]
-zoom [Custom=All]
-font-synthesis [Inherited, FontProperty, Converter=FontSynthesis]
-
-// Keep this in between the highest priority props and the lower ones.
--webkit-ruby-position [Inherited]
-
-// The remaining properties are listed in alphabetical order
-alignment-baseline [SVG]
-all [Longhands=all]
-animation [Longhands=animation-name|animation-duration|animation-timing-function|animation-delay|animation-iteration-count|animation-direction|animation-fill-mode|animation-play-state]
-animation-delay [AnimationProperty, NameForMethods=Delay]
-animation-direction [AnimationProperty, NameForMethods=Direction]
-animation-duration [AnimationProperty, NameForMethods=Duration]
-animation-fill-mode [AnimationProperty, NameForMethods=FillMode]
-animation-iteration-count [AnimationProperty, NameForMethods=IterationCount]
-animation-name [AnimationProperty, NameForMethods=Name]
-animation-play-state [AnimationProperty, NameForMethods=PlayState]
-animation-timing-function [AnimationProperty, NameForMethods=TimingFunction]
-background [Longhands=background-image|background-position-x|background-position-y|background-size|background-repeat-x|background-repeat-y|background-attachment|background-origin|background-clip|background-color]
-background-attachment [FillLayerProperty, NameForMethods=Attachment]
-background-blend-mode [FillLayerProperty, NameForMethods=BlendMode]
-background-clip [FillLayerProperty, NameForMethods=Clip]
-background-color [VisitedLinkColorSupport, NoDefaultColor]
-background-image [FillLayerProperty, NameForMethods=Image]
-background-origin [FillLayerProperty, NameForMethods=Origin]
-background-position [Longhands=background-position-x|background-position-y]
-background-position-x [FillLayerProperty, NameForMethods=XPosition]
-background-position-y [FillLayerProperty, NameForMethods=YPosition]
-background-repeat [Longhands=background-repeat-x|background-repeat-y]
-background-repeat-x [FillLayerProperty, NameForMethods=RepeatX]
-background-repeat-y [FillLayerProperty, NameForMethods=RepeatY]
-background-size [FillLayerProperty, NameForMethods=Size]
-baseline-shift [SVG, Custom=Value]
-border [Longhands=border-top-color|border-top-style|border-top-width|border-right-color|border-right-style|border-right-width|border-bottom-color|border-bottom-style|border-bottom-width|border-left-color|border-left-style|border-left-width]
-border-bottom [Longhands=border-bottom-width|border-bottom-style|border-bottom-color]
-border-bottom-color [VisitedLinkColorSupport, Initial=invalidColor]
-border-bottom-left-radius [Initial=initialBorderRadius, Converter=Radius]
--webkit-border-bottom-left-radius = border-bottom-left-radius
-border-bottom-right-radius [Initial=initialBorderRadius, Converter=Radius]
--webkit-border-bottom-right-radius = border-bottom-right-radius
-border-bottom-style [Initial=initialBorderStyle]
-border-bottom-width [Initial=initialBorderWidth, Converter=LineWidth&lt;float&gt;]
-border-collapse [Inherited]
-border-color [Longhands=border-top-color|border-right-color|border-bottom-color|border-left-color]
-border-image [Longhands=border-image-source|border-image-slice|border-image-width|border-image-outset|border-image-repeat]
-border-image-outset [Custom=All]
-border-image-repeat [Custom=All]
-border-image-slice [Custom=All]
-border-image-source [Converter=StyleImage&lt;CSSPropertyBorderImageSource&gt;]
-border-image-width [Custom=All]
-border-left [Longhands=border-left-width|border-left-style|border-left-color]
-border-left-color [VisitedLinkColorSupport, Initial=invalidColor]
-border-left-style [Initial=initialBorderStyle]
-border-left-width [Initial=initialBorderWidth, Converter=LineWidth&lt;float&gt;]
-border-radius [Longhands=border-top-left-radius|border-top-right-radius|border-bottom-right-radius|border-bottom-left-radius]
-border-right [Longhands=border-right-width|border-right-style|border-right-color]
-border-right-color [VisitedLinkColorSupport, Initial=invalidColor]
-border-right-style [Initial=initialBorderStyle]
-border-right-width [Initial=initialBorderWidth, Converter=LineWidth&lt;float&gt;]
-border-spacing [Inherited, Longhands=-webkit-border-horizontal-spacing|-webkit-border-vertical-spacing]
-border-style [Longhands=border-top-style|border-right-style|border-bottom-style|border-left-style]
-border-top [Longhands=border-top-width|border-top-style|border-top-color]
-border-top-color [VisitedLinkColorSupport, Initial=invalidColor]
-border-top-left-radius [Initial=initialBorderRadius, Converter=Radius]
--webkit-border-top-left-radius = border-top-left-radius
-border-top-right-radius [Initial=initialBorderRadius, Converter=Radius]
--webkit-border-top-right-radius = border-top-right-radius
-border-top-style [Initial=initialBorderStyle]
-border-top-width [Initial=initialBorderWidth, Converter=LineWidth&lt;float&gt;]
-border-width [Longhands=border-top-width|border-right-width|border-bottom-width|border-left-width]
-bottom [Initial=initialOffset, Converter=LengthOrAuto]
-box-shadow [Custom=All]
-box-sizing
-break-after [Initial=initialBreakBetween]
-break-before [Initial=initialBreakBetween]
-break-inside [Initial=initialBreakInside]
-buffered-rendering [SVG]
-// -webkit-box-sizing worked in Safari 4 and earlier.
--webkit-box-sizing = box-sizing
-caption-side [Inherited]
--epub-caption-side = caption-side
-clear
-clip [Custom=All]
--webkit-clip-path [Converter=ClipPath]
-clip-path [SVG, Converter=SVGURIReference, NameForMethods=ClipperResource]
-clip-rule [Inherited, SVG]
-color-interpolation [Inherited, SVG]
-color-interpolation-filters [Inherited, SVG]
-color-profile [SkipBuilder]
-color-rendering [Inherited, SVG]
-content [Custom=All]
-counter-increment [Custom=All]
-counter-reset [Custom=All]
-cursor [Inherited, Custom=All]
-#if defined(ENABLE_CURSOR_VISIBILITY) &amp;&amp; ENABLE_CURSOR_VISIBILITY
--webkit-cursor-visibility [Inherited]
-#endif
-cx [Initial=initialZeroLength, Converter=Length]
-cy [Initial=initialZeroLength, Converter=Length]
-dominant-baseline [SVG]
-empty-cells [Inherited]
-enable-background [SkipBuilder]
-fill [Inherited, SVG, Custom=All]
-fill-opacity [Inherited, SVG, Converter=Opacity]
-fill-rule [Inherited, SVG]
-float [NameForMethods=Floating]
-flood-color [SVG, Converter=SVGColor]
-flood-opacity [SVG, Converter=Opacity]
-font [Inherited, Longhands=font-family|font-size|font-style|font-variant-caps|font-weight|line-height]
-font-variant [Inherited, Longhands=font-variant-ligatures|font-variant-position|font-variant-caps|font-variant-numeric|font-variant-alternates|font-variant-east-asian]
-font-stretch [SkipBuilder]
-glyph-orientation-horizontal [Inherited, SVG, Converter=GlyphOrientation]
-glyph-orientation-vertical [Inherited, SVG, Converter=GlyphOrientationOrAuto]
-hanging-punctuation [Inherited, Converter=HangingPunctuation]
-height [Initial=initialSize, Converter=LengthSizing]
-#if defined(ENABLE_CSS_IMAGE_ORIENTATION) &amp;&amp; ENABLE_CSS_IMAGE_ORIENTATION
-image-orientation [Inherited]
-#endif
-image-rendering [Inherited]
-#if defined(ENABLE_CSS_IMAGE_RESOLUTION) &amp;&amp; ENABLE_CSS_IMAGE_RESOLUTION
-image-resolution [Inherited, Custom=All]
-#endif
-kerning [Inherited, SVG, Converter=SVGLengthValue]
-left [Initial=initialOffset, Converter=LengthOrAuto]
-letter-spacing [Inherited, Converter=Spacing]
-lighting-color [SVG, Converter=SVGColor]
-#if defined(ENABLE_TEXT_AUTOSIZING) &amp;&amp; ENABLE_TEXT_AUTOSIZING
-line-height [Inherited, Custom=All]
-#else
-line-height [Inherited, Getter=specifiedLineHeight, ConditionalConverter=LineHeight]
-#endif
-list-style [Inherited, Longhands=list-style-type|list-style-position|list-style-image]
-list-style-image [Inherited, Converter=StyleImage&lt;CSSPropertyListStyleImage&gt;]
-list-style-position [Inherited]
-list-style-type [Inherited]
-margin [Longhands=margin-top|margin-right|margin-bottom|margin-left]
-margin-bottom [Initial=initialMargin, Converter=LengthOrAuto]
-margin-left [Initial=initialMargin, Converter=LengthOrAuto]
-margin-right [Initial=initialMargin, Converter=LengthOrAuto]
-margin-top [Initial=initialMargin, Converter=LengthOrAuto]
-marker [Inherited, Longhands=marker-start|marker-mid|marker-end]
-marker-end [Inherited, SVG, Converter=SVGURIReference, NameForMethods=MarkerEndResource]
-marker-mid [Inherited, SVG, Converter=SVGURIReference, NameForMethods=MarkerMidResource]
-marker-start [Inherited, SVG, Converter=SVGURIReference, NameForMethods=MarkerStartResource]
-mask [SVG, Converter=SVGURIReference, NameForMethods=MaskerResource]
-mask-type [SVG]
-max-height [Initial=initialMaxSize, Converter=LengthMaxSizing]
-max-width [Initial=initialMaxSize, Converter=LengthMaxSizing]
-min-height [Initial=initialMinSize, Converter=LengthSizing]
-min-width [Initial=initialMinSize, Converter=LengthSizing]
-object-fit
-object-position [Converter=ObjectPosition]
-opacity
-// Honor -webkit-opacity as a synonym for opacity. This was the only syntax that worked in Safari 1.1,
-// and may be in use on some websites and widgets.
--webkit-opacity = opacity
-orphans [Inherited, AutoFunctions]
-outline [Longhands=outline-color|outline-style|outline-width]
-outline-color [VisitedLinkColorSupport, Initial=invalidColor]
-outline-offset [Converter=ComputedLength&lt;float&gt;]
-outline-style [Custom=All]
-outline-width [Converter=LineWidth&lt;float&gt;]
-overflow [Longhands=overflow-x|overflow-y]
-overflow-wrap
-overflow-x
-overflow-y
-padding [Longhands=padding-top|padding-right|padding-bottom|padding-left]
-padding-bottom [Initial=initialPadding, Converter=Length]
-padding-left [Initial=initialPadding, Converter=Length]
-padding-right [Initial=initialPadding, Converter=Length]
-padding-top [Initial=initialPadding, Converter=Length]
-page [SkipBuilder]
-page-break-after [Initial=initialBreakBetween, NameForMethods=BreakAfter, Converter=PageBreakBetween]
-page-break-before [Initial=initialBreakBetween, NameForMethods=BreakBefore, Converter=PageBreakBetween]
-page-break-inside [Initial=initialBreakInside, NameForMethods=BreakInside, Converter=PageBreakInside]
-paint-order [SVG, Converter=PaintOrder]
-pointer-events [Inherited]
-position
-quotes [Inherited, Converter=Quotes]
-r [Initial=initialZeroLength, Converter=Length]
-resize [Inherited, Converter=Resize]
-right [Initial=initialOffset, Converter=LengthOrAuto]
-rx [Initial=initialZeroLength, Converter=Length]
-ry [Initial=initialZeroLength, Converter=Length]
-shape-rendering [Inherited, SVG]
-size [Custom=All]
-src [SkipBuilder]
-stop-color [SVG, Converter=SVGColor]
-stop-opacity [SVG, Converter=Opacity]
-stroke [Inherited, SVG, Custom=All]
-stroke-dasharray [Inherited, SVG, Converter=StrokeDashArray, NameForMethods=StrokeDashArray]
-stroke-dashoffset [Inherited, NameForMethods=StrokeDashOffset, Initial=initialZeroLength, Converter=Length]
-stroke-linecap [Inherited, SVG, NameForMethods=CapStyle]
-stroke-linejoin [Inherited, SVG, NameForMethods=JoinStyle]
-stroke-miterlimit [Inherited, SVG, Converter=Number&lt;float&gt;, NameForMethods=StrokeMiterLimit]
-stroke-opacity [Inherited, SVG, Converter=Opacity]
-stroke-width [Inherited, Initial=initialOneLength, Converter=Length]
-speak [Inherited]
-table-layout
-tab-size [Inherited]
-text-align [Inherited, Converter=TextAlign]
-text-anchor [Inherited, SVG]
-text-decoration [Converter=TextDecoration]
-text-indent [Inherited, Custom=All]
-text-line-through [SkipBuilder]
-text-line-through-color [SkipBuilder]
-text-line-through-mode [SkipBuilder]
-text-line-through-style [SkipBuilder]
-text-line-through-width [SkipBuilder]
-text-overflow
-text-overline [SkipBuilder]
-text-overline-color [SkipBuilder]
-text-overline-mode [SkipBuilder]
-text-overline-style [SkipBuilder]
-text-overline-width [SkipBuilder]
-text-shadow [Inherited, Custom=All]
-text-transform [Inherited]
--epub-text-transform = text-transform
-text-underline [SkipBuilder]
-text-underline-color [SkipBuilder]
-text-underline-mode [SkipBuilder]
-text-underline-style [SkipBuilder]
-text-underline-width [SkipBuilder]
-top [Initial=initialOffset, Converter=LengthOrAuto]
-transition [Longhands=transition-property|transition-duration|transition-timing-function|transition-delay]
-transition-delay [AnimationProperty, NameForMethods=Delay]
-transition-duration [AnimationProperty, NameForMethods=Duration]
-transition-property [AnimationProperty, NameForMethods=Property]
-transition-timing-function [AnimationProperty, NameForMethods=TimingFunction]
-unicode-bidi
-unicode-range [SkipBuilder]
-vector-effect [SVG]
-vertical-align [Custom=Value]
-visibility [Inherited]
-white-space [Inherited]
-widows [Inherited, AutoFunctions]
-width [Initial=initialSize, Converter=LengthSizing]
-will-change [Custom=Value]
-word-break [Inherited]
--epub-word-break = word-break
-word-spacing [Inherited, ConditionalConverter=WordSpacing]
-word-wrap [Inherited=EOverflowWrap, NameForMethods=OverflowWrap]
-x [Initial=initialZeroLength, Converter=Length]
-y [Initial=initialZeroLength, Converter=Length]
-z-index [AutoFunctions]
-alt [NameForMethods=ContentAltText, Custom=Value]
--webkit-alt = alt
--webkit-animation = animation
--webkit-animation-delay = animation-delay
--webkit-animation-direction = animation-direction
--webkit-animation-duration = animation-duration
--webkit-animation-fill-mode = animation-fill-mode
--webkit-animation-iteration-count = animation-iteration-count
--webkit-animation-name = animation-name
--webkit-animation-play-state = animation-play-state
--webkit-animation-timing-function = animation-timing-function
-#if defined(ENABLE_CSS_ANIMATIONS_LEVEL_2) &amp;&amp; ENABLE_CSS_ANIMATIONS_LEVEL_2
--webkit-animation-trigger [AnimationProperty, NameForMethods=Trigger]
-#endif
--webkit-appearance
--webkit-aspect-ratio [Inherited, Custom=All]
--webkit-backface-visibility
--webkit-background-clip [FillLayerProperty, NameForMethods=Clip]
--webkit-background-composite [FillLayerProperty, NameForMethods=Composite]
--webkit-background-origin [FillLayerProperty, NameForMethods=Origin]
-// -webkit-background-size differs from background-size only in the interpretation of
-// a single value: -webkit-background-size: l; is equivalent to background-size: l l;
-// whereas background-size: l; is equivalent to background-size: l auto;
--webkit-background-size [FillLayerProperty, NameForMethods=Size]
--webkit-border-after [Longhands=-webkit-border-after-width|-webkit-border-after-style|-webkit-border-after-color]
--webkit-border-after-color [SkipBuilder]
--webkit-border-after-style [SkipBuilder]
--webkit-border-after-width [SkipBuilder]
--webkit-border-before [Longhands=-webkit-border-before-width|-webkit-border-before-style|-webkit-border-before-color]
--webkit-border-before-color [SkipBuilder]
--webkit-border-before-style [SkipBuilder]
--webkit-border-before-width [SkipBuilder]
--webkit-border-end [Longhands=-webkit-border-end-width|-webkit-border-end-style|-webkit-border-end-color]
--webkit-border-end-color [SkipBuilder]
--webkit-border-end-style [SkipBuilder]
--webkit-border-end-width [SkipBuilder]
--webkit-border-fit
--webkit-border-horizontal-spacing [Inherited, NameForMethods=HorizontalBorderSpacing, Converter=ComputedLength&lt;float&gt;]
--webkit-border-image [Initial=initialNinePieceImage, Converter=BorderImage&lt;CSSPropertyWebkitBorderImage&gt;]
-// -webkit-border-radius differs from border-radius only in the interpretation of
-// a value consisting of two lengths: &quot;-webkit-border-radius: l1 l2;&quot; is equivalent
-// to &quot;border-radius: l1 / l2;&quot;
--webkit-border-radius [Longhands=border-top-left-radius|border-top-right-radius|border-bottom-right-radius|border-bottom-left-radius]
--webkit-border-start [Longhands=-webkit-border-start-width|-webkit-border-start-style|-webkit-border-start-color]
--webkit-border-start-color [SkipBuilder]
--webkit-border-start-style [SkipBuilder]
--webkit-border-start-width [SkipBuilder]
--webkit-border-vertical-spacing [Inherited, NameForMethods=VerticalBorderSpacing, Converter=ComputedLength&lt;float&gt;]
--webkit-box-align
--webkit-box-direction [Inherited]
--webkit-box-flex
--webkit-box-flex-group
--webkit-box-lines
--webkit-box-ordinal-group
--webkit-box-orient
--webkit-box-pack
--webkit-box-reflect [Converter=Reflection]
-// -webkit-box-shadow differs from box-shadow in its treatement of blur radii &gt; 8px.
-// Let -webkit-box-shadow blur radius be w_r and box-shadow blur radius be b_r. For
-// w_r &gt; 8px, b_r = 8 + 4 * sqrt((w_r - 8) / 2).
--webkit-box-shadow [Custom=All]
--webkit-column-axis
--webkit-column-break-after [Initial=initialBreakBetween, NameForMethods=BreakAfter, Converter=ColumnBreakBetween]
--webkit-column-break-before [Initial=initialBreakBetween, NameForMethods=BreakBefore, Converter=ColumnBreakBetween]
--webkit-column-break-inside [Initial=initialBreakInside, NameForMethods=BreakInside, Converter=ColumnBreakInside]
-column-count [AutoFunctions]
--webkit-column-count = column-count
-column-fill
--webkit-column-fill = column-fill
-column-gap [Custom=All]
--webkit-column-gap = column-gap
--webkit-column-progression
-column-rule [Longhands=column-rule-width|column-rule-style|column-rule-color]
--webkit-column-rule = column-rule
-column-rule-color [VisitedLinkColorSupport, Initial=invalidColor]
--webkit-column-rule-color = column-rule-color
-column-rule-style [Initial=initialBorderStyle]
--webkit-column-rule-style = column-rule-style
-column-rule-width [Converter=LineWidth&lt;unsigned short&gt;]
--webkit-column-rule-width = column-rule-width
-column-span
--webkit-column-span = column-span
-column-width [AutoFunctions, Converter=ComputedLength&lt;float&gt;]
--webkit-column-width = column-width
-columns [Longhands=column-width|column-count]
--webkit-columns = columns
-#if defined(ENABLE_CSS_BOX_DECORATION_BREAK) &amp;&amp; ENABLE_CSS_BOX_DECORATION_BREAK
--webkit-box-decoration-break
-#endif
-#if defined(ENABLE_CSS_COMPOSITING) &amp;&amp; ENABLE_CSS_COMPOSITING
-mix-blend-mode [NameForMethods=BlendMode]
-isolation
-#endif
-filter [ConditionalConverter=FilterOperations]
--webkit-filter = filter
-align-content [Initial=initialContentAlignment, Converter=ContentAlignmentData]
--webkit-align-content = align-content
-align-items [Initial=initialDefaultAlignment, Converter=SelfOrDefaultAlignmentData]
--webkit-align-items = align-items
-align-self [Initial=initialSelfAlignment, Converter=SelfOrDefaultAlignmentData]
--webkit-align-self = align-self
-flex [Longhands=flex-grow|flex-shrink|flex-basis]
--webkit-flex = flex
-flex-basis [Converter=LengthOrAuto]
--webkit-flex-basis = flex-basis
-flex-direction
--webkit-flex-direction = flex-direction
-flex-flow [Longhands=flex-direction|flex-wrap]
--webkit-flex-flow = flex-flow
-flex-grow
--webkit-flex-grow = flex-grow
-flex-shrink
--webkit-flex-shrink = flex-shrink
-flex-wrap
--webkit-flex-wrap = flex-wrap
-justify-content [Initial=initialContentAlignment, Converter=ContentAlignmentData]
--webkit-justify-content = justify-content
-#if defined(ENABLE_FILTERS_LEVEL_2) &amp;&amp; ENABLE_FILTERS_LEVEL_2
--webkit-backdrop-filter [ConditionalConverter=FilterOperations]
-#endif
--webkit-font-size-delta [SkipBuilder]
-#if defined(ENABLE_CSS_GRID_LAYOUT) &amp;&amp; ENABLE_CSS_GRID_LAYOUT
-justify-self [Initial=initialSelfAlignment, Converter=SelfOrDefaultAlignmentData]
-justify-items [Initial=initialSelfAlignment, Converter=SelfOrDefaultAlignmentData]
--webkit-justify-items = justify-items
-grid [Longhands=grid-template-rows|grid-template-columns|grid-template-areas|grid-auto-flow|grid-auto-rows|grid-auto-columns|grid-column-gap|grid-row-gap]
-grid-area [Longhands=grid-row-start|grid-column-start|grid-row-end|grid-column-end]
-grid-auto-columns [Converter=GridTrackSizeList]
-grid-auto-rows [Converter=GridTrackSizeList]
-grid-column-end [ConditionalConverter=GridPosition, NameForMethods=GridItemColumnEnd]
-grid-column-gap [Initial=initialZeroLength, Converter=Length]
-grid-column-start [ConditionalConverter=GridPosition, NameForMethods=GridItemColumnStart]
-grid-template [Longhands=grid-template-rows|grid-template-columns|grid-template-areas]
-grid-template-columns [Custom=All]
-grid-template-rows [Custom=All]
-grid-row-end [ConditionalConverter=GridPosition, NameForMethods=GridItemRowEnd]
-grid-row-gap [Initial=initialZeroLength, Converter=Length]
-grid-row-start [ConditionalConverter=GridPosition, NameForMethods=GridItemRowStart]
-grid-column [Longhands=grid-column-start|grid-column-end]
-grid-gap [Longhands=grid-row-gap|grid-column-gap]
-grid-row [Longhands=grid-row-start|grid-row-end]
-grid-template-areas [Custom=All]
-grid-auto-flow [Converter=GridAutoFlow]
-#endif
--webkit-hyphenate-character [Inherited, NameForMethods=HyphenationString, Converter=StringOrAuto]
--webkit-hyphenate-limit-after [Inherited, NameForMethods=HyphenationLimitAfter, Converter=NumberOrAuto&lt;short&gt;]
--webkit-hyphenate-limit-before [Inherited, NameForMethods=HyphenationLimitBefore, Converter=NumberOrAuto&lt;short&gt;]
--webkit-hyphenate-limit-lines [Inherited, NameForMethods=HyphenationLimitLines, Converter=WebkitHyphenateLimitLines]
--webkit-hyphens [Inherited]
--epub-hyphens = -webkit-hyphens
--webkit-initial-letter [Converter=InitialLetter]
--webkit-line-box-contain [Inherited, Converter=LineBoxContain]
--webkit-line-align [Inherited]
--webkit-line-break [Inherited]
--webkit-line-clamp
--webkit-line-grid [Inherited, Converter=StringOrNone]
--webkit-line-snap [Inherited]
--webkit-logical-width [SkipBuilder]
--webkit-logical-height [SkipBuilder]
--webkit-margin-after-collapse
--webkit-margin-before-collapse
--webkit-margin-bottom-collapse [NameForMethods=MarginAfterCollapse]
--webkit-margin-top-collapse [NameForMethods=MarginBeforeCollapse]
--webkit-margin-collapse [Longhands=-webkit-margin-before-collapse|-webkit-margin-after-collapse]
--webkit-margin-after [SkipBuilder]
--webkit-margin-before [SkipBuilder]
--webkit-margin-end [SkipBuilder]
--webkit-margin-start [SkipBuilder]
--webkit-marquee [Longhands=-webkit-marquee-direction|-webkit-marquee-increment|-webkit-marquee-repetition|-webkit-marquee-style|-webkit-marquee-speed]
--webkit-marquee-direction
--webkit-marquee-increment [ConditionalConverter=MarqueeIncrement]
--webkit-marquee-repetition [NameForMethods=MarqueeLoopCount, Converter=MarqueeRepetition]
--webkit-marquee-speed [Converter=MarqueeSpeed]
--webkit-marquee-style [NameForMethods=MarqueeBehavior]
--webkit-mask [Longhands=-webkit-mask-image|-webkit-mask-source-type|-webkit-mask-position-x|-webkit-mask-position-y|-webkit-mask-size|-webkit-mask-repeat-x|-webkit-mask-repeat-y|-webkit-mask-origin|-webkit-mask-clip]
--webkit-mask-box-image [Initial=initialNinePieceImage, Converter=BorderMask&lt;CSSPropertyWebkitMaskBoxImage&gt;]
--webkit-mask-box-image-outset [Custom=All]
--webkit-mask-box-image-repeat [Custom=All]
--webkit-mask-box-image-slice [Custom=All]
--webkit-mask-box-image-source [Converter=StyleImage&lt;CSSPropertyWebkitMaskBoxImageSource&gt;]
--webkit-mask-box-image-width [Custom=All]
--webkit-mask-clip [FillLayerProperty, NameForMethods=Clip]
--webkit-mask-composite [FillLayerProperty, NameForMethods=Composite]
--webkit-mask-image [FillLayerProperty, NameForMethods=Image]
--webkit-mask-origin [FillLayerProperty, NameForMethods=Origin]
--webkit-mask-position [Longhands=-webkit-mask-position-x|-webkit-mask-position-y]
--webkit-mask-position-x [FillLayerProperty, NameForMethods=XPosition]
--webkit-mask-position-y [FillLayerProperty, NameForMethods=YPosition]
--webkit-mask-repeat [Longhands=-webkit-mask-repeat-x|-webkit-mask-repeat-y]
--webkit-mask-repeat-x [FillLayerProperty, NameForMethods=RepeatX]
--webkit-mask-repeat-y [FillLayerProperty, NameForMethods=RepeatY]
--webkit-mask-size [FillLayerProperty, NameForMethods=Size]
--webkit-mask-source-type [FillLayerProperty, NameForMethods=MaskSourceType]
--webkit-max-logical-width [SkipBuilder]
--webkit-max-logical-height [SkipBuilder]
--webkit-min-logical-width [SkipBuilder]
--webkit-min-logical-height [SkipBuilder]
--webkit-nbsp-mode [Inherited, Setter=setNBSPMode, Initial=initialNBSPMode]
-order
--webkit-order = order
--webkit-padding-after [SkipBuilder]
--webkit-padding-before [SkipBuilder]
--webkit-padding-end [SkipBuilder]
--webkit-padding-start [SkipBuilder]
-perspective [ConditionalConverter=Perspective]
--webkit-perspective = perspective
-perspective-origin [Longhands=perspective-origin-x|perspective-origin-y]
--webkit-perspective-origin = perspective-origin
-perspective-origin-x [Converter=PositionComponentX]
--webkit-perspective-origin-x = perspective-origin-x
-perspective-origin-y [Converter=PositionComponentY]
--webkit-perspective-origin-y = perspective-origin-y
--webkit-print-color-adjust [Inherited]
--webkit-rtl-ordering [Inherited, Setter=setRTLOrdering, Initial=initialRTLOrdering]
-#if defined(ENABLE_CSS_SCROLL_SNAP)
--webkit-scroll-snap-points-x [Converter=ScrollSnapPoints, Custom=Initial|Inherit]
--webkit-scroll-snap-points-y [Converter=ScrollSnapPoints, Custom=Initial|Inherit]
--webkit-scroll-snap-type
--webkit-scroll-snap-destination [Converter=SnapCoordinatePair]
--webkit-scroll-snap-coordinate [Converter=ScrollSnapCoordinates, NameForMethods=ScrollSnapCoordinates]
-#endif
--webkit-svg-shadow [SVG, Custom=All]
--webkit-text-combine [Inherited]
--epub-text-combine = -webkit-text-combine
-#if defined(ENABLE_CSS3_TEXT) &amp;&amp; ENABLE_CSS3_TEXT
--webkit-text-align-last [Inherited]
--webkit-text-justify [Inherited]
-#endif
--webkit-text-decoration [Longhands=-webkit-text-decoration-line|-webkit-text-decoration-style|-webkit-text-decoration-color]
--webkit-text-decoration-line [NameForMethods=TextDecoration, Converter=TextDecoration]
--webkit-text-decoration-style
--webkit-text-decoration-color [VisitedLinkColorSupport, Initial=invalidColor]
--webkit-text-decoration-skip [Inherited, Converter=TextDecorationSkip]
--webkit-text-underline-position [Inherited, Converter=TextUnderlinePosition]
--webkit-text-decorations-in-effect [Inherited, SkipBuilder]
--webkit-text-emphasis [Inherited, Longhands=-webkit-text-emphasis-style|-webkit-text-emphasis-color]
--epub-text-emphasis = -webkit-text-emphasis
-text-emphasis = -webkit-text-emphasis
--webkit-text-emphasis-color [Inherited, VisitedLinkColorSupport, Initial=invalidColor]
--epub-text-emphasis-color = -webkit-text-emphasis-color
-text-emphasis-color = -webkit-text-emphasis-color
--webkit-text-emphasis-position [Inherited, Converter=TextEmphasisPosition]
-text-emphasis-position = -webkit-text-emphasis-position
--webkit-text-emphasis-style [Inherited, Custom=All]
--epub-text-emphasis-style = -webkit-text-emphasis-style
-text-emphasis-style = -webkit-text-emphasis-style
--webkit-text-fill-color [Inherited, VisitedLinkColorSupport, Initial=invalidColor]
--webkit-text-security [Inherited]
--webkit-text-stroke [Inherited, Longhands=-webkit-text-stroke-width|-webkit-text-stroke-color]
--webkit-text-stroke-color [Inherited, VisitedLinkColorSupport, Initial=invalidColor]
--webkit-text-stroke-width [Inherited, Converter=TextStrokeWidth]
-
-transform [Converter=Transform]
--webkit-transform = transform
-transform-origin [Longhands=transform-origin-x|transform-origin-y|transform-origin-z]
--webkit-transform-origin = transform-origin
-transform-origin-x [Converter=PositionComponentX]
--webkit-transform-origin-x = transform-origin-x
-transform-origin-y [Converter=PositionComponentY]
--webkit-transform-origin-y = transform-origin-y
-transform-origin-z [Converter=ComputedLength&lt;float&gt;]
--webkit-transform-origin-z = transform-origin-z
-transform-style [NameForMethods=TransformStyle3D]
-// Keeping -webkit-transform-style around is how we'll detect legacy content. At that point we'll have to add a custom builder and a new ETransformStyle3D type.
--webkit-transform-style [NameForMethods=TransformStyle3D]
--webkit-transition = transition
--webkit-transition-delay = transition-delay
--webkit-transition-duration = transition-duration
--webkit-transition-property = transition-property
--webkit-transition-timing-function = transition-timing-function
--webkit-user-drag
--webkit-user-modify [Inherited]
--webkit-user-select [Inherited]
-#if defined(ENABLE_CSS_REGIONS) &amp;&amp; ENABLE_CSS_REGIONS
--webkit-flow-into [NameForMethods=FlowThread, Converter=StringOrNone]
--webkit-flow-from [NameForMethods=RegionThread, Converter=StringOrNone]
--webkit-region-fragment
--webkit-region-break-after [Initial=initialBreakBetween, NameForMethods=BreakAfter, Converter=RegionBreakBetween]
--webkit-region-break-before [Initial=initialBreakBetween, NameForMethods=BreakBefore, Converter=RegionBreakBetween]
--webkit-region-break-inside [Initial=initialBreakInside, NameForMethods=BreakInside, Converter=RegionBreakInside]
-#endif
-shape-outside [Converter=ShapeValue]
--webkit-shape-outside = shape-outside
-shape-margin [Converter=Length]
--webkit-shape-margin = shape-margin
-shape-image-threshold [Converter=NumberOrAuto&lt;float&gt;]
--webkit-shape-image-threshold = shape-image-threshold
-#if defined(ENABLE_CSS_DEVICE_ADAPTATION) &amp;&amp; ENABLE_CSS_DEVICE_ADAPTATION
-max-zoom [SkipBuilder]
-min-zoom [SkipBuilder]
-orientation [SkipBuilder]
-user-zoom [SkipBuilder]
-#endif
-#if defined(ENABLE_TOUCH_EVENTS) &amp;&amp; ENABLE_TOUCH_EVENTS
--webkit-tap-highlight-color [Inherited, Converter=TapHighlightColor]
-#endif
-#if defined(ENABLE_DASHBOARD_SUPPORT) &amp;&amp; ENABLE_DASHBOARD_SUPPORT
--webkit-dashboard-region [NameForMethods=DashboardRegions, Custom=Value]
-#endif
-#if defined(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) &amp;&amp; ENABLE_ACCELERATED_OVERFLOW_SCROLLING
--webkit-overflow-scrolling [Inherited, NameForMethods=UseTouchOverflowScrolling, Converter=OverflowScrolling]
-#endif
-#if defined(ENABLE_TOUCH_EVENTS) &amp;&amp; ENABLE_TOUCH_EVENTS
-touch-action
-#endif
-#if defined(WTF_PLATFORM_IOS) &amp;&amp; WTF_PLATFORM_IOS
--webkit-touch-callout [Inherited, NameForMethods=TouchCalloutEnabled, Converter=TouchCallout]
-#endif
-
-#if defined(ENABLE_CSS_TRAILING_WORD) &amp;&amp; ENABLE_CSS_TRAILING_WORD
--apple-trailing-word [Inherited, NameForMethods=TrailingWord]
-#endif
-
-#if defined(ENABLE_APPLE_PAY) &amp;&amp; ENABLE_APPLE_PAY
--apple-pay-button-style
--apple-pay-button-type
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCorecssStyleResolvercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleResolver.cpp (209000 => 209001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleResolver.cpp        2016-11-28 18:28:50 UTC (rev 209000)
+++ trunk/Source/WebCore/css/StyleResolver.cpp        2016-11-28 19:11:38 UTC (rev 209001)
</span><span class="lines">@@ -164,7 +164,6 @@
</span><span class="cx"> 
</span><span class="cx"> using namespace HTMLNames;
</span><span class="cx"> 
</span><del>-static const CSSPropertyID lastHighPriorityProperty = CSSPropertyFontSynthesis;
</del><span class="cx"> static const CSSPropertyID firstLowPriorityProperty = static_cast&lt;CSSPropertyID&gt;(lastHighPriorityProperty + 1);
</span><span class="cx"> 
</span><span class="cx"> static void extractDirectionAndWritingMode(const RenderStyle&amp;, const StyleResolver::MatchResult&amp;, TextDirection&amp;, WritingMode&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCorecssmakeproppl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/makeprop.pl (209000 => 209001)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/makeprop.pl        2016-11-28 18:28:50 UTC (rev 209000)
+++ trunk/Source/WebCore/css/makeprop.pl        2016-11-28 19:11:38 UTC (rev 209001)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> #   This file is part of the WebKit project
</span><span class="cx"> #
</span><span class="cx"> #   Copyright (C) 1999 Waldo Bastian (bastian@kde.org)
</span><del>-#   Copyright (C) 2007, 2008, 2012, 2014, 2015 Apple Inc. All rights reserved.
</del><ins>+#   Copyright (C) 2007-2016 Apple Inc. All rights reserved.
</ins><span class="cx"> #   Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
</span><span class="cx"> #   Copyright (C) 2010 Andras Becsi (abecsi@inf.u-szeged.hu), University of Szeged
</span><span class="cx"> #   Copyright (C) 2013 Google Inc. All rights reserved.
</span><span class="lines">@@ -22,103 +22,163 @@
</span><span class="cx"> #   along with this library; see the file COPYING.LIB.  If not, write to
</span><span class="cx"> #   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
</span><span class="cx"> #   Boston, MA 02110-1301, USA.
</span><del>-use FindBin;
-use lib &quot;$FindBin::Bin/../bindings/scripts&quot;;
</del><span class="cx"> 
</span><del>-use Getopt::Long;
-use preprocessor;
</del><span class="cx"> use strict;
</span><span class="cx"> use warnings;
</span><span class="cx"> 
</span><del>-my $defines;
-my $preprocessor;
</del><ins>+use English;
+use File::Spec;
+use Getopt::Long;
+use JSON::PP;
+
+sub addProperty($$);
+sub isPropertyEnabled($);
+
+my $inputFile = &quot;CSSProperties.json&quot;;
+
+my $defines = &quot;&quot;;
</ins><span class="cx"> my $gperf;
</span><span class="cx"> GetOptions('defines=s' =&gt; \$defines,
</span><del>-           'preprocessor=s' =&gt; \$preprocessor,
</del><span class="cx">            'gperf-executable=s' =&gt; \$gperf);
</span><span class="cx"> 
</span><del>-my @NAMES = applyPreprocessor(&quot;CSSPropertyNames.in&quot;, $defines, $preprocessor);
-die &quot;We've reached more than 1024 CSS properties, please make sure to update CSSProperty/StylePropertyMetadata accordingly&quot; if (scalar(@NAMES) &gt; 1024);
</del><ins>+my $input;
+{
+    local $INPUT_RECORD_SEPARATOR; # No separator; read through until end-of-file.
+    open(JSON, &quot;&lt;&quot;, $inputFile) or die &quot;Cannot open $inputFile.\n&quot;;
+    $input = &lt;JSON&gt;;
+    close(JSON);
+}
</ins><span class="cx"> 
</span><del>-my %namesHash;
-my @duplicates = ();
</del><ins>+my $jsonDecoder = JSON::PP-&gt;new-&gt;utf8;
+my $jsonHashRef = $jsonDecoder-&gt;decode($input);
+my $propertiesHashRef = $jsonHashRef-&gt;{properties};
+my @allNames = keys(%$propertiesHashRef);
+die &quot;We've reached more than 1024 CSS properties, please make sure to update CSSProperty/StylePropertyMetadata accordingly&quot; if @allNames &gt; 1024;
</ins><span class="cx"> 
</span><ins>+my %defines = map { $_ =&gt; 1 } split(/ /, $defines);
+
+my @names;
</ins><span class="cx"> my $numPredefinedProperties = 2;
</span><del>-my @names = ();
</del><span class="cx"> my %nameIsInherited;
</span><ins>+my %nameIsHighPriority;
</ins><span class="cx"> my %propertiesWithStyleBuilderOptions;
</span><span class="cx"> my %styleBuilderOptions = (
</span><del>-  AnimationProperty =&gt; 1, # Defined in Source/WebCore/css/StyleBuilderConverter.h
-  AutoFunctions =&gt; 1,
-  ConditionalConverter =&gt; 1,
-  Converter =&gt; 1,
-  Custom =&gt; 1,
-  FillLayerProperty =&gt; 1,
-  FontProperty =&gt; 1,
-  Getter =&gt; 1,
-  Initial =&gt; 1,
-  Longhands =&gt; 1,
-  NameForMethods =&gt; 1,
-  NoDefaultColor =&gt; 1,
-  SVG =&gt; 1,
-  SkipBuilder =&gt; 1,
-  Setter =&gt; 1,
-  VisitedLinkColorSupport =&gt; 1,
</del><ins>+    &quot;animatable&quot; =&gt; 1, # Defined in Source/WebCore/css/StyleBuilderConverter.h
+    &quot;auto-functions&quot; =&gt; 1,
+    &quot;conditional-converter&quot; =&gt; 1,
+    &quot;converter&quot; =&gt; 1,
+    &quot;custom&quot; =&gt; 1,
+    &quot;fill-layer-property&quot; =&gt; 1,
+    &quot;font-property&quot; =&gt; 1,
+    &quot;getter&quot; =&gt; 1,
+    &quot;initial&quot; =&gt; 1,
+    &quot;longhands&quot; =&gt; 1,
+    &quot;name-for-methods&quot; =&gt; 1,
+    &quot;no-default-color&quot; =&gt; 1,
+    &quot;svg&quot; =&gt; 1,
+    &quot;skip-builder&quot; =&gt; 1,
+    &quot;setter&quot; =&gt; 1,
+    &quot;visited-link-color-support&quot; =&gt; 1,
</ins><span class="cx"> );
</span><span class="cx"> my %nameToId;
</span><del>-my @aliases = ();
-foreach (@NAMES) {
-  next if (m/(^\s*$)/);
-  next if (/^#/);
</del><ins>+my %nameToAliases;
</ins><span class="cx"> 
</span><del>-  # Input may use a different EOL sequence than $/, so avoid chomp.
-  $_ =~ s/\s*\[(.+?)\]\r?$//;
-  my @options = ();
-  if ($1) {
-    @options = split(/\s*,\s*/, $1);
-  }
</del><ins>+for my $name (@allNames) {
+    my $value = $propertiesHashRef-&gt;{$name};
+    my $valueType = ref($value);
+    if ($valueType eq &quot;HASH&quot;) {
+        if (isPropertyEnabled($value)) {
+            addProperty($name, $value);
+        }
+    } elsif ($valueType eq &quot;ARRAY&quot;) {
+        for my $v (@$value) {
+            if (isPropertyEnabled($v)) {
+                addProperty($name, $v);
+                last;
+            }
+        }
+    } else {
+        die &quot;$name does not have a supported value type. Only dictionary and array types are supported.&quot;;
+    }
+}
</ins><span class="cx"> 
</span><del>-  $_ =~ s/[\r\n]+$//g;
-  if (exists $namesHash{$_}) {
-    push @duplicates, $_;
-  } else {
-    $namesHash{$_} = 1;
-  }
-  if ($_ =~ /=/) {
-    if (@options) {
-        die &quot;Options are specified on an alias $_: &quot;, join(&quot;, &quot;, @options) . &quot;\n&quot;;
</del><ins>+sub isPropertyEnabled($)
+{
+    my ($optionsHashRef) = @_;
+    if (!$optionsHashRef-&gt;{&quot;codegen-properties&quot;} || !$optionsHashRef-&gt;{&quot;codegen-properties&quot;}{&quot;enable-if&quot;}) {
+        return 1;
</ins><span class="cx">     }
</span><del>-    push @aliases, $_;
-  } else {
-    $nameIsInherited{$_} = 0;
-    $propertiesWithStyleBuilderOptions{$_} = {};
-    foreach my $option (@options) {
-      my ($optionName, $optionValue) = split(/=/, $option);
-      if ($optionName eq &quot;Inherited&quot;) {
-        $nameIsInherited{$_} = 1;
-      } elsif ($styleBuilderOptions{$optionName}) {
-        $propertiesWithStyleBuilderOptions{$_}{$optionName} = $optionValue;
-      } else {
-        die &quot;Unrecognized \&quot;&quot; . $optionName . &quot;\&quot; option for &quot; . $_ . &quot; property.&quot;;
-      }
</del><ins>+    if (exists($defines{$optionsHashRef-&gt;{&quot;codegen-properties&quot;}{&quot;enable-if&quot;}})) {
+        return 1;
</ins><span class="cx">     }
</span><ins>+    if (substr($optionsHashRef-&gt;{&quot;codegen-properties&quot;}{&quot;enable-if&quot;}, 0, 1) eq &quot;!&quot; &amp;&amp; !exists($defines{substr($optionsHashRef-&gt;{&quot;codegen-properties&quot;}{&quot;enable-if&quot;}, 1)})) {
+        return 1;
+    }
+    return 0;
+}
</ins><span class="cx"> 
</span><del>-    my $id = $_;
</del><ins>+sub addProperty($$)
+{
+    my ($name, $optionsHashRef) = @_;
+
+    push @names, $name;
+
+    my $id = $name;
</ins><span class="cx">     $id =~ s/(^[^-])|-(.)/uc($1||$2)/ge;
</span><del>-    $nameToId{$_} = $id;
</del><ins>+    $nameToId{$name} = $id;
</ins><span class="cx"> 
</span><del>-    push @names, $_;
-  }
</del><ins>+    for my $optionName (keys %{$optionsHashRef}) {
+        if ($optionName eq &quot;codegen-properties&quot;) {
+            my $codegenProperties = $optionsHashRef-&gt;{&quot;codegen-properties&quot;};
+            for my $codegenOptionName (keys %$codegenProperties) {
+                if ($codegenOptionName eq &quot;enable-if&quot;) {
+                    next;
+                } elsif ($codegenOptionName eq &quot;high-priority&quot;) {
+                    $nameIsHighPriority{$name} = 1;
+                } elsif ($codegenOptionName eq &quot;aliases&quot;) {
+                    $nameToAliases{$name} = $codegenProperties-&gt;{&quot;aliases&quot;};
+                } elsif ($styleBuilderOptions{$codegenOptionName}) {
+                    $propertiesWithStyleBuilderOptions{$name}{$codegenOptionName} = $codegenProperties-&gt;{$codegenOptionName};
+                } else {
+                    die &quot;Unrecognized codegen property \&quot;$optionName\&quot; for $name property.&quot;;
+                }
+            }
+        } elsif ($optionName eq &quot;animatable&quot;) {
+             $propertiesWithStyleBuilderOptions{$name}{&quot;animatable&quot;} = $optionsHashRef-&gt;{&quot;animatable&quot;};
+        } elsif ($optionName eq &quot;inherited&quot;) {
+            $nameIsInherited{$name} = 1;
+        } elsif ($optionName eq &quot;values&quot;) {
+            # FIXME: Implement.
+        }
+        # We allow unrecognized options to pass through without error to support annotation.
+    }
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-if (@duplicates &gt; 0) {
-    die 'Duplicate CSS property names: ', join(', ', @duplicates) . &quot;\n&quot;;
</del><ins>+sub sortByDescendingPriorityAndName
+{
+    # Sort names with high priority to the front
+    if (!!$nameIsHighPriority{$a} &lt; !!$nameIsHighPriority{$b}) {
+        return 1;
+    }
+    if (!!$nameIsHighPriority{$a} &gt; !!$nameIsHighPriority{$b}) {
+        return -1;
+    }
+    # Sort names without leading '-' to the front
+    if (substr($a, 0, 1) eq &quot;-&quot; &amp;&amp; substr($b, 0, 1) ne &quot;-&quot;) {
+        return 1;
+    }
+    if (substr($a, 0, 1) ne &quot;-&quot; &amp;&amp; substr($b, 0, 1) eq &quot;-&quot;) {
+        return -1;
+    }
+    return $a cmp $b;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+@names = sort sortByDescendingPriorityAndName @names;
+
</ins><span class="cx"> open GPERF, &quot;&gt;CSSPropertyNames.gperf&quot; || die &quot;Could not open CSSPropertyNames.gperf for writing&quot;;
</span><span class="cx"> print GPERF &lt;&lt; &quot;EOF&quot;;
</span><span class="cx"> %{
</span><del>-/* This file is automatically generated from CSSPropertyNames.in by makeprop, do not edit */
</del><ins>+/* This file is automatically generated from $inputFile by makeprop, do not edit */
</ins><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include \&quot;CSSProperty.h\&quot;
</span><span class="cx"> #include \&quot;CSSPropertyNames.h\&quot;
</span><span class="lines">@@ -171,10 +231,13 @@
</span><span class="cx">   print GPERF $name . &quot;, CSSProperty&quot; . $nameToId{$name} . &quot;\n&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-foreach my $alias (@aliases) {
-  $alias =~ /^([^\s]*)[\s]*=[\s]*([^\s]*)/;
-  my $name = $1;
-  print GPERF $name . &quot;, CSSProperty&quot; . $nameToId{$2} . &quot;\n&quot;;
</del><ins>+for my $name (@names) {
+    if (!$nameToAliases{$name}) {
+        next;
+    }
+    for my $alias (@{$nameToAliases{$name}}) {
+        print GPERF $alias . &quot;, CSSProperty&quot; . $nameToId{$name} . &quot;\n&quot;;
+    }
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> print GPERF&lt;&lt; &quot;EOF&quot;;
</span><span class="lines">@@ -271,7 +334,7 @@
</span><span class="cx"> 
</span><span class="cx"> open HEADER, &quot;&gt;CSSPropertyNames.h&quot; || die &quot;Could not open CSSPropertyNames.h for writing&quot;;
</span><span class="cx"> print HEADER &lt;&lt; &quot;EOF&quot;;
</span><del>-/* This file is automatically generated from CSSPropertyNames.in by makeprop, do not edit */
</del><ins>+/* This file is automatically generated from $inputFile by makeprop, do not edit */
</ins><span class="cx"> 
</span><span class="cx"> #pragma once
</span><span class="cx"> 
</span><span class="lines">@@ -294,7 +357,9 @@
</span><span class="cx"> my $first = $numPredefinedProperties;
</span><span class="cx"> my $i = $numPredefinedProperties;
</span><span class="cx"> my $maxLen = 0;
</span><ins>+my $lastHighPriorityPropertyName;
</ins><span class="cx"> foreach my $name (@names) {
</span><ins>+  $lastHighPriorityPropertyName = $name if $nameIsHighPriority{$name}; # Assumes that @names is sorted by descending priorities.
</ins><span class="cx">   print HEADER &quot;    CSSProperty&quot; . $nameToId{$name} . &quot; = &quot; . $i . &quot;,\n&quot;;
</span><span class="cx">   $i = $i + 1;
</span><span class="cx">   if (length($name) &gt; $maxLen) {
</span><span class="lines">@@ -309,6 +374,7 @@
</span><span class="cx"> print HEADER &quot;const int numCSSProperties = $num;\n&quot;;
</span><span class="cx"> print HEADER &quot;const int lastCSSProperty = $last;\n&quot;;
</span><span class="cx"> print HEADER &quot;const size_t maxCSSPropertyNameLength = $maxLen;\n&quot;;
</span><ins>+print HEADER &quot;const CSSPropertyID lastHighPriorityProperty = CSSProperty&quot; . $nameToId{$lastHighPriorityPropertyName} . &quot;;\n&quot;;
</ins><span class="cx"> 
</span><span class="cx"> print HEADER &lt;&lt; &quot;EOF&quot;;
</span><span class="cx"> 
</span><span class="lines">@@ -347,7 +413,7 @@
</span><span class="cx">   my $name = shift;
</span><span class="cx">   my $builderFunction = shift;
</span><span class="cx"> 
</span><del>-  return $propertiesWithStyleBuilderOptions{$name}{&quot;Custom&quot;}{$builderFunction} ? &quot;StyleBuilderCustom&quot; : &quot;StyleBuilderFunctions&quot;;
</del><ins>+  return $propertiesWithStyleBuilderOptions{$name}{&quot;custom&quot;}{$builderFunction} ? &quot;StyleBuilderCustom&quot; : &quot;StyleBuilderFunctions&quot;;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> sub getNameForMethods {
</span><span class="lines">@@ -355,8 +421,8 @@
</span><span class="cx"> 
</span><span class="cx">   my $nameForMethods = $nameToId{$name};
</span><span class="cx">   $nameForMethods =~ s/Webkit//g;
</span><del>-  if (exists($propertiesWithStyleBuilderOptions{$name}{&quot;NameForMethods&quot;})) {
-    $nameForMethods = $propertiesWithStyleBuilderOptions{$name}{&quot;NameForMethods&quot;};
</del><ins>+  if (exists($propertiesWithStyleBuilderOptions{$name}{&quot;name-for-methods&quot;})) {
+    $nameForMethods = $propertiesWithStyleBuilderOptions{$name}{&quot;name-for-methods&quot;};
</ins><span class="cx">   }
</span><span class="cx">   return $nameForMethods;
</span><span class="cx"> }
</span><span class="lines">@@ -449,30 +515,31 @@
</span><span class="cx"> foreach my $name (@names) {
</span><span class="cx">   my $nameForMethods = getNameForMethods($name);
</span><span class="cx">   $nameForMethods =~ s/Webkit//g;
</span><del>-  if (exists($propertiesWithStyleBuilderOptions{$name}{&quot;NameForMethods&quot;})) {
-    $nameForMethods = $propertiesWithStyleBuilderOptions{$name}{&quot;NameForMethods&quot;};
</del><ins>+  if (exists($propertiesWithStyleBuilderOptions{$name}{&quot;name-for-methods&quot;})) {
+    $nameForMethods = $propertiesWithStyleBuilderOptions{$name}{&quot;name-for-methods&quot;};
</ins><span class="cx">   }
</span><span class="cx"> 
</span><del>-  if (!exists($propertiesWithStyleBuilderOptions{$name}{&quot;Getter&quot;})) {
-    $propertiesWithStyleBuilderOptions{$name}{&quot;Getter&quot;} = lcfirst($nameForMethods);
</del><ins>+  if (!exists($propertiesWithStyleBuilderOptions{$name}{&quot;getter&quot;})) {
+    $propertiesWithStyleBuilderOptions{$name}{&quot;getter&quot;} = lcfirst($nameForMethods);
</ins><span class="cx">   }
</span><del>-  if (!exists($propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;})) {
-    $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;} = &quot;set&quot; . $nameForMethods;
</del><ins>+  if (!exists($propertiesWithStyleBuilderOptions{$name}{&quot;setter&quot;})) {
+    $propertiesWithStyleBuilderOptions{$name}{&quot;setter&quot;} = &quot;set&quot; . $nameForMethods;
</ins><span class="cx">   }
</span><del>-  if (!exists($propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;})) {
-    if (exists($propertiesWithStyleBuilderOptions{$name}{&quot;FillLayerProperty&quot;})) {
-      $propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;} = &quot;initialFill&quot; . $nameForMethods;
</del><ins>+  if (!exists($propertiesWithStyleBuilderOptions{$name}{&quot;initial&quot;})) {
+    if (exists($propertiesWithStyleBuilderOptions{$name}{&quot;fill-layer-property&quot;})) {
+      $propertiesWithStyleBuilderOptions{$name}{&quot;initial&quot;} = &quot;initialFill&quot; . $nameForMethods;
</ins><span class="cx">     } else {
</span><del>-      $propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;} = &quot;initial&quot; . $nameForMethods;
</del><ins>+      $propertiesWithStyleBuilderOptions{$name}{&quot;initial&quot;} = &quot;initial&quot; . $nameForMethods;
</ins><span class="cx">     }
</span><span class="cx">   }
</span><del>-  if (!exists($propertiesWithStyleBuilderOptions{$name}{&quot;Custom&quot;})) {
-    $propertiesWithStyleBuilderOptions{$name}{&quot;Custom&quot;} = &quot;&quot;;
-  } elsif ($propertiesWithStyleBuilderOptions{$name}{&quot;Custom&quot;} eq &quot;All&quot;) {
-    $propertiesWithStyleBuilderOptions{$name}{&quot;Custom&quot;} = &quot;Initial|Inherit|Value&quot;;
</del><ins>+  # FIXME: Convert option custom from a string to an array.
+  if (!exists($propertiesWithStyleBuilderOptions{$name}{&quot;custom&quot;})) {
+    $propertiesWithStyleBuilderOptions{$name}{&quot;custom&quot;} = &quot;&quot;;
+  } elsif ($propertiesWithStyleBuilderOptions{$name}{&quot;custom&quot;} eq &quot;All&quot;) {
+    $propertiesWithStyleBuilderOptions{$name}{&quot;custom&quot;} = &quot;Initial|Inherit|Value&quot;;
</ins><span class="cx">   }
</span><del>-  my %customValues = map { $_ =&gt; 1 } split(/\|/, $propertiesWithStyleBuilderOptions{$name}{&quot;Custom&quot;});
-  $propertiesWithStyleBuilderOptions{$name}{&quot;Custom&quot;} = \%customValues;
</del><ins>+  my %customValues = map { $_ =&gt; 1 } split(/\|/, $propertiesWithStyleBuilderOptions{$name}{&quot;custom&quot;});
+  $propertiesWithStyleBuilderOptions{$name}{&quot;custom&quot;} = \%customValues;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> use constant {
</span><span class="lines">@@ -500,7 +567,7 @@
</span><span class="cx"> 
</span><span class="cx">   my $style = &quot;styleResolver.style()&quot;;
</span><span class="cx">   my $setterContent .= $indent . &quot;if (styleResolver.applyPropertyToRegularStyle())\n&quot;;
</span><del>-  my $setValue = $style . &quot;-&gt;&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
</del><ins>+  my $setValue = $style . &quot;-&gt;&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;setter&quot;};
</ins><span class="cx">   my $color = $valueIsPrimitive ? colorFromPrimitiveValue($value) : $value;
</span><span class="cx">   $setterContent .= $indent . &quot;    &quot; . $setValue . &quot;(&quot; . $color . &quot;);\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;if (styleResolver.applyPropertyToVisitedLinkStyle())\n&quot;;
</span><span class="lines">@@ -530,8 +597,8 @@
</span><span class="cx">   $setterContent .= $indent . &quot;AnimationList&amp; list = styleResolver.style()-&gt;&quot; . getEnsureAnimationsOrTransitionsMethod($name) . &quot;();\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;if (list.isEmpty())\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;    list.append(Animation::create());\n&quot;;
</span><del>-  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
-  my $initial = $propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;};
</del><ins>+  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;setter&quot;};
+  my $initial = $propertiesWithStyleBuilderOptions{$name}{&quot;initial&quot;};
</ins><span class="cx">   $setterContent .= $indent . &quot;list.animation(0).&quot; . $setter . &quot;(Animation::&quot; . $initial . &quot;());\n&quot;;
</span><span class="cx">   if ($name eq &quot;-webkit-transition-property&quot;) {
</span><span class="cx">     $setterContent .= $indent . &quot;list.animation(0).setAnimationMode(Animation::AnimateAll);\n&quot;;
</span><span class="lines">@@ -553,8 +620,8 @@
</span><span class="cx">   $setterContent .= $indent . &quot;for ( ; i &lt; parentSize &amp;&amp; parentList-&gt;animation(i).&quot; . getTestFunction($name) . &quot;(); ++i) {\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;    if (list.size() &lt;= i)\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;        list.append(Animation::create());\n&quot;;
</span><del>-  my $getter = $propertiesWithStyleBuilderOptions{$name}{&quot;Getter&quot;};
-  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
</del><ins>+  my $getter = $propertiesWithStyleBuilderOptions{$name}{&quot;getter&quot;};
+  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;setter&quot;};
</ins><span class="cx">   $setterContent .= $indent . &quot;    list.animation(i).&quot; . $setter . &quot;(parentList-&gt;animation(i).&quot; . $getter . &quot;());\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;    list.animation(i).setAnimationMode(parentList-&gt;animation(i).animationMode());\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;}\n&quot;;
</span><span class="lines">@@ -599,11 +666,11 @@
</span><span class="cx">   my $name = shift;
</span><span class="cx">   my $indent = shift;
</span><span class="cx"> 
</span><del>-  my $getter = $propertiesWithStyleBuilderOptions{$name}{&quot;Getter&quot;};
-  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
</del><ins>+  my $getter = $propertiesWithStyleBuilderOptions{$name}{&quot;getter&quot;};
+  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;setter&quot;};
</ins><span class="cx">   my $clearFunction = getClearFunction($name);
</span><span class="cx">   my $testFunction = getTestFunction($name);
</span><del>-  my $initial = &quot;FillLayer::&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;} . &quot;(&quot; . getFillLayerType($name) . &quot;)&quot;;
</del><ins>+  my $initial = &quot;FillLayer::&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;initial&quot;} . &quot;(&quot; . getFillLayerType($name) . &quot;)&quot;;
</ins><span class="cx"> 
</span><span class="cx">   my $setterContent = &quot;&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;// Check for (single-layer) no-op before clearing anything.\n&quot;;
</span><span class="lines">@@ -623,8 +690,8 @@
</span><span class="cx">   my $name = shift;
</span><span class="cx">   my $indent = shift;
</span><span class="cx"> 
</span><del>-  my $getter = $propertiesWithStyleBuilderOptions{$name}{&quot;Getter&quot;};
-  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
</del><ins>+  my $getter = $propertiesWithStyleBuilderOptions{$name}{&quot;getter&quot;};
+  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;setter&quot;};
</ins><span class="cx">   my $clearFunction = getClearFunction($name);
</span><span class="cx">   my $testFunction = getTestFunction($name);
</span><span class="cx"> 
</span><span class="lines">@@ -685,8 +752,8 @@
</span><span class="cx">   my $name = shift;
</span><span class="cx">   my $value = shift;
</span><span class="cx"> 
</span><del>-  my $isSVG = exists $propertiesWithStyleBuilderOptions{$name}{&quot;SVG&quot;};
-  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
</del><ins>+  my $isSVG = exists $propertiesWithStyleBuilderOptions{$name}{&quot;svg&quot;};
+  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;setter&quot;};
</ins><span class="cx">   return &quot;styleResolver.style()-&gt;&quot; .  ($isSVG ? &quot;accessSVGStyle().&quot; : &quot;&quot;) . $setter . &quot;(&quot; . $value . &quot;)&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -694,25 +761,25 @@
</span><span class="cx">   my $name = shift;
</span><span class="cx">   my $indent = shift;
</span><span class="cx"> 
</span><del>-  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
-  my $initial = $propertiesWithStyleBuilderOptions{$name}{&quot;Initial&quot;};
-  my $isSVG = exists $propertiesWithStyleBuilderOptions{$name}{&quot;SVG&quot;};
</del><ins>+  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;setter&quot;};
+  my $initial = $propertiesWithStyleBuilderOptions{$name}{&quot;initial&quot;};
+  my $isSVG = exists $propertiesWithStyleBuilderOptions{$name}{&quot;svg&quot;};
</ins><span class="cx">   my $setterContent = &quot;&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;static void applyInitial&quot; . $nameToId{$name} . &quot;(StyleResolver&amp; styleResolver)\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;{\n&quot;;
</span><span class="cx">   my $style = &quot;styleResolver.style()&quot;;
</span><del>-  if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;AutoFunctions&quot;}) {
</del><ins>+  if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;auto-functions&quot;}) {
</ins><span class="cx">     $setterContent .= $indent . &quot;    &quot; . getAutoSetter($name, $style) . &quot;;\n&quot;;
</span><del>-  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;VisitedLinkColorSupport&quot;}) {
</del><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;visited-link-color-support&quot;}) {
</ins><span class="cx">       my $initialColor = &quot;RenderStyle::&quot; . $initial . &quot;()&quot;;
</span><span class="cx">       $setterContent .= generateColorValueSetter($name, $initialColor, $indent . &quot;    &quot;);
</span><del>-  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;AnimationProperty&quot;}) {
</del><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;animatable&quot;}) {
</ins><span class="cx">     $setterContent .= generateAnimationPropertyInitialValueSetter($name, $indent . &quot;    &quot;);
</span><del>-  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;FontProperty&quot;}) {
</del><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;font-property&quot;}) {
</ins><span class="cx">     $setterContent .= $indent . &quot;    auto fontDescription = styleResolver.fontDescription();\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;    fontDescription.&quot; . $setter . &quot;(FontCascadeDescription::&quot; . $initial . &quot;());\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;    styleResolver.setFontDescription(fontDescription);\n&quot;;
</span><del>-  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;FillLayerProperty&quot;}) {
</del><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;fill-layer-property&quot;}) {
</ins><span class="cx">     $setterContent .= generateFillLayerPropertyInitialValueSetter($name, $indent . &quot;    &quot;);
</span><span class="cx">   } else {
</span><span class="cx">     my $initialValue = ($isSVG ? &quot;SVGRenderStyle&quot; : &quot;RenderStyle&quot;) . &quot;::&quot; . $initial . &quot;()&quot;;
</span><span class="lines">@@ -730,34 +797,34 @@
</span><span class="cx">   my $setterContent = &quot;&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;static void applyInherit&quot; . $nameToId{$name} . &quot;(StyleResolver&amp; styleResolver)\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;{\n&quot;;
</span><del>-  my $isSVG = exists $propertiesWithStyleBuilderOptions{$name}{&quot;SVG&quot;};
</del><ins>+  my $isSVG = exists $propertiesWithStyleBuilderOptions{$name}{&quot;svg&quot;};
</ins><span class="cx">   my $parentStyle = &quot;styleResolver.parentStyle()&quot;;
</span><span class="cx">   my $style = &quot;styleResolver.style()&quot;;
</span><del>-  my $getter = $propertiesWithStyleBuilderOptions{$name}{&quot;Getter&quot;};
-  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
</del><ins>+  my $getter = $propertiesWithStyleBuilderOptions{$name}{&quot;getter&quot;};
+  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;setter&quot;};
</ins><span class="cx">   my $didCallSetValue = 0;
</span><del>-  if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;AutoFunctions&quot;}) {
</del><ins>+  if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;auto-functions&quot;}) {
</ins><span class="cx">     $setterContent .= $indent . &quot;    if (&quot; . getAutoGetter($name, $parentStyle) . &quot;) {\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;        &quot; . getAutoSetter($name, $style) . &quot;;\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;        return;\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;    }\n&quot;;
</span><del>-  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;VisitedLinkColorSupport&quot;}) {
</del><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;visited-link-color-support&quot;}) {
</ins><span class="cx">     $setterContent .= $indent . &quot;    Color color = &quot; . $parentStyle . &quot;-&gt;&quot; . $getter . &quot;();\n&quot;;
</span><del>-    if (!exists($propertiesWithStyleBuilderOptions{$name}{&quot;NoDefaultColor&quot;})) {
</del><ins>+    if (!exists($propertiesWithStyleBuilderOptions{$name}{&quot;no-default-color&quot;})) {
</ins><span class="cx">       $setterContent .= $indent . &quot;    if (!color.isValid())\n&quot;;
</span><span class="cx">       $setterContent .= $indent . &quot;        color = &quot; . $parentStyle . &quot;-&gt;color();\n&quot;;
</span><span class="cx">     }
</span><span class="cx">     $setterContent .= generateColorValueSetter($name, &quot;color&quot;, $indent . &quot;    &quot;);
</span><span class="cx">     $didCallSetValue = 1;
</span><del>-  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;AnimationProperty&quot;}) {
</del><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;animatable&quot;}) {
</ins><span class="cx">     $setterContent .= generateAnimationPropertyInheritValueSetter($name, $indent . &quot;    &quot;);
</span><span class="cx">     $didCallSetValue = 1;
</span><del>-  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;FontProperty&quot;}) {
</del><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;font-property&quot;}) {
</ins><span class="cx">     $setterContent .= $indent . &quot;    auto fontDescription = styleResolver.fontDescription();\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;    fontDescription.&quot; . $setter . &quot;(styleResolver.parentFontDescription().&quot; . $getter . &quot;());\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;    styleResolver.setFontDescription(fontDescription);\n&quot;;
</span><span class="cx">     $didCallSetValue = 1;
</span><del>-  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;FillLayerProperty&quot;}) {
</del><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;fill-layer-property&quot;}) {
</ins><span class="cx">     $setterContent .= generateFillLayerPropertyInheritValueSetter($name, $indent . &quot;    &quot;);
</span><span class="cx">     $didCallSetValue = 1;
</span><span class="cx">   }
</span><span class="lines">@@ -778,24 +845,24 @@
</span><span class="cx">   $setterContent .= $indent . &quot;static void applyValue&quot; . $nameToId{$name} . &quot;(StyleResolver&amp; styleResolver, CSSValue&amp; value)\n&quot;;
</span><span class="cx">   $setterContent .= $indent . &quot;{\n&quot;;
</span><span class="cx">   my $convertedValue;
</span><del>-  if (exists($propertiesWithStyleBuilderOptions{$name}{&quot;Converter&quot;})) {
-    $convertedValue = &quot;StyleBuilderConverter::convert&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;Converter&quot;} . &quot;(styleResolver, value)&quot;;
-  } elsif (exists($propertiesWithStyleBuilderOptions{$name}{&quot;ConditionalConverter&quot;})) {
-    $setterContent .= $indent . &quot;    auto convertedValue = StyleBuilderConverter::convert&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;ConditionalConverter&quot;} . &quot;(styleResolver, value);\n&quot;;
</del><ins>+  if (exists($propertiesWithStyleBuilderOptions{$name}{&quot;converter&quot;})) {
+    $convertedValue = &quot;StyleBuilderConverter::convert&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;converter&quot;} . &quot;(styleResolver, value)&quot;;
+  } elsif (exists($propertiesWithStyleBuilderOptions{$name}{&quot;conditional-converter&quot;})) {
+    $setterContent .= $indent . &quot;    auto convertedValue = StyleBuilderConverter::convert&quot; . $propertiesWithStyleBuilderOptions{$name}{&quot;conditional-converter&quot;} . &quot;(styleResolver, value);\n&quot;;
</ins><span class="cx">     $convertedValue = &quot;convertedValue.value()&quot;;
</span><span class="cx">   } else {
</span><span class="cx">     $convertedValue = &quot;downcast&lt;CSSPrimitiveValue&gt;(value)&quot;;
</span><span class="cx">   }
</span><span class="cx"> 
</span><del>-  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;Setter&quot;};
</del><ins>+  my $setter = $propertiesWithStyleBuilderOptions{$name}{&quot;setter&quot;};
</ins><span class="cx">   my $style = &quot;styleResolver.style()&quot;;
</span><span class="cx">   my $didCallSetValue = 0;
</span><del>-  if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;AutoFunctions&quot;}) {
</del><ins>+  if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;auto-functions&quot;}) {
</ins><span class="cx">     $setterContent .= $indent . &quot;    if (downcast&lt;CSSPrimitiveValue&gt;(value).valueID() == CSSValueAuto) {\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;        &quot;. getAutoSetter($name, $style) . &quot;;\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;        return;\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;    }\n&quot;;
</span><del>-  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;VisitedLinkColorSupport&quot;}) {
</del><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;visited-link-color-support&quot;}) {
</ins><span class="cx">     $setterContent .= $indent . &quot;    auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);\n&quot;;
</span><span class="cx">     if ($name eq &quot;color&quot;) {
</span><span class="cx">       # The &quot;color&quot; property supports &quot;currentColor&quot; value. We should add a parameter.
</span><span class="lines">@@ -803,20 +870,20 @@
</span><span class="cx">     }
</span><span class="cx">     $setterContent .= generateColorValueSetter($name, &quot;primitiveValue&quot;, $indent . &quot;    &quot;, VALUE_IS_PRIMITIVE);
</span><span class="cx">     $didCallSetValue = 1;
</span><del>-  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;AnimationProperty&quot;}) {
</del><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;animatable&quot;}) {
</ins><span class="cx">     $setterContent .= generateAnimationPropertyValueSetter($name, $indent . &quot;    &quot;);
</span><span class="cx">     $didCallSetValue = 1;
</span><del>-  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;FontProperty&quot;}) {
</del><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;font-property&quot;}) {
</ins><span class="cx">     $setterContent .= $indent . &quot;    auto fontDescription = styleResolver.fontDescription();\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;    fontDescription.&quot; . $setter . &quot;(&quot; . $convertedValue . &quot;);\n&quot;;
</span><span class="cx">     $setterContent .= $indent . &quot;    styleResolver.setFontDescription(fontDescription);\n&quot;;
</span><span class="cx">     $didCallSetValue = 1;
</span><del>-  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;FillLayerProperty&quot;}) {
</del><ins>+  } elsif (exists $propertiesWithStyleBuilderOptions{$name}{&quot;fill-layer-property&quot;}) {
</ins><span class="cx">     $setterContent .= generateFillLayerPropertyValueSetter($name, $indent . &quot;    &quot;);
</span><span class="cx">     $didCallSetValue = 1;
</span><span class="cx">   }
</span><span class="cx">   if (!$didCallSetValue) {
</span><del>-    if (exists($propertiesWithStyleBuilderOptions{$name}{&quot;ConditionalConverter&quot;})) {
</del><ins>+    if (exists($propertiesWithStyleBuilderOptions{$name}{&quot;conditional-converter&quot;})) {
</ins><span class="cx">       $setterContent .= $indent . &quot;    if (convertedValue)\n&quot;;
</span><span class="cx">       $setterContent .= &quot;    &quot;;
</span><span class="cx">     }
</span><span class="lines">@@ -829,7 +896,7 @@
</span><span class="cx"> 
</span><span class="cx"> open STYLEBUILDER, &quot;&gt;StyleBuilder.cpp&quot; || die &quot;Could not open StyleBuilder.cpp for writing&quot;;
</span><span class="cx"> print STYLEBUILDER &lt;&lt; &quot;EOF&quot;;
</span><del>-/* This file is automatically generated from CSSPropertyNames.in by makeprop, do not edit */
</del><ins>+/* This file is automatically generated from $inputFile by makeprop, do not edit */
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;StyleBuilder.h&quot;
</span><span class="lines">@@ -850,17 +917,17 @@
</span><span class="cx"> 
</span><span class="cx"> foreach my $name (@names) {
</span><span class="cx">   # Skip Shorthand properties and properties that do not use the StyleBuilder.
</span><del>-  next if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;Longhands&quot;});
-  next if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;SkipBuilder&quot;});
</del><ins>+  next if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;longhands&quot;});
+  next if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;skip-builder&quot;});
</ins><span class="cx"> 
</span><span class="cx">   my $indent = &quot;    &quot;;
</span><del>-  if (!$propertiesWithStyleBuilderOptions{$name}{&quot;Custom&quot;}{&quot;Initial&quot;}) {
</del><ins>+  if (!$propertiesWithStyleBuilderOptions{$name}{&quot;custom&quot;}{&quot;Initial&quot;}) {
</ins><span class="cx">     print STYLEBUILDER generateInitialValueSetter($name, $indent);
</span><span class="cx">   }
</span><del>-  if (!$propertiesWithStyleBuilderOptions{$name}{&quot;Custom&quot;}{&quot;Inherit&quot;}) {
</del><ins>+  if (!$propertiesWithStyleBuilderOptions{$name}{&quot;custom&quot;}{&quot;Inherit&quot;}) {
</ins><span class="cx">     print STYLEBUILDER generateInheritValueSetter($name, $indent);
</span><span class="cx">   }
</span><del>-  if (!$propertiesWithStyleBuilderOptions{$name}{&quot;Custom&quot;}{&quot;Value&quot;}) {
</del><ins>+  if (!$propertiesWithStyleBuilderOptions{$name}{&quot;custom&quot;}{&quot;Value&quot;}) {
</ins><span class="cx">     print STYLEBUILDER generateValueSetter($name, $indent);
</span><span class="cx">   }
</span><span class="cx"> }
</span><span class="lines">@@ -878,10 +945,10 @@
</span><span class="cx"> 
</span><span class="cx"> foreach my $name (@names) {
</span><span class="cx">   print STYLEBUILDER &quot;    case CSSProperty&quot; . $nameToId{$name} . &quot;:\n&quot;;
</span><del>-  if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;Longhands&quot;}) {
</del><ins>+  if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;longhands&quot;}) {
</ins><span class="cx">     print STYLEBUILDER &quot;        ASSERT(isShorthandCSSProperty(property));\n&quot;;
</span><span class="cx">     print STYLEBUILDER &quot;        ASSERT_NOT_REACHED();\n&quot;;
</span><del>-  } elsif (!exists $propertiesWithStyleBuilderOptions{$name}{&quot;SkipBuilder&quot;}) {
</del><ins>+  } elsif (!exists $propertiesWithStyleBuilderOptions{$name}{&quot;skip-builder&quot;}) {
</ins><span class="cx">     print STYLEBUILDER &quot;        if (isInitial)\n&quot;;
</span><span class="cx">     print STYLEBUILDER &quot;            &quot; . getScopeForFunction($name, &quot;Initial&quot;) . &quot;::applyInitial&quot; . $nameToId{$name} . &quot;(styleResolver);\n&quot;;
</span><span class="cx">     print STYLEBUILDER &quot;        else if (isInherit)\n&quot;;
</span><span class="lines">@@ -904,7 +971,7 @@
</span><span class="cx"> # Generate StylePropertyShorthandsFunctions.
</span><span class="cx"> open SHORTHANDS_H, &quot;&gt;StylePropertyShorthandFunctions.h&quot; || die &quot;Could not open StylePropertyShorthandFunctions.h for writing&quot;;
</span><span class="cx"> print SHORTHANDS_H &lt;&lt; &quot;EOF&quot;;
</span><del>-/* This file is automatically generated from CSSPropertyNames.in by makeprop, do not edit */
</del><ins>+/* This file is automatically generated from $inputFile by makeprop, do not edit */
</ins><span class="cx"> 
</span><span class="cx"> #pragma once
</span><span class="cx"> 
</span><span class="lines">@@ -916,7 +983,7 @@
</span><span class="cx"> 
</span><span class="cx"> foreach my $name (@names) {
</span><span class="cx">   # Skip non-Shorthand properties.
</span><del>-  next if (!exists $propertiesWithStyleBuilderOptions{$name}{&quot;Longhands&quot;});
</del><ins>+  next if (!exists $propertiesWithStyleBuilderOptions{$name}{&quot;longhands&quot;});
</ins><span class="cx"> 
</span><span class="cx">   print SHORTHANDS_H &quot;StylePropertyShorthand &quot; . lcfirst($nameToId{$name}) . &quot;Shorthand();\n&quot;;
</span><span class="cx"> }
</span><span class="lines">@@ -930,7 +997,7 @@
</span><span class="cx"> 
</span><span class="cx"> open SHORTHANDS_CPP, &quot;&gt;StylePropertyShorthandFunctions.cpp&quot; || die &quot;Could not open StylePropertyShorthandFunctions.cpp for writing&quot;;
</span><span class="cx"> print SHORTHANDS_CPP &lt;&lt; &quot;EOF&quot;;
</span><del>-/* This file is automatically generated from CSSPropertyNames.in by makeprop, do not edit */
</del><ins>+/* This file is automatically generated from $inputFile by makeprop, do not edit */
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;StylePropertyShorthandFunctions.h&quot;
</span><span class="lines">@@ -946,10 +1013,10 @@
</span><span class="cx"> 
</span><span class="cx"> foreach my $name (@names) {
</span><span class="cx">   # Skip non-Shorthand properties.
</span><del>-  next if (!exists $propertiesWithStyleBuilderOptions{$name}{&quot;Longhands&quot;});
</del><ins>+  next if (!exists $propertiesWithStyleBuilderOptions{$name}{&quot;longhands&quot;});
</ins><span class="cx"> 
</span><span class="cx">   my $lowercaseId = lcfirst($nameToId{$name});
</span><del>-  my @longhands = split(/\|/, $propertiesWithStyleBuilderOptions{$name}{&quot;Longhands&quot;});
</del><ins>+  my @longhands = @{$propertiesWithStyleBuilderOptions{$name}{&quot;longhands&quot;}};
</ins><span class="cx"> 
</span><span class="cx">   print SHORTHANDS_CPP &quot;StylePropertyShorthand &quot; . $lowercaseId . &quot;Shorthand()\n&quot;;
</span><span class="cx">   print SHORTHANDS_CPP &quot;{\n&quot;;
</span><span class="lines">@@ -957,14 +1024,14 @@
</span><span class="cx">   foreach (@longhands) {
</span><span class="cx">     if ($_ eq &quot;all&quot;) {
</span><span class="cx">         foreach my $propname (@names) {
</span><del>-            next if (exists $propertiesWithStyleBuilderOptions{$propname}{&quot;Longhands&quot;});
</del><ins>+            next if (exists $propertiesWithStyleBuilderOptions{$propname}{&quot;longhands&quot;});
</ins><span class="cx">             next if ($propname eq &quot;direction&quot; || $propname eq &quot;unicode-bidi&quot;);
</span><del>-            die &quot;Unknown CSS property used in all shorthand: &quot; . $nameToId{$propname} if !exists($nameToId{$propname});
</del><ins>+            die &quot;Unknown CSS property used in all shorthand: $propname&quot; if !exists($nameToId{$propname});
</ins><span class="cx">             push(@{$longhandToShorthands{$propname}}, $name);
</span><span class="cx">             print SHORTHANDS_CPP &quot;        CSSProperty&quot; . $nameToId{$propname} . &quot;,\n&quot;;
</span><span class="cx">         }
</span><span class="cx">     } else {
</span><del>-        die &quot;Unknown CSS property used in Longhands: &quot; . $nameToId{$_} if !exists($nameToId{$_});
</del><ins>+        die &quot;Unknown CSS property used in longhands: $_&quot; if !exists($nameToId{$_});
</ins><span class="cx">         push(@{$longhandToShorthands{$_}}, $name);
</span><span class="cx">         print SHORTHANDS_CPP &quot;        CSSProperty&quot; . $nameToId{$_} . &quot;,\n&quot;;
</span><span class="cx">     }
</span><span class="lines">@@ -984,7 +1051,7 @@
</span><span class="cx"> 
</span><span class="cx"> foreach my $name (@names) {
</span><span class="cx">   # Skip non-Shorthand properties.
</span><del>-  next if (!exists $propertiesWithStyleBuilderOptions{$name}{&quot;Longhands&quot;});
</del><ins>+  next if (!exists $propertiesWithStyleBuilderOptions{$name}{&quot;longhands&quot;});
</ins><span class="cx"> 
</span><span class="cx">   print SHORTHANDS_CPP &quot;    case CSSProperty&quot; . $nameToId{$name} . &quot;:\n&quot;;
</span><span class="cx">   print SHORTHANDS_CPP &quot;        return &quot; . lcfirst($nameToId{$name}) . &quot;Shorthand();\n&quot;;
</span></span></pre>
</div>
</div>

</body>
</html>