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

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

Issue 474063002: Mojo: add support for {double,float}.{INFINITY,NEGATIVE_INFINITY,NAN} (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix test Created 6 years, 4 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
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 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 # NamespaceUid.Struct[.Enum].CONSTANT_NAME 167 # NamespaceUid.Struct[.Enum].CONSTANT_NAME
168 name = [] 168 name = []
169 if token.imported_from: 169 if token.imported_from:
170 name.append(token.imported_from["unique_name"]) 170 name.append(token.imported_from["unique_name"])
171 if token.parent_kind: 171 if token.parent_kind:
172 name.append(token.parent_kind.name) 172 name.append(token.parent_kind.name)
173 if isinstance(token, mojom.EnumValue): 173 if isinstance(token, mojom.EnumValue):
174 name.append(token.enum_name) 174 name.append(token.enum_name)
175 name.append(token.name) 175 name.append(token.name)
176 return ".".join(name) 176 return ".".join(name)
177
178 if token == "double.INFINITY" or token == "float.INFINITY":
179 return "Infinity";
180 if token == "double.NEGATIVE_INFINITY" or token == "float.NEGATIVE_INFINITY":
181 return "-Infinity";
182 if token == "double.NAN" or token == "float.NAN":
183 return "NaN";
184
177 return token 185 return token
178 186
179 187
180 def ExpressionToText(value): 188 def ExpressionToText(value):
181 return TranslateConstants(value) 189 return TranslateConstants(value)
182 190
183 191
184 def IsArrayPointerField(field): 192 def IsArrayPointerField(field):
185 return mojom.IsAnyArrayKind(field.kind) 193 return mojom.IsAnyArrayKind(field.kind)
186 194
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 self.Write(self.GenerateJsModule(), "%s.js" % self.module.name) 238 self.Write(self.GenerateJsModule(), "%s.js" % self.module.name)
231 239
232 def GetImports(self): 240 def GetImports(self):
233 # Since each import is assigned a variable in JS, they need to have unique 241 # Since each import is assigned a variable in JS, they need to have unique
234 # names. 242 # names.
235 counter = 1 243 counter = 1
236 for each in self.module.imports: 244 for each in self.module.imports:
237 each["unique_name"] = "import" + str(counter) 245 each["unique_name"] = "import" + str(counter)
238 counter += 1 246 counter += 1
239 return self.module.imports 247 return self.module.imports
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698