Chromium Code Reviews| Index: mojo/public/tools/bindings/generators/mojom_js_generator.py |
| diff --git a/mojo/public/tools/bindings/generators/mojom_js_generator.py b/mojo/public/tools/bindings/generators/mojom_js_generator.py |
| index e2df5176e25eef78beded602e2d12c988fcf0408..d4921c4fd98e5bc6442df0916247075d7c5aef9b 100644 |
| --- a/mojo/public/tools/bindings/generators/mojom_js_generator.py |
| +++ b/mojo/public/tools/bindings/generators/mojom_js_generator.py |
| @@ -129,7 +129,9 @@ def CodecType(kind): |
| if mojom.IsAssociatedInterfaceRequestKind(kind): |
| return "codec.AssociatedInterfaceRequestNotSupported" |
| if mojom.IsEnumKind(kind): |
| - return _kind_to_codec_type[mojom.INT32] |
| + enum_type = "Enum" |
| + element_type = kind.name |
| + return "new codec.%s(%s)" % (enum_type, element_type) |
|
Ken Rockot(use gerrit already)
2016/09/30 21:51:54
nit: No need for enum_type, you can just use "new
mbjorge
2016/09/30 22:14:51
Done.
|
| if mojom.IsMapKind(kind): |
| map_type = "NullableMapOf" if mojom.IsNullableKind(kind) else "MapOf" |
| key_type = ElementCodecType(kind.key_kind) |
| @@ -141,6 +143,7 @@ def CodecType(kind): |
| def ElementCodecType(kind): |
| return "codec.PackedBool" if mojom.IsBoolKind(kind) else CodecType(kind) |
| + |
| def JavaScriptDecodeSnippet(kind): |
| if (kind in mojom.PRIMITIVES or mojom.IsUnionKind(kind) or |
| mojom.IsInterfaceKind(kind) or mojom.IsAssociatedKind(kind)): |
| @@ -228,6 +231,11 @@ def JavaScriptValidateArrayParams(field): |
| expected_dimension_sizes) |
| +def JavaScriptValidateEnumParams(field): |
| + nullable = JavaScriptNullableParam(field) |
| + enum_type = JavaScriptType(field.kind) |
| + return "%s, %s" % (enum_type, nullable) |
| + |
| def JavaScriptValidateStructParams(field): |
| nullable = JavaScriptNullableParam(field) |
| struct_type = JavaScriptType(field.kind) |
| @@ -316,6 +324,9 @@ def ExpressionToText(value): |
| def IsArrayPointerField(field): |
| return mojom.IsArrayKind(field.kind) |
| +def IsEnumField(field): |
| + return mojom.IsEnumKind(field.kind) |
| + |
| def IsStringPointerField(field): |
| return mojom.IsStringKind(field.kind) |
| @@ -355,6 +366,7 @@ class Generator(generator.Generator): |
| "has_callbacks": mojom.HasCallbacks, |
| "is_array_pointer_field": IsArrayPointerField, |
| "is_bool_field": IsBoolField, |
| + "is_enum_field": IsEnumField, |
| "is_map_pointer_field": IsMapPointerField, |
| "is_struct_pointer_field": IsStructPointerField, |
| "is_string_pointer_field": IsStringPointerField, |
| @@ -367,6 +379,7 @@ class Generator(generator.Generator): |
| "js_stub_method_parameter_value": JavaScriptStubMethodParameterValue, |
| "stylize_method": generator.StudlyCapsToCamel, |
| "validate_array_params": JavaScriptValidateArrayParams, |
| + "validate_enum_params": JavaScriptValidateEnumParams, |
| "validate_handle_params": JavaScriptValidateHandleParams, |
| "validate_interface_params": JavaScriptValidateInterfaceParams, |
| "validate_map_params": JavaScriptValidateMapParams, |