Chromium Code Reviews| Index: Source/bindings/scripts/v8_interface.py |
| diff --git a/Source/bindings/scripts/v8_interface.py b/Source/bindings/scripts/v8_interface.py |
| index 6e4f37812c3fede093a6b387f19839620cd78a2e..40fc74272a659062fea4661d44e806f63679b5de 100644 |
| --- a/Source/bindings/scripts/v8_interface.py |
| +++ b/Source/bindings/scripts/v8_interface.py |
| @@ -467,19 +467,39 @@ def interface_context(interface): |
| # FIXME: maplike<> and setlike<> should also imply the presence of a |
| # 'size' attribute. |
| + # Serializer |
| + if interface.serializer: |
| + serializer = interface.serializer |
| + serializer_ext_attrs = serializer.extended_attributes.copy() |
| + if serializer.operation: |
| + return_type = serializer.operation.idl_type |
| + implemented_as = serializer.operation.name |
| + else: |
| + return_type = IdlType('any') |
| + implemented_as = None |
| + if 'CallWith' not in serializer_ext_attrs: |
|
haraken
2015/03/26 01:39:20
What if the serializer has [CallWith] but the [Cal
Jens Widell
2015/03/26 05:34:10
We could call that a bug in the IDL; it needs a Sc
haraken
2015/03/26 05:36:02
Makes sense.
|
| + serializer_ext_attrs['CallWith'] = 'ScriptState' |
| + methods.append(generated_method( |
| + return_type=return_type, |
| + name='toJSON', |
| + extended_attributes=serializer_ext_attrs, |
| + implemented_as=implemented_as)) |
| + |
| # Stringifier |
| if interface.stringifier: |
| stringifier = interface.stringifier |
| stringifier_ext_attrs = stringifier.extended_attributes.copy() |
| if stringifier.attribute: |
| - stringifier_ext_attrs['ImplementedAs'] = stringifier.attribute.name |
| + implemented_as = stringifier.attribute.name |
| elif stringifier.operation: |
| - stringifier_ext_attrs['ImplementedAs'] = stringifier.operation.name |
| + implemented_as = stringifier.operation.name |
| + else: |
| + implemented_as = 'toString' |
| methods.append(generated_method( |
| return_type=IdlType('DOMString'), |
| name='toString', |
| extended_attributes=stringifier_ext_attrs, |
| - implemented_as='toString')) |
| + implemented_as=implemented_as)) |
| conditionally_enabled_methods = [] |
| custom_registration_methods = [] |