| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 /* |  | 
| 2  * (C) 1999-2003 Lars Knoll (knoll@kde.org) |  | 
| 3  * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |  | 
| 4  * Copyright (C) 2013 Intel Corporation. All rights reserved. |  | 
| 5  * |  | 
| 6  * This library is free software; you can redistribute it and/or |  | 
| 7  * modify it under the terms of the GNU Library General Public |  | 
| 8  * License as published by the Free Software Foundation; either |  | 
| 9  * version 2 of the License, or (at your option) any later version. |  | 
| 10  * |  | 
| 11  * This library is distributed in the hope that it will be useful, |  | 
| 12  * but WITHOUT ANY WARRANTY; without even the implied warranty of |  | 
| 13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU |  | 
| 14  * Library General Public License for more details. |  | 
| 15  * |  | 
| 16  * You should have received a copy of the GNU Library General Public License |  | 
| 17  * along with this library; see the file COPYING.LIB.  If not, write to |  | 
| 18  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |  | 
| 19  * Boston, MA 02110-1301, USA. |  | 
| 20  */ |  | 
| 21 |  | 
| 22 #include "config.h" |  | 
| 23 #include "StylePropertyShorthand.h" |  | 
| 24 #include "RuntimeEnabledFeatures.h" |  | 
| 25 |  | 
| 26 #include "wtf/HashMap.h" |  | 
| 27 #include "wtf/StdLibExtras.h" |  | 
| 28 |  | 
| 29 namespace WebCore { |  | 
| 30 |  | 
| 31 {%- for property_id, property in properties.items() %} |  | 
| 32 |  | 
| 33 const StylePropertyShorthand& {{ property.camel_case_name }}Shorthand() |  | 
| 34 { |  | 
| 35     static const CSSPropertyID {{ property.camel_case_name }}Properties[] = { |  | 
| 36         {%- for longhand_id in property.camel_case_longhands %} |  | 
| 37         {{ longhand_id }}, |  | 
| 38         {%- endfor %} |  | 
| 39     }; |  | 
| 40     DEFINE_STATIC_LOCAL(StylePropertyShorthand, {{ property.camel_case_name }}Lo
    nghands, ({{ property_id }}, {{ property.camel_case_name }}Properties, WTF_ARRAY
    _LENGTH({{ property.camel_case_name }}Properties))); |  | 
| 41     return {{ property.camel_case_name }}Longhands; |  | 
| 42 } |  | 
| 43 {%- endfor %} |  | 
| 44 |  | 
| 45 // Returns an empty list if the property is not a shorthand |  | 
| 46 const StylePropertyShorthand& shorthandForProperty(CSSPropertyID propertyID) |  | 
| 47 { |  | 
| 48     DEFINE_STATIC_LOCAL(StylePropertyShorthand, emptyShorthand, ()); |  | 
| 49     switch (propertyID) { |  | 
| 50 {%- for property_id, property in properties.items() %} |  | 
| 51     {%- if property.camel_case_name not in ["width", "height", "marker"] %} |  | 
| 52         case {{ property_id }}: |  | 
| 53         {%- if property.runtime_conditional_getter %} |  | 
| 54             if (!RuntimeEnabledFeatures::{{ property.runtime_conditional_getter 
    }}()) |  | 
| 55                 return emptyShorthand; |  | 
| 56         {%- endif %} |  | 
| 57             return {{ property.camel_case_name }}Shorthand(); |  | 
| 58     {%- endif %} |  | 
| 59 {%- endfor %} |  | 
| 60     default: { |  | 
| 61         return emptyShorthand; |  | 
| 62     } |  | 
| 63     } |  | 
| 64 } |  | 
| 65 |  | 
| 66 const Vector<StylePropertyShorthand> matchingShorthandsForLonghand(CSSPropertyID
     propertyID) |  | 
| 67 { |  | 
| 68     switch (propertyID) { |  | 
| 69 {%- for longhand_id, shorthands in longhands_dictionary.items() %} |  | 
| 70     case {{ longhand_id }}: { |  | 
| 71 {%- if shorthands|length == 1 %} |  | 
| 72     {% for shorthand in shorthands -%} |  | 
| 73        return Vector<StylePropertyShorthand>(1, {{ shorthand.camel_case_name }}S
    horthand()); |  | 
| 74     {%- endfor %} |  | 
| 75 {%- else %} |  | 
| 76         Vector<StylePropertyShorthand> vectorShorthands; |  | 
| 77         vectorShorthands.reserveInitialCapacity({{ shorthands|length }}); |  | 
| 78         {% for shorthand in shorthands -%} |  | 
| 79         vectorShorthands.uncheckedAppend({{ shorthand.camel_case_name }}Shorthan
    d()); |  | 
| 80         {% endfor -%} |  | 
| 81         return vectorShorthands; |  | 
| 82 {% endif %} |  | 
| 83     } |  | 
| 84 {%- endfor %} |  | 
| 85     default: |  | 
| 86         return Vector<StylePropertyShorthand>(); |  | 
| 87     } |  | 
| 88 } |  | 
| 89 |  | 
| 90 } // namespace WebCore |  | 
| OLD | NEW | 
|---|