| Index: Source/bindings/scripts/v8_interface.py
|
| diff --git a/Source/bindings/scripts/v8_interface.py b/Source/bindings/scripts/v8_interface.py
|
| index ab59734454f8c24b5d07df28737b3199ef1a62e7..8fee55eeff5f3c14d9bd6f558821fa2006f50a10 100644
|
| --- a/Source/bindings/scripts/v8_interface.py
|
| +++ b/Source/bindings/scripts/v8_interface.py
|
| @@ -37,7 +37,7 @@ import itertools
|
| from operator import itemgetter
|
|
|
| import idl_definitions
|
| -from idl_definitions import IdlOperation
|
| +from idl_definitions import IdlOperation, IdlArgument
|
| import idl_types
|
| from idl_types import IdlType, inherits_interface
|
| import v8_attributes
|
| @@ -332,6 +332,16 @@ def interface_context(interface):
|
| operation.extended_attributes.update(extended_attributes)
|
| return v8_methods.method_context(interface, operation)
|
|
|
| + def generated_argument(idl_type, name, is_optional=False, default_value=None, extended_attributes=None):
|
| + argument = IdlArgument(interface.idl_name)
|
| + argument.idl_type = idl_type
|
| + argument.name = name
|
| + argument.is_optional = is_optional
|
| + argument.default_value = default_value
|
| + if extended_attributes:
|
| + argument.extended_attributes.update(extended_attributes)
|
| + return argument
|
| +
|
| # [Iterable], iterable<>, maplike<> and setlike<>
|
| iterator_method = None
|
| # FIXME: support Iterable in partial interfaces. However, we don't
|
| @@ -361,6 +371,11 @@ def interface_context(interface):
|
| 'CallWith': 'ScriptState',
|
| })
|
|
|
| + forEach_extended_attributes = used_extended_attributes.copy()
|
| + forEach_extended_attributes.update({
|
| + 'CallWith': ['ScriptState', 'ThisValue'],
|
| + })
|
| +
|
| def generated_iterator_method(name):
|
| return generated_method(
|
| return_type=IdlType('Iterator'),
|
| @@ -374,6 +389,14 @@ def interface_context(interface):
|
| generated_iterator_method('keys'),
|
| generated_iterator_method('values'),
|
| generated_iterator_method('entries'),
|
| +
|
| + # void forEach(Function callback, [Default=Undefined] optional any thisArg)
|
| + generated_method(IdlType('void'), 'forEach',
|
| + arguments=[generated_argument(IdlType('Function'), 'callback'),
|
| + generated_argument(IdlType('any'), 'thisArg',
|
| + is_optional=True,
|
| + extended_attributes={'Default': 'Undefined'})],
|
| + extended_attributes=forEach_extended_attributes),
|
| ])
|
|
|
| # FIXME: maplike<> and setlike<> should also imply the presence of a
|
|
|