| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Generates JavaScript source files from a mojom.Module.""" | 5 """Generates JavaScript source files from a mojom.Module.""" |
| 6 | 6 |
| 7 import mojom.generate.generator as generator | 7 import mojom.generate.generator as generator |
| 8 import mojom.generate.module as mojom | 8 import mojom.generate.module as mojom |
| 9 import mojom.generate.pack as pack | 9 import mojom.generate.pack as pack |
| 10 import os |
| 10 from mojom.generate.template_expander import UseJinja | 11 from mojom.generate.template_expander import UseJinja |
| 11 | 12 |
| 12 _kind_to_javascript_default_value = { | 13 _kind_to_javascript_default_value = { |
| 13 mojom.BOOL: "false", | 14 mojom.BOOL: "false", |
| 14 mojom.INT8: "0", | 15 mojom.INT8: "0", |
| 15 mojom.UINT8: "0", | 16 mojom.UINT8: "0", |
| 16 mojom.INT16: "0", | 17 mojom.INT16: "0", |
| 17 mojom.UINT16: "0", | 18 mojom.UINT16: "0", |
| 18 mojom.INT32: "0", | 19 mojom.INT32: "0", |
| 19 mojom.UINT32: "0", | 20 mojom.UINT32: "0", |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 317 | 318 |
| 318 def IsObjectField(field): | 319 def IsObjectField(field): |
| 319 return mojom.IsObjectKind(field.kind) | 320 return mojom.IsObjectKind(field.kind) |
| 320 | 321 |
| 321 def IsAnyHandleOrInterfaceField(field): | 322 def IsAnyHandleOrInterfaceField(field): |
| 322 return mojom.IsAnyHandleOrInterfaceKind(field.kind) | 323 return mojom.IsAnyHandleOrInterfaceKind(field.kind) |
| 323 | 324 |
| 324 def IsEnumField(field): | 325 def IsEnumField(field): |
| 325 return mojom.IsEnumKind(field.kind) | 326 return mojom.IsEnumKind(field.kind) |
| 326 | 327 |
| 328 def GetRelativePath(module, base_module): |
| 329 return os.path.relpath(module.path, os.path.dirname(base_module.path)) |
| 330 |
| 327 | 331 |
| 328 class Generator(generator.Generator): | 332 class Generator(generator.Generator): |
| 329 | 333 |
| 330 js_filters = { | 334 js_filters = { |
| 331 "decode_snippet": JavaScriptDecodeSnippet, | 335 "decode_snippet": JavaScriptDecodeSnippet, |
| 332 "default_value": JavaScriptDefaultValue, | 336 "default_value": JavaScriptDefaultValue, |
| 333 "encode_snippet": JavaScriptEncodeSnippet, | 337 "encode_snippet": JavaScriptEncodeSnippet, |
| 334 "expression_to_text": ExpressionToText, | 338 "expression_to_text": ExpressionToText, |
| 335 "field_offset": JavaScriptFieldOffset, | 339 "field_offset": JavaScriptFieldOffset, |
| 336 "has_callbacks": mojom.HasCallbacks, | 340 "has_callbacks": mojom.HasCallbacks, |
| 337 "is_any_handle_or_interface_field": IsAnyHandleOrInterfaceField, | 341 "is_any_handle_or_interface_field": IsAnyHandleOrInterfaceField, |
| 338 "is_array_pointer_field": IsArrayPointerField, | 342 "is_array_pointer_field": IsArrayPointerField, |
| 339 "is_bool_field": IsBoolField, | 343 "is_bool_field": IsBoolField, |
| 340 "is_enum_field": IsEnumField, | 344 "is_enum_field": IsEnumField, |
| 341 "is_handle_field": IsHandleField, | 345 "is_handle_field": IsHandleField, |
| 342 "is_interface_field": IsInterfaceField, | 346 "is_interface_field": IsInterfaceField, |
| 343 "is_interface_request_field": IsInterfaceRequestField, | 347 "is_interface_request_field": IsInterfaceRequestField, |
| 344 "is_map_pointer_field": IsMapPointerField, | 348 "is_map_pointer_field": IsMapPointerField, |
| 345 "is_object_field": IsObjectField, | 349 "is_object_field": IsObjectField, |
| 346 "is_string_pointer_field": IsStringPointerField, | 350 "is_string_pointer_field": IsStringPointerField, |
| 347 "is_struct_pointer_field": IsStructPointerField, | 351 "is_struct_pointer_field": IsStructPointerField, |
| 348 "is_union_field": IsUnionField, | 352 "is_union_field": IsUnionField, |
| 349 "js_type": JavaScriptType, | 353 "js_type": JavaScriptType, |
| 350 "payload_size": JavaScriptPayloadSize, | 354 "payload_size": JavaScriptPayloadSize, |
| 355 "get_relative_path": GetRelativePath, |
| 351 "stylize_method": generator.StudlyCapsToCamel, | 356 "stylize_method": generator.StudlyCapsToCamel, |
| 352 "union_decode_snippet": JavaScriptUnionDecodeSnippet, | 357 "union_decode_snippet": JavaScriptUnionDecodeSnippet, |
| 353 "union_encode_snippet": JavaScriptUnionEncodeSnippet, | 358 "union_encode_snippet": JavaScriptUnionEncodeSnippet, |
| 354 "validate_array_params": JavaScriptValidateArrayParams, | 359 "validate_array_params": JavaScriptValidateArrayParams, |
| 355 "validate_enum_params": JavaScriptValidateEnumParams, | 360 "validate_enum_params": JavaScriptValidateEnumParams, |
| 356 "validate_map_params": JavaScriptValidateMapParams, | 361 "validate_map_params": JavaScriptValidateMapParams, |
| 357 "validate_nullable_params": JavaScriptNullableParam, | 362 "validate_nullable_params": JavaScriptNullableParam, |
| 358 "validate_struct_params": JavaScriptValidateStructParams, | 363 "validate_struct_params": JavaScriptValidateStructParams, |
| 359 "validate_union_params": JavaScriptValidateUnionParams, | 364 "validate_union_params": JavaScriptValidateUnionParams, |
| 360 } | 365 } |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 return self.module.imports | 416 return self.module.imports |
| 412 | 417 |
| 413 def GetImportedInterfaces(self): | 418 def GetImportedInterfaces(self): |
| 414 interface_to_import = {}; | 419 interface_to_import = {}; |
| 415 for each_import in self.module.imports: | 420 for each_import in self.module.imports: |
| 416 for each_interface in each_import["module"].interfaces: | 421 for each_interface in each_import["module"].interfaces: |
| 417 name = each_interface.name | 422 name = each_interface.name |
| 418 interface_to_import[name] = each_import["unique_name"] + "." + name | 423 interface_to_import[name] = each_import["unique_name"] + "." + name |
| 419 return interface_to_import; | 424 return interface_to_import; |
| 420 | 425 |
| OLD | NEW |