Index: Source/bindings/scripts/v8_interface.py |
diff --git a/Source/bindings/scripts/v8_interface.py b/Source/bindings/scripts/v8_interface.py |
index b5f4103a1a8287470c7bffcb764f61b8c58ee489..ea2e4368cf708d3a6b7dd7b0371852466b8858a2 100644 |
--- a/Source/bindings/scripts/v8_interface.py |
+++ b/Source/bindings/scripts/v8_interface.py |
@@ -1175,12 +1175,16 @@ def property_getter(getter, cpp_arguments): |
} |
-def property_setter(setter): |
+def property_setter(interface, setter): |
idl_type = setter.arguments[1].idl_type |
extended_attributes = setter.extended_attributes |
is_raises_exception = 'RaisesException' in extended_attributes |
+ restricted_float = ( |
+ has_extended_attribute_value(interface, 'TypeChecking', 'Unrestricted') or |
+ has_extended_attribute_value(setter, 'TypeChecking', 'Unrestricted')) |
return { |
'has_type_checking_interface': |
+ # FIXME: check interface's [TypeChecking] attribute too. |
has_extended_attribute_value(setter, 'TypeChecking', 'Interface') and |
idl_type.is_wrapper_type, |
'idl_type': idl_type.base_type, |
@@ -1190,7 +1194,7 @@ def property_setter(setter): |
'is_raises_exception': is_raises_exception, |
'name': cpp_name(setter), |
'v8_value_to_local_cpp_value': idl_type.v8_value_to_local_cpp_value( |
- extended_attributes, 'v8Value', 'propertyValue'), |
+ extended_attributes, 'v8Value', 'propertyValue', restricted_float), |
} |
@@ -1242,7 +1246,7 @@ def indexed_property_setter(interface): |
except StopIteration: |
return None |
- return property_setter(setter) |
+ return property_setter(interface, setter) |
def indexed_property_deleter(interface): |
@@ -1296,7 +1300,7 @@ def named_property_setter(interface): |
except StopIteration: |
return None |
- return property_setter(setter) |
+ return property_setter(interface, setter) |
def named_property_deleter(interface): |