Index: Source/bindings/scripts/v8_types.py |
diff --git a/Source/bindings/scripts/v8_types.py b/Source/bindings/scripts/v8_types.py |
index c02da3f5a397ff05b220c0ca3d2bd5449012cdeb..e4b45c79266e229ef91bd212ca783539a7d67883 100644 |
--- a/Source/bindings/scripts/v8_types.py |
+++ b/Source/bindings/scripts/v8_types.py |
@@ -80,6 +80,7 @@ IdlType.is_typed_array = property( |
IdlType.is_wrapper_type = property( |
lambda self: (self.is_interface_type and |
+ not self.is_callback_interface and |
self.base_type not in NON_WRAPPER_TYPES)) |
@@ -610,11 +611,6 @@ def v8_value_to_local_cpp_value(idl_type, extended_attributes, v8_value, variabl |
this_cpp_type = idl_type.cpp_type_args(extended_attributes=extended_attributes, raw_type=True) |
idl_type = idl_type.preprocessed_type |
- if idl_type.base_type in ('void', 'object', 'EventHandler', 'EventListener'): |
- return { |
- 'error_message': 'no V8 -> C++ conversion for IDL type: %s' % idl_type.name |
- } |
- |
cpp_value = v8_value_to_cpp_value(idl_type, extended_attributes, v8_value, variable_name, index, isolate, restricted_float=restricted_float) |
# Optional expression that returns a value to be assigned to the local variable. |
@@ -649,7 +645,9 @@ def v8_value_to_local_cpp_value(idl_type, extended_attributes, v8_value, variabl |
else: |
check_expression = '!%s.prepare()' % variable_name |
elif not idl_type.v8_conversion_is_trivial: |
- raise Exception('unclassified V8 -> C++ conversion for IDL type: %s' % idl_type.name) |
+ return { |
+ 'error_message': 'no V8 -> C++ conversion for IDL type: %s' % idl_type.name |
+ } |
else: |
assign_expression = cpp_value |