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

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

Issue 10697080: Split backend.AddMembers call into series of backend.AddAtribute/backend.AddOperation calls. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: . Created 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | lib/dom/scripts/systemnative.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/dom/scripts/systemhtml.py
diff --git a/lib/dom/scripts/systemhtml.py b/lib/dom/scripts/systemhtml.py
index d432c32d5b5b3ac0a0fb5bc49be66af91542568e..7080efda2a0e88b12c10f56247615f9071094db0 100644
--- a/lib/dom/scripts/systemhtml.py
+++ b/lib/dom/scripts/systemhtml.py
@@ -932,17 +932,24 @@ class HtmlDartInterfaceGenerator(BaseGenerator):
self._GenerateEvents()
+ old_backend = self._backend
+ if not old_backend.ImplementsMergedMembers():
+ self._backend = HtmlGeneratorDummyBackend()
for merged_interface in _merged_html_interfaces:
if _merged_html_interfaces[merged_interface] == self._interface.id:
merged_interface = self._database.GetInterface(merged_interface)
self.AddMembers(merged_interface)
- self._backend.AddMergedMembers(merged_interface)
+ self._backend = old_backend
- self._backend.AddMembers(self._interface)
- self._backend.AddSecondaryMembers(self._interface)
- self._backend.FinishInterface()
+ def AddIndexer(self, element_type):
+ self._backend.AddIndexer(element_type)
+
+ def AmendIndexer(self, element_type):
+ self._backend.AmendIndexer(element_type)
def AddAttribute(self, attribute):
+ self._backend.AddAttribute(attribute)
+
getter = attribute
setter = attribute if not IsReadOnly(attribute) else None
dom_name = DartDomNameOfAttribute(getter)
@@ -998,9 +1005,14 @@ class HtmlDartInterfaceGenerator(BaseGenerator):
NAME=html_name,
PARAMS=info.ParametersInterfaceDeclaration(
self._shared.DartType))
+ self._backend.AddOperation(info)
+
+ def AddStaticOperation(self, info):
+ self._backend.AddStaticOperation(info)
def FinishInterface(self):
- pass
+ self._backend.AddSecondaryMembers(self._interface)
+ self._backend.FinishInterface()
def AddConstant(self, constant):
type = TypeOrNothing(DartType(constant.type.id), constant.type.id)
@@ -1008,6 +1020,7 @@ class HtmlDartInterfaceGenerator(BaseGenerator):
NAME=constant.id,
TYPE=type,
VALUE=constant.value)
+ self._backend.AddConstant(constant)
def _GenerateEvents(self):
emit_events, event_attrs = self._shared.GetEventAttributes(self._interface)
@@ -1069,6 +1082,14 @@ class HtmlDartInterfaceGenerator(BaseGenerator):
TYPE=events_class)
+class HtmlGeneratorDummyBackend(object):
+ def AddAttribute(self, attribute):
+ pass
+
+ def AddOperation(self, info):
+ pass
+
+
# ------------------------------------------------------------------------------
# TODO(jmesserly): inheritance is probably not the right way to factor this long
@@ -1107,8 +1128,8 @@ class HtmlFrogClassGenerator(FrogInterfaceGenerator):
def SetImplementationEmitter(self, implementation_emitter):
self._dart_code = implementation_emitter
- def AddMergedMembers(self, merged_interface):
- self.AddMembers(merged_interface)
+ def ImplementsMergedMembers(self):
Anton Muhin 2012/07/05 16:07:00 that could probably be a simple field
+ return True
def _ImplClassName(self, type_name):
return self._shared._ImplClassName(type_name)
« no previous file with comments | « no previous file | lib/dom/scripts/systemnative.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698