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 systems to generate | 6 """This module provides shared functionality for systems to generate |
7 Dart APIs from the IDL database.""" | 7 Dart APIs from the IDL database.""" |
8 | 8 |
9 import copy | 9 import copy |
10 import re | 10 import re |
(...skipping 700 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
711 "@Experimental()", | 711 "@Experimental()", |
712 ], | 712 ], |
713 'WebSocket': _all_but_ie9_annotations, | 713 'WebSocket': _all_but_ie9_annotations, |
714 'WorkerContext.indexedDB': _indexed_db_annotations, | 714 'WorkerContext.indexedDB': _indexed_db_annotations, |
715 } | 715 } |
716 | 716 |
717 def FindCommonAnnotations(interface_name, member_name=None): | 717 def FindCommonAnnotations(interface_name, member_name=None): |
718 """ Finds annotations common between dart2js and dartium. | 718 """ Finds annotations common between dart2js and dartium. |
719 """ | 719 """ |
720 if member_name: | 720 if member_name: |
721 return dart_annotations.get('%s.%s' % (interface_name, member_name)) | 721 key = '%s.%s' % (interface_name, member_name) |
722 else: | 722 else: |
723 return dart_annotations.get(interface_name) | 723 key = interface_name |
| 724 |
| 725 annotations = ["@DomName('" + key + "')"] |
| 726 if (dart_annotations.get(key) != None): |
| 727 annotations.extend(dart_annotations.get(key)) |
| 728 |
| 729 return annotations |
724 | 730 |
725 def FindDart2JSAnnotations(idl_type, interface_name, member_name): | 731 def FindDart2JSAnnotations(idl_type, interface_name, member_name): |
726 """ Finds all annotations for Dart2JS members- including annotations for | 732 """ Finds all annotations for Dart2JS members- including annotations for |
727 both dart2js and dartium. | 733 both dart2js and dartium. |
728 """ | 734 """ |
729 annotations = FindCommonAnnotations(interface_name, member_name) | 735 annotations = FindCommonAnnotations(interface_name, member_name) |
730 if annotations: | 736 if annotations: |
731 annotations = ' '.join(annotations) | 737 annotations = ' '.join(annotations) |
732 | 738 |
733 ann2 = _FindDart2JSSpecificAnnotations(idl_type, interface_name, member_name) | 739 ann2 = _FindDart2JSSpecificAnnotations(idl_type, interface_name, member_name) |
734 if ann2: | 740 if ann2: |
735 if annotations: | 741 if annotations: |
736 annotations = annotations + ' ' + ann2 | 742 annotations = annotations + ' ' + ann2 |
737 else: | 743 else: |
738 annotations = ann2 | 744 annotations = ann2 |
739 return annotations | 745 return annotations |
740 | 746 |
| 747 def AnyConversionAnnotations(idl_type, interface_name, member_name): |
| 748 if (dart_annotations.get('%s.%s' % (interface_name, member_name)) or |
| 749 _FindDart2JSSpecificAnnotations(idl_type, interface_name, member_name)): |
| 750 return True |
| 751 else: |
| 752 return False |
| 753 |
741 def _FindDart2JSSpecificAnnotations(idl_type, interface_name, member_name): | 754 def _FindDart2JSSpecificAnnotations(idl_type, interface_name, member_name): |
742 """ Finds dart2js-specific annotations. This does not include ones shared with | 755 """ Finds dart2js-specific annotations. This does not include ones shared with |
743 dartium. | 756 dartium. |
744 """ | 757 """ |
745 ann1 = dart2js_annotations.get("%s.%s" % (interface_name, member_name)) | 758 ann1 = dart2js_annotations.get("%s.%s" % (interface_name, member_name)) |
746 if ann1: | 759 if ann1: |
747 ann2 = dart2js_annotations.get('+' + idl_type) | 760 ann2 = dart2js_annotations.get('+' + idl_type) |
748 if ann2: | 761 if ann2: |
749 return ann2 + ' ' + ann1 | 762 return ann2 + ' ' + ann1 |
750 ann2 = dart2js_annotations.get(idl_type) | 763 ann2 = dart2js_annotations.get(idl_type) |
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1284 self) | 1297 self) |
1285 | 1298 |
1286 if type_data.clazz == 'SVGTearOff': | 1299 if type_data.clazz == 'SVGTearOff': |
1287 dart_interface_name = self._renamer.RenameInterface( | 1300 dart_interface_name = self._renamer.RenameInterface( |
1288 self._database.GetInterface(type_name)) | 1301 self._database.GetInterface(type_name)) |
1289 return SVGTearOffIDLTypeInfo( | 1302 return SVGTearOffIDLTypeInfo( |
1290 type_name, type_data, dart_interface_name, self) | 1303 type_name, type_data, dart_interface_name, self) |
1291 | 1304 |
1292 class_name = '%sIDLTypeInfo' % type_data.clazz | 1305 class_name = '%sIDLTypeInfo' % type_data.clazz |
1293 return globals()[class_name](type_name, type_data) | 1306 return globals()[class_name](type_name, type_data) |
OLD | NEW |