| 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 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 "decode_snippet": JavaScriptDecodeSnippet, | 157 "decode_snippet": JavaScriptDecodeSnippet, |
| 158 "encode_snippet": JavaScriptEncodeSnippet, | 158 "encode_snippet": JavaScriptEncodeSnippet, |
| 159 "expression_to_text": ExpressionToText, | 159 "expression_to_text": ExpressionToText, |
| 160 "js_type": JavascriptType, | 160 "js_type": JavascriptType, |
| 161 "stylize_method": generator.StudlyCapsToCamel, | 161 "stylize_method": generator.StudlyCapsToCamel, |
| 162 } | 162 } |
| 163 | 163 |
| 164 @UseJinja("js_templates/module.js.tmpl", filters=js_filters) | 164 @UseJinja("js_templates/module.js.tmpl", filters=js_filters) |
| 165 def GenerateJsModule(self): | 165 def GenerateJsModule(self): |
| 166 return { | 166 return { |
| 167 "namespace": self.module.namespace, |
| 167 "imports": self.GetImports(), | 168 "imports": self.GetImports(), |
| 168 "kinds": self.module.kinds, | 169 "kinds": self.module.kinds, |
| 169 "enums": self.module.enums, | 170 "enums": self.module.enums, |
| 170 "module": self.module, | 171 "module": self.module, |
| 171 "structs": self.GetStructs() + self.GetStructsFromMethods(), | 172 "structs": self.GetStructs() + self.GetStructsFromMethods(), |
| 172 "interfaces": self.module.interfaces, | 173 "interfaces": self.module.interfaces, |
| 173 } | 174 } |
| 174 | 175 |
| 175 def GenerateFiles(self, args): | 176 def GenerateFiles(self, args): |
| 176 self.Write(self.GenerateJsModule(), "%s.js" % self.module.name) | 177 self.Write(self.GenerateJsModule(), "%s.js" % self.module.name) |
| 177 | 178 |
| 178 def GetImports(self): | 179 def GetImports(self): |
| 179 # Since each import is assigned a variable in JS, they need to have unique | 180 # Since each import is assigned a variable in JS, they need to have unique |
| 180 # names. | 181 # names. |
| 181 counter = 1 | 182 counter = 1 |
| 182 for each in self.module.imports: | 183 for each in self.module.imports: |
| 183 each["unique_name"] = "import" + str(counter) | 184 each["unique_name"] = "import" + str(counter) |
| 184 counter += 1 | 185 counter += 1 |
| 185 return self.module.imports | 186 return self.module.imports |
| OLD | NEW |