| Index: Source/bindings/scripts/v8_interface.py
|
| diff --git a/Source/bindings/scripts/v8_interface.py b/Source/bindings/scripts/v8_interface.py
|
| index 623308484300aed627cf267fdfd48297db28a051..8b80f3b120428d406e0f0efff62302e9c98c0a72 100644
|
| --- a/Source/bindings/scripts/v8_interface.py
|
| +++ b/Source/bindings/scripts/v8_interface.py
|
| @@ -384,7 +384,7 @@ def interface_context(interface):
|
| iterator_method = generated_iterator_method('iterator')
|
|
|
| if interface.iterable or interface.maplike or interface.setlike:
|
| - methods.extend([
|
| + implicit_methods = [
|
| generated_iterator_method('keys'),
|
| generated_iterator_method('values'),
|
| generated_iterator_method('entries'),
|
| @@ -396,7 +396,17 @@ def interface_context(interface):
|
| is_optional=True,
|
| extended_attributes={'Default': 'Undefined'})],
|
| extended_attributes=forEach_extended_attributes),
|
| - ])
|
| + ]
|
| +
|
| + methods_by_name = {}
|
| + for method in methods:
|
| + methods_by_name.setdefault(method['name'], []).append(method)
|
| +
|
| + for implicit_method in implicit_methods:
|
| + if implicit_method['name'] in methods_by_name:
|
| + # FIXME: Check that the existing method is compatible.
|
| + continue
|
| + methods.append(implicit_method)
|
|
|
| # FIXME: maplike<> and setlike<> should also imply the presence of a
|
| # subset of keys(), values(), entries(), forEach(), has(), get(), add(),
|
|
|