Index: Source/bindings/scripts/v8_attributes.py |
diff --git a/Source/bindings/scripts/v8_attributes.py b/Source/bindings/scripts/v8_attributes.py |
index bc4355c732fdd9107047fdd63c353c8f7f4ab40b..232cd24e0dfb9aeaec9c566364110dc3323100cb 100644 |
--- a/Source/bindings/scripts/v8_attributes.py |
+++ b/Source/bindings/scripts/v8_attributes.py |
@@ -323,6 +323,10 @@ def setter_context(interface, attribute, context): |
has_extended_attribute_value(attribute, 'TypeChecking', 'Interface')) and |
idl_type.is_wrapper_type) |
+ type_checked = (has_type_checking_interface and |
+ # These allow null values, so a type-check is still required. |
+ not idl_type.is_nullable) |
+ |
context.update({ |
'has_setter_exception_state': |
is_setter_raises_exception or has_type_checking_interface or |
@@ -336,7 +340,8 @@ def setter_context(interface, attribute, context): |
'cppValue', isolate='scriptState->isolate()', |
creation_context='scriptState->context()->Global()'), |
'v8_value_to_local_cpp_value': idl_type.v8_value_to_local_cpp_value( |
- extended_attributes, 'v8Value', 'cppValue'), |
+ extended_attributes, 'v8Value', 'cppValue', |
+ needs_type_check=not type_checked), |
}) |
# setter_expression() depends on context values we set above. |