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

Unified Diff: client/dom/scripts/systemfrog.py

Issue 9695015: Provide DartDomNameOfAttribute (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: fix native Created 8 years, 9 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: client/dom/scripts/systemfrog.py
diff --git a/client/dom/scripts/systemfrog.py b/client/dom/scripts/systemfrog.py
index 9c45d0cbd807adf9d2a78115c1dffafb9ce3163c..0113a340b31d97f5c35573ab28606cec53f13a43 100644
--- a/client/dom/scripts/systemfrog.py
+++ b/client/dom/scripts/systemfrog.py
@@ -220,25 +220,33 @@ class FrogInterfaceGenerator(object):
' // Use implementation from $SUPER.\n'
' // final $TYPE $NAME;\n',
SUPER=super_getter_interface.id,
- NAME=getter.id, TYPE=output_type)
+ NAME=DartDomNameOfAttribute(getter), TYPE=output_type)
return
self._members_emitter.Emit('\n // Shadowing definition.')
self._AddAttributeUsingProperties(getter, setter)
return
+ # Can't generate field if attribute has different name in JS and Dart.
+ if self._AttributeChangesName(getter or setter):
+ self._AddAttributeUsingProperties(getter, setter)
+ return
+
if getter and setter and input_type == output_type:
self._members_emitter.Emit(
'\n $TYPE $NAME;\n',
- NAME=getter.id, TYPE=output_type)
+ NAME=DartDomNameOfAttribute(getter), TYPE=output_type)
return
if getter and not setter:
self._members_emitter.Emit(
'\n final $TYPE $NAME;\n',
- NAME=getter.id, TYPE=output_type)
+ NAME=DartDomNameOfAttribute(getter), TYPE=output_type)
return
self._AddAttributeUsingProperties(getter, setter)
+ def _AttributeChangesName(self, attr):
+ return attr.id != DartDomNameOfAttribute(attr)
+
def _AddAttributeUsingProperties(self, getter, setter):
if getter:
self._AddGetter(getter)
@@ -248,14 +256,18 @@ class FrogInterfaceGenerator(object):
def _AddGetter(self, attr):
# TODO(sra): Remove native body when Issue 829 fixed.
self._members_emitter.Emit(
- '\n $TYPE get $NAME() native "return this.$NAME;";\n',
- NAME=attr.id, TYPE=self._NarrowOutputType(attr.type.id))
+ '\n $TYPE get $NAME() native "return this.$NATIVE_NAME;";\n',
+ NAME=DartDomNameOfAttribute(attr),
+ NATIVE_NAME=attr.id,
+ TYPE=self._NarrowOutputType(attr.type.id))
def _AddSetter(self, attr):
# TODO(sra): Remove native body when Issue 829 fixed.
self._members_emitter.Emit(
- ' void set $NAME($TYPE value) native "this.$NAME = value;";\n',
- NAME=attr.id, TYPE=self._NarrowInputType(attr.type.id))
+ ' void set $NAME($TYPE value) native "this.$NATIVE_NAME = value;";\n',
+ NAME=DartDomNameOfAttribute(attr),
+ NATIVE_NAME=attr.id,
+ TYPE=self._NarrowInputType(attr.type.id))
def _FindShadowedAttribute(self, attr):
"""Returns (attribute, superinterface) or (None, None)."""

Powered by Google App Engine
This is Rietveld 408576698