| 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):
|
|
|