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

Unified Diff: tools/dom/scripts/systemhtml.py

Issue 254463006: This CL contains all of the changes for splitting off all of the native (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: tools/dom/scripts/systemhtml.py
diff --git a/tools/dom/scripts/systemhtml.py b/tools/dom/scripts/systemhtml.py
index 7521169b0350748dd6280625927784aa8bbf3e19..a865cf1d7e3c3dcca7c2175839f43510fa106dd2 100644
--- a/tools/dom/scripts/systemhtml.py
+++ b/tools/dom/scripts/systemhtml.py
@@ -481,7 +481,7 @@ class HtmlDartInterfaceGenerator(object):
code.Emit('$(ANNOTATIONS)typedef void $NAME($PARAMS);\n',
ANNOTATIONS=annotations,
NAME=typedef_name,
- PARAMS=info.ParametersDeclaration(self._DartType))
+ PARAMS=info.ParametersAsDeclaration(self._DartType))
self._backend.GenerateCallback(info)
def GenerateInterface(self):
@@ -565,7 +565,7 @@ class HtmlDartInterfaceGenerator(object):
if not IsPureInterface(self._interface.id):
native_spec = self._backend.NativeSpec()
- self._implementation_members_emitter = implementation_emitter.Emit(
+ implementation_members_emitter = implementation_emitter.Emit(
self._backend.ImplementationTemplate(),
LIBRARYNAME='dart.dom.%s' % self._library_name,
ANNOTATIONS=annotations,
@@ -578,22 +578,34 @@ class HtmlDartInterfaceGenerator(object):
NATIVESPEC=native_spec)
stream_getter_signatures_emitter = None
element_stream_getters_emitter = None
- if type(self._implementation_members_emitter) == tuple:
- # We add event stream getters for both Element and ElementList, so in
- # impl_Element.darttemplate, we have two additional "holes" for emitters
- # to fill in, with small variations. These store these specialized
- # emitters.
- stream_getter_signatures_emitter = self._implementation_members_emitter[0]
- element_stream_getters_emitter = self._implementation_members_emitter[1]
- self._implementation_members_emitter = \
- self._implementation_members_emitter[2]
- self._backend.StartInterface(self._implementation_members_emitter)
-
+ toplevel_emitter = None
+ if type(implementation_members_emitter) == tuple:
+ if len(implementation_members_emitter) == 2:
+ # We have both a TOPLEVEL and MEMBERS field to fill in, but
+ # no additional stream fields.
+ toplevel_emitter = implementation_members_emitter[0]
+ implementation_members_emitter = \
+ implementation_members_emitter[1]
+ else:
+ # We add event stream getters for both Element and ElementList, so in
+ # impl_Element.darttemplate, we have two additional "holes" for emitters
+ # to fill in, with small variations. These store these specialized
+ # emitters.
+ # We have both a TOPLEVEL and MEMBERS field to fill in as above
+ assert len(implementation_members_emitter) == 4;
+ toplevel_emitter = implementation_members_emitter[0]
+ stream_getter_signatures_emitter = \
+ implementation_members_emitter[1]
+ element_stream_getters_emitter = implementation_members_emitter[2]
+ implementation_members_emitter = \
+ implementation_members_emitter[3]
+ self._backend.StartInterface(implementation_members_emitter,
+ toplevel_emitter)
self._backend.EmitHelpers(base_class)
self._event_generator.EmitStreamProviders(
self._interface,
self._backend.CustomJSMembers(),
- self._implementation_members_emitter,
+ implementation_members_emitter,
self._library_name)
self._backend.AddConstructors(
constructors, factory_provider, factory_constructor_name)
@@ -603,7 +615,7 @@ class HtmlDartInterfaceGenerator(object):
if parent.id == 'Element':
isElement = True
if isElement and self._interface.id != 'Element':
- self._implementation_members_emitter.Emit(
+ implementation_members_emitter.Emit(
' /**\n'
' * Constructor instantiated by the DOM when a custom element has been created.\n'
' *\n'
@@ -624,7 +636,7 @@ class HtmlDartInterfaceGenerator(object):
self._event_generator.EmitStreamGetters(
self._interface,
[],
- self._implementation_members_emitter,
+ implementation_members_emitter,
self._library_name, stream_getter_signatures_emitter,
element_stream_getters_emitter)
self._backend.FinishInterface()
@@ -682,7 +694,8 @@ class Dart2JSBackend(HtmlDartGenerator):
return (self._template_loader.TryLoad(template_file) or
self._template_loader.Load('dart2js_impl.darttemplate'))
- def StartInterface(self, members_emitter):
+ def StartInterface(self, members_emitter, toplevel_emitter):
+ # We currently emit no top level members for dart2js
self._members_emitter = members_emitter
def FinishInterface(self):
@@ -981,7 +994,7 @@ class Dart2JSBackend(HtmlDartGenerator):
MODIFIERS='static ' if info.IsStatic() else '',
TYPE=self.SecureOutputType(info.type_name, False, True),
NAME=html_name,
- PARAMS=info.ParametersDeclaration(self._NarrowInputType))
+ PARAMS=info.ParametersAsDeclaration(self._NarrowInputType))
def _AddOperationWithConversions(self, info, html_name):
# Assert all operations have same return type.
@@ -1071,7 +1084,7 @@ class Dart2JSBackend(HtmlDartGenerator):
'static ' if info.IsStatic() else '',
return_type,
html_name,
- info.ParametersDeclaration(InputType))
+ info.ParametersAsDeclaration(InputType))
self._GenerateDispatcherBody(
info,
operations,
@@ -1086,7 +1099,7 @@ class Dart2JSBackend(HtmlDartGenerator):
' $TYPE $NAME($PARAMS);\n',
TYPE=self.SecureOutputType(info.type_name, False, True),
NAME=html_name,
- PARAMS=info.ParametersDeclaration(self._NarrowInputType))
+ PARAMS=info.ParametersAsDeclaration(self._NarrowInputType))
def _OperationRequiresConversions(self, operation):

Powered by Google App Engine
This is Rietveld 408576698