| 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')
|
|
|
|
|