| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright 2016 The Chromium Authors. All rights reserved. | 2 # Copyright 2016 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 import math | 6 import math |
| 7 import sys | 7 import sys |
| 8 | 8 |
| 9 import json5_generator | 9 import json5_generator |
| 10 import template_expander | 10 import template_expander |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 size = int(math.ceil(math.log(len(property_['keywords']), 2))) | 186 size = int(math.ceil(math.log(len(property_['keywords']), 2))) |
| 187 elif property_['field_template'] == 'storage_only': | 187 elif property_['field_template'] == 'storage_only': |
| 188 # 'storage_only' fields need to specify a size, type_name and default_va
lue | 188 # 'storage_only' fields need to specify a size, type_name and default_va
lue |
| 189 type_name = property_['type_name'] | 189 type_name = property_['type_name'] |
| 190 default_value = property_['default_value'] | 190 default_value = property_['default_value'] |
| 191 size = property_['size'] | 191 size = property_['size'] |
| 192 elif property_['field_template'] == 'external': | 192 elif property_['field_template'] == 'external': |
| 193 type_name = property_['type_name'] | 193 type_name = property_['type_name'] |
| 194 default_value = property_['default_value'] | 194 default_value = property_['default_value'] |
| 195 size = None | 195 size = None |
| 196 elif property_['field_template'] == 'primitive': |
| 197 type_name = property_['type_name'] |
| 198 default_value = property_['default_value'] |
| 199 size = 1 if type_name == 'bool' else None # pack bools with 1 bit. |
| 196 else: | 200 else: |
| 197 assert property_['field_template'] in ('flag', 'monotonic_flag') | 201 assert property_['field_template'] in ('monotonic_flag',) |
| 198 type_name = 'bool' | 202 type_name = 'bool' |
| 199 default_value = 'false' | 203 default_value = 'false' |
| 200 size = 1 | 204 size = 1 |
| 201 | 205 |
| 202 return Field( | 206 return Field( |
| 203 field_role, | 207 field_role, |
| 204 name_for_methods, | 208 name_for_methods, |
| 205 property_name=property_['name'], | 209 property_name=property_['name'], |
| 206 inherited=property_['inherited'], | 210 inherited=property_['inherited'], |
| 207 independent=property_['independent'], | 211 independent=property_['independent'], |
| 208 type_name=type_name, | 212 type_name=type_name, |
| 209 field_template=property_['field_template'], | 213 field_template=property_['field_template'], |
| 210 size=size, | 214 size=size, |
| 211 default_value=default_value, | 215 default_value=default_value, |
| 212 ) | 216 ) |
| 213 | 217 |
| 214 | 218 |
| 215 def _create_inherited_flag_field(property_): | 219 def _create_inherited_flag_field(property_): |
| 216 """ | 220 """ |
| 217 Create the field used for an inheritance fast path from an independent CSS p
roperty, | 221 Create the field used for an inheritance fast path from an independent CSS p
roperty, |
| 218 and return the Field object. | 222 and return the Field object. |
| 219 """ | 223 """ |
| 220 return Field( | 224 return Field( |
| 221 'inherited_flag', | 225 'inherited_flag', |
| 222 join_name(property_['name_for_methods'], 'is inherited'), | 226 join_name(property_['name_for_methods'], 'is inherited'), |
| 223 property_name=property_['name'], | 227 property_name=property_['name'], |
| 224 type_name='bool', | 228 type_name='bool', |
| 225 field_template='flag', | 229 field_template='primitive', |
| 226 size=1, | 230 size=1, |
| 227 default_value='true', | 231 default_value='true', |
| 228 ) | 232 ) |
| 229 | 233 |
| 230 | 234 |
| 231 def _create_fields(field_role, properties): | 235 def _create_fields(field_role, properties): |
| 232 """ | 236 """ |
| 233 Create ComputedStyle fields from properties or nonproperties and return a li
st of Field objects. | 237 Create ComputedStyle fields from properties or nonproperties and return a li
st of Field objects. |
| 234 """ | 238 """ |
| 235 fields = [] | 239 fields = [] |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 'mapping': [(enum_value_name(k), enum_for_css_keyword(k)) fo
r k in property_['keywords']], | 389 'mapping': [(enum_value_name(k), enum_for_css_keyword(k)) fo
r k in property_['keywords']], |
| 386 } | 390 } |
| 387 | 391 |
| 388 return { | 392 return { |
| 389 'include_paths': self._include_paths, | 393 'include_paths': self._include_paths, |
| 390 'mappings': mappings, | 394 'mappings': mappings, |
| 391 } | 395 } |
| 392 | 396 |
| 393 if __name__ == '__main__': | 397 if __name__ == '__main__': |
| 394 json5_generator.Maker(ComputedStyleBaseWriter).main() | 398 json5_generator.Maker(ComputedStyleBaseWriter).main() |
| OLD | NEW |