Index: Source/bindings/scripts/unstable/v8_interface.py |
diff --git a/Source/bindings/scripts/unstable/v8_interface.py b/Source/bindings/scripts/unstable/v8_interface.py |
index 642acb66941b43646d3c24c2fa4cddd400801066..a346ff115851baea134e479cc59bf4227007d6a4 100644 |
--- a/Source/bindings/scripts/unstable/v8_interface.py |
+++ b/Source/bindings/scripts/unstable/v8_interface.py |
@@ -114,7 +114,9 @@ def generate_interface(interface): |
'conditional_string': conditional_string(interface), # [Conditional] |
'constructor_argument_list': constructor_argument_list(interface), |
'constructor_arguments': constructor_arguments(interface), |
- 'constructor_method': {}, # stub for generating arguments |
+ 'constructor_method': { |
+ 'is_constructor': True, |
+ }, |
'cpp_class': cpp_name(interface), |
'generate_visit_dom_wrapper_function': generate_visit_dom_wrapper_function, |
'has_constructor': has_constructor, |
@@ -339,12 +341,20 @@ def constructor_arguments(interface): |
if not interface.constructors: |
return [] |
constructor = interface.constructors[0] # FIXME: support overloading |
- return [{'v8_value_to_local_cpp_value': |
- v8_methods.v8_value_to_local_cpp_value(argument, index), |
- } |
+ return [constructor_argument(argument, index) |
for index, argument in enumerate(constructor.arguments)] |
+def constructor_argument(argument, index): |
+ return { |
+ 'idl_type': argument.idl_type, |
+ 'index': index, |
+ 'name': argument.name, |
+ 'v8_value_to_local_cpp_value': |
+ v8_methods.v8_value_to_local_cpp_value(argument, index), |
+ } |
+ |
+ |
def interface_length(interface): |
# Docs: http://heycam.github.io/webidl/#es-interface-call |
if 'EventConstructor' in interface.extended_attributes: |