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

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

Issue 21085008: Fixing some SVG collections not working on Dartium (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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/html/svgelement_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/dom/scripts/systemnative.py
diff --git a/tools/dom/scripts/systemnative.py b/tools/dom/scripts/systemnative.py
index 1c5930aec60615d3fe73adbb8a6a36b193a39a82..ef778c17a9f29643b14fc4cb68c7013455a3236c 100644
--- a/tools/dom/scripts/systemnative.py
+++ b/tools/dom/scripts/systemnative.py
@@ -478,6 +478,8 @@ class DartiumBackend(HtmlDartGenerator):
dart_element_type = self._DartType(element_type)
if self._HasNativeIndexGetter():
self._EmitNativeIndexGetter(dart_element_type)
+ elif self._HasExplicitIndexedGetter():
+ self._EmitExplicitIndexedGetter(dart_element_type)
else:
self._members_emitter.Emit(
'\n'
@@ -526,6 +528,23 @@ class DartiumBackend(HtmlDartGenerator):
self._GenerateNativeBinding('numericIndexGetter', 2, dart_declaration,
'Callback', True)
+ def _HasExplicitIndexedGetter(self):
+ return any(op.id == 'getItem' for op in self._interface.operations)
+
+ def _EmitExplicitIndexedGetter(self, dart_element_type):
+ if any(op.id == 'getItem' for op in self._interface.operations):
+ indexed_getter = 'getItem'
+
+ self._members_emitter.Emit(
+ '\n'
+ ' $TYPE operator[](int index) {\n'
+ ' if (index < 0 || index >= length)\n'
+ ' throw new RangeError.range(index, 0, length);\n'
+ ' return $INDEXED_GETTER(index);\n'
+ ' }\n',
+ TYPE=dart_element_type,
+ INDEXED_GETTER=indexed_getter)
+
def _HasNativeIndexSetter(self):
return 'CustomIndexedSetter' in self._interface.ext_attrs
« no previous file with comments | « tests/html/svgelement_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698