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 from systemfrog import * | 9 from systemfrog import * |
10 from systeminterface import * | 10 from systeminterface import * |
(...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
784 self._members_emitter = self._dart_code.Emit( | 784 self._members_emitter = self._dart_code.Emit( |
785 self._template, | 785 self._template, |
786 #class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC { | 786 #class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC { |
787 #$!MEMBERS | 787 #$!MEMBERS |
788 #} | 788 #} |
789 CLASSNAME=self._class_name, | 789 CLASSNAME=self._class_name, |
790 EXTENDS=extends, | 790 EXTENDS=extends, |
791 IMPLEMENTS=' implements ' + ', '.join(implements), | 791 IMPLEMENTS=' implements ' + ', '.join(implements), |
792 NATIVESPEC=' native "' + native_spec + '"') | 792 NATIVESPEC=' native "' + native_spec + '"') |
793 | 793 |
794 if element_type: | |
795 self.AddTypedArrayConstructors(element_type) | |
796 | |
797 # Emit a factory provider class for the constructor. | 794 # Emit a factory provider class for the constructor. |
798 constructor_info = AnalyzeConstructor(interface) | 795 constructor_info = AnalyzeConstructor(interface) |
799 if constructor_info: | 796 if constructor_info: |
800 self._EmitFactoryProvider(interface_name, constructor_info) | 797 self._EmitFactoryProvider(interface_name, constructor_info) |
801 | 798 |
802 emit_events, events = self._shared.GetEventAttributes(self._interface) | 799 emit_events, events = self._shared.GetEventAttributes(self._interface) |
803 if not emit_events: | 800 if not emit_events: |
804 return | 801 return |
805 elif events: | 802 elif events: |
806 self.AddEventAttributes(events) | 803 self.AddEventAttributes(events) |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
968 """ | 965 """ |
969 Arguments: | 966 Arguments: |
970 info: An OperationInfo object. | 967 info: An OperationInfo object. |
971 """ | 968 """ |
972 html_name = self._shared.RenameInHtmlLibrary( | 969 html_name = self._shared.RenameInHtmlLibrary( |
973 self._interface, info.name, implementation_class=True) | 970 self._interface, info.name, implementation_class=True) |
974 if not html_name: | 971 if not html_name: |
975 return | 972 return |
976 | 973 |
977 # Do we need a native body? | 974 # Do we need a native body? |
978 if (html_name != info.name): | 975 if html_name != info.declared_name: |
979 return_type = self._NarrowOutputType(info.type_name) | 976 return_type = self._NarrowOutputType(info.type_name) |
980 | 977 |
981 operation_emitter = self._members_emitter.Emit('$!SCOPE', | 978 operation_emitter = self._members_emitter.Emit('$!SCOPE', |
982 TYPE=return_type, | 979 TYPE=return_type, |
983 HTML_NAME=html_name, | 980 HTML_NAME=html_name, |
984 NAME=info.name, | 981 NAME=info.declared_name, |
985 PARAMS=info.ParametersImplementationDeclaration( | 982 PARAMS=info.ParametersImplementationDeclaration( |
986 lambda type_name: self._NarrowInputType(type_name))) | 983 lambda type_name: self._NarrowInputType(type_name))) |
987 | 984 |
988 operation_emitter.Emit( | 985 operation_emitter.Emit( |
989 '\n' | 986 '\n' |
990 ' $TYPE $(HTML_NAME)($PARAMS) native "$NAME";\n') | 987 ' $TYPE $(HTML_NAME)($PARAMS) native "$NAME";\n') |
991 else: | 988 else: |
992 self._members_emitter.Emit( | 989 self._members_emitter.Emit( |
993 '\n' | 990 '\n' |
994 ' $TYPE $NAME($PARAMS) native;\n', | 991 ' $TYPE $NAME($PARAMS) native;\n', |
(...skipping 719 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1714 # dispatch has removed f(X), leaving only f(Y), but there is no guarantee | 1711 # dispatch has removed f(X), leaving only f(Y), but there is no guarantee |
1715 # that Y = Z-X, so we need to check for Y. | 1712 # that Y = Z-X, so we need to check for Y. |
1716 true_code = emitter.Emit( | 1713 true_code = emitter.Emit( |
1717 '$(INDENT)if ($COND) {\n' | 1714 '$(INDENT)if ($COND) {\n' |
1718 '$!TRUE' | 1715 '$!TRUE' |
1719 '$(INDENT)}\n', | 1716 '$(INDENT)}\n', |
1720 COND=test, INDENT=indent) | 1717 COND=test, INDENT=indent) |
1721 self.GenerateDispatch( | 1718 self.GenerateDispatch( |
1722 true_code, info, indent + ' ', position + 1, positive) | 1719 true_code, info, indent + ' ', position + 1, positive) |
1723 return True | 1720 return True |
OLD | NEW |