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

Side by Side Diff: mojo/public/tools/bindings/generators/mojom_js_generator.py

Issue 247013008: Add support for Float/Double types for JS Mojo bindings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: M_PI not present on some of the windows platforms. 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « mojo/public/js/bindings/codec.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Generates JavaScript source files from a mojom.Module.""" 5 """Generates JavaScript source files from a mojom.Module."""
6 6
7 import mojom.generate.generator as generator 7 import mojom.generate.generator as generator
8 import mojom.generate.module as mojom 8 import mojom.generate.module as mojom
9 import mojom.generate.pack as pack 9 import mojom.generate.pack as pack
10 from mojom.generate.template_expander import UseJinja 10 from mojom.generate.template_expander import UseJinja
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 91
92 92
93 _kind_to_javascript_decode_snippet = { 93 _kind_to_javascript_decode_snippet = {
94 mojom.BOOL: "readUint8() & 1", 94 mojom.BOOL: "readUint8() & 1",
95 mojom.INT8: "readInt8()", 95 mojom.INT8: "readInt8()",
96 mojom.UINT8: "readUint8()", 96 mojom.UINT8: "readUint8()",
97 mojom.INT16: "readInt16()", 97 mojom.INT16: "readInt16()",
98 mojom.UINT16: "readUint16()", 98 mojom.UINT16: "readUint16()",
99 mojom.INT32: "readInt32()", 99 mojom.INT32: "readInt32()",
100 mojom.UINT32: "readUint32()", 100 mojom.UINT32: "readUint32()",
101 mojom.FLOAT: "decodeFloat()", 101 mojom.FLOAT: "readFloat()",
102 mojom.HANDLE: "decodeHandle()", 102 mojom.HANDLE: "decodeHandle()",
103 mojom.DCPIPE: "decodeHandle()", 103 mojom.DCPIPE: "decodeHandle()",
104 mojom.DPPIPE: "decodeHandle()", 104 mojom.DPPIPE: "decodeHandle()",
105 mojom.MSGPIPE: "decodeHandle()", 105 mojom.MSGPIPE: "decodeHandle()",
106 mojom.SHAREDBUFFER: "decodeHandle()", 106 mojom.SHAREDBUFFER: "decodeHandle()",
107 mojom.INT64: "readInt64()", 107 mojom.INT64: "readInt64()",
108 mojom.UINT64: "readUint64()", 108 mojom.UINT64: "readUint64()",
109 mojom.DOUBLE: "decodeDouble()", 109 mojom.DOUBLE: "readDouble()",
110 mojom.STRING: "decodeStringPointer()", 110 mojom.STRING: "decodeStringPointer()",
111 } 111 }
112 112
113 113
114 def JavaScriptDecodeSnippet(kind): 114 def JavaScriptDecodeSnippet(kind):
115 if kind in mojom.PRIMITIVES: 115 if kind in mojom.PRIMITIVES:
116 return _kind_to_javascript_decode_snippet[kind] 116 return _kind_to_javascript_decode_snippet[kind]
117 if isinstance(kind, mojom.Struct): 117 if isinstance(kind, mojom.Struct):
118 return "decodeStructPointer(%s)" % GetJavaScriptType(kind.name); 118 return "decodeStructPointer(%s)" % GetJavaScriptType(kind.name);
119 if isinstance(kind, mojom.Array): 119 if isinstance(kind, mojom.Array):
120 return "decodeArrayPointer(%s)" % GetJavaScriptType(kind.kind); 120 return "decodeArrayPointer(%s)" % GetJavaScriptType(kind.kind);
121 if isinstance(kind, mojom.Interface): 121 if isinstance(kind, mojom.Interface):
122 return JavaScriptDecodeSnippet(mojom.MSGPIPE) 122 return JavaScriptDecodeSnippet(mojom.MSGPIPE)
123 if isinstance(kind, mojom.Enum): 123 if isinstance(kind, mojom.Enum):
124 return _kind_to_javascript_decode_snippet[mojom.INT32] 124 return _kind_to_javascript_decode_snippet[mojom.INT32]
125 125
126 126
127 _kind_to_javascript_encode_snippet = { 127 _kind_to_javascript_encode_snippet = {
128 mojom.BOOL: "writeUint8(1 & ", 128 mojom.BOOL: "writeUint8(1 & ",
129 mojom.INT8: "writeInt8(", 129 mojom.INT8: "writeInt8(",
130 mojom.UINT8: "writeUint8(", 130 mojom.UINT8: "writeUint8(",
131 mojom.INT16: "writeInt16(", 131 mojom.INT16: "writeInt16(",
132 mojom.UINT16: "writeUint16(", 132 mojom.UINT16: "writeUint16(",
133 mojom.INT32: "writeInt32(", 133 mojom.INT32: "writeInt32(",
134 mojom.UINT32: "writeUint32(", 134 mojom.UINT32: "writeUint32(",
135 mojom.FLOAT: "encodeFloat(", 135 mojom.FLOAT: "writeFloat(",
136 mojom.HANDLE: "encodeHandle(", 136 mojom.HANDLE: "encodeHandle(",
137 mojom.DCPIPE: "encodeHandle(", 137 mojom.DCPIPE: "encodeHandle(",
138 mojom.DPPIPE: "encodeHandle(", 138 mojom.DPPIPE: "encodeHandle(",
139 mojom.MSGPIPE: "encodeHandle(", 139 mojom.MSGPIPE: "encodeHandle(",
140 mojom.SHAREDBUFFER: "encodeHandle(", 140 mojom.SHAREDBUFFER: "encodeHandle(",
141 mojom.INT64: "writeInt64(", 141 mojom.INT64: "writeInt64(",
142 mojom.UINT64: "writeUint64(", 142 mojom.UINT64: "writeUint64(",
143 mojom.DOUBLE: "encodeDouble(", 143 mojom.DOUBLE: "writeDouble(",
144 mojom.STRING: "encodeStringPointer(", 144 mojom.STRING: "encodeStringPointer(",
145 } 145 }
146 146
147 147
148 def JavaScriptEncodeSnippet(kind): 148 def JavaScriptEncodeSnippet(kind):
149 if kind in mojom.PRIMITIVES: 149 if kind in mojom.PRIMITIVES:
150 return _kind_to_javascript_encode_snippet[kind] 150 return _kind_to_javascript_encode_snippet[kind]
151 if isinstance(kind, mojom.Struct): 151 if isinstance(kind, mojom.Struct):
152 return "encodeStructPointer(%s, " % GetJavaScriptType(kind.name); 152 return "encodeStructPointer(%s, " % GetJavaScriptType(kind.name);
153 if isinstance(kind, mojom.Array): 153 if isinstance(kind, mojom.Array):
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 self.Write(self.GenerateJsModule(), "%s.js" % self.module.name) 217 self.Write(self.GenerateJsModule(), "%s.js" % self.module.name)
218 218
219 def GetImports(self): 219 def GetImports(self):
220 # Since each import is assigned a variable in JS, they need to have unique 220 # Since each import is assigned a variable in JS, they need to have unique
221 # names. 221 # names.
222 counter = 1 222 counter = 1
223 for each in self.module.imports: 223 for each in self.module.imports:
224 each["unique_name"] = "import" + str(counter) 224 each["unique_name"] = "import" + str(counter)
225 counter += 1 225 counter += 1
226 return self.module.imports 226 return self.module.imports
OLDNEW
« 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