<!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>[178586] 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/178586">178586</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2015-01-16 11:39:02 -0800 (Fri, 16 Jan 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Generate StylePropertyShorthand.* from CSSPropertyNames.in
https://bugs.webkit.org/show_bug.cgi?id=140501

Reviewed by Darin Adler.

Add initial support for having makeprop.pl generate most of
StylePropertyShorthand.* from CSSPropertyNames.in.

This patch replaces [Shorthand] parameter in CSSPropertyNames.in by a
more descriptive [Longhands=property1|property2|...] parameter. With
this information, makeprop.pl is now able to generate the
StylePropertyShorthand factories for all CSS shorthand properties
in a new StylePropertyShorthandFunctions.h header.

The switches in StylePropertyShorthand.cpp could also be generated
but this will be taken care of in follow-up patches to reduce patch
size.

* CMakeLists.txt:
* DerivedSources.make:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSPropertyNames.in:
* css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue):
* css/StylePropertyShorthand.cpp:
(WebCore::shorthandForProperty):
(WebCore::matchingShorthandsForLonghand):
(WebCore::backgroundShorthand): Deleted.
(WebCore::backgroundPositionShorthand): Deleted.
(WebCore::backgroundRepeatShorthand): Deleted.
(WebCore::borderShorthand): Deleted.
(WebCore::borderBottomShorthand): Deleted.
(WebCore::borderColorShorthand): Deleted.
(WebCore::borderImageShorthand): Deleted.
(WebCore::borderLeftShorthand): Deleted.
(WebCore::borderRadiusShorthand): Deleted.
(WebCore::webkitBorderRadiusShorthand): Deleted.
(WebCore::borderRightShorthand): Deleted.
(WebCore::borderSpacingShorthand): Deleted.
(WebCore::borderStyleShorthand): Deleted.
(WebCore::borderTopShorthand): Deleted.
(WebCore::borderWidthShorthand): Deleted.
(WebCore::listStyleShorthand): Deleted.
(WebCore::marginShorthand): Deleted.
(WebCore::markerShorthand): Deleted.
(WebCore::outlineShorthand): Deleted.
(WebCore::overflowShorthand): Deleted.
(WebCore::paddingShorthand): Deleted.
(WebCore::transitionShorthand): Deleted.
(WebCore::animationShorthand): Deleted.
(WebCore::webkitAnimationShorthand): Deleted.
(WebCore::webkitBorderAfterShorthand): Deleted.
(WebCore::webkitBorderBeforeShorthand): Deleted.
(WebCore::webkitBorderEndShorthand): Deleted.
(WebCore::webkitBorderStartShorthand): Deleted.
(WebCore::webkitColumnsShorthand): Deleted.
(WebCore::webkitColumnRuleShorthand): Deleted.
(WebCore::flexFlowShorthand): Deleted.
(WebCore::flexShorthand): Deleted.
(WebCore::webkitMarginCollapseShorthand): Deleted.
(WebCore::webkitGridShorthand): Deleted.
(WebCore::webkitGridTemplateShorthand): Deleted.
(WebCore::webkitGridAreaShorthand): Deleted.
(WebCore::webkitGridColumnShorthand): Deleted.
(WebCore::webkitGridRowShorthand): Deleted.
(WebCore::webkitMarqueeShorthand): Deleted.
(WebCore::webkitMaskShorthand): Deleted.
(WebCore::webkitMaskPositionShorthand): Deleted.
(WebCore::webkitMaskRepeatShorthand): Deleted.
(WebCore::webkitTextDecorationShorthand): Deleted.
(WebCore::webkitTextEmphasisShorthand): Deleted.
(WebCore::webkitTextStrokeShorthand): Deleted.
(WebCore::webkitTransitionShorthand): Deleted.
(WebCore::webkitPerspectiveOriginShorthand): Deleted.
(WebCore::webkitTransformOriginShorthand): Deleted.
* css/StylePropertyShorthand.h:
* css/makeprop.pl:</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="#trunkSourceWebCoreWebCorevcxprojWebCorevcxproj">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj</a></li>
<li><a href="#trunkSourceWebCoreWebCorevcxprojWebCorevcxprojfilters">trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorecssCSSComputedStyleDeclarationcpp">trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSParsercpp">trunk/Source/WebCore/css/CSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSPropertycpp">trunk/Source/WebCore/css/CSSProperty.cpp</a></li>
<li><a href="#trunkSourceWebCorecssCSSPropertyNamesin">trunk/Source/WebCore/css/CSSPropertyNames.in</a></li>
<li><a href="#trunkSourceWebCorecssStylePropertiescpp">trunk/Source/WebCore/css/StyleProperties.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStylePropertyShorthandcpp">trunk/Source/WebCore/css/StylePropertyShorthand.cpp</a></li>
<li><a href="#trunkSourceWebCorecssStylePropertyShorthandh">trunk/Source/WebCore/css/StylePropertyShorthand.h</a></li>
<li><a href="#trunkSourceWebCorecssmakeproppl">trunk/Source/WebCore/css/makeprop.pl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/CMakeLists.txt        2015-01-16 19:39:02 UTC (rev 178586)
</span><span class="lines">@@ -3224,7 +3224,7 @@
</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
</del><ins>+    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
</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><span class="lines">@@ -3233,6 +3233,7 @@
</span><span class="cx">     VERBATIM)
</span><span class="cx"> list(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/CSSPropertyNames.cpp)
</span><span class="cx"> list(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/StyleBuilder.cpp)
</span><ins>+list(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/StylePropertyShorthandFunctions.cpp)
</ins><span class="cx"> ADD_SOURCE_WEBCORE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/css/CSSParser.cpp CSSValueKeywords.h)
</span><span class="cx"> ADD_SOURCE_WEBCORE_DERIVED_DEPENDENCIES(${DERIVED_SOURCES_WEBCORE_DIR}/CSSGrammar.cpp CSSPropertyNames.h)
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/ChangeLog        2015-01-16 19:39:02 UTC (rev 178586)
</span><span class="lines">@@ -1,3 +1,89 @@
</span><ins>+2015-01-16  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Generate StylePropertyShorthand.* from CSSPropertyNames.in
+        https://bugs.webkit.org/show_bug.cgi?id=140501
+
+        Reviewed by Darin Adler.
+
+        Add initial support for having makeprop.pl generate most of
+        StylePropertyShorthand.* from CSSPropertyNames.in.
+
+        This patch replaces [Shorthand] parameter in CSSPropertyNames.in by a
+        more descriptive [Longhands=property1|property2|...] parameter. With
+        this information, makeprop.pl is now able to generate the
+        StylePropertyShorthand factories for all CSS shorthand properties
+        in a new StylePropertyShorthandFunctions.h header.
+
+        The switches in StylePropertyShorthand.cpp could also be generated
+        but this will be taken care of in follow-up patches to reduce patch
+        size.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * WebCore.vcxproj/WebCore.vcxproj:
+        * WebCore.vcxproj/WebCore.vcxproj.filters:
+        * WebCore.xcodeproj/project.pbxproj:
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::propertyValue):
+        * css/CSSParser.cpp:
+        (WebCore::CSSParser::parseValue):
+        * css/CSSPropertyNames.in:
+        * css/StyleProperties.cpp:
+        (WebCore::StyleProperties::getPropertyValue):
+        * css/StylePropertyShorthand.cpp:
+        (WebCore::shorthandForProperty):
+        (WebCore::matchingShorthandsForLonghand):
+        (WebCore::backgroundShorthand): Deleted.
+        (WebCore::backgroundPositionShorthand): Deleted.
+        (WebCore::backgroundRepeatShorthand): Deleted.
+        (WebCore::borderShorthand): Deleted.
+        (WebCore::borderBottomShorthand): Deleted.
+        (WebCore::borderColorShorthand): Deleted.
+        (WebCore::borderImageShorthand): Deleted.
+        (WebCore::borderLeftShorthand): Deleted.
+        (WebCore::borderRadiusShorthand): Deleted.
+        (WebCore::webkitBorderRadiusShorthand): Deleted.
+        (WebCore::borderRightShorthand): Deleted.
+        (WebCore::borderSpacingShorthand): Deleted.
+        (WebCore::borderStyleShorthand): Deleted.
+        (WebCore::borderTopShorthand): Deleted.
+        (WebCore::borderWidthShorthand): Deleted.
+        (WebCore::listStyleShorthand): Deleted.
+        (WebCore::marginShorthand): Deleted.
+        (WebCore::markerShorthand): Deleted.
+        (WebCore::outlineShorthand): Deleted.
+        (WebCore::overflowShorthand): Deleted.
+        (WebCore::paddingShorthand): Deleted.
+        (WebCore::transitionShorthand): Deleted.
+        (WebCore::animationShorthand): Deleted.
+        (WebCore::webkitAnimationShorthand): Deleted.
+        (WebCore::webkitBorderAfterShorthand): Deleted.
+        (WebCore::webkitBorderBeforeShorthand): Deleted.
+        (WebCore::webkitBorderEndShorthand): Deleted.
+        (WebCore::webkitBorderStartShorthand): Deleted.
+        (WebCore::webkitColumnsShorthand): Deleted.
+        (WebCore::webkitColumnRuleShorthand): Deleted.
+        (WebCore::flexFlowShorthand): Deleted.
+        (WebCore::flexShorthand): Deleted.
+        (WebCore::webkitMarginCollapseShorthand): Deleted.
+        (WebCore::webkitGridShorthand): Deleted.
+        (WebCore::webkitGridTemplateShorthand): Deleted.
+        (WebCore::webkitGridAreaShorthand): Deleted.
+        (WebCore::webkitGridColumnShorthand): Deleted.
+        (WebCore::webkitGridRowShorthand): Deleted.
+        (WebCore::webkitMarqueeShorthand): Deleted.
+        (WebCore::webkitMaskShorthand): Deleted.
+        (WebCore::webkitMaskPositionShorthand): Deleted.
+        (WebCore::webkitMaskRepeatShorthand): Deleted.
+        (WebCore::webkitTextDecorationShorthand): Deleted.
+        (WebCore::webkitTextEmphasisShorthand): Deleted.
+        (WebCore::webkitTextStrokeShorthand): Deleted.
+        (WebCore::webkitTransitionShorthand): Deleted.
+        (WebCore::webkitPerspectiveOriginShorthand): Deleted.
+        (WebCore::webkitTransformOriginShorthand): Deleted.
+        * css/StylePropertyShorthand.h:
+        * css/makeprop.pl:
+
</ins><span class="cx"> 2015-01-16  Commit Queue  &lt;commit-queue@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r178532.
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/DerivedSources.make        2015-01-16 19:39:02 UTC (rev 178586)
</span><span class="lines">@@ -782,6 +782,8 @@
</span><span class="cx">     SelectorPseudoClassAndCompatibilityElementMap.cpp \
</span><span class="cx">     SelectorPseudoElementTypeMap.cpp \
</span><span class="cx">     StyleBuilder.cpp \
</span><ins>+    StylePropertyShorthandFunctions.cpp \
+    StylePropertyShorthandFunctions.h \
</ins><span class="cx">     UserAgentStyleSheets.h \
</span><span class="cx">     WebKitFontFamilyNames.cpp \
</span><span class="cx">     WebKitFontFamilyNames.h \
</span><span class="lines">@@ -817,7 +819,7 @@
</span><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"> 
</span><del>-CSSPropertyNames.h StyleBuilder.cpp : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl bindings/scripts/preprocessor.pm $(PLATFORM_FEATURE_DEFINES)
</del><ins>+CSSPropertyNames.h StyleBuilder.cpp StylePropertyShorthandFunctions.h StylePropertyShorthandFunctions.cpp : $(WEBCORE_CSS_PROPERTY_NAMES) css/makeprop.pl bindings/scripts/preprocessor.pm $(PLATFORM_FEATURE_DEFINES)
</ins><span class="cx">         $(PERL) -pe '' $(WEBCORE_CSS_PROPERTY_NAMES) &gt; CSSPropertyNames.in
</span><span class="cx">         $(PERL) -I$(WebCore)/bindings/scripts &quot;$(WebCore)/css/makeprop.pl&quot; --defines &quot;$(FEATURE_DEFINES)&quot;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj        2015-01-16 19:39:02 UTC (rev 178586)
</span><span class="lines">@@ -286,6 +286,7 @@
</span><span class="cx">     &lt;ClCompile Include=&quot;$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\SelectorPseudoClassAndCompatibilityElementMap.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\SelectorPseudoElementTypeMap.cpp&quot; /&gt;
</span><span class="cx">     &lt;ClCompile Include=&quot;$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\StyleBuilder.cpp&quot; /&gt;
</span><ins>+    &lt;ClCompile Include=&quot;$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\StylePropertyShorthandFunctions.cpp&quot; /&gt;
</ins><span class="cx">     &lt;ClCompile Include=&quot;$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\WebCore\DerivedSources\JSANGLEInstancedArrays.cpp&quot;&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|Win32'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span><span class="cx">       &lt;ExcludedFromBuild Condition=&quot;'$(Configuration)|$(Platform)'=='Debug|x64'&quot;&gt;true&lt;/ExcludedFromBuild&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorevcxprojWebCorevcxprojfilters"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters        2015-01-16 19:39:02 UTC (rev 178586)
</span><span class="lines">@@ -5083,6 +5083,9 @@
</span><span class="cx">     &lt;ClCompile Include=&quot;$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\StyleBuilder.cpp&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;DerivedSources&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClCompile&gt;
</span><ins>+    &lt;ClCompile Include=&quot;$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\StylePropertyShorthandFunctions.cpp&quot;&gt;
+      &lt;Filter&gt;DerivedSources&lt;/Filter&gt;
+    &lt;/ClCompile&gt;
</ins><span class="cx">     &lt;ClCompile Include=&quot;$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\EventFactory.cpp&quot;&gt;
</span><span class="cx">       &lt;Filter&gt;DerivedSources&lt;/Filter&gt;
</span><span class="cx">     &lt;/ClCompile&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-01-16 19:39:02 UTC (rev 178586)
</span><span class="lines">@@ -2553,6 +2553,8 @@
</span><span class="cx">                 839AAFEC1A0C0C8D00605F99 /* HTMLWBRElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 839AAFEA1A0C0C8D00605F99 /* HTMLWBRElement.cpp */; };
</span><span class="cx">                 839AAFED1A0C0C8D00605F99 /* HTMLWBRElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 839AAFEB1A0C0C8D00605F99 /* HTMLWBRElement.h */; };
</span><span class="cx">                 83B9687B19F8AB83004EF7AF /* StyleBuilderConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83B9687919F8AB83004EF7AF /* StyleBuilderConverter.h */; };
</span><ins>+                83C05A5A1A686212007E5DEA /* StylePropertyShorthandFunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83C05A581A686212007E5DEA /* StylePropertyShorthandFunctions.cpp */; };
+                83C05A5B1A686212007E5DEA /* StylePropertyShorthandFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C05A591A686212007E5DEA /* StylePropertyShorthandFunctions.h */; };
</ins><span class="cx">                 83C1D425178D5AB400141E68 /* SVGPathSegArcAbs.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C1D413178D5AB400141E68 /* SVGPathSegArcAbs.h */; };
</span><span class="cx">                 83C1D426178D5AB400141E68 /* SVGPathSegArcRel.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C1D414178D5AB400141E68 /* SVGPathSegArcRel.h */; };
</span><span class="cx">                 83C1D427178D5AB400141E68 /* SVGPathSegCurvetoCubicAbs.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C1D415178D5AB400141E68 /* SVGPathSegCurvetoCubicAbs.h */; };
</span><span class="lines">@@ -9718,6 +9720,8 @@
</span><span class="cx">                 839AAFEA1A0C0C8D00605F99 /* HTMLWBRElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLWBRElement.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 839AAFEB1A0C0C8D00605F99 /* HTMLWBRElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLWBRElement.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 83B9687919F8AB83004EF7AF /* StyleBuilderConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleBuilderConverter.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                83C05A581A686212007E5DEA /* StylePropertyShorthandFunctions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; name = StylePropertyShorthandFunctions.cpp; path = StylePropertyShorthandFunctions.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                83C05A591A686212007E5DEA /* StylePropertyShorthandFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; name = StylePropertyShorthandFunctions.h; path = StylePropertyShorthandFunctions.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 83C1D413178D5AB400141E68 /* SVGPathSegArcAbs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathSegArcAbs.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 83C1D414178D5AB400141E68 /* SVGPathSegArcRel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathSegArcRel.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 83C1D415178D5AB400141E68 /* SVGPathSegCurvetoCubicAbs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathSegCurvetoCubicAbs.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -16286,6 +16290,8 @@
</span><span class="cx">                                 26AA0F9F18D2A1C100419381 /* SelectorPseudoElementTypeMap.gperf */,
</span><span class="cx">                                 53EF766A16530A61004CBE49 /* SettingsMacros.h */,
</span><span class="cx">                                 8386A96E19F61E4F00E1EC4A /* StyleBuilder.cpp */,
</span><ins>+                                83C05A581A686212007E5DEA /* StylePropertyShorthandFunctions.cpp */,
+                                83C05A591A686212007E5DEA /* StylePropertyShorthandFunctions.h */,
</ins><span class="cx">                                 656581E609D1508D000E61D7 /* SVGElementFactory.cpp */,
</span><span class="cx">                                 656581E709D1508D000E61D7 /* SVGElementFactory.h */,
</span><span class="cx">                                 B562DB5F17D3CD560010AF96 /* SVGElementTypeHelpers.h */,
</span><span class="lines">@@ -26143,6 +26149,7 @@
</span><span class="cx">                                 08D46CE3127AD5FC0089694B /* SVGAnimatedEnumeration.h in Headers */,
</span><span class="cx">                                 71FB967B1383D64600AC8A4C /* SVGAnimatedEnumerationPropertyTearOff.h in Headers */,
</span><span class="cx">                                 0823D159127AD6AC000EBC95 /* SVGAnimatedInteger.h in Headers */,
</span><ins>+                                83C05A5B1A686212007E5DEA /* StylePropertyShorthandFunctions.h in Headers */,
</ins><span class="cx">                                 71E623D1151F72A60036E2F4 /* SVGAnimatedIntegerOptionalInteger.h in Headers */,
</span><span class="cx">                                 089021A9126EF5DE0092D5EA /* SVGAnimatedLength.h in Headers */,
</span><span class="cx">                                 089021AD126EF5E90092D5EA /* SVGAnimatedLengthList.h in Headers */,
</span><span class="lines">@@ -28549,6 +28556,7 @@
</span><span class="cx">                                 07969DC317D14151007FF842 /* JSRTCStatsResponse.cpp in Sources */,
</span><span class="cx">                                 07DC5FD417D3EEE90099F890 /* JSRTCStatsResponseCustom.cpp in Sources */,
</span><span class="cx">                                 BCEC01C20C274DDD009F4EC9 /* JSScreen.cpp in Sources */,
</span><ins>+                                83C05A5A1A686212007E5DEA /* StylePropertyShorthandFunctions.cpp in Sources */,
</ins><span class="cx">                                 FDA15ECD12B03F61003A583A /* JSScriptProcessorNode.cpp in Sources */,
</span><span class="cx">                                 9FA37EFA1172FDA600C4CD55 /* JSScriptProfile.cpp in Sources */,
</span><span class="cx">                                 9FA37EFC1172FDA600C4CD55 /* JSScriptProfileNode.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSComputedStyleDeclarationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp        2015-01-16 19:39:02 UTC (rev 178586)
</span><span class="lines">@@ -3012,9 +3012,9 @@
</span><span class="cx">         case CSSPropertyBorderWidth:
</span><span class="cx">             return getCSSPropertyValuesForSidesShorthand(borderWidthShorthand());
</span><span class="cx">         case CSSPropertyColumnRule:
</span><del>-            return getCSSPropertyValuesForShorthandProperties(webkitColumnRuleShorthand());
</del><ins>+            return getCSSPropertyValuesForShorthandProperties(columnRuleShorthand());
</ins><span class="cx">         case CSSPropertyColumns:
</span><del>-            return getCSSPropertyValuesForShorthandProperties(webkitColumnsShorthand());
</del><ins>+            return getCSSPropertyValuesForShorthandProperties(columnsShorthand());
</ins><span class="cx">         case CSSPropertyListStyle:
</span><span class="cx">             return getCSSPropertyValuesForShorthandProperties(listStyleShorthand());
</span><span class="cx">         case CSSPropertyMargin:
</span><span class="lines">@@ -3385,8 +3385,8 @@
</span><span class="cx">                                                                     CSSPropertyBackgroundClip };
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;CSSValueList&gt; list = CSSValueList::createSlashSeparated();
</span><del>-    list-&gt;append(*getCSSPropertyValuesForShorthandProperties(StylePropertyShorthand(CSSPropertyBackground, propertiesBeforeSlashSeperator, WTF_ARRAY_LENGTH(propertiesBeforeSlashSeperator))));
-    list-&gt;append(*getCSSPropertyValuesForShorthandProperties(StylePropertyShorthand(CSSPropertyBackground, propertiesAfterSlashSeperator, WTF_ARRAY_LENGTH(propertiesAfterSlashSeperator))));
</del><ins>+    list-&gt;append(*getCSSPropertyValuesForShorthandProperties(StylePropertyShorthand(CSSPropertyBackground, propertiesBeforeSlashSeperator)));
+    list-&gt;append(*getCSSPropertyValuesForShorthandProperties(StylePropertyShorthand(CSSPropertyBackground, propertiesAfterSlashSeperator)));
</ins><span class="cx">     return list.release();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSParser.cpp (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSParser.cpp        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/css/CSSParser.cpp        2015-01-16 19:39:02 UTC (rev 178586)
</span><span class="lines">@@ -2899,9 +2899,9 @@
</span><span class="cx">     case CSSPropertyListStyle:
</span><span class="cx">         return parseShorthand(propId, listStyleShorthand(), important);
</span><span class="cx">     case CSSPropertyColumns:
</span><del>-        return parseShorthand(propId, webkitColumnsShorthand(), important);
</del><ins>+        return parseShorthand(propId, columnsShorthand(), important);
</ins><span class="cx">     case CSSPropertyColumnRule:
</span><del>-        return parseShorthand(propId, webkitColumnRuleShorthand(), important);
</del><ins>+        return parseShorthand(propId, columnRuleShorthand(), important);
</ins><span class="cx">     case CSSPropertyWebkitTextStroke:
</span><span class="cx">         return parseShorthand(propId, webkitTextStrokeShorthand(), important);
</span><span class="cx">     case CSSPropertyAnimation:
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSProperty.cpp (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSProperty.cpp        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/css/CSSProperty.cpp        2015-01-16 19:39:02 UTC (rev 178586)
</span><span class="lines">@@ -174,7 +174,7 @@
</span><span class="cx"> static const StylePropertyShorthand&amp; borderDirections()
</span><span class="cx"> {
</span><span class="cx">     static const CSSPropertyID properties[4] = { CSSPropertyBorderTop, CSSPropertyBorderRight, CSSPropertyBorderBottom, CSSPropertyBorderLeft };
</span><del>-    static NeverDestroyed&lt;StylePropertyShorthand&gt; borderDirections(CSSPropertyBorder, properties, WTF_ARRAY_LENGTH(properties));
</del><ins>+    static NeverDestroyed&lt;StylePropertyShorthand&gt; borderDirections(CSSPropertyBorder, properties);
</ins><span class="cx">     return borderDirections;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssCSSPropertyNamesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/CSSPropertyNames.in (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/CSSPropertyNames.in        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/css/CSSPropertyNames.in        2015-01-16 19:39:02 UTC (rev 178586)
</span><span class="lines">@@ -86,9 +86,12 @@
</span><span class="cx"> // * SkipBuilder:
</span><span class="cx"> // Ignore this property in the StyleBuilder.
</span><span class="cx"> //
</span><del>-// * Shorthand:
</del><ins>+// * Longhands=property1|property2|...:
</ins><span class="cx"> // This is a shorthand property so it should not use the StyleBuilder. An
</span><span class="cx"> // ASSERT_NOT_REACHED() will be generated for this property in the StyleBuilder.
</span><ins>+// property1, property2, ... are the longhands for this shorthand property. A
+// corresponding &quot;StylePropertyShorthand propertyIdShorthand()&quot; function will be
+// generated in StylePropertyShorthandFunctions.h header.
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> // high-priority property names have to be listed first, to simplify the check
</span><span class="lines">@@ -129,7 +132,7 @@
</span><span class="cx"> 
</span><span class="cx"> // The remaining properties are listed in alphabetical order
</span><span class="cx"> alignment-baseline [SVG]
</span><del>-animation [Shorthand]
</del><ins>+animation [Longhands=animation-name|animation-duration|animation-timing-function|animation-delay|animation-iteration-count|animation-direction|animation-fill-mode]
</ins><span class="cx"> animation-delay [AnimationProperty, NameForMethods=Delay]
</span><span class="cx"> animation-direction [AnimationProperty, NameForMethods=Direction]
</span><span class="cx"> animation-duration [AnimationProperty, NameForMethods=Duration]
</span><span class="lines">@@ -138,23 +141,23 @@
</span><span class="cx"> animation-name [AnimationProperty, NameForMethods=Name]
</span><span class="cx"> animation-play-state [AnimationProperty, NameForMethods=PlayState]
</span><span class="cx"> animation-timing-function [AnimationProperty, NameForMethods=TimingFunction]
</span><del>-background [Shorthand]
</del><ins>+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]
</ins><span class="cx"> background-attachment [FillLayerProperty, NameForMethods=Attachment]
</span><span class="cx"> background-blend-mode [FillLayerProperty, NameForMethods=BlendMode]
</span><span class="cx"> background-clip [FillLayerProperty, NameForMethods=Clip]
</span><span class="cx"> background-color [VisitedLinkColorSupport, Initial=invalidColor, NoDefaultColor]
</span><span class="cx"> background-image [FillLayerProperty, NameForMethods=Image]
</span><span class="cx"> background-origin [FillLayerProperty, NameForMethods=Origin]
</span><del>-background-position [Shorthand]
</del><ins>+background-position [Longhands=background-position-x|background-position-y]
</ins><span class="cx"> background-position-x [FillLayerProperty, NameForMethods=XPosition]
</span><span class="cx"> background-position-y [FillLayerProperty, NameForMethods=YPosition]
</span><del>-background-repeat [Shorthand]
</del><ins>+background-repeat [Longhands=background-repeat-x|background-repeat-y]
</ins><span class="cx"> background-repeat-x [FillLayerProperty, NameForMethods=RepeatX]
</span><span class="cx"> background-repeat-y [FillLayerProperty, NameForMethods=RepeatY]
</span><span class="cx"> background-size [FillLayerProperty, NameForMethods=Size]
</span><span class="cx"> baseline-shift [SVG, Custom=Value]
</span><del>-border [Shorthand]
-border-bottom [Shorthand]
</del><ins>+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]
</ins><span class="cx"> border-bottom-color [VisitedLinkColorSupport, Initial=invalidColor]
</span><span class="cx"> border-bottom-left-radius [Initial=initialBorderRadius, Converter=Radius]
</span><span class="cx"> -webkit-border-bottom-left-radius = border-bottom-left-radius
</span><span class="lines">@@ -163,25 +166,25 @@
</span><span class="cx"> border-bottom-style [Initial=initialBorderStyle]
</span><span class="cx"> border-bottom-width [Initial=initialBorderWidth, Converter=LineWidth&lt;float&gt;]
</span><span class="cx"> border-collapse [Inherited]
</span><del>-border-color [Shorthand]
-border-image [Shorthand]
</del><ins>+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]
</ins><span class="cx"> border-image-outset [Custom=All]
</span><span class="cx"> border-image-repeat [Custom=All]
</span><span class="cx"> border-image-slice [Custom=All]
</span><span class="cx"> border-image-source [Converter=StyleImage&lt;CSSPropertyBorderImageSource&gt;]
</span><span class="cx"> border-image-width [Custom=All]
</span><del>-border-left [Shorthand]
</del><ins>+border-left [Longhands=border-left-width|border-left-style|border-left-color]
</ins><span class="cx"> border-left-color [VisitedLinkColorSupport, Initial=invalidColor]
</span><span class="cx"> border-left-style [Initial=initialBorderStyle]
</span><span class="cx"> border-left-width [Initial=initialBorderWidth, Converter=LineWidth&lt;float&gt;]
</span><del>-border-radius [Shorthand]
-border-right [Shorthand]
</del><ins>+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]
</ins><span class="cx"> border-right-color [VisitedLinkColorSupport, Initial=invalidColor]
</span><span class="cx"> border-right-style [Initial=initialBorderStyle]
</span><span class="cx"> border-right-width [Initial=initialBorderWidth, Converter=LineWidth&lt;float&gt;]
</span><del>-border-spacing [Inherited, Shorthand]
-border-style [Shorthand]
-border-top [Shorthand]
</del><ins>+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]
</ins><span class="cx"> border-top-color [VisitedLinkColorSupport, Initial=invalidColor]
</span><span class="cx"> border-top-left-radius [Initial=initialBorderRadius, Converter=Radius]
</span><span class="cx"> -webkit-border-top-left-radius = border-top-left-radius
</span><span class="lines">@@ -189,7 +192,7 @@
</span><span class="cx"> -webkit-border-top-right-radius = border-top-right-radius
</span><span class="cx"> border-top-style [Initial=initialBorderStyle]
</span><span class="cx"> border-top-width [Initial=initialBorderWidth, Converter=LineWidth&lt;float&gt;]
</span><del>-border-width [Shorthand]
</del><ins>+border-width [Longhands=border-top-width|border-right-width|border-bottom-width|border-left-width]
</ins><span class="cx"> bottom [Initial=initialOffset, Converter=LengthOrAuto]
</span><span class="cx"> box-shadow [Custom=All]
</span><span class="cx"> box-sizing
</span><span class="lines">@@ -241,16 +244,16 @@
</span><span class="cx"> left [Initial=initialOffset, Converter=LengthOrAuto]
</span><span class="cx"> letter-spacing [Inherited, Converter=Spacing]
</span><span class="cx"> lighting-color [SVG, Converter=SVGColor]
</span><del>-list-style [Inherited, Shorthand]
</del><ins>+list-style [Inherited, Longhands=list-style-type|list-style-position|list-style-image]
</ins><span class="cx"> list-style-image [Inherited, Converter=StyleImage&lt;CSSPropertyListStyleImage&gt;]
</span><span class="cx"> list-style-position [Inherited]
</span><span class="cx"> list-style-type [Inherited]
</span><del>-margin [Shorthand]
</del><ins>+margin [Longhands=margin-top|margin-right|margin-bottom|margin-left]
</ins><span class="cx"> margin-bottom [Initial=initialMargin, Converter=LengthOrAuto]
</span><span class="cx"> margin-left [Initial=initialMargin, Converter=LengthOrAuto]
</span><span class="cx"> margin-right [Initial=initialMargin, Converter=LengthOrAuto]
</span><span class="cx"> margin-top [Initial=initialMargin, Converter=LengthOrAuto]
</span><del>-marker [Inherited, Shorthand]
</del><ins>+marker [Inherited, Longhands=marker-start|marker-mid|marker-end]
</ins><span class="cx"> marker-end [Inherited, SVG, Converter=SVGURIReference, NameForMethods=MarkerEndResource]
</span><span class="cx"> marker-mid [Inherited, SVG, Converter=SVGURIReference, NameForMethods=MarkerMidResource]
</span><span class="cx"> marker-start [Inherited, SVG, Converter=SVGURIReference, NameForMethods=MarkerStartResource]
</span><span class="lines">@@ -266,16 +269,16 @@
</span><span class="cx"> // and may be in use on some websites and widgets.
</span><span class="cx"> -webkit-opacity = opacity
</span><span class="cx"> orphans [Inherited, AutoFunctions]
</span><del>-outline [Shorthand]
</del><ins>+outline [Longhands=outline-color|outline-style|outline-width]
</ins><span class="cx"> outline-color [VisitedLinkColorSupport, Initial=invalidColor]
</span><span class="cx"> outline-offset [Converter=ComputedLength&lt;int&gt;]
</span><span class="cx"> outline-style [Custom=All]
</span><span class="cx"> outline-width [Converter=LineWidth&lt;unsigned short&gt;]
</span><del>-overflow [Shorthand]
</del><ins>+overflow [Longhands=overflow-x|overflow-y]
</ins><span class="cx"> overflow-wrap
</span><span class="cx"> overflow-x
</span><span class="cx"> overflow-y
</span><del>-padding [Shorthand]
</del><ins>+padding [Longhands=padding-top|padding-right|padding-bottom|padding-left]
</ins><span class="cx"> padding-bottom [Initial=initialPadding, Converter=Length]
</span><span class="cx"> padding-left [Initial=initialPadding, Converter=Length]
</span><span class="cx"> padding-right [Initial=initialPadding, Converter=Length]
</span><span class="lines">@@ -333,7 +336,7 @@
</span><span class="cx"> text-underline-style [SkipBuilder]
</span><span class="cx"> text-underline-width [SkipBuilder]
</span><span class="cx"> top [Initial=initialOffset, Converter=LengthOrAuto]
</span><del>-transition [Shorthand]
</del><ins>+transition [Longhands=transition-property|transition-duration|transition-timing-function|transition-delay]
</ins><span class="cx"> transition-delay [SkipBuilder]
</span><span class="cx"> transition-duration [SkipBuilder]
</span><span class="cx"> transition-property [SkipBuilder]
</span><span class="lines">@@ -357,7 +360,7 @@
</span><span class="cx"> z-index [AutoFunctions]
</span><span class="cx"> alt [NameForMethods=ContentAltText, Custom=Value]
</span><span class="cx"> -webkit-alt = alt
</span><del>--webkit-animation [Shorthand]
</del><ins>+-webkit-animation [Longhands=-webkit-animation-name|-webkit-animation-duration|-webkit-animation-timing-function|-webkit-animation-delay|-webkit-animation-iteration-count|-webkit-animation-direction|-webkit-animation-fill-mode]
</ins><span class="cx"> -webkit-animation-delay [AnimationProperty, NameForMethods=Delay]
</span><span class="cx"> -webkit-animation-direction [AnimationProperty, NameForMethods=Direction]
</span><span class="cx"> -webkit-animation-duration [AnimationProperty, NameForMethods=Duration]
</span><span class="lines">@@ -376,15 +379,15 @@
</span><span class="cx"> // a single value: -webkit-background-size: l; is equivalent to background-size: l l;
</span><span class="cx"> // whereas background-size: l; is equivalent to background-size: l auto;
</span><span class="cx"> -webkit-background-size [FillLayerProperty, NameForMethods=Size]
</span><del>--webkit-border-after [Shorthand]
</del><ins>+-webkit-border-after [Longhands=-webkit-border-after-width|-webkit-border-after-style|-webkit-border-after-color]
</ins><span class="cx"> -webkit-border-after-color [SkipBuilder]
</span><span class="cx"> -webkit-border-after-style [SkipBuilder]
</span><span class="cx"> -webkit-border-after-width [SkipBuilder]
</span><del>--webkit-border-before [Shorthand]
</del><ins>+-webkit-border-before [Longhands=-webkit-border-before-width|-webkit-border-before-style|-webkit-border-before-color]
</ins><span class="cx"> -webkit-border-before-color [SkipBuilder]
</span><span class="cx"> -webkit-border-before-style [SkipBuilder]
</span><span class="cx"> -webkit-border-before-width [SkipBuilder]
</span><del>--webkit-border-end [Shorthand]
</del><ins>+-webkit-border-end [Longhands=-webkit-border-end-width|-webkit-border-end-style|-webkit-border-end-color]
</ins><span class="cx"> -webkit-border-end-color [SkipBuilder]
</span><span class="cx"> -webkit-border-end-style [SkipBuilder]
</span><span class="cx"> -webkit-border-end-width [SkipBuilder]
</span><span class="lines">@@ -394,8 +397,8 @@
</span><span class="cx"> // -webkit-border-radius differs from border-radius only in the interpretation of
</span><span class="cx"> // a value consisting of two lengths: &quot;-webkit-border-radius: l1 l2;&quot; is equivalent
</span><span class="cx"> // to &quot;border-radius: l1 / l2;&quot;
</span><del>--webkit-border-radius [Shorthand]
--webkit-border-start [Shorthand]
</del><ins>+-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]
</ins><span class="cx"> -webkit-border-start-color [SkipBuilder]
</span><span class="cx"> -webkit-border-start-style [SkipBuilder]
</span><span class="cx"> -webkit-border-start-width [SkipBuilder]
</span><span class="lines">@@ -426,7 +429,7 @@
</span><span class="cx"> -webkit-column-gap = column-gap
</span><span class="cx"> column-progression
</span><span class="cx"> -webkit-column-progression = column-progression
</span><del>-column-rule [Shorthand]
</del><ins>+column-rule [Longhands=column-rule-width|column-rule-style|column-rule-color]
</ins><span class="cx"> -webkit-column-rule = column-rule
</span><span class="cx"> column-rule-color [VisitedLinkColorSupport, Initial=invalidColor]
</span><span class="cx"> -webkit-column-rule-color = column-rule-color
</span><span class="lines">@@ -438,7 +441,7 @@
</span><span class="cx"> -webkit-column-span = column-span
</span><span class="cx"> column-width [AutoFunctions, Converter=ComputedLength&lt;float&gt;]
</span><span class="cx"> -webkit-column-width = column-width
</span><del>-columns [Shorthand]
</del><ins>+columns [Longhands=column-width|column-count]
</ins><span class="cx"> -webkit-columns = columns
</span><span class="cx"> #if defined(ENABLE_CSS_BOX_DECORATION_BREAK) &amp;&amp; ENABLE_CSS_BOX_DECORATION_BREAK
</span><span class="cx"> -webkit-box-decoration-break
</span><span class="lines">@@ -454,13 +457,13 @@
</span><span class="cx"> -webkit-align-items = align-items
</span><span class="cx"> align-self
</span><span class="cx"> -webkit-align-self = align-self
</span><del>-flex [Shorthand]
</del><ins>+flex [Longhands=flex-grow|flex-shrink|flex-basis]
</ins><span class="cx"> -webkit-flex = flex
</span><span class="cx"> flex-basis [Converter=LengthOrAuto]
</span><span class="cx"> -webkit-flex-basis = flex-basis
</span><span class="cx"> flex-direction
</span><span class="cx"> -webkit-flex-direction = flex-direction
</span><del>-flex-flow [Shorthand]
</del><ins>+flex-flow [Longhands=flex-direction|flex-wrap]
</ins><span class="cx"> -webkit-flex-flow = flex-flow
</span><span class="cx"> flex-grow
</span><span class="cx"> -webkit-flex-grow = flex-grow
</span><span class="lines">@@ -476,19 +479,19 @@
</span><span class="cx"> -webkit-justify-self [Custom=Value]
</span><span class="cx"> -webkit-font-size-delta [SkipBuilder]
</span><span class="cx"> #if defined(ENABLE_CSS_GRID_LAYOUT) &amp;&amp; ENABLE_CSS_GRID_LAYOUT
</span><del>--webkit-grid [Shorthand]
--webkit-grid-area [Shorthand]
</del><ins>+-webkit-grid [Longhands=-webkit-grid-template-columns|-webkit-grid-template-rows|-webkit-grid-template-areas|-webkit-grid-auto-flow|-webkit-grid-auto-columns|-webkit-grid-auto-rows]
+-webkit-grid-area [Longhands=-webkit-grid-row-start|-webkit-grid-column-start|-webkit-grid-row-end|-webkit-grid-row-start]
</ins><span class="cx"> -webkit-grid-auto-columns [ConditionalConverter=GridTrackSize]
</span><span class="cx"> -webkit-grid-auto-rows [ConditionalConverter=GridTrackSize]
</span><span class="cx"> -webkit-grid-column-end [ConditionalConverter=GridPosition, NameForMethods=GridItemColumnEnd]
</span><span class="cx"> -webkit-grid-column-start [ConditionalConverter=GridPosition, NameForMethods=GridItemColumnStart]
</span><del>--webkit-grid-template [Shorthand]
</del><ins>+-webkit-grid-template [Longhands=-webkit-grid-template-columns|-webkit-grid-template-rows|-webkit-grid-template-areas]
</ins><span class="cx"> -webkit-grid-template-columns [Custom=All]
</span><span class="cx"> -webkit-grid-template-rows [Custom=All]
</span><span class="cx"> -webkit-grid-row-end [ConditionalConverter=GridPosition, NameForMethods=GridItemRowEnd]
</span><span class="cx"> -webkit-grid-row-start [ConditionalConverter=GridPosition, NameForMethods=GridItemRowStart]
</span><del>--webkit-grid-column [Shorthand]
--webkit-grid-row [Shorthand]
</del><ins>+-webkit-grid-column [Longhands=-webkit-grid-column-start|-webkit-grid-column-end]
+-webkit-grid-row [Longhands=-webkit-grid-row-start|-webkit-grid-row-end]
</ins><span class="cx"> -webkit-grid-template-areas [Custom=All]
</span><span class="cx"> -webkit-grid-auto-flow [Converter=GridAutoFlow]
</span><span class="cx"> #endif
</span><span class="lines">@@ -511,18 +514,18 @@
</span><span class="cx"> -webkit-margin-before-collapse
</span><span class="cx"> -webkit-margin-bottom-collapse [NameForMethods=MarginAfterCollapse]
</span><span class="cx"> -webkit-margin-top-collapse [NameForMethods=MarginBeforeCollapse]
</span><del>--webkit-margin-collapse [Shorthand]
</del><ins>+-webkit-margin-collapse [Longhands=-webkit-margin-before-collapse|-webkit-margin-after-collapse]
</ins><span class="cx"> -webkit-margin-after [SkipBuilder]
</span><span class="cx"> -webkit-margin-before [SkipBuilder]
</span><span class="cx"> -webkit-margin-end [SkipBuilder]
</span><span class="cx"> -webkit-margin-start [SkipBuilder]
</span><del>--webkit-marquee [Shorthand]
</del><ins>+-webkit-marquee [Longhands=-webkit-marquee-direction|-webkit-marquee-increment|-webkit-marquee-repetition|-webkit-marquee-style|-webkit-marquee-speed]
</ins><span class="cx"> -webkit-marquee-direction
</span><span class="cx"> -webkit-marquee-increment [ConditionalConverter=MarqueeIncrement]
</span><span class="cx"> -webkit-marquee-repetition [NameForMethods=MarqueeLoopCount, Converter=MarqueeRepetition]
</span><span class="cx"> -webkit-marquee-speed [Converter=MarqueeSpeed]
</span><span class="cx"> -webkit-marquee-style [NameForMethods=MarqueeBehavior]
</span><del>--webkit-mask [Shorthand]
</del><ins>+-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]
</ins><span class="cx"> -webkit-mask-box-image [Initial=initialNinePieceImage, Converter=BorderMask&lt;CSSPropertyWebkitMaskBoxImage&gt;]
</span><span class="cx"> -webkit-mask-box-image-outset [Custom=All]
</span><span class="cx"> -webkit-mask-box-image-repeat [Custom=All]
</span><span class="lines">@@ -533,10 +536,10 @@
</span><span class="cx"> -webkit-mask-composite [FillLayerProperty, NameForMethods=Composite]
</span><span class="cx"> -webkit-mask-image [Custom=Initial|Inherit, Converter=MaskImageOperations]
</span><span class="cx"> -webkit-mask-origin [FillLayerProperty, NameForMethods=Origin]
</span><del>--webkit-mask-position [Shorthand]
</del><ins>+-webkit-mask-position [Longhands=-webkit-mask-position-x|-webkit-mask-position-y]
</ins><span class="cx"> -webkit-mask-position-x [FillLayerProperty, NameForMethods=XPosition]
</span><span class="cx"> -webkit-mask-position-y [FillLayerProperty, NameForMethods=YPosition]
</span><del>--webkit-mask-repeat [Shorthand]
</del><ins>+-webkit-mask-repeat [Longhands=-webkit-mask-repeat-x|-webkit-mask-repeat-y]
</ins><span class="cx"> -webkit-mask-repeat-x [FillLayerProperty, NameForMethods=RepeatX]
</span><span class="cx"> -webkit-mask-repeat-y [FillLayerProperty, NameForMethods=RepeatY]
</span><span class="cx"> -webkit-mask-size [FillLayerProperty, NameForMethods=Size]
</span><span class="lines">@@ -553,7 +556,7 @@
</span><span class="cx"> -webkit-padding-end [SkipBuilder]
</span><span class="cx"> -webkit-padding-start [SkipBuilder]
</span><span class="cx"> -webkit-perspective [ConditionalConverter=Perspective]
</span><del>--webkit-perspective-origin [Shorthand]
</del><ins>+-webkit-perspective-origin [Longhands=-webkit-perspective-origin-x|-webkit-perspective-origin-y]
</ins><span class="cx"> -webkit-perspective-origin-x [Converter=Length]
</span><span class="cx"> -webkit-perspective-origin-y [Converter=Length]
</span><span class="cx"> -webkit-print-color-adjust [Inherited]
</span><span class="lines">@@ -572,14 +575,14 @@
</span><span class="cx"> -webkit-text-align-last [Inherited]
</span><span class="cx"> -webkit-text-justify [Inherited]
</span><span class="cx"> #endif
</span><del>--webkit-text-decoration [SkipBuilder]
</del><ins>+-webkit-text-decoration [Longhands=-webkit-text-decoration-line|-webkit-text-decoration-style|-webkit-text-decoration-color]
</ins><span class="cx"> -webkit-text-decoration-line [NameForMethods=TextDecoration, Converter=TextDecoration]
</span><span class="cx"> -webkit-text-decoration-style
</span><span class="cx"> -webkit-text-decoration-color [VisitedLinkColorSupport, Initial=invalidColor]
</span><span class="cx"> -webkit-text-decoration-skip [Inherited, Converter=TextDecorationSkip]
</span><span class="cx"> -webkit-text-underline-position [Inherited, Converter=TextUnderlinePosition]
</span><span class="cx"> -webkit-text-decorations-in-effect [Inherited, SkipBuilder]
</span><del>--webkit-text-emphasis [Inherited, Shorthand]
</del><ins>+-webkit-text-emphasis [Inherited, Longhands=-webkit-text-emphasis-style|-webkit-text-emphasis-color]
</ins><span class="cx"> -epub-text-emphasis = -webkit-text-emphasis
</span><span class="cx"> text-emphasis = -webkit-text-emphasis
</span><span class="cx"> -webkit-text-emphasis-color [Inherited, VisitedLinkColorSupport, Initial=invalidColor]
</span><span class="lines">@@ -592,16 +595,16 @@
</span><span class="cx"> text-emphasis-style = -webkit-text-emphasis-style
</span><span class="cx"> -webkit-text-fill-color [Inherited, VisitedLinkColorSupport, Initial=invalidColor]
</span><span class="cx"> -webkit-text-security [Inherited]
</span><del>--webkit-text-stroke [Inherited, Shorthand]
</del><ins>+-webkit-text-stroke [Inherited, Longhands=-webkit-text-stroke-width|-webkit-text-stroke-color]
</ins><span class="cx"> -webkit-text-stroke-color [Inherited, VisitedLinkColorSupport, Initial=invalidColor]
</span><span class="cx"> -webkit-text-stroke-width [Inherited, Converter=TextStrokeWidth]
</span><span class="cx"> -webkit-transform [Converter=Transform]
</span><del>--webkit-transform-origin [Shorthand]
</del><ins>+-webkit-transform-origin [Longhands=-webkit-transform-origin-x|-webkit-transform-origin-y|-webkit-transform-origin-z]
</ins><span class="cx"> -webkit-transform-origin-x [Converter=Length]
</span><span class="cx"> -webkit-transform-origin-y [Converter=Length]
</span><span class="cx"> -webkit-transform-origin-z [Converter=ComputedLength&lt;float&gt;]
</span><span class="cx"> -webkit-transform-style [NameForMethods=TransformStyle3D]
</span><del>--webkit-transition [Shorthand]
</del><ins>+-webkit-transition [Longhands=-webkit-transition-property|-webkit-transition-duration|-webkit-transition-timing-function|-webkit-transition-delay]
</ins><span class="cx"> -webkit-transition-delay [AnimationProperty, NameForMethods=Delay]
</span><span class="cx"> -webkit-transition-duration [AnimationProperty, NameForMethods=Duration]
</span><span class="cx"> -webkit-transition-property [AnimationProperty, NameForMethods=Property]
</span></span></pre></div>
<a id="trunkSourceWebCorecssStylePropertiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StyleProperties.cpp (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StyleProperties.cpp        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/css/StyleProperties.cpp        2015-01-16 19:39:02 UTC (rev 178586)
</span><span class="lines">@@ -154,9 +154,9 @@
</span><span class="cx">     case CSSPropertyBorderStyle:
</span><span class="cx">         return get4Values(borderStyleShorthand());
</span><span class="cx">     case CSSPropertyColumnRule:
</span><del>-        return getShorthandValue(webkitColumnRuleShorthand());
</del><ins>+        return getShorthandValue(columnRuleShorthand());
</ins><span class="cx">     case CSSPropertyColumns:
</span><del>-        return getShorthandValue(webkitColumnsShorthand());
</del><ins>+        return getShorthandValue(columnsShorthand());
</ins><span class="cx">     case CSSPropertyFlex:
</span><span class="cx">         return getShorthandValue(flexShorthand());
</span><span class="cx">     case CSSPropertyFlexFlow:
</span></span></pre></div>
<a id="trunkSourceWebCorecssStylePropertyShorthandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StylePropertyShorthand.cpp (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StylePropertyShorthand.cpp        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/css/StylePropertyShorthand.cpp        2015-01-16 19:39:02 UTC (rev 178586)
</span><span class="lines">@@ -24,165 +24,15 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;wtf/StdLibExtras.h&gt;
</span><span class="cx"> 
</span><del>-// FIXME: How much of this file can we generate?
-
</del><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-StylePropertyShorthand backgroundShorthand()
-{
-    static const CSSPropertyID backgroundProperties[] = {
-        CSSPropertyBackgroundImage,
-        CSSPropertyBackgroundPositionX,
-        CSSPropertyBackgroundPositionY,
-        CSSPropertyBackgroundSize,
-        CSSPropertyBackgroundRepeatX,
-        CSSPropertyBackgroundRepeatY,
-        CSSPropertyBackgroundAttachment,
-        CSSPropertyBackgroundOrigin,
-        CSSPropertyBackgroundClip,
-        CSSPropertyBackgroundColor
-    };
-    return StylePropertyShorthand(CSSPropertyBackground, backgroundProperties, WTF_ARRAY_LENGTH(backgroundProperties));
-}
-
-StylePropertyShorthand backgroundPositionShorthand()
-{
-    static const CSSPropertyID backgroundPositionProperties[] = { CSSPropertyBackgroundPositionX, CSSPropertyBackgroundPositionY };
-    return StylePropertyShorthand(CSSPropertyBackgroundPosition, backgroundPositionProperties, WTF_ARRAY_LENGTH(backgroundPositionProperties));
-}
-
-StylePropertyShorthand backgroundRepeatShorthand()
-{
-    static const CSSPropertyID backgroundRepeatProperties[] = { CSSPropertyBackgroundRepeatX, CSSPropertyBackgroundRepeatY };
-    return StylePropertyShorthand(CSSPropertyBackgroundRepeat, backgroundRepeatProperties, WTF_ARRAY_LENGTH(backgroundRepeatProperties));
-}
-
-StylePropertyShorthand borderShorthand()
-{
-    // Do not change the order of the following four shorthands, and keep them together.
-    static const CSSPropertyID borderProperties[4][3] = {
-        { CSSPropertyBorderTopColor, CSSPropertyBorderTopStyle, CSSPropertyBorderTopWidth },
-        { CSSPropertyBorderRightColor, CSSPropertyBorderRightStyle, CSSPropertyBorderRightWidth },
-        { CSSPropertyBorderBottomColor, CSSPropertyBorderBottomStyle, CSSPropertyBorderBottomWidth },
-        { CSSPropertyBorderLeftColor, CSSPropertyBorderLeftStyle, CSSPropertyBorderLeftWidth }
-    };
-    return StylePropertyShorthand(CSSPropertyBorder, borderProperties[0], sizeof(borderProperties) / sizeof(borderProperties[0][0]));
-}
-
</del><span class="cx"> StylePropertyShorthand borderAbridgedShorthand()
</span><span class="cx"> {
</span><span class="cx">     static const CSSPropertyID borderAbridgedProperties[] = { CSSPropertyBorderWidth, CSSPropertyBorderStyle, CSSPropertyBorderColor };
</span><span class="cx">     static const StylePropertyShorthand propertiesForInitialization[] = { borderWidthShorthand(), borderStyleShorthand(), borderColorShorthand() };
</span><del>-    return StylePropertyShorthand(CSSPropertyBorder, borderAbridgedProperties, propertiesForInitialization, WTF_ARRAY_LENGTH(borderAbridgedProperties));
</del><ins>+    return StylePropertyShorthand(CSSPropertyBorder, borderAbridgedProperties, propertiesForInitialization);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-StylePropertyShorthand borderBottomShorthand()
-{
-    static const CSSPropertyID borderBottomProperties[] = { CSSPropertyBorderBottomWidth, CSSPropertyBorderBottomStyle, CSSPropertyBorderBottomColor };
-    return StylePropertyShorthand(CSSPropertyBorderBottom, borderBottomProperties, WTF_ARRAY_LENGTH(borderBottomProperties));
-}
-
-StylePropertyShorthand borderColorShorthand()
-{
-    static const CSSPropertyID borderColorProperties[] = {
-        CSSPropertyBorderTopColor,
-        CSSPropertyBorderRightColor,
-        CSSPropertyBorderBottomColor,
-        CSSPropertyBorderLeftColor
-    };
-    return StylePropertyShorthand(CSSPropertyBorderColor, borderColorProperties, WTF_ARRAY_LENGTH(borderColorProperties));
-}
-
-StylePropertyShorthand borderImageShorthand()
-{
-    static const CSSPropertyID borderImageProperties[] = {
-        CSSPropertyBorderImageSource,
-        CSSPropertyBorderImageSlice,
-        CSSPropertyBorderImageWidth,
-        CSSPropertyBorderImageOutset,
-        CSSPropertyBorderImageRepeat
-    };
-    return StylePropertyShorthand(CSSPropertyBorderImage, borderImageProperties, WTF_ARRAY_LENGTH(borderImageProperties));
-}
-
-StylePropertyShorthand borderLeftShorthand()
-{
-    static const CSSPropertyID borderLeftProperties[] = { CSSPropertyBorderLeftWidth, CSSPropertyBorderLeftStyle, CSSPropertyBorderLeftColor };
-    return StylePropertyShorthand(CSSPropertyBorderLeft, borderLeftProperties, WTF_ARRAY_LENGTH(borderLeftProperties));
-}
-
-StylePropertyShorthand borderRadiusShorthand()
-{
-    static const CSSPropertyID borderRadiusProperties[] = {
-        CSSPropertyBorderTopLeftRadius,
-        CSSPropertyBorderTopRightRadius,
-        CSSPropertyBorderBottomRightRadius,
-        CSSPropertyBorderBottomLeftRadius
-    };
-    return StylePropertyShorthand(CSSPropertyBorderRadius, borderRadiusProperties, WTF_ARRAY_LENGTH(borderRadiusProperties));
-}
-
-StylePropertyShorthand webkitBorderRadiusShorthand()
-{
-    static const CSSPropertyID borderRadiusProperties[] = {
-        CSSPropertyBorderTopLeftRadius,
-        CSSPropertyBorderTopRightRadius,
-        CSSPropertyBorderBottomRightRadius,
-        CSSPropertyBorderBottomLeftRadius
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitBorderRadius, borderRadiusProperties, WTF_ARRAY_LENGTH(borderRadiusProperties));
-}
-
-StylePropertyShorthand borderRightShorthand()
-{
-    static const CSSPropertyID borderRightProperties[] = { CSSPropertyBorderRightWidth, CSSPropertyBorderRightStyle, CSSPropertyBorderRightColor };
-    return StylePropertyShorthand(CSSPropertyBorderRight, borderRightProperties, WTF_ARRAY_LENGTH(borderRightProperties));
-}
-
-StylePropertyShorthand borderSpacingShorthand()
-{
-    static const CSSPropertyID borderSpacingProperties[] = { CSSPropertyWebkitBorderHorizontalSpacing, CSSPropertyWebkitBorderVerticalSpacing };
-    return StylePropertyShorthand(CSSPropertyBorderSpacing, borderSpacingProperties, WTF_ARRAY_LENGTH(borderSpacingProperties));
-}
-
-StylePropertyShorthand borderStyleShorthand()
-{
-    static const CSSPropertyID borderStyleProperties[] = {
-        CSSPropertyBorderTopStyle,
-        CSSPropertyBorderRightStyle,
-        CSSPropertyBorderBottomStyle,
-        CSSPropertyBorderLeftStyle
-    };
-    return StylePropertyShorthand(CSSPropertyBorderStyle, borderStyleProperties, WTF_ARRAY_LENGTH(borderStyleProperties));
-}
-
-StylePropertyShorthand borderTopShorthand()
-{
-    static const CSSPropertyID borderTopProperties[] = { CSSPropertyBorderTopWidth, CSSPropertyBorderTopStyle, CSSPropertyBorderTopColor };
-    return StylePropertyShorthand(CSSPropertyBorderTop, borderTopProperties, WTF_ARRAY_LENGTH(borderTopProperties));
-}
-
-StylePropertyShorthand borderWidthShorthand()
-{
-    static const CSSPropertyID borderWidthProperties[] = {
-        CSSPropertyBorderTopWidth,
-        CSSPropertyBorderRightWidth,
-        CSSPropertyBorderBottomWidth,
-        CSSPropertyBorderLeftWidth
-    };
-    return StylePropertyShorthand(CSSPropertyBorderWidth, borderWidthProperties, WTF_ARRAY_LENGTH(borderWidthProperties));
-}
-
-StylePropertyShorthand listStyleShorthand()
-{
-    static const CSSPropertyID listStyleProperties[] = {
-        CSSPropertyListStyleType,
-        CSSPropertyListStylePosition,
-        CSSPropertyListStyleImage
-    };
-    return StylePropertyShorthand(CSSPropertyListStyle, listStyleProperties, WTF_ARRAY_LENGTH(listStyleProperties));
-}
-
</del><span class="cx"> StylePropertyShorthand fontShorthand()
</span><span class="cx"> {
</span><span class="cx">     static const CSSPropertyID fontProperties[] = {
</span><span class="lines">@@ -193,96 +43,9 @@
</span><span class="cx">         CSSPropertyFontWeight,
</span><span class="cx">         CSSPropertyLineHeight
</span><span class="cx">     };
</span><del>-    return StylePropertyShorthand(CSSPropertyFont, fontProperties, WTF_ARRAY_LENGTH(fontProperties));
</del><ins>+    return StylePropertyShorthand(CSSPropertyFont, fontProperties);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-StylePropertyShorthand marginShorthand()
-{
-    static const CSSPropertyID marginProperties[] = {
-        CSSPropertyMarginTop,
-        CSSPropertyMarginRight,
-        CSSPropertyMarginBottom,
-        CSSPropertyMarginLeft
-    };
-    return StylePropertyShorthand(CSSPropertyMargin, marginProperties, WTF_ARRAY_LENGTH(marginProperties));
-}
-
-StylePropertyShorthand markerShorthand()
-{
-    static const CSSPropertyID markerProperties[] = {
-        CSSPropertyMarkerStart,
-        CSSPropertyMarkerMid,
-        CSSPropertyMarkerEnd
-    };
-    return StylePropertyShorthand(CSSPropertyMarker, markerProperties, WTF_ARRAY_LENGTH(markerProperties));
-}
-
-StylePropertyShorthand outlineShorthand()
-{
-    static const CSSPropertyID outlineProperties[] = {
-        CSSPropertyOutlineColor,
-        CSSPropertyOutlineStyle,
-        CSSPropertyOutlineWidth
-    };
-    return StylePropertyShorthand(CSSPropertyOutline, outlineProperties, WTF_ARRAY_LENGTH(outlineProperties));
-}
-
-StylePropertyShorthand overflowShorthand()
-{
-    static const CSSPropertyID overflowProperties[] = { CSSPropertyOverflowX, CSSPropertyOverflowY };
-    return StylePropertyShorthand(CSSPropertyOverflow, overflowProperties, WTF_ARRAY_LENGTH(overflowProperties));
-}
-
-StylePropertyShorthand paddingShorthand()
-{
-    static const CSSPropertyID paddingProperties[] = {
-        CSSPropertyPaddingTop,
-        CSSPropertyPaddingRight,
-        CSSPropertyPaddingBottom,
-        CSSPropertyPaddingLeft
-    };
-    return StylePropertyShorthand(CSSPropertyPadding, paddingProperties, WTF_ARRAY_LENGTH(paddingProperties));
-}
-
-StylePropertyShorthand transitionShorthand()
-{
-    static const CSSPropertyID transitionProperties[] = {
-        CSSPropertyTransitionProperty,
-        CSSPropertyTransitionDuration,
-        CSSPropertyTransitionTimingFunction,
-        CSSPropertyTransitionDelay
-    };
-    return StylePropertyShorthand(CSSPropertyTransition, transitionProperties, WTF_ARRAY_LENGTH(transitionProperties));
-}
-
-StylePropertyShorthand animationShorthand()
-{
-    static const CSSPropertyID animationProperties[] = {
-        CSSPropertyAnimationName,
-        CSSPropertyAnimationDuration,
-        CSSPropertyAnimationTimingFunction,
-        CSSPropertyAnimationDelay,
-        CSSPropertyAnimationIterationCount,
-        CSSPropertyAnimationDirection,
-        CSSPropertyAnimationFillMode
-    };
-    return StylePropertyShorthand(CSSPropertyAnimation, animationProperties, WTF_ARRAY_LENGTH(animationProperties));
-}
-
-StylePropertyShorthand webkitAnimationShorthand()
-{
-    static const CSSPropertyID animationProperties[] = {
-        CSSPropertyWebkitAnimationName,
-        CSSPropertyWebkitAnimationDuration,
-        CSSPropertyWebkitAnimationTimingFunction,
-        CSSPropertyWebkitAnimationDelay,
-        CSSPropertyWebkitAnimationIterationCount,
-        CSSPropertyWebkitAnimationDirection,
-        CSSPropertyWebkitAnimationFillMode
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitAnimation, animationProperties, WTF_ARRAY_LENGTH(animationProperties));
-}
-
</del><span class="cx"> StylePropertyShorthand animationShorthandForParsing(CSSPropertyID propId)
</span><span class="cx"> {
</span><span class="cx">     // When we parse the animation shorthand we need to look for animation-name
</span><span class="lines">@@ -315,226 +78,17 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     if (propId == CSSPropertyAnimation)
</span><del>-        return StylePropertyShorthand(CSSPropertyAnimation, animationPropertiesForParsing, WTF_ARRAY_LENGTH(animationPropertiesForParsing));
-    return StylePropertyShorthand(CSSPropertyWebkitAnimation, prefixedAnimationPropertiesForParsing, WTF_ARRAY_LENGTH(prefixedAnimationPropertiesForParsing));
</del><ins>+        return StylePropertyShorthand(CSSPropertyAnimation, animationPropertiesForParsing);
+    return StylePropertyShorthand(CSSPropertyWebkitAnimation, prefixedAnimationPropertiesForParsing);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-StylePropertyShorthand webkitBorderAfterShorthand()
-{
-    static const CSSPropertyID borderAfterProperties[] = { CSSPropertyWebkitBorderAfterWidth, CSSPropertyWebkitBorderAfterStyle, CSSPropertyWebkitBorderAfterColor  };
-    return StylePropertyShorthand(CSSPropertyWebkitBorderAfter, borderAfterProperties, WTF_ARRAY_LENGTH(borderAfterProperties));
-}
-
-StylePropertyShorthand webkitBorderBeforeShorthand()
-{
-    static const CSSPropertyID borderBeforeProperties[] = { CSSPropertyWebkitBorderBeforeWidth, CSSPropertyWebkitBorderBeforeStyle, CSSPropertyWebkitBorderBeforeColor  };
-    return StylePropertyShorthand(CSSPropertyWebkitBorderBefore, borderBeforeProperties, WTF_ARRAY_LENGTH(borderBeforeProperties));
-}
-
-StylePropertyShorthand webkitBorderEndShorthand()
-{
-    static const CSSPropertyID borderEndProperties[] = { CSSPropertyWebkitBorderEndWidth, CSSPropertyWebkitBorderEndStyle, CSSPropertyWebkitBorderEndColor };
-    return StylePropertyShorthand(CSSPropertyWebkitBorderEnd, borderEndProperties, WTF_ARRAY_LENGTH(borderEndProperties));
-}
-
-StylePropertyShorthand webkitBorderStartShorthand()
-{
-    static const CSSPropertyID borderStartProperties[] = { CSSPropertyWebkitBorderStartWidth, CSSPropertyWebkitBorderStartStyle, CSSPropertyWebkitBorderStartColor };
-    return StylePropertyShorthand(CSSPropertyWebkitBorderStart, borderStartProperties, WTF_ARRAY_LENGTH(borderStartProperties));
-}
-
-StylePropertyShorthand webkitColumnsShorthand()
-{
-    static const CSSPropertyID columnsProperties[] = { CSSPropertyColumnWidth, CSSPropertyColumnCount };
-    return StylePropertyShorthand(CSSPropertyColumns, columnsProperties, WTF_ARRAY_LENGTH(columnsProperties));
-}
-
-StylePropertyShorthand webkitColumnRuleShorthand()
-{
-    static const CSSPropertyID columnRuleProperties[] = {
-        CSSPropertyColumnRuleWidth,
-        CSSPropertyColumnRuleStyle,
-        CSSPropertyColumnRuleColor,
-    };
-    return StylePropertyShorthand(CSSPropertyColumnRule, columnRuleProperties, WTF_ARRAY_LENGTH(columnRuleProperties));
-}
-
-StylePropertyShorthand flexFlowShorthand()
-{
-    static const CSSPropertyID flexFlowProperties[] = { CSSPropertyFlexDirection, CSSPropertyFlexWrap };
-    return StylePropertyShorthand(CSSPropertyFlexFlow, flexFlowProperties, WTF_ARRAY_LENGTH(flexFlowProperties));
-}
-
-StylePropertyShorthand flexShorthand()
-{
-    static const CSSPropertyID flexProperties[] = { CSSPropertyFlexGrow, CSSPropertyFlexShrink, CSSPropertyFlexBasis };
-    return StylePropertyShorthand(CSSPropertyFlex, flexProperties, WTF_ARRAY_LENGTH(flexProperties));
-}
-
-StylePropertyShorthand webkitMarginCollapseShorthand()
-{
-    static const CSSPropertyID marginCollapseProperties[] = { CSSPropertyWebkitMarginBeforeCollapse, CSSPropertyWebkitMarginAfterCollapse };
-    return StylePropertyShorthand(CSSPropertyWebkitMarginCollapse, marginCollapseProperties, WTF_ARRAY_LENGTH(marginCollapseProperties));
-}
-
-#if ENABLE(CSS_GRID_LAYOUT)
-StylePropertyShorthand webkitGridShorthand()
-{
-    static const CSSPropertyID webkitGridProperties[] = {
-        CSSPropertyWebkitGridTemplateColumns,
-        CSSPropertyWebkitGridTemplateRows,
-        CSSPropertyWebkitGridTemplateAreas,
-        CSSPropertyWebkitGridAutoFlow,
-        CSSPropertyWebkitGridAutoColumns,
-        CSSPropertyWebkitGridAutoRows
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitGrid, webkitGridProperties, WTF_ARRAY_LENGTH(webkitGridProperties));
-}
-
-StylePropertyShorthand webkitGridTemplateShorthand()
-{
-    static const CSSPropertyID webkitGridTemplateProperties[] = {
-        CSSPropertyWebkitGridTemplateColumns,
-        CSSPropertyWebkitGridTemplateRows,
-        CSSPropertyWebkitGridTemplateAreas
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitGridTemplate, webkitGridTemplateProperties, WTF_ARRAY_LENGTH(webkitGridTemplateProperties));
-}
-
-StylePropertyShorthand webkitGridAreaShorthand()
-{
-    static const CSSPropertyID webkitGridAreaProperties[] = {
-        CSSPropertyWebkitGridRowStart,
-        CSSPropertyWebkitGridColumnStart,
-        CSSPropertyWebkitGridRowEnd,
-        CSSPropertyWebkitGridColumnEnd
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitGridArea, webkitGridAreaProperties, WTF_ARRAY_LENGTH(webkitGridAreaProperties));
-}
-
-StylePropertyShorthand webkitGridColumnShorthand()
-{
-    static const CSSPropertyID webkitGridColumnProperties[] = {
-        CSSPropertyWebkitGridColumnStart,
-        CSSPropertyWebkitGridColumnEnd
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitGridColumn, webkitGridColumnProperties, WTF_ARRAY_LENGTH(webkitGridColumnProperties));
-
-}
-
-StylePropertyShorthand webkitGridRowShorthand()
-{
-    static const CSSPropertyID webkitGridRowProperties[] = {
-        CSSPropertyWebkitGridRowStart,
-        CSSPropertyWebkitGridRowEnd
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitGridRow, webkitGridRowProperties, WTF_ARRAY_LENGTH(webkitGridRowProperties));
-
-}
-#endif /* ENABLE(CSS_GRID_LAYOUT) */
-
-StylePropertyShorthand webkitMarqueeShorthand()
-{
-    static const CSSPropertyID marqueeProperties[] = {
-        CSSPropertyWebkitMarqueeDirection,
-        CSSPropertyWebkitMarqueeIncrement,
-        CSSPropertyWebkitMarqueeRepetition,
-        CSSPropertyWebkitMarqueeStyle,
-        CSSPropertyWebkitMarqueeSpeed
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitMarquee, marqueeProperties, WTF_ARRAY_LENGTH(marqueeProperties));
-}
-
-StylePropertyShorthand webkitMaskShorthand()
-{
-    static const CSSPropertyID maskProperties[] = {
-        CSSPropertyWebkitMaskImage,
-        CSSPropertyWebkitMaskSourceType,
-        CSSPropertyWebkitMaskPositionX,
-        CSSPropertyWebkitMaskPositionY,
-        CSSPropertyWebkitMaskSize,
-        CSSPropertyWebkitMaskRepeatX,
-        CSSPropertyWebkitMaskRepeatY,
-        CSSPropertyWebkitMaskOrigin,
-        CSSPropertyWebkitMaskClip
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitMask, maskProperties, WTF_ARRAY_LENGTH(maskProperties));
-}
-
-StylePropertyShorthand webkitMaskPositionShorthand()
-{
-    static const CSSPropertyID maskPositionProperties[] = { CSSPropertyWebkitMaskPositionX, CSSPropertyWebkitMaskPositionY };
-    return StylePropertyShorthand(CSSPropertyWebkitMaskPosition, maskPositionProperties, WTF_ARRAY_LENGTH(maskPositionProperties));
-}
-
-StylePropertyShorthand webkitMaskRepeatShorthand()
-{
-    static const CSSPropertyID maskRepeatProperties[] = { CSSPropertyWebkitMaskRepeatX, CSSPropertyWebkitMaskRepeatY };
-    return StylePropertyShorthand(CSSPropertyWebkitMaskRepeat, maskRepeatProperties, WTF_ARRAY_LENGTH(maskRepeatProperties));
-}
-
-StylePropertyShorthand webkitTextDecorationShorthand()
-{
-    static const CSSPropertyID textDecorationProperties[] = {
-        CSSPropertyWebkitTextDecorationLine,
-        CSSPropertyWebkitTextDecorationStyle,
-        CSSPropertyWebkitTextDecorationColor
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitTextDecoration, textDecorationProperties, WTF_ARRAY_LENGTH(textDecorationProperties));
-}
-
-StylePropertyShorthand webkitTextEmphasisShorthand()
-{
-    static const CSSPropertyID textEmphasisProperties[] = {
-        CSSPropertyWebkitTextEmphasisStyle,
-        CSSPropertyWebkitTextEmphasisColor
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitTextEmphasis, textEmphasisProperties, WTF_ARRAY_LENGTH(textEmphasisProperties));
-}
-
-StylePropertyShorthand webkitTextStrokeShorthand()
-{
-    static const CSSPropertyID textStrokeProperties[] = { CSSPropertyWebkitTextStrokeWidth, CSSPropertyWebkitTextStrokeColor };
-    return StylePropertyShorthand(CSSPropertyWebkitTextStroke, textStrokeProperties, WTF_ARRAY_LENGTH(textStrokeProperties));
-}
-
-StylePropertyShorthand webkitTransitionShorthand()
-{
-    static const CSSPropertyID transitionProperties[] = {
-        CSSPropertyWebkitTransitionProperty,
-        CSSPropertyWebkitTransitionDuration,
-        CSSPropertyWebkitTransitionTimingFunction,
-        CSSPropertyWebkitTransitionDelay
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitTransition, transitionProperties, WTF_ARRAY_LENGTH(transitionProperties));
-}
-
-StylePropertyShorthand webkitPerspectiveOriginShorthand()
-{
-    static const CSSPropertyID perspectiveOriginProperties[] = {
-        CSSPropertyWebkitPerspectiveOriginX,
-        CSSPropertyWebkitPerspectiveOriginY
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitPerspectiveOrigin, perspectiveOriginProperties, WTF_ARRAY_LENGTH(perspectiveOriginProperties));
-}
-
-StylePropertyShorthand webkitTransformOriginShorthand()
-{
-    static const CSSPropertyID transformOriginProperties[] = {
-        CSSPropertyWebkitTransformOriginX,
-        CSSPropertyWebkitTransformOriginY,
-        CSSPropertyWebkitTransformOriginZ
-    };
-    return StylePropertyShorthand(CSSPropertyWebkitTransformOrigin, transformOriginProperties, WTF_ARRAY_LENGTH(transformOriginProperties));
-}
-
</del><span class="cx"> StylePropertyShorthand widthShorthand()
</span><span class="cx"> {
</span><span class="cx">     static const CSSPropertyID widthProperties[] = {
</span><span class="cx">         CSSPropertyMinWidth,
</span><span class="cx">         CSSPropertyMaxWidth
</span><span class="cx">     };
</span><del>-    return StylePropertyShorthand(CSSPropertyWidth, widthProperties, WTF_ARRAY_LENGTH(widthProperties));
</del><ins>+    return StylePropertyShorthand(CSSPropertyWidth, widthProperties);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> StylePropertyShorthand heightShorthand()
</span><span class="lines">@@ -543,9 +97,10 @@
</span><span class="cx">         CSSPropertyMinHeight,
</span><span class="cx">         CSSPropertyMaxHeight
</span><span class="cx">     };
</span><del>-    return StylePropertyShorthand(CSSPropertyHeight, heightProperties, WTF_ARRAY_LENGTH(heightProperties));
</del><ins>+    return StylePropertyShorthand(CSSPropertyHeight, heightProperties);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+// FIXME: This function should be generated from CSSPropertyNames.in.
</ins><span class="cx"> // Returns an empty list if the property is not a shorthand.
</span><span class="cx"> StylePropertyShorthand shorthandForProperty(CSSPropertyID propertyID)
</span><span class="cx"> {
</span><span class="lines">@@ -607,9 +162,9 @@
</span><span class="cx">     case CSSPropertyWebkitBorderRadius:
</span><span class="cx">         return borderRadiusShorthand();
</span><span class="cx">     case CSSPropertyColumns:
</span><del>-        return webkitColumnsShorthand();
</del><ins>+        return columnsShorthand();
</ins><span class="cx">     case CSSPropertyColumnRule:
</span><del>-        return webkitColumnRuleShorthand();
</del><ins>+        return columnRuleShorthand();
</ins><span class="cx">     case CSSPropertyFlex:
</span><span class="cx">         return flexShorthand();
</span><span class="cx">     case CSSPropertyFlexFlow:
</span><span class="lines">@@ -691,6 +246,7 @@
</span><span class="cx">     return vector;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+// FIXME: This function should be generated from CSSPropertyNames.in.
</ins><span class="cx"> Vector&lt;StylePropertyShorthand&gt; matchingShorthandsForLonghand(CSSPropertyID propertyID)
</span><span class="cx"> {
</span><span class="cx">     switch (propertyID) {
</span><span class="lines">@@ -812,11 +368,11 @@
</span><span class="cx">         return makeVector(webkitBorderStartShorthand());
</span><span class="cx">     case CSSPropertyColumnWidth:
</span><span class="cx">     case CSSPropertyColumnCount:
</span><del>-        return makeVector(webkitColumnsShorthand());
</del><ins>+        return makeVector(columnsShorthand());
</ins><span class="cx">     case CSSPropertyColumnRuleWidth:
</span><span class="cx">     case CSSPropertyColumnRuleStyle:
</span><span class="cx">     case CSSPropertyColumnRuleColor:
</span><del>-        return makeVector(webkitColumnRuleShorthand());
</del><ins>+        return makeVector(columnRuleShorthand());
</ins><span class="cx">     case CSSPropertyFlexGrow:
</span><span class="cx">     case CSSPropertyFlexShrink:
</span><span class="cx">     case CSSPropertyFlexBasis:
</span></span></pre></div>
<a id="trunkSourceWebCorecssStylePropertyShorthandh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/StylePropertyShorthand.h (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/StylePropertyShorthand.h        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/css/StylePropertyShorthand.h        2015-01-16 19:39:02 UTC (rev 178586)
</span><span class="lines">@@ -23,6 +23,7 @@
</span><span class="cx"> #define StylePropertyShorthand_h
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CSSPropertyNames.h&quot;
</span><ins>+#include &quot;StylePropertyShorthandFunctions.h&quot;
</ins><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -37,16 +38,9 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    StylePropertyShorthand(CSSPropertyID id, const CSSPropertyID* properties, unsigned numProperties)
</del><ins>+    template&lt;unsigned numProperties&gt;
+    StylePropertyShorthand(CSSPropertyID id, const CSSPropertyID (&amp;properties)[numProperties], const StylePropertyShorthand* propertiesForInitialization = nullptr)
</ins><span class="cx">         : m_properties(properties)
</span><del>-        , m_propertiesForInitialization(0)
-        , m_length(numProperties)
-        , m_shorthandID(id)
-    {
-    }
-
-    StylePropertyShorthand(CSSPropertyID id, const CSSPropertyID* properties, const StylePropertyShorthand* propertiesForInitialization, unsigned numProperties)
-        : m_properties(properties)
</del><span class="cx">         , m_propertiesForInitialization(propertiesForInitialization)
</span><span class="cx">         , m_length(numProperties)
</span><span class="cx">         , m_shorthandID(id)
</span><span class="lines">@@ -65,62 +59,13 @@
</span><span class="cx">     CSSPropertyID m_shorthandID;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-StylePropertyShorthand animationShorthand();
</del><ins>+// Custom StylePropertyShorthand functions.
</ins><span class="cx"> StylePropertyShorthand animationShorthandForParsing(CSSPropertyID);
</span><del>-StylePropertyShorthand backgroundShorthand();
-StylePropertyShorthand backgroundPositionShorthand();
-StylePropertyShorthand backgroundRepeatShorthand();
-StylePropertyShorthand borderShorthand();
</del><span class="cx"> StylePropertyShorthand borderAbridgedShorthand();
</span><del>-StylePropertyShorthand borderBottomShorthand();
-StylePropertyShorthand borderColorShorthand();
-StylePropertyShorthand borderImageShorthand();
-StylePropertyShorthand borderLeftShorthand();
-StylePropertyShorthand borderRadiusShorthand();
-StylePropertyShorthand borderRightShorthand();
-StylePropertyShorthand borderSpacingShorthand();
-StylePropertyShorthand borderStyleShorthand();
-StylePropertyShorthand borderTopShorthand();
-StylePropertyShorthand borderWidthShorthand();
-StylePropertyShorthand listStyleShorthand();
-StylePropertyShorthand flexFlowShorthand();
-StylePropertyShorthand flexShorthand();
</del><span class="cx"> StylePropertyShorthand fontShorthand();
</span><span class="cx"> StylePropertyShorthand heightShorthand();
</span><del>-StylePropertyShorthand marginShorthand();
-StylePropertyShorthand outlineShorthand();
-StylePropertyShorthand overflowShorthand();
-StylePropertyShorthand paddingShorthand();
-StylePropertyShorthand transitionShorthand();
-StylePropertyShorthand webkitAnimationShorthand();
-StylePropertyShorthand webkitBorderAfterShorthand();
-StylePropertyShorthand webkitBorderBeforeShorthand();
-StylePropertyShorthand webkitBorderEndShorthand();
-StylePropertyShorthand webkitBorderRadiusShorthand();
-StylePropertyShorthand webkitBorderStartShorthand();
-StylePropertyShorthand webkitColumnsShorthand();
-StylePropertyShorthand webkitColumnRuleShorthand();
-StylePropertyShorthand webkitGridShorthand();
-StylePropertyShorthand webkitGridTemplateShorthand();
-StylePropertyShorthand webkitGridAreaShorthand();
-StylePropertyShorthand webkitGridColumnShorthand();
-StylePropertyShorthand webkitGridRowShorthand();
-StylePropertyShorthand webkitMarginCollapseShorthand();
-StylePropertyShorthand webkitMarqueeShorthand();
-StylePropertyShorthand webkitMaskShorthand();
-StylePropertyShorthand webkitMaskPositionShorthand();
-StylePropertyShorthand webkitMaskRepeatShorthand();
-StylePropertyShorthand webkitPerspectiveOriginShorthand();
-StylePropertyShorthand webkitTextEmphasisShorthand();
-StylePropertyShorthand webkitTextStrokeShorthand();
-StylePropertyShorthand webkitTransitionShorthand();
-StylePropertyShorthand webkitTransformOriginShorthand();
</del><span class="cx"> StylePropertyShorthand widthShorthand();
</span><span class="cx"> 
</span><del>-StylePropertyShorthand webkitTextDecorationShorthand();
-
-StylePropertyShorthand markerShorthand();
-
</del><span class="cx"> // Returns empty value if the property is not a shorthand.
</span><span class="cx"> StylePropertyShorthand shorthandForProperty(CSSPropertyID);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecssmakeproppl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/makeprop.pl (178585 => 178586)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/makeprop.pl        2015-01-16 19:38:11 UTC (rev 178585)
+++ trunk/Source/WebCore/css/makeprop.pl        2015-01-16 19:39:02 UTC (rev 178586)
</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 Apple Inc. All rights reserved.
</del><ins>+#   Copyright (C) 2007, 2008, 2012, 2014, 2015 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">@@ -52,10 +52,10 @@
</span><span class="cx">   FontProperty =&gt; 1,
</span><span class="cx">   Getter =&gt; 1,
</span><span class="cx">   Initial =&gt; 1,
</span><ins>+  Longhands =&gt; 1,
</ins><span class="cx">   NameForMethods =&gt; 1,
</span><span class="cx">   NoDefaultColor =&gt; 1,
</span><span class="cx">   SVG =&gt; 1,
</span><del>-  Shorthand =&gt; 1,
</del><span class="cx">   SkipBuilder =&gt; 1,
</span><span class="cx">   Setter =&gt; 1,
</span><span class="cx">   VisitedLinkColorSupport =&gt; 1,
</span><span class="lines">@@ -845,7 +845,7 @@
</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;Shorthand&quot;});
</del><ins>+  next if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;Longhands&quot;});
</ins><span class="cx">   next if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;SkipBuilder&quot;});
</span><span class="cx"> 
</span><span class="cx">   my $indent = &quot;    &quot;;
</span><span class="lines">@@ -872,7 +872,7 @@
</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;Shorthand&quot;}) {
</del><ins>+  if (exists $propertiesWithStyleBuilderOptions{$name}{&quot;Longhands&quot;}) {
</ins><span class="cx">     print STYLEBUILDER &quot;        ASSERT(isExpandedShorthand(property));\n&quot;;
</span><span class="cx">     print STYLEBUILDER &quot;        ASSERT_NOT_REACHED();\n&quot;;
</span><span class="cx">   } elsif (!exists $propertiesWithStyleBuilderOptions{$name}{&quot;SkipBuilder&quot;}) {
</span><span class="lines">@@ -895,5 +895,73 @@
</span><span class="cx"> 
</span><span class="cx"> close STYLEBUILDER;
</span><span class="cx"> 
</span><ins>+# Generate StylePropertyShorthandsFunctions.
+open SHORTHANDS_H, &quot;&gt;StylePropertyShorthandFunctions.h&quot; || die &quot;Could not open StylePropertyShorthandFunctions.h for writing&quot;;
+print SHORTHANDS_H &lt;&lt; &quot;EOF&quot;;
+/* This file is automatically generated from CSSPropertyNames.in by makeprop, do not edit */
+
+#ifndef StylePropertyShorthandFunctions_h
+#define StylePropertyShorthandFunctions_h
+
+namespace WebCore {
+
+class StylePropertyShorthand;
+
+EOF
+
+foreach my $name (@names) {
+  # Skip non-Shorthand properties.
+  next if (!exists $propertiesWithStyleBuilderOptions{$name}{&quot;Longhands&quot;});
+
+  print SHORTHANDS_H &quot;StylePropertyShorthand &quot; . lcfirst($nameToId{$name}) . &quot;Shorthand();\n&quot;;
+}
+
+print SHORTHANDS_H &lt;&lt; &quot;EOF&quot;;
+
+} // namespace WebCore
+
+#endif // StylePropertyShorthandFunctions_h
+EOF
+
+close SHORTHANDS_H;
+
+open SHORTHANDS_CPP, &quot;&gt;StylePropertyShorthandFunctions.cpp&quot; || die &quot;Could not open StylePropertyShorthandFunctions.cpp for writing&quot;;
+print SHORTHANDS_CPP &lt;&lt; &quot;EOF&quot;;
+/* This file is automatically generated from CSSPropertyNames.in by makeprop, do not edit */
+
+#include &quot;config.h&quot;
+#include &quot;StylePropertyShorthandFunctions.h&quot;
+
+#include &quot;StylePropertyShorthand.h&quot;
+
+namespace WebCore {
+
+EOF
+
+foreach my $name (@names) {
+  # Skip non-Shorthand properties.
+  next if (!exists $propertiesWithStyleBuilderOptions{$name}{&quot;Longhands&quot;});
+
+  my $lowercaseId = lcfirst($nameToId{$name});
+  my @longhands = split(/\|/, $propertiesWithStyleBuilderOptions{$name}{&quot;Longhands&quot;});
+
+  print SHORTHANDS_CPP &quot;StylePropertyShorthand &quot; . $lowercaseId . &quot;Shorthand()\n&quot;;
+  print SHORTHANDS_CPP &quot;{\n&quot;;
+  print SHORTHANDS_CPP &quot;    static const CSSPropertyID &quot; . $lowercaseId . &quot;Properties[] = {\n&quot;;
+  foreach (@longhands) {
+    die &quot;Unknown CSS property used in Longhands: &quot; . $nameToId{$_} if !exists($nameToId{$_});
+    print SHORTHANDS_CPP &quot;        CSSProperty&quot; . $nameToId{$_} . &quot;,\n&quot;;
+  }
+  print SHORTHANDS_CPP &quot;    };\n&quot;;
+  print SHORTHANDS_CPP &quot;    return StylePropertyShorthand(CSSProperty&quot; . $nameToId{$name} . &quot;, &quot; . $lowercaseId . &quot;Properties);\n&quot;;
+  print SHORTHANDS_CPP &quot;}\n\n&quot;;
+}
+
+print SHORTHANDS_CPP &lt;&lt; &quot;EOF&quot;;
+} // namespace WebCore
+EOF
+
+close SHORTHANDS_CPP;
+
</ins><span class="cx"> my $gperf = $ENV{GPERF} ? $ENV{GPERF} : &quot;gperf&quot;;
</span><span class="cx"> system(&quot;\&quot;$gperf\&quot; --key-positions=\&quot;*\&quot; -D -n -s 2 CSSPropertyNames.gperf --output-file=CSSPropertyNames.cpp&quot;) == 0 || die &quot;calling gperf failed: $?&quot;;
</span></span></pre>
</div>
</div>

</body>
</html>