| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 3 # for details. All rights reserved. Use of this source code is governed by a | 3 # for details. All rights reserved. Use of this source code is governed by a |
| 4 # BSD-style license that can be found in the LICENSE file. | 4 # BSD-style license that can be found in the LICENSE file. |
| 5 | 5 |
| 6 """This module provides shared functionality for the system to generate | 6 """This module provides shared functionality for the system to generate |
| 7 Dart:html APIs from the IDL database.""" | 7 Dart:html APIs from the IDL database.""" |
| 8 | 8 |
| 9 import emitter | 9 import emitter |
| 10 import logging | 10 import logging |
| (...skipping 1224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1235 anns = self._metadata.GetDart2JSMetadata( | 1235 anns = self._metadata.GetDart2JSMetadata( |
| 1236 idl_type, self._library_name, self._interface, idl_member_name) | 1236 idl_type, self._library_name, self._interface, idl_member_name) |
| 1237 | 1237 |
| 1238 if not self._metadata.AnyConversionAnnotations( | 1238 if not self._metadata.AnyConversionAnnotations( |
| 1239 idl_type, self._interface.id, idl_member_name): | 1239 idl_type, self._interface.id, idl_member_name): |
| 1240 return_type = self.SecureOutputType(idl_type) | 1240 return_type = self.SecureOutputType(idl_type) |
| 1241 native_type = self._NarrowToImplementationType(idl_type) | 1241 native_type = self._NarrowToImplementationType(idl_type) |
| 1242 | 1242 |
| 1243 if native_type != return_type: | 1243 if native_type != return_type: |
| 1244 anns = anns + [ | 1244 anns = anns + [ |
| 1245 "@Returns('%s')" % native_type, | 1245 "@Returns('%s|Null')" % native_type, |
| 1246 "@Creates('%s')" % native_type, | 1246 "@Creates('%s')" % native_type, |
| 1247 ] | 1247 ] |
| 1248 if dart_type == 'dynamic' or dart_type == 'Object': | 1248 if dart_type == 'dynamic' or dart_type == 'Object': |
| 1249 def js_type_annotation(ann): | 1249 def js_type_annotation(ann): |
| 1250 return re.search('^@.*Returns', ann) or re.search('^@.*Creates', ann) | 1250 return re.search('^@.*Returns', ann) or re.search('^@.*Creates', ann) |
| 1251 if not filter(js_type_annotation, anns): | 1251 if not filter(js_type_annotation, anns): |
| 1252 _logger.warn('Member with wildcard native type: %s.%s' % | 1252 _logger.warn('Member with wildcard native type: %s.%s' % |
| 1253 (self._interface.id, idl_member_name)) | 1253 (self._interface.id, idl_member_name)) |
| 1254 | 1254 |
| 1255 return self._metadata.FormatMetadata(anns, indent); | 1255 return self._metadata.FormatMetadata(anns, indent); |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1379 | 1379 |
| 1380 def AddFile(self, basename, library_name, path): | 1380 def AddFile(self, basename, library_name, path): |
| 1381 self._libraries[library_name].AddFile(path) | 1381 self._libraries[library_name].AddFile(path) |
| 1382 | 1382 |
| 1383 def AddTypeEntry(self, library_name, idl_name, dart_name): | 1383 def AddTypeEntry(self, library_name, idl_name, dart_name): |
| 1384 self._libraries[library_name].AddTypeEntry(idl_name, dart_name) | 1384 self._libraries[library_name].AddTypeEntry(idl_name, dart_name) |
| 1385 | 1385 |
| 1386 def Emit(self, emitter, auxiliary_dir): | 1386 def Emit(self, emitter, auxiliary_dir): |
| 1387 for lib in self._libraries.values(): | 1387 for lib in self._libraries.values(): |
| 1388 lib.Emit(emitter, auxiliary_dir) | 1388 lib.Emit(emitter, auxiliary_dir) |
| OLD | NEW |