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

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

Issue 551713003: Fix handling default parameters (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Cleanup Created 6 years, 3 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/idlnode.py
diff --git a/tools/dom/scripts/idlnode.py b/tools/dom/scripts/idlnode.py
index ad28b9566f6604fddcf9d709f5a556b28c0da521..9f9e726b2d1ee181e8429ee37fe8ffa71dea6711 100755
--- a/tools/dom/scripts/idlnode.py
+++ b/tools/dom/scripts/idlnode.py
@@ -619,7 +619,7 @@ class IDLInterface(IDLNode):
self.ext_attrs['Callback'] = None
if not (self._find_first(ast, 'Partial') is None):
self.is_supplemental = True
- self.ext_attrs['Supplemental'] = None
+ self.ext_attrs['DartSupplemental'] = None
self.operations = self._convert_all(ast, 'Operation',
lambda ast: IDLOperation(ast, self.doc_js_name))
@@ -627,7 +627,7 @@ class IDLInterface(IDLNode):
lambda ast: IDLAttribute(ast, self.doc_js_name))
self.constants = self._convert_all(ast, 'Const',
lambda ast: IDLConstant(ast, self.doc_js_name))
- self.is_supplemental = 'Supplemental' in self.ext_attrs
+ self.is_supplemental = 'DartSupplemental' in self.ext_attrs
self.is_no_interface_object = 'NoInterfaceObject' in self.ext_attrs
# TODO(terry): Can eliminate Suppressed when we're only using blink parser.
self.is_fc_suppressed = 'Suppressed' in self.ext_attrs or \
@@ -695,7 +695,7 @@ class IDLOperation(IDLMember):
if self.specials == ['getter']:
if self.ext_attrs.get('Custom') == 'PropertyQuery':
# Handling __propertyQuery__ the extended attribute is:
- # [Custom=PropertyQuery] legacycaller boolean (DOMString name);
+ # [Custom=PropertyQuery] getter boolean (DOMString name);
self.id = '__propertyQuery__'
else:
self.id = '__getter__'
@@ -745,6 +745,21 @@ class IDLArgument(IDLNode):
"""IDLNode specialization for operation arguments."""
def __init__(self, ast):
IDLNode.__init__(self, ast)
+
+ self.default_value = None
+ self.default_value_is_null = False
+ # Handle the 'argType arg = default'. IDL syntax changed from
+ # [default=NullString].
+ if not isinstance(ast, list):
+ if isinstance(ast.default_value, idl_definitions.IdlLiteral) and ast.default_value:
+ self.default_value = ast.default_value.value
+ self.default_value_is_null = ast.default_value.is_null
+ elif 'Default' in ast.extended_attributes:
+ # Work around [Default=Undefined] for arguments - only look in the model's
+ # default_value
+ self.default_value = ast.extended_attributes.get('Default')
+ self.default_value_is_null = False
+
self.type = self._convert_first(ast, 'Type', IDLType)
self.optional = self._has(ast, 'Optional')
self._convert_ext_attrs(ast)

Powered by Google App Engine
This is Rietveld 408576698