single_keywords supports custom_consts map for enum. r?heycam
draft
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
--- 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 ""