OLD | NEW |
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 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
367 "validate_union_params": JavaScriptValidateUnionParams, | 367 "validate_union_params": JavaScriptValidateUnionParams, |
368 } | 368 } |
369 | 369 |
370 def GetParameters(self): | 370 def GetParameters(self): |
371 return { | 371 return { |
372 "namespace": self.module.namespace, | 372 "namespace": self.module.namespace, |
373 "imports": self.GetImports(), | 373 "imports": self.GetImports(), |
374 "kinds": self.module.kinds, | 374 "kinds": self.module.kinds, |
375 "enums": self.module.enums, | 375 "enums": self.module.enums, |
376 "module": self.module, | 376 "module": self.module, |
377 "structs": self.GetStructs() + self.GetStructsFromMethods(), | 377 "structs": self.GetAllStructs(), |
378 "unions": self.GetUnions(), | 378 "unions": self.GetUnions(), |
379 "interfaces": self.GetInterfaces(), | 379 "interfaces": self.GetInterfaces(), |
380 "imported_interfaces": self.GetImportedInterfaces(), | 380 "imported_interfaces": self.GetImportedInterfaces(), |
381 } | 381 } |
382 | 382 |
383 @UseJinja("js_templates/module.amd.tmpl", filters=js_filters) | 383 @UseJinja("js_templates/module.amd.tmpl", filters=js_filters) |
384 def GenerateAMDModule(self): | 384 def GenerateAMDModule(self): |
385 return self.GetParameters() | 385 return self.GetParameters() |
386 | 386 |
387 def GenerateFiles(self, args): | 387 def GenerateFiles(self, args): |
(...skipping 11 matching lines...) Expand all Loading... |
399 counter = 0 | 399 counter = 0 |
400 while unique_name in used_names: | 400 while unique_name in used_names: |
401 counter += 1 | 401 counter += 1 |
402 unique_name = simple_name + str(counter) | 402 unique_name = simple_name + str(counter) |
403 | 403 |
404 used_names.add(unique_name) | 404 used_names.add(unique_name) |
405 each_import["unique_name"] = unique_name + "$" | 405 each_import["unique_name"] = unique_name + "$" |
406 counter += 1 | 406 counter += 1 |
407 return self.module.imports | 407 return self.module.imports |
408 | 408 |
| 409 def GetAllStructs(self): |
| 410 return filter(lambda struct: not struct.native_only, |
| 411 self.GetStructs() + self.GetStructsFromMethods()) |
| 412 |
409 def GetImportedInterfaces(self): | 413 def GetImportedInterfaces(self): |
410 interface_to_import = {}; | 414 interface_to_import = {}; |
411 for each_import in self.module.imports: | 415 for each_import in self.module.imports: |
412 for each_interface in each_import["module"].interfaces: | 416 for each_interface in each_import["module"].interfaces: |
413 name = each_interface.name | 417 name = each_interface.name |
414 interface_to_import[name] = each_import["unique_name"] + "." + name | 418 interface_to_import[name] = each_import["unique_name"] + "." + name |
415 return interface_to_import; | 419 return interface_to_import; |
416 | 420 |
OLD | NEW |