Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(372)

Unified Diff: mojo/public/tools/bindings/generators/mojom_js_generator.py

Issue 250253002: Mojo: Add String, Float, and Double types to codec.js. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/public/js/bindings/codec.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 adc1b7ddd317e0b06e104dee9d9203883a33879f..07e8b0877f6d7263a852d4a36bb061cf87e2f65f 100644
--- a/mojo/public/tools/bindings/generators/mojom_js_generator.py
+++ b/mojo/public/tools/bindings/generators/mojom_js_generator.py
@@ -55,7 +55,7 @@ def JavaScriptPayloadSize(packed):
return offset + pad;
-_kind_to_javascript_type = {
+_kind_to_codec_type = {
mojom.BOOL: "codec.Uint8",
mojom.INT8: "codec.Int8",
mojom.UINT8: "codec.Uint8",
@@ -76,86 +76,44 @@ _kind_to_javascript_type = {
}
-def GetJavaScriptType(kind):
+def CodecType(kind):
if kind in mojom.PRIMITIVES:
- return _kind_to_javascript_type[kind]
+ return _kind_to_codec_type[kind]
if isinstance(kind, mojom.Struct):
- return "new codec.PointerTo(%s)" % GetJavaScriptType(kind.name)
+ return "new codec.PointerTo(%s)" % CodecType(kind.name)
if isinstance(kind, mojom.Array):
- return "new codec.ArrayOf(%s)" % GetJavaScriptType(kind.kind)
+ return "new codec.ArrayOf(%s)" % CodecType(kind.kind)
if isinstance(kind, mojom.Interface):
- return GetJavaScriptType(mojom.MSGPIPE)
+ return CodecType(mojom.MSGPIPE)
if isinstance(kind, mojom.Enum):
- return _kind_to_javascript_type[mojom.INT32]
+ return _kind_to_codec_type[mojom.INT32]
return kind
-_kind_to_javascript_decode_snippet = {
- mojom.BOOL: "readUint8() & 1",
- mojom.INT8: "readInt8()",
- mojom.UINT8: "readUint8()",
- mojom.INT16: "readInt16()",
- mojom.UINT16: "readUint16()",
- mojom.INT32: "readInt32()",
- mojom.UINT32: "readUint32()",
- mojom.FLOAT: "readFloat()",
- mojom.HANDLE: "decodeHandle()",
- mojom.DCPIPE: "decodeHandle()",
- mojom.DPPIPE: "decodeHandle()",
- mojom.MSGPIPE: "decodeHandle()",
- mojom.SHAREDBUFFER: "decodeHandle()",
- mojom.INT64: "readInt64()",
- mojom.UINT64: "readUint64()",
- mojom.DOUBLE: "readDouble()",
- mojom.STRING: "decodeStringPointer()",
-}
-
-
def JavaScriptDecodeSnippet(kind):
if kind in mojom.PRIMITIVES:
- return _kind_to_javascript_decode_snippet[kind]
+ return "decodeStruct(%s)" % CodecType(kind);
if isinstance(kind, mojom.Struct):
- return "decodeStructPointer(%s)" % GetJavaScriptType(kind.name);
+ return "decodeStructPointer(%s)" % CodecType(kind.name);
if isinstance(kind, mojom.Array):
- return "decodeArrayPointer(%s)" % GetJavaScriptType(kind.kind);
+ return "decodeArrayPointer(%s)" % CodecType(kind.kind);
if isinstance(kind, mojom.Interface):
return JavaScriptDecodeSnippet(mojom.MSGPIPE)
if isinstance(kind, mojom.Enum):
- return _kind_to_javascript_decode_snippet[mojom.INT32]
-
-
-_kind_to_javascript_encode_snippet = {
- mojom.BOOL: "writeUint8(1 & ",
- mojom.INT8: "writeInt8(",
- mojom.UINT8: "writeUint8(",
- mojom.INT16: "writeInt16(",
- mojom.UINT16: "writeUint16(",
- mojom.INT32: "writeInt32(",
- mojom.UINT32: "writeUint32(",
- mojom.FLOAT: "writeFloat(",
- mojom.HANDLE: "encodeHandle(",
- mojom.DCPIPE: "encodeHandle(",
- mojom.DPPIPE: "encodeHandle(",
- mojom.MSGPIPE: "encodeHandle(",
- mojom.SHAREDBUFFER: "encodeHandle(",
- mojom.INT64: "writeInt64(",
- mojom.UINT64: "writeUint64(",
- mojom.DOUBLE: "writeDouble(",
- mojom.STRING: "encodeStringPointer(",
-}
+ return JavaScriptDecodeSnippet(mojom.INT32)
def JavaScriptEncodeSnippet(kind):
if kind in mojom.PRIMITIVES:
- return _kind_to_javascript_encode_snippet[kind]
+ return "encodeStruct(%s, " % CodecType(kind);
if isinstance(kind, mojom.Struct):
- return "encodeStructPointer(%s, " % GetJavaScriptType(kind.name);
+ return "encodeStructPointer(%s, " % CodecType(kind.name);
if isinstance(kind, mojom.Array):
- return "encodeArrayPointer(%s, " % GetJavaScriptType(kind.kind);
+ return "encodeArrayPointer(%s, " % CodecType(kind.kind);
if isinstance(kind, mojom.Interface):
return JavaScriptEncodeSnippet(mojom.MSGPIPE)
if isinstance(kind, mojom.Enum):
- return _kind_to_javascript_encode_snippet[mojom.INT32]
+ return JavaScriptEncodeSnippet(mojom.INT32)
def TranslateConstants(token, module):
if isinstance(token, mojom.Constant):
« no previous file with comments | « mojo/public/js/bindings/codec.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698