| Index: Source/bindings/scripts/v8_interface.py | 
| diff --git a/Source/bindings/scripts/v8_interface.py b/Source/bindings/scripts/v8_interface.py | 
| index d5a49707b12e2107cba326df22c406938821575b..b5f4103a1a8287470c7bffcb764f61b8c58ee489 100644 | 
| --- a/Source/bindings/scripts/v8_interface.py | 
| +++ b/Source/bindings/scripts/v8_interface.py | 
| @@ -342,11 +342,30 @@ def interface_context(interface): | 
| and (interface.iterable or interface.maplike or interface.setlike | 
| or 'Iterable' in extended_attributes)): | 
|  | 
| +        used_extended_attributes = {} | 
| + | 
| +        if interface.iterable: | 
| +            used_extended_attributes.update(interface.iterable.extended_attributes) | 
| +        elif interface.maplike: | 
| +            used_extended_attributes.update(interface.maplike.extended_attributes) | 
| +        elif interface.setlike: | 
| +            used_extended_attributes.update(interface.setlike.extended_attributes) | 
| + | 
| +        if 'RaisesException' in used_extended_attributes: | 
| +            raise ValueError('[RaisesException] is implied for iterable<>/maplike<>/setlike<>') | 
| +        if 'CallWith' in used_extended_attributes: | 
| +            raise ValueError('[CallWith=ScriptState] is implied for iterable<>/maplike<>/setlike<>') | 
| + | 
| +        used_extended_attributes.update({ | 
| +            'RaisesException': None, | 
| +            'CallWith': 'ScriptState', | 
| +        }) | 
| + | 
| def generated_iterator_method(name): | 
| return generated_method( | 
| return_type=IdlType('Iterator'), | 
| name=name, | 
| -                extended_attributes={'RaisesException': None, 'CallWith': 'ScriptState'}) | 
| +                extended_attributes=used_extended_attributes) | 
|  | 
| iterator_method = generated_iterator_method('iterator') | 
|  | 
|  |