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 json | 10 import json |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 'generator._methods_with_named_formals', [ | 63 'generator._methods_with_named_formals', [ |
64 'DirectoryEntry.getDirectory', | 64 'DirectoryEntry.getDirectory', |
65 'DirectoryEntry.getFile', | 65 'DirectoryEntry.getFile', |
66 'Entry.copyTo', | 66 'Entry.copyTo', |
67 'Entry.moveTo', | 67 'Entry.moveTo', |
68 'HTMLInputElement.setRangeText', | 68 'HTMLInputElement.setRangeText', |
69 'HTMLTextAreaElement.setRangeText', | 69 'HTMLTextAreaElement.setRangeText', |
70 'XMLHttpRequest.open', | 70 'XMLHttpRequest.open', |
71 ]) | 71 ]) |
72 | 72 |
| 73 def ReturnValueConversionHack(idl_type, value, interface_name): |
| 74 if idl_type == 'SVGMatrix': |
| 75 return '%sTearOff::create(%s)' % (idl_type, value) |
| 76 elif ((idl_type == 'SVGAngle' and interface_name != 'SVGAnimatedAngle') |
| 77 or (idl_type == 'SVGTransform' and interface_name == 'SVGSVGElement')): |
| 78 # Somewhere in the IDL it probably specifies whether we need to call |
| 79 # create or not. |
| 80 return 'SVGPropertyTearOff<%s>::create(%s)' % (idl_type, value) |
| 81 |
| 82 return value |
| 83 |
73 # | 84 # |
74 # Renames for attributes that have names that are not legal Dart names. | 85 # Renames for attributes that have names that are not legal Dart names. |
75 # | 86 # |
76 _dart_attribute_renames = monitored.Dict('generator._dart_attribute_renames', { | 87 _dart_attribute_renames = monitored.Dict('generator._dart_attribute_renames', { |
77 'default': 'defaultValue', | 88 'default': 'defaultValue', |
78 }) | 89 }) |
79 | 90 |
80 # | 91 # |
81 # Interface version of the DOM needs to delegate typed array constructors to a | 92 # Interface version of the DOM needs to delegate typed array constructors to a |
82 # factory provider. | 93 # factory provider. |
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
655 | 666 |
656 def native_type(self): | 667 def native_type(self): |
657 return self._data.native_type or self._idl_type | 668 return self._data.native_type or self._idl_type |
658 | 669 |
659 def bindings_class(self): | 670 def bindings_class(self): |
660 return 'Dart%s' % self.idl_type() | 671 return 'Dart%s' % self.idl_type() |
661 | 672 |
662 def vector_to_dart_template_parameter(self): | 673 def vector_to_dart_template_parameter(self): |
663 return self.native_type() | 674 return self.native_type() |
664 | 675 |
665 def to_native_info(self, idl_node, interface_name): | 676 def to_native_info(self, idl_node, interface_name, callback_name): |
666 cls = self.bindings_class() | 677 cls = self.bindings_class() |
667 | 678 |
668 if 'Callback' in idl_node.ext_attrs: | 679 if 'Callback' in idl_node.ext_attrs: |
669 return '%s.release()', 'OwnPtr<%s>' % self.native_type(), cls, 'create' | 680 return '%s.release()', 'OwnPtr<%s>' % self.native_type(), cls, 'create' |
670 | 681 |
671 if self.custom_to_native(): | 682 # This is a hack to handle property references correctly. |
| 683 if (self.native_type() in ['SVGPropertyTearOff<SVGAngle>', |
| 684 'SVGPropertyTearOff<SVGAngle>*', 'SVGMatrixTearOff'] |
| 685 and (callback_name != 'createSVGTransformFromMatrixCallback' |
| 686 or interface_name != 'SVGTransformList')): |
| 687 argument_expression_template = '%s->propertyReference()' |
| 688 type = '%s*' % self.native_type() |
| 689 elif self.custom_to_native(): |
672 type = 'RefPtr<%s>' % self.native_type() | 690 type = 'RefPtr<%s>' % self.native_type() |
673 argument_expression_template = '%s.get()' | 691 argument_expression_template = '%s.get()' |
674 else: | 692 else: |
675 type = '%s*' % self.native_type() | 693 type = '%s*' % self.native_type() |
676 if isinstance(self, SVGTearOffIDLTypeInfo) and not interface_name.endswith
('List'): | 694 argument_expression_template = '%s' |
677 argument_expression_template = '%s->propertyReference()' | |
678 else: | |
679 argument_expression_template = '%s' | |
680 return argument_expression_template, type, cls, 'toNative' | 695 return argument_expression_template, type, cls, 'toNative' |
681 | 696 |
682 def pass_native_by_ref(self): return False | 697 def pass_native_by_ref(self): return False |
683 | 698 |
684 def custom_to_native(self): | 699 def custom_to_native(self): |
685 return self._data.custom_to_native | 700 return self._data.custom_to_native |
686 | 701 |
687 def parameter_type(self): | 702 def parameter_type(self): |
688 return '%s*' % self.native_type() | 703 return '%s*' % self.native_type() |
689 | 704 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
722 includes = [self._idl_type] + (self._data.conversion_includes or []) | 737 includes = [self._idl_type] + (self._data.conversion_includes or []) |
723 return ['"Dart%s.h"' % include for include in includes] | 738 return ['"Dart%s.h"' % include for include in includes] |
724 | 739 |
725 def to_dart_conversion(self, value, interface_name=None, attributes=None): | 740 def to_dart_conversion(self, value, interface_name=None, attributes=None): |
726 return 'Dart%s::toDart(%s)' % (self._idl_type, value) | 741 return 'Dart%s::toDart(%s)' % (self._idl_type, value) |
727 | 742 |
728 def return_to_dart_conversion(self, value, auto_dart_scope_setup, | 743 def return_to_dart_conversion(self, value, auto_dart_scope_setup, |
729 interface_name=None, attributes=None): | 744 interface_name=None, attributes=None): |
730 auto_dart_scope='true' if auto_dart_scope_setup else 'false' | 745 auto_dart_scope='true' if auto_dart_scope_setup else 'false' |
731 return 'Dart%s::returnToDart(args, %s, %s)' % (self._idl_type, | 746 return 'Dart%s::returnToDart(args, %s, %s)' % (self._idl_type, |
732 value, | 747 ReturnValueConversionHack(sel
f._idl_type, value, interface_name), |
733 auto_dart_scope) | 748 auto_dart_scope) |
734 | 749 |
735 def custom_to_dart(self): | 750 def custom_to_dart(self): |
736 return self._data.custom_to_dart | 751 return self._data.custom_to_dart |
737 | 752 |
738 | 753 |
739 class InterfaceIDLTypeInfo(IDLTypeInfo): | 754 class InterfaceIDLTypeInfo(IDLTypeInfo): |
740 def __init__(self, idl_type, data, dart_interface_name, type_registry): | 755 def __init__(self, idl_type, data, dart_interface_name, type_registry): |
741 super(InterfaceIDLTypeInfo, self).__init__(idl_type, data) | 756 super(InterfaceIDLTypeInfo, self).__init__(idl_type, data) |
742 self._dart_interface_name = dart_interface_name | 757 self._dart_interface_name = dart_interface_name |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
831 | 846 |
832 def interface_name(self): | 847 def interface_name(self): |
833 return self.dart_type() | 848 return self.dart_type() |
834 | 849 |
835 def implementation_name(self): | 850 def implementation_name(self): |
836 return self.dart_type() | 851 return self.dart_type() |
837 | 852 |
838 def vector_to_dart_template_parameter(self): | 853 def vector_to_dart_template_parameter(self): |
839 raise Exception('sequences of sequences are not supported yet') | 854 raise Exception('sequences of sequences are not supported yet') |
840 | 855 |
841 def to_native_info(self, idl_node, interface_name): | 856 def to_native_info(self, idl_node, interface_name, callback_name): |
842 item_native_type = self._item_info.vector_to_dart_template_parameter() | 857 item_native_type = self._item_info.vector_to_dart_template_parameter() |
843 if isinstance(self._item_info, PrimitiveIDLTypeInfo): | 858 if isinstance(self._item_info, PrimitiveIDLTypeInfo): |
844 return '%s', 'Vector<%s>' % item_native_type, 'DartUtilities', 'toNativeVe
ctor<%s>' % item_native_type | 859 return '%s', 'Vector<%s>' % item_native_type, 'DartUtilities', 'toNativeVe
ctor<%s>' % item_native_type |
845 return '%s', 'Vector< RefPtr<%s> >' % item_native_type, 'DartUtilities', 'to
NativeVector< RefPtr<%s> >' % item_native_type | 860 return '%s', 'Vector< RefPtr<%s> >' % item_native_type, 'DartUtilities', 'to
NativeVector< RefPtr<%s> >' % item_native_type |
846 | 861 |
847 def parameter_type(self): | 862 def parameter_type(self): |
848 native_type = self.native_type() | 863 native_type = self.native_type() |
849 if array_type(native_type): | 864 if array_type(native_type): |
850 return 'const Vector<RefPtr<%s> > &' % array_type(native_type) | 865 return 'const Vector<RefPtr<%s> > &' % array_type(native_type) |
851 | 866 |
(...skipping 14 matching lines...) Expand all Loading... |
866 attributes) | 881 attributes) |
867 | 882 |
868 def conversion_includes(self): | 883 def conversion_includes(self): |
869 return self._item_info.conversion_includes() | 884 return self._item_info.conversion_includes() |
870 | 885 |
871 | 886 |
872 class DOMStringArrayTypeInfo(SequenceIDLTypeInfo): | 887 class DOMStringArrayTypeInfo(SequenceIDLTypeInfo): |
873 def __init__(self, data, item_info): | 888 def __init__(self, data, item_info): |
874 super(DOMStringArrayTypeInfo, self).__init__('DOMString[]', data, item_info) | 889 super(DOMStringArrayTypeInfo, self).__init__('DOMString[]', data, item_info) |
875 | 890 |
876 def to_native_info(self, idl_node, interface_name): | 891 def to_native_info(self, idl_node, interface_name, callback_name): |
877 return '%s', 'RefPtr<DOMStringList>', 'DartDOMStringList', 'toNative' | 892 return '%s', 'RefPtr<DOMStringList>', 'DartDOMStringList', 'toNative' |
878 | 893 |
879 def pass_native_by_ref(self): return False | 894 def pass_native_by_ref(self): return False |
880 | 895 |
881 def implementation_name(self): | 896 def implementation_name(self): |
882 return "" | 897 return "" |
883 | 898 |
884 | 899 |
885 class PrimitiveIDLTypeInfo(IDLTypeInfo): | 900 class PrimitiveIDLTypeInfo(IDLTypeInfo): |
886 def __init__(self, idl_type, data): | 901 def __init__(self, idl_type, data): |
887 super(PrimitiveIDLTypeInfo, self).__init__(idl_type, data) | 902 super(PrimitiveIDLTypeInfo, self).__init__(idl_type, data) |
888 | 903 |
889 def vector_to_dart_template_parameter(self): | 904 def vector_to_dart_template_parameter(self): |
890 # Ugly hack. Usually IDLs floats are treated as C++ doubles, however | 905 # Ugly hack. Usually IDLs floats are treated as C++ doubles, however |
891 # sequence<float> should map to Vector<float> | 906 # sequence<float> should map to Vector<float> |
892 if self.idl_type() == 'float': return 'float' | 907 if self.idl_type() == 'float': return 'float' |
893 return self.native_type() | 908 return self.native_type() |
894 | 909 |
895 def to_native_info(self, idl_node, interface_name): | 910 def to_native_info(self, idl_node, interface_name, callback_name): |
896 type = self.native_type() | 911 type = self.native_type() |
897 if type == 'SerializedScriptValue': | 912 if type == 'SerializedScriptValue': |
898 type = 'RefPtr<%s>' % type | 913 type = 'RefPtr<%s>' % type |
899 if type == 'String': | 914 if type == 'String': |
900 type = 'DartStringAdapter' | 915 type = 'DartStringAdapter' |
901 target_type = self._capitalized_native_type() | 916 target_type = self._capitalized_native_type() |
902 if self.idl_type() == 'Date': | 917 if self.idl_type() == 'Date': |
903 target_type = 'Date' | 918 target_type = 'Date' |
904 return '%s', type, 'DartUtilities', 'dartTo%s' % target_type | 919 return '%s', type, 'DartUtilities', 'dartTo%s' % target_type |
905 | 920 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
949 | 964 |
950 def native_type(self): | 965 def native_type(self): |
951 if self._data.native_type: | 966 if self._data.native_type: |
952 return self._data.native_type | 967 return self._data.native_type |
953 tear_off_type = 'SVGPropertyTearOff' | 968 tear_off_type = 'SVGPropertyTearOff' |
954 if self._idl_type.endswith('List'): | 969 if self._idl_type.endswith('List'): |
955 tear_off_type = 'SVGListPropertyTearOff' | 970 tear_off_type = 'SVGListPropertyTearOff' |
956 return '%s<%s>' % (tear_off_type, self._idl_type) | 971 return '%s<%s>' % (tear_off_type, self._idl_type) |
957 | 972 |
958 def receiver(self): | 973 def receiver(self): |
959 if self._idl_type.endswith('List'): | 974 return 'receiver->' |
960 return 'receiver->' | |
961 return 'receiver->propertyReference().' | |
962 | 975 |
963 def to_conversion_cast(self, value, interface_name, attributes): | 976 def to_conversion_cast(self, value, interface_name, attributes): |
964 svg_primitive_types = ['SVGAngle', 'SVGLength', 'SVGMatrix', | 977 svg_primitive_types = ['SVGLength', 'SVGMatrix', |
965 'SVGNumber', 'SVGPoint', 'SVGRect', 'SVGTransform'] | 978 'SVGNumber', 'SVGPoint', 'SVGRect', 'SVGTransform'] |
966 conversion_cast = '%s::create(%s)' | 979 |
967 if interface_name.startswith('SVGAnimated'): | 980 # This is a hack. We either need to figure out the right way to derive this |
968 conversion_cast = 'static_cast<%s*>(%s)' | 981 # information from the IDL or remove this generator. |
969 elif self.idl_type() == 'SVGStringList': | 982 if self.idl_type() != 'SVGTransformList': |
970 conversion_cast = '%s::create(receiver, %s)' | 983 return value |
971 elif interface_name.endswith('List'): | 984 |
972 conversion_cast = 'static_cast<%s*>(%s.get())' | 985 conversion_cast = 'static_cast<%s*>(%s)' |
973 elif self.idl_type() in svg_primitive_types: | |
974 conversion_cast = '%s::create(%s)' | |
975 else: | |
976 conversion_cast = 'static_cast<%s*>(%s)' | |
977 conversion_cast = conversion_cast % (self.native_type(), value) | 986 conversion_cast = conversion_cast % (self.native_type(), value) |
978 return '%s' % (conversion_cast) | 987 return '%s' % (conversion_cast) |
979 | 988 |
980 def to_dart_conversion(self, value, interface_name, attributes): | 989 def to_dart_conversion(self, value, interface_name, attributes): |
981 return 'Dart%s::toDart(%s)' % (self._idl_type, self.to_conversion_cast(value
, interface_name, attributes)) | 990 return 'Dart%s::toDart(%s)' % (self._idl_type, self.to_conversion_cast(value
, interface_name, attributes)) |
982 | 991 |
983 def return_to_dart_conversion(self, value, auto_dart_scope_setup, | 992 def return_to_dart_conversion(self, value, auto_dart_scope_setup, |
984 interface_name, attr): | 993 interface_name, attr): |
985 auto_dart_scope='true' if auto_dart_scope_setup else 'false' | 994 auto_dart_scope='true' if auto_dart_scope_setup else 'false' |
986 return 'Dart%s::returnToDart(args, %s, %s)' % (self._idl_type, | 995 return 'Dart%s::returnToDart(args, %s, %s)' % (self._idl_type, |
987 self.to_conversion_cast( | 996 self.to_conversion_cast( |
988 value, | 997 ReturnValueConversionHack
(self._idl_type, value, interface_name), |
989 interface_name, | 998 interface_name, |
990 attr), | 999 attr), |
991 auto_dart_scope) | 1000 auto_dart_scope) |
992 | 1001 |
993 def argument_expression(self, name, interface_name): | 1002 def argument_expression(self, name, interface_name): |
994 return name if interface_name.endswith('List') else '%s->propertyReference()
' % name | 1003 return name |
995 | |
996 | 1004 |
997 class TypedListIDLTypeInfo(InterfaceIDLTypeInfo): | 1005 class TypedListIDLTypeInfo(InterfaceIDLTypeInfo): |
998 def __init__(self, idl_type, data, interface_name, type_registry): | 1006 def __init__(self, idl_type, data, interface_name, type_registry): |
999 super(TypedListIDLTypeInfo, self).__init__( | 1007 super(TypedListIDLTypeInfo, self).__init__( |
1000 idl_type, data, interface_name, type_registry) | 1008 idl_type, data, interface_name, type_registry) |
1001 | 1009 |
1002 def conversion_includes(self): | 1010 def conversion_includes(self): |
1003 return [ '"wtf/%s.h"' % self._idl_type ] | 1011 return [ '"wtf/%s.h"' % self._idl_type ] |
1004 | 1012 |
1005 def to_dart_conversion(self, value, interface_name, attributes): | 1013 def to_dart_conversion(self, value, interface_name, attributes): |
1006 return 'DartUtilities::arrayBufferViewToDart(%s)' % value | 1014 return 'DartUtilities::arrayBufferViewToDart(%s)' % value |
1007 | 1015 |
1008 def return_to_dart_conversion(self, value, auto_dart_scope_setup, | 1016 def return_to_dart_conversion(self, value, auto_dart_scope_setup, |
1009 interface_name, attributes): | 1017 interface_name, attributes): |
1010 return 'Dart_SetReturnValue(args, %s)' % self.to_dart_conversion( | 1018 return 'Dart_SetReturnValue(args, %s)' % self.to_dart_conversion( |
1011 value, | 1019 value, |
1012 interface_name, | 1020 interface_name, |
1013 attributes) | 1021 attributes) |
1014 | 1022 |
1015 def to_native_info(self, idl_node, interface_name): | 1023 def to_native_info(self, idl_node, interface_name, callback_name): |
1016 return '%s.get()', 'RefPtr<%s>' % self._idl_type, 'DartUtilities', 'dartTo%s
' % self._idl_type | 1024 return '%s.get()', 'RefPtr<%s>' % self._idl_type, 'DartUtilities', 'dartTo%s
' % self._idl_type |
1017 | 1025 |
1018 | 1026 |
1019 class BasicTypedListIDLTypeInfo(InterfaceIDLTypeInfo): | 1027 class BasicTypedListIDLTypeInfo(InterfaceIDLTypeInfo): |
1020 def __init__(self, idl_type, data, interface_name, type_registry): | 1028 def __init__(self, idl_type, data, interface_name, type_registry): |
1021 super(BasicTypedListIDLTypeInfo, self).__init__( | 1029 super(BasicTypedListIDLTypeInfo, self).__init__( |
1022 idl_type, data, interface_name, type_registry) | 1030 idl_type, data, interface_name, type_registry) |
1023 | 1031 |
1024 def conversion_includes(self): | 1032 def conversion_includes(self): |
1025 return [] | 1033 return [] |
1026 | 1034 |
1027 def to_dart_conversion(self, value, interface_name, attributes): | 1035 def to_dart_conversion(self, value, interface_name, attributes): |
1028 function_name = 'DartUtilities::%sToDart' % self._idl_type | 1036 function_name = 'DartUtilities::%sToDart' % self._idl_type |
1029 function_name = function_name[0].lower() + function_name[1:] | 1037 function_name = function_name[0].lower() + function_name[1:] |
1030 return '%s(%s)' % (function_name, value) | 1038 return '%s(%s)' % (function_name, value) |
1031 | 1039 |
1032 def return_to_dart_conversion(self, value, auto_dart_scope_setup, | 1040 def return_to_dart_conversion(self, value, auto_dart_scope_setup, |
1033 interface_name, attributes): | 1041 interface_name, attributes): |
1034 return 'Dart_SetReturnValue(args, %s)' % self.to_dart_conversion( | 1042 return 'Dart_SetReturnValue(args, %s)' % self.to_dart_conversion( |
1035 value, | 1043 value, |
1036 interface_name, | 1044 interface_name, |
1037 attributes) | 1045 attributes) |
1038 | 1046 |
1039 def to_native_info(self, idl_node, interface_name): | 1047 def to_native_info(self, idl_node, interface_name, callback_name): |
1040 return '%s.get()', 'RefPtr<%s>' % self._idl_type, 'DartUtilities', 'dartTo%s
' % self._idl_type | 1048 return '%s.get()', 'RefPtr<%s>' % self._idl_type, 'DartUtilities', 'dartTo%s
' % self._idl_type |
1041 | 1049 |
1042 | 1050 |
1043 class TypeData(object): | 1051 class TypeData(object): |
1044 def __init__(self, clazz, dart_type=None, native_type=None, | 1052 def __init__(self, clazz, dart_type=None, native_type=None, |
1045 merged_interface=None, merged_into=None, | 1053 merged_interface=None, merged_into=None, |
1046 custom_to_dart=False, custom_to_native=False, | 1054 custom_to_dart=False, custom_to_native=False, |
1047 conversion_includes=None, | 1055 conversion_includes=None, |
1048 webcore_getter_name='getAttribute', | 1056 webcore_getter_name='getAttribute', |
1049 webcore_setter_name='setAttribute', | 1057 webcore_setter_name='setAttribute', |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1169 'Int16Array': TypedListTypeData('int'), | 1177 'Int16Array': TypedListTypeData('int'), |
1170 'Int32Array': TypedListTypeData('int'), | 1178 'Int32Array': TypedListTypeData('int'), |
1171 'Uint8Array': TypedListTypeData('int'), | 1179 'Uint8Array': TypedListTypeData('int'), |
1172 'Uint8ClampedArray': TypedListTypeData('int'), | 1180 'Uint8ClampedArray': TypedListTypeData('int'), |
1173 'Uint16Array': TypedListTypeData('int'), | 1181 'Uint16Array': TypedListTypeData('int'), |
1174 'Uint32Array': TypedListTypeData('int'), | 1182 'Uint32Array': TypedListTypeData('int'), |
1175 | 1183 |
1176 'ArrayBufferView': TypeData(clazz='BasicTypedList'), | 1184 'ArrayBufferView': TypeData(clazz='BasicTypedList'), |
1177 'ArrayBuffer': TypeData(clazz='BasicTypedList'), | 1185 'ArrayBuffer': TypeData(clazz='BasicTypedList'), |
1178 | 1186 |
1179 'SVGAngle': TypeData(clazz='SVGTearOff'), | 1187 'SVGAngle': TypeData(clazz='SVGTearOff', native_type='SVGPropertyTearOff<SVG
Angle>'), |
1180 'SVGLength': TypeData(clazz='SVGTearOff'), | 1188 'SVGLength': TypeData(clazz='SVGTearOff', native_type='SVGLengthTearOff'), |
1181 'SVGLengthList': TypeData(clazz='SVGTearOff', item_type='SVGLength'), | 1189 'SVGLengthList': TypeData(clazz='SVGTearOff', item_type='SVGLength', native_
type='SVGLengthListTearOff'), |
1182 'SVGMatrix': TypeData(clazz='SVGTearOff'), | 1190 'SVGMatrix': TypeData(clazz='SVGTearOff', native_type='SVGMatrixTearOff'), |
1183 'SVGNumber': TypeData(clazz='SVGTearOff', native_type='SVGPropertyTearOff<SV
GNumber>'), | 1191 'SVGNumber': TypeData(clazz='SVGTearOff', native_type='SVGNumberTearOff'), |
1184 'SVGNumberList': TypeData(clazz='SVGTearOff', item_type='SVGNumber'), | 1192 'SVGNumberList': TypeData(clazz='SVGTearOff', item_type='SVGNumber', native_
type='SVGNumberListTearOff'), |
1185 'SVGPathSegList': TypeData(clazz='SVGTearOff', item_type='SVGPathSeg', | 1193 'SVGPathSegList': TypeData(clazz='SVGTearOff', item_type='SVGPathSeg', |
1186 native_type='SVGPathSegListPropertyTearOff'), | 1194 native_type='SVGPathSegListPropertyTearOff'), |
1187 'SVGPoint': TypeData(clazz='SVGTearOff', native_type='SVGPropertyTearOff<Flo
atPoint>'), | 1195 'SVGPoint': TypeData(clazz='SVGTearOff', native_type='SVGPointTearOff'), |
1188 'SVGPointList': TypeData(clazz='SVGTearOff'), | 1196 'SVGPointList': TypeData(clazz='SVGTearOff', native_type='SVGPointListTearOf
f'), |
1189 'SVGPreserveAspectRatio': TypeData(clazz='SVGTearOff'), | 1197 'SVGPreserveAspectRatio': TypeData(clazz='SVGTearOff', native_type='SVGPrese
rveAspectRatioTearOff'), |
1190 'SVGRect': TypeData(clazz='SVGTearOff', native_type='SVGPropertyTearOff<SVGR
ect>'), | 1198 'SVGRect': TypeData(clazz='SVGTearOff', native_type='SVGRectTearOff'), |
1191 'SVGStringList': TypeData(clazz='SVGTearOff', item_type='DOMString', | 1199 'SVGStringList': TypeData(clazz='SVGTearOff', item_type='DOMString', |
1192 native_type='SVGStaticListPropertyTearOff<SVGStringList>'), | 1200 native_type='SVGStringListTearOff'), |
1193 'SVGTransform': TypeData(clazz='SVGTearOff'), | 1201 'SVGTransform': TypeData(clazz='SVGTearOff', native_type="SVGPropertyTearOff
<SVGTransform>"), |
1194 'SVGTransformList': TypeData(clazz='SVGTearOff', item_type='SVGTransform', | 1202 'SVGTransformList': TypeData(clazz='SVGTearOff', item_type='SVGTransform', |
1195 native_type='SVGTransformListPropertyTearOff'), | 1203 native_type='SVGTransformListPropertyTearOff'), |
1196 }) | 1204 }) |
1197 | 1205 |
1198 _svg_supplemental_includes = [ | 1206 _svg_supplemental_includes = [ |
1199 '"SVGAnimatedPropertyTearOff.h"', | 1207 '"core/svg/properties/SVGPropertyTraits.h"', |
1200 '"SVGAnimatedListPropertyTearOff.h"', | |
1201 '"SVGStaticListPropertyTearOff.h"', | |
1202 '"SVGAnimatedListPropertyTearOff.h"', | |
1203 '"SVGTransformListPropertyTearOff.h"', | |
1204 '"SVGPathSegListPropertyTearOff.h"', | |
1205 ] | 1208 ] |
1206 | 1209 |
1207 class TypeRegistry(object): | 1210 class TypeRegistry(object): |
1208 def __init__(self, database, renamer=None): | 1211 def __init__(self, database, renamer=None): |
1209 self._database = database | 1212 self._database = database |
1210 self._renamer = renamer | 1213 self._renamer = renamer |
1211 self._cache = {} | 1214 self._cache = {} |
1212 | 1215 |
1213 def TypeInfo(self, type_name): | 1216 def TypeInfo(self, type_name): |
1214 if not type_name in self._cache: | 1217 if not type_name in self._cache: |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1269 if type_data.clazz == 'BasicTypedList': | 1272 if type_data.clazz == 'BasicTypedList': |
1270 if type_name == 'ArrayBuffer': | 1273 if type_name == 'ArrayBuffer': |
1271 dart_interface_name = 'ByteBuffer' | 1274 dart_interface_name = 'ByteBuffer' |
1272 else: | 1275 else: |
1273 dart_interface_name = self._renamer.RenameInterfaceId(type_name) | 1276 dart_interface_name = self._renamer.RenameInterfaceId(type_name) |
1274 return BasicTypedListIDLTypeInfo( | 1277 return BasicTypedListIDLTypeInfo( |
1275 type_name, type_data, dart_interface_name, self) | 1278 type_name, type_data, dart_interface_name, self) |
1276 | 1279 |
1277 class_name = '%sIDLTypeInfo' % type_data.clazz | 1280 class_name = '%sIDLTypeInfo' % type_data.clazz |
1278 return globals()[class_name](type_name, type_data) | 1281 return globals()[class_name](type_name, type_data) |
OLD | NEW |