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

Unified Diff: Source/bindings/scripts/v8_interface.py

Issue 867153004: Move methods about indexed/named getters/setters/deleters to v8_utilities.py (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 11 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 | Source/bindings/scripts/v8_utilities.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/scripts/v8_interface.py
diff --git a/Source/bindings/scripts/v8_interface.py b/Source/bindings/scripts/v8_interface.py
index bcabae0c603b847ad2388216ded702052f809359..17691b0678c5f4b4c156f331ce83b395c5ccf2a0 100644
--- a/Source/bindings/scripts/v8_interface.py
+++ b/Source/bindings/scripts/v8_interface.py
@@ -463,13 +463,13 @@ def interface_context(interface):
})
context.update({
- 'indexed_property_getter': indexed_property_getter(interface),
- 'indexed_property_setter': indexed_property_setter(interface),
- 'indexed_property_deleter': indexed_property_deleter(interface),
+ 'indexed_property_getter': property_getter(interface.indexed_property_getter, ['index']),
+ 'indexed_property_setter': property_setter(interface.indexed_property_setter, interface),
+ 'indexed_property_deleter': property_deleter(interface.indexed_property_deleter),
'is_override_builtins': 'OverrideBuiltins' in extended_attributes,
- 'named_property_getter': named_property_getter(interface),
- 'named_property_setter': named_property_setter(interface),
- 'named_property_deleter': named_property_deleter(interface),
+ 'named_property_getter': property_getter(interface.named_property_getter, ['propertyName']),
+ 'named_property_setter': property_setter(interface.named_property_setter, interface),
+ 'named_property_deleter': property_deleter(interface.named_property_deleter),
})
return context
@@ -1131,6 +1131,9 @@ def interface_length(interface, constructors):
################################################################################
def property_getter(getter, cpp_arguments):
+ if not getter:
+ return None
+
def is_null_expression(idl_type):
if idl_type.use_output_parameter_for_result:
return 'result.isNull()'
@@ -1175,7 +1178,10 @@ def property_getter(getter, cpp_arguments):
}
-def property_setter(interface, setter):
+def property_setter(setter, interface):
+ if not setter:
+ return None
+
idl_type = setter.arguments[1].idl_type
extended_attributes = setter.extended_attributes
is_raises_exception = 'RaisesException' in extended_attributes
@@ -1200,6 +1206,9 @@ def property_setter(interface, setter):
def property_deleter(deleter):
+ if not deleter:
+ return None
+
idl_type = deleter.idl_type
if str(idl_type) != 'boolean':
raise Exception(
@@ -1211,110 +1220,3 @@ def property_deleter(deleter):
'is_raises_exception': 'RaisesException' in extended_attributes,
'name': cpp_name(deleter),
}
-
-
-################################################################################
-# Indexed properties
-# http://heycam.github.io/webidl/#idl-indexed-properties
-################################################################################
-
-def indexed_property_getter(interface):
- try:
- # Find indexed property getter, if present; has form:
- # getter TYPE [OPTIONAL_IDENTIFIER](unsigned long ARG1)
- getter = next(
- method
- for method in interface.operations
- if ('getter' in method.specials and
- len(method.arguments) == 1 and
- str(method.arguments[0].idl_type) == 'unsigned long'))
- except StopIteration:
- return None
-
- return property_getter(getter, ['index'])
-
-
-def indexed_property_setter(interface):
- try:
- # Find indexed property setter, if present; has form:
- # setter RETURN_TYPE [OPTIONAL_IDENTIFIER](unsigned long ARG1, ARG_TYPE ARG2)
- setter = next(
- method
- for method in interface.operations
- if ('setter' in method.specials and
- len(method.arguments) == 2 and
- str(method.arguments[0].idl_type) == 'unsigned long'))
- except StopIteration:
- return None
-
- return property_setter(interface, setter)
-
-
-def indexed_property_deleter(interface):
- try:
- # Find indexed property deleter, if present; has form:
- # deleter TYPE [OPTIONAL_IDENTIFIER](unsigned long ARG)
- deleter = next(
- method
- for method in interface.operations
- if ('deleter' in method.specials and
- len(method.arguments) == 1 and
- str(method.arguments[0].idl_type) == 'unsigned long'))
- except StopIteration:
- return None
-
- return property_deleter(deleter)
-
-
-################################################################################
-# Named properties
-# http://heycam.github.io/webidl/#idl-named-properties
-################################################################################
-
-def named_property_getter(interface):
- try:
- # Find named property getter, if present; has form:
- # getter TYPE [OPTIONAL_IDENTIFIER](DOMString ARG1)
- getter = next(
- method
- for method in interface.operations
- if ('getter' in method.specials and
- len(method.arguments) == 1 and
- str(method.arguments[0].idl_type) == 'DOMString'))
- except StopIteration:
- return None
-
- getter.name = getter.name or 'anonymousNamedGetter'
- return property_getter(getter, ['propertyName'])
-
-
-def named_property_setter(interface):
- try:
- # Find named property setter, if present; has form:
- # setter RETURN_TYPE [OPTIONAL_IDENTIFIER](DOMString ARG1, ARG_TYPE ARG2)
- setter = next(
- method
- for method in interface.operations
- if ('setter' in method.specials and
- len(method.arguments) == 2 and
- str(method.arguments[0].idl_type) == 'DOMString'))
- except StopIteration:
- return None
-
- return property_setter(interface, setter)
-
-
-def named_property_deleter(interface):
- try:
- # Find named property deleter, if present; has form:
- # deleter TYPE [OPTIONAL_IDENTIFIER](DOMString ARG)
- deleter = next(
- method
- for method in interface.operations
- if ('deleter' in method.specials and
- len(method.arguments) == 1 and
- str(method.arguments[0].idl_type) == 'DOMString'))
- except StopIteration:
- return None
-
- return property_deleter(deleter)
« no previous file with comments | « no previous file | Source/bindings/scripts/v8_utilities.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698