single_keywords supports custom_consts map for enum. r?heycam draft
authorHiroyuki Ikezoe <hiikezoe@mozilla-japan.org>
Fri, 06 Jan 2017 19:06:53 +0900
changeset 456838 90bed2e59e5f9958ce238ef4e37414c84a582f8f
parent 456837 092af97191fd21925efa20b08960c8a4e9e88c01
child 456839 d72bfa93b092b6c54d999dde9b429503574c5da6
push id40619
push userhiikezoe@mozilla-japan.org
push dateFri, 06 Jan 2017 10:07:41 +0000
reviewersheycam
milestone53.0a1
single_keywords supports custom_consts map for enum. r?heycam We need it to convert PlaybackDirection::Alternate_reverse in Gecko to alternate-reverse in Servo. MozReview-Commit-ID: 7z4yABHNy5V
servo/components/style/properties/data.py
--- a/servo/components/style/properties/data.py
+++ b/servo/components/style/properties/data.py
@@ -55,22 +55,22 @@ class Keyword(object):
             return self.gecko_values()
         elif product == "servo":
             return self.servo_values()
         else:
             raise Exception("Bad product: " + product)
 
     def gecko_constant(self, value):
         moz_stripped = value.replace("-moz-", '') if self.gecko_strip_moz_prefix else value
-        parts = moz_stripped.split('-')
+        mapped = self.consts_map.get(value)
         if self.gecko_enum_prefix:
-            parts = [p.title() for p in parts]
+            parts = moz_stripped.split('-')
+            parts = mapped if mapped else [p.title() for p in parts]
             return self.gecko_enum_prefix + "::" + "".join(parts)
         else:
-            mapped = self.consts_map.get(value)
             suffix = mapped if mapped else moz_stripped.replace("-", "_")
             return self.gecko_constant_prefix + "_" + suffix.upper()
 
     def needs_cast(self):
         return self.gecko_enum_prefix is None
 
     def maybe_cast(self, type_str):
         return "as " + type_str if self.needs_cast() else ""