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 d05b7d3b77b54e687517cce1f7a98528a57d5a3f..7bb4b5da91ee189003c58c844f368f6e20f64658 100644 |
--- a/mojo/public/tools/bindings/generators/mojom_js_generator.py |
+++ b/mojo/public/tools/bindings/generators/mojom_js_generator.py |
@@ -54,6 +54,8 @@ def JavaScriptDefaultValue(field): |
return "null" |
if mojom.IsAnyArrayKind(field.kind): |
return "null" |
+ if mojom.IsMapKind(field.kind): |
+ return "null" |
if mojom.IsInterfaceKind(field.kind) or \ |
mojom.IsInterfaceRequestKind(field.kind): |
return _kind_to_javascript_default_value[mojom.MSGPIPE] |
@@ -116,12 +118,17 @@ def CodecType(kind): |
return _kind_to_codec_type[mojom.INT32] |
return kind |
+def MapCodecType(kind): |
+ return "codec.PackedBool" if mojom.IsBoolKind(kind) else CodecType(kind) |
def JavaScriptDecodeSnippet(kind): |
if kind in mojom.PRIMITIVES: |
return "decodeStruct(%s)" % CodecType(kind) |
if mojom.IsStructKind(kind): |
return "decodeStructPointer(%s)" % JavaScriptType(kind) |
+ if mojom.IsMapKind(kind): |
+ return "decodeMapPointer(%s, %s)" % \ |
+ (MapCodecType(kind.key_kind), MapCodecType(kind.value_kind)) |
if mojom.IsAnyArrayKind(kind) and mojom.IsBoolKind(kind.kind): |
return "decodeArrayPointer(codec.PackedBool)" |
if mojom.IsAnyArrayKind(kind): |
@@ -137,6 +144,9 @@ def JavaScriptEncodeSnippet(kind): |
return "encodeStruct(%s, " % CodecType(kind) |
if mojom.IsStructKind(kind): |
return "encodeStructPointer(%s, " % JavaScriptType(kind) |
+ if mojom.IsMapKind(kind): |
+ return "encodeMapPointer(%s, %s, " % \ |
+ (MapCodecType(kind.key_kind), MapCodecType(kind.value_kind)) |
if mojom.IsAnyArrayKind(kind) and mojom.IsBoolKind(kind.kind): |
return "encodeArrayPointer(codec.PackedBool, "; |
if mojom.IsAnyArrayKind(kind): |