| 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.
|
|
|