| 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 | 10 |
| (...skipping 924 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 935 for merged_interface in _merged_html_interfaces: | 935 for merged_interface in _merged_html_interfaces: |
| 936 if _merged_html_interfaces[merged_interface] == self._interface.id: | 936 if _merged_html_interfaces[merged_interface] == self._interface.id: |
| 937 merged_interface = self._database.GetInterface(merged_interface) | 937 merged_interface = self._database.GetInterface(merged_interface) |
| 938 self.AddMembers(merged_interface) | 938 self.AddMembers(merged_interface) |
| 939 self._backend.AddMergedMembers(merged_interface) | 939 self._backend.AddMergedMembers(merged_interface) |
| 940 | 940 |
| 941 self._backend.AddMembers(self._interface) | 941 self._backend.AddMembers(self._interface) |
| 942 self._backend.AddSecondaryMembers(self._interface) | 942 self._backend.AddSecondaryMembers(self._interface) |
| 943 self._backend.FinishInterface() | 943 self._backend.FinishInterface() |
| 944 | 944 |
| 945 def AddAttribute(self, getter, setter): | 945 def AddAttribute(self, attribute): |
| 946 getter = attribute |
| 947 setter = attribute if not IsReadOnly(attribute) else None |
| 946 dom_name = DartDomNameOfAttribute(getter) | 948 dom_name = DartDomNameOfAttribute(getter) |
| 947 html_getter_name = self._shared.RenameInHtmlLibrary( | 949 html_getter_name = self._shared.RenameInHtmlLibrary( |
| 948 self._interface.id, dom_name, 'get:') | 950 self._interface.id, dom_name, 'get:') |
| 949 html_setter_name = self._shared.RenameInHtmlLibrary( | 951 html_setter_name = self._shared.RenameInHtmlLibrary( |
| 950 self._interface.id, dom_name, 'set:') | 952 self._interface.id, dom_name, 'set:') |
| 951 | 953 |
| 952 if not html_getter_name or self._shared.IsPrivate(html_getter_name): | 954 if not html_getter_name or self._shared.IsPrivate(html_getter_name): |
| 953 getter = None | 955 getter = None |
| 954 if not html_setter_name or self._shared.IsPrivate(html_setter_name): | 956 if not html_setter_name or self._shared.IsPrivate(html_setter_name): |
| 955 setter = None | 957 setter = None |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1218 ' }\n', | 1220 ' }\n', |
| 1219 TYPE=self._NarrowInputType(element_type)) | 1221 TYPE=self._NarrowInputType(element_type)) |
| 1220 | 1222 |
| 1221 # TODO(sra): Use separate mixins for mutable implementations of List<T>. | 1223 # TODO(sra): Use separate mixins for mutable implementations of List<T>. |
| 1222 # TODO(sra): Use separate mixins for typed array implementations of List<T>. | 1224 # TODO(sra): Use separate mixins for typed array implementations of List<T>. |
| 1223 if self._interface.id != 'NodeList': | 1225 if self._interface.id != 'NodeList': |
| 1224 template_file = 'immutable_list_mixin.darttemplate' | 1226 template_file = 'immutable_list_mixin.darttemplate' |
| 1225 template = self._system._templates.Load(template_file) | 1227 template = self._system._templates.Load(template_file) |
| 1226 self._members_emitter.Emit(template, E=self._shared.DartType(element_type)
) | 1228 self._members_emitter.Emit(template, E=self._shared.DartType(element_type)
) |
| 1227 | 1229 |
| 1228 def AddAttribute(self, getter, setter): | 1230 def AddAttribute(self, attribute): |
| 1231 getter = attribute |
| 1232 setter = attribute if not IsReadOnly(attribute) else None |
| 1229 dom_name = DartDomNameOfAttribute(getter or setter) | 1233 dom_name = DartDomNameOfAttribute(getter or setter) |
| 1230 html_getter_name = None | 1234 html_getter_name = None |
| 1231 if not self._shared.IsCustomInHtmlLibrary( | 1235 if not self._shared.IsCustomInHtmlLibrary( |
| 1232 self._interface, dom_name, 'get:'): | 1236 self._interface, dom_name, 'get:'): |
| 1233 html_getter_name = self._shared.RenameInHtmlLibrary( | 1237 html_getter_name = self._shared.RenameInHtmlLibrary( |
| 1234 self._interface.id, dom_name, 'get:', | 1238 self._interface.id, dom_name, 'get:', |
| 1235 implementation_class=True) | 1239 implementation_class=True) |
| 1236 html_setter_name = None | 1240 html_setter_name = None |
| 1237 if not self._shared.IsCustomInHtmlLibrary( | 1241 if not self._shared.IsCustomInHtmlLibrary( |
| 1238 self._interface, dom_name, 'set:'): | 1242 self._interface, dom_name, 'set:'): |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1397 Collect(database.GetInterface(parent.type.id), | 1401 Collect(database.GetInterface(parent.type.id), |
| 1398 seen, collected) | 1402 seen, collected) |
| 1399 | 1403 |
| 1400 inheritance_closure = {} | 1404 inheritance_closure = {} |
| 1401 for interface in database.GetInterfaces(): | 1405 for interface in database.GetInterfaces(): |
| 1402 seen = set() | 1406 seen = set() |
| 1403 collected = [] | 1407 collected = [] |
| 1404 Collect(interface, seen, collected) | 1408 Collect(interface, seen, collected) |
| 1405 inheritance_closure[interface.id] = collected | 1409 inheritance_closure[interface.id] = collected |
| 1406 return inheritance_closure | 1410 return inheritance_closure |
| OLD | NEW |