| 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..7924e8a3b1815dc336ac53a7e928d64f59cae218 100644
|
| --- a/mojo/public/tools/bindings/generators/mojom_js_generator.py
|
| +++ b/mojo/public/tools/bindings/generators/mojom_js_generator.py
|
| @@ -37,9 +37,13 @@ _kind_to_javascript_default_value = {
|
|
|
|
|
| def JavaScriptType(kind):
|
| + name = []
|
| if kind.imported_from:
|
| - return kind.imported_from["unique_name"] + "." + kind.name
|
| - return kind.name
|
| + name.append(kind.imported_from["unique_name"])
|
| + if kind.parent_kind:
|
| + name.append(kind.parent_kind.name)
|
| + name.append(kind.name)
|
| + return ".".join(name)
|
|
|
|
|
| def JavaScriptDefaultValue(field):
|
| @@ -129,7 +133,8 @@ def CodecType(kind):
|
| if mojom.IsAssociatedInterfaceRequestKind(kind):
|
| return "codec.AssociatedInterfaceRequestNotSupported"
|
| if mojom.IsEnumKind(kind):
|
| - return _kind_to_codec_type[mojom.INT32]
|
| + element_type = kind.name
|
| + return "new codec.Enum(%s)" % (element_type)
|
| if mojom.IsMapKind(kind):
|
| map_type = "NullableMapOf" if mojom.IsNullableKind(kind) else "MapOf"
|
| key_type = ElementCodecType(kind.key_kind)
|
| @@ -141,6 +146,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 +234,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 +327,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 +369,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 +382,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,
|
|
|