Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(409)

Side by Side Diff: tools/dom/scripts/systemhtml.py

Issue 18054021: Fixing up DOM constructors. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/dom/scripts/htmldartgenerator.py ('k') | tools/dom/scripts/systemnative.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 mixins_str = '' 533 mixins_str = ''
534 if mixins: 534 if mixins:
535 mixins_str = ' with ' + ', '.join(mixins) 535 mixins_str = ' with ' + ', '.join(mixins)
536 if not base_class: 536 if not base_class:
537 base_class = 'Interceptor' 537 base_class = 'Interceptor'
538 538
539 annotations = self._metadata.GetFormattedMetadata( 539 annotations = self._metadata.GetFormattedMetadata(
540 self._library_name, self._interface, None, '') 540 self._library_name, self._interface, None, '')
541 541
542 class_modifiers = '' 542 class_modifiers = ''
543 if self._renamer.ShouldSuppressInterface(self._interface): 543 if (self._renamer.ShouldSuppressInterface(self._interface) or
544 IsPureInterface(self._interface.id)):
544 class_modifiers = 'abstract ' 545 class_modifiers = 'abstract '
545 546
547 native_spec = ''
548 if not IsPureInterface(self._interface.id):
549 native_spec = self._backend.NativeSpec()
550
546 self._implementation_members_emitter = implementation_emitter.Emit( 551 self._implementation_members_emitter = implementation_emitter.Emit(
547 self._backend.ImplementationTemplate(), 552 self._backend.ImplementationTemplate(),
548 LIBRARYNAME='dart.dom.%s' % self._library_name, 553 LIBRARYNAME='dart.dom.%s' % self._library_name,
549 ANNOTATIONS=annotations, 554 ANNOTATIONS=annotations,
550 CLASS_MODIFIERS=class_modifiers, 555 CLASS_MODIFIERS=class_modifiers,
551 CLASSNAME=self._interface_type_info.implementation_name(), 556 CLASSNAME=self._interface_type_info.implementation_name(),
552 EXTENDS=' extends %s' % base_class if base_class else '', 557 EXTENDS=' extends %s' % base_class if base_class else '',
553 IMPLEMENTS=implements_str, 558 IMPLEMENTS=implements_str,
554 MIXINS=mixins_str, 559 MIXINS=mixins_str,
555 DOMNAME=self._interface.doc_js_name, 560 DOMNAME=self._interface.doc_js_name,
556 NATIVESPEC=self._backend.NativeSpec()) 561 NATIVESPEC=native_spec)
557 self._backend.StartInterface(self._implementation_members_emitter) 562 self._backend.StartInterface(self._implementation_members_emitter)
558 563
559 self._backend.EmitHelpers(base_class) 564 self._backend.EmitHelpers(base_class)
560 self._event_generator.EmitStreamProviders( 565 self._event_generator.EmitStreamProviders(
561 self._interface, 566 self._interface,
562 self._backend.CustomJSMembers(), 567 self._backend.CustomJSMembers(),
563 self._implementation_members_emitter, 568 self._implementation_members_emitter,
564 self._library_name) 569 self._library_name)
565 self._backend.AddConstructors( 570 self._backend.AddConstructors(
566 constructors, factory_provider, factory_constructor_name) 571 constructors, factory_provider, factory_constructor_name)
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 implements = super(Dart2JSBackend, self).AdditionalImplementedInterfaces() 630 implements = super(Dart2JSBackend, self).AdditionalImplementedInterfaces()
626 if self._interface_type_info.list_item_type(): 631 if self._interface_type_info.list_item_type():
627 implements.append('JavaScriptIndexingBehavior') 632 implements.append('JavaScriptIndexingBehavior')
628 return implements 633 return implements
629 634
630 def NativeSpec(self): 635 def NativeSpec(self):
631 native_spec = MakeNativeSpec(self._interface.javascript_binding_name) 636 native_spec = MakeNativeSpec(self._interface.javascript_binding_name)
632 return ' native "%s"' % native_spec 637 return ' native "%s"' % native_spec
633 638
634 def ImplementationTemplate(self): 639 def ImplementationTemplate(self):
635 if IsPureInterface(self._interface.id):
636 return self._template_loader.Load('pure_interface.darttemplate')
637
638 template_file = ('impl_%s.darttemplate' % 640 template_file = ('impl_%s.darttemplate' %
639 self._interface.doc_js_name) 641 self._interface.doc_js_name)
640 return (self._template_loader.TryLoad(template_file) or 642 return (self._template_loader.TryLoad(template_file) or
641 self._template_loader.Load('dart2js_impl.darttemplate')) 643 self._template_loader.Load('dart2js_impl.darttemplate'))
642 644
643 def StartInterface(self, members_emitter): 645 def StartInterface(self, members_emitter):
644 self._members_emitter = members_emitter 646 self._members_emitter = members_emitter
645 647
646 def FinishInterface(self): 648 def FinishInterface(self):
647 pass 649 pass
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 '\n', 892 '\n',
891 CONVERT=conversion.function_name, 893 CONVERT=conversion.function_name,
892 HTML_NAME=html_name, 894 HTML_NAME=html_name,
893 NAME=attr.id, 895 NAME=attr.id,
894 INPUT_TYPE=conversion.input_type, 896 INPUT_TYPE=conversion.input_type,
895 NATIVE_TYPE=conversion.output_type) 897 NATIVE_TYPE=conversion.output_type)
896 898
897 def AmendIndexer(self, element_type): 899 def AmendIndexer(self, element_type):
898 pass 900 pass
899 901
902 def RootClassName(self):
903 return 'Interceptor'
904
900 def EmitOperation(self, info, html_name): 905 def EmitOperation(self, info, html_name):
901 """ 906 """
902 Arguments: 907 Arguments:
903 info: An OperationInfo object. 908 info: An OperationInfo object.
904 """ 909 """
905 if self._HasCustomImplementation(info.name): 910 if self._HasCustomImplementation(info.name):
906 return 911 return
907 912
908 if IsPureInterface(self._interface.id): 913 if IsPureInterface(self._interface.id):
909 self._AddInterfaceOperation(info, html_name) 914 self._AddInterfaceOperation(info, html_name)
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
1188 for library_name in libraries: 1193 for library_name in libraries:
1189 self._libraries[library_name] = DartLibrary( 1194 self._libraries[library_name] = DartLibrary(
1190 library_name, template_loader, library_type, output_dir) 1195 library_name, template_loader, library_type, output_dir)
1191 1196
1192 def AddFile(self, basename, library_name, path): 1197 def AddFile(self, basename, library_name, path):
1193 self._libraries[library_name].AddFile(path) 1198 self._libraries[library_name].AddFile(path)
1194 1199
1195 def Emit(self, emitter, auxiliary_dir): 1200 def Emit(self, emitter, auxiliary_dir):
1196 for lib in self._libraries.values(): 1201 for lib in self._libraries.values():
1197 lib.Emit(emitter, auxiliary_dir) 1202 lib.Emit(emitter, auxiliary_dir)
OLDNEW
« no previous file with comments | « tools/dom/scripts/htmldartgenerator.py ('k') | tools/dom/scripts/systemnative.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698