From 12f429e23b3b18fb5fd3991aec2d8d8ab2543343 Mon Sep 17 00:00:00 2001 From: Ravi Shankar Date: Wed, 26 Oct 2016 11:46:15 +0530 Subject: [PATCH] Keyword argument for custom constant mapping --- components/style/properties/data.py | 10 +++++++--- components/style/properties/helpers.mako.rs | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/components/style/properties/data.py b/components/style/properties/data.py index 274da76571c6..e5c7778bfec5 100644 --- a/components/style/properties/data.py +++ b/components/style/properties/data.py @@ -18,7 +18,7 @@ def to_camel_case(ident): class Keyword(object): def __init__(self, name, values, gecko_constant_prefix=None, - gecko_enum_prefix=None, + gecko_enum_prefix=None, custom_consts=None, extra_gecko_values=None, extra_servo_values=None): self.name = name self.values = values.split() @@ -29,6 +29,7 @@ def __init__(self, name, values, gecko_constant_prefix=None, self.gecko_enum_prefix = gecko_enum_prefix self.extra_gecko_values = (extra_gecko_values or "").split() self.extra_servo_values = (extra_servo_values or "").split() + self.consts_map = {} if custom_consts is None else custom_consts def gecko_values(self): return self.values + self.extra_gecko_values @@ -45,12 +46,15 @@ def values_for(self, product): raise Exception("Bad product: " + product) def gecko_constant(self, value): + moz_stripped = value.replace("-moz-", '') + parts = moz_stripped.split('-') if self.gecko_enum_prefix: - parts = value.replace("-moz-", "").split("-") parts = [p.title() for p in parts] return self.gecko_enum_prefix + "::" + "".join(parts) else: - return self.gecko_constant_prefix + "_" + value.replace("-moz-", "").replace("-", "_").upper() + 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 diff --git a/components/style/properties/helpers.mako.rs b/components/style/properties/helpers.mako.rs index b34175bcebe7..292f8fc66b69 100644 --- a/components/style/properties/helpers.mako.rs +++ b/components/style/properties/helpers.mako.rs @@ -312,6 +312,7 @@ keyword_kwargs = {a: kwargs.pop(a, None) for a in [ 'gecko_constant_prefix', 'gecko_enum_prefix', 'extra_gecko_values', 'extra_servo_values', + 'custom_consts', ]} %>