| Index: lib/dom/scripts/systemnative.py
|
| diff --git a/lib/dom/scripts/systemnative.py b/lib/dom/scripts/systemnative.py
|
| index d98fa585c0ef22a2c7d2ba11c317d03539f9639b..a5d279066fb7a01a4545ad594b16cb317b0fa414 100644
|
| --- a/lib/dom/scripts/systemnative.py
|
| +++ b/lib/dom/scripts/systemnative.py
|
| @@ -15,13 +15,12 @@ from systemhtml import HtmlSystemShared
|
|
|
| class NativeImplementationSystem(systembase.System):
|
|
|
| - def __init__(self, templates, database, emitters, output_dir, auxiliary_dir):
|
| - super(NativeImplementationSystem, self).__init__(
|
| - templates, database, emitters, output_dir)
|
| + def __init__(self, options, auxiliary_dir):
|
| + super(NativeImplementationSystem, self).__init__(options)
|
| self._auxiliary_dir = auxiliary_dir
|
| self._cpp_header_files = []
|
| self._cpp_impl_files = []
|
| - self._html_system = HtmlSystemShared(database)
|
| + self._html_system = HtmlSystemShared(self._database)
|
|
|
| def ImplementationGenerator(self, interface):
|
| return NativeImplementationGenerator(self, interface)
|
| @@ -47,13 +46,13 @@ class NativeImplementationSystem(systembase.System):
|
| parameters = []
|
| arguments = []
|
| for argument in operation.arguments:
|
| - argument_type_info = GetIDLTypeInfo(argument.type.id)
|
| + argument_type_info = self._type_registry.TypeInfo(argument.type.id)
|
| parameters.append('%s %s' % (argument_type_info.parameter_type(),
|
| argument.id))
|
| arguments.append(argument_type_info.to_dart_conversion(argument.id))
|
| cpp_impl_includes |= set(argument_type_info.conversion_includes())
|
|
|
| - native_return_type = GetIDLTypeInfo(operation.type.id).native_type()
|
| + native_return_type = self._type_registry.TypeInfo(operation.type.id).native_type()
|
| cpp_header_handlers_emitter.Emit(
|
| '\n'
|
| ' virtual $TYPE handleEvent($PARAMETERS);\n',
|
| @@ -212,7 +211,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator):
|
| self._cpp_header_emitter = emitter.Emitter()
|
| self._cpp_impl_emitter = emitter.Emitter()
|
|
|
| - self._interface_type_info = GetIDLTypeInfo(self._interface.id)
|
| + self._interface_type_info = self._TypeInfo(self._interface.id)
|
| self._members_emitter = emitter.Emitter()
|
| self._cpp_declarations_emitter = emitter.Emitter()
|
| self._cpp_impl_includes = set()
|
| @@ -487,7 +486,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator):
|
| self._AddSetter(attribute, html_name)
|
|
|
| def _AddGetter(self, attr, html_name):
|
| - type_info = GetIDLTypeInfo(attr.type.id)
|
| + type_info = self._TypeInfo(attr.type.id)
|
| dart_declaration = '%s get %s()' % (self._DartType(attr.type.id), html_name)
|
| is_custom = 'Custom' in attr.ext_attrs or 'CustomGetter' in attr.ext_attrs
|
| cpp_callback_name = self._GenerateNativeBinding(attr.id, 1,
|
| @@ -501,7 +500,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator):
|
| raises_exceptions = raises_exceptions or attr.get_raises
|
|
|
| if 'Reflect' in attr.ext_attrs:
|
| - webcore_function_name = GetIDLTypeInfo(attr.type.id).webcore_getter_name()
|
| + webcore_function_name = self._TypeInfo(attr.type.id).webcore_getter_name()
|
| if 'URL' in attr.ext_attrs:
|
| if 'NonEmpty' in attr.ext_attrs:
|
| webcore_function_name = 'getNonEmptyURLAttribute'
|
| @@ -525,7 +524,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator):
|
| True, invocation, raises_exceptions=raises_exceptions)
|
|
|
| def _AddSetter(self, attr, html_name):
|
| - type_info = GetIDLTypeInfo(attr.type.id)
|
| + type_info = self._TypeInfo(attr.type.id)
|
| dart_declaration = 'void set %s(%s)' % (html_name, self._DartType(attr.type.id))
|
| is_custom = set(['Custom', 'CustomSetter', 'V8CustomSetter']) & set(attr.ext_attrs)
|
| cpp_callback_name = self._GenerateNativeBinding(attr.id, 2,
|
| @@ -538,7 +537,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator):
|
| self._GenerateCallWithHandling(attr, parameter_definitions_emitter, arguments)
|
|
|
| if 'Reflect' in attr.ext_attrs:
|
| - webcore_function_name = GetIDLTypeInfo(attr.type.id).webcore_setter_name()
|
| + webcore_function_name = self._TypeInfo(attr.type.id).webcore_setter_name()
|
| arguments.append(self._GenerateWebCoreReflectionAttributeName(attr))
|
| else:
|
| webcore_function_name = re.sub(r'^(xml(?=[A-Z])|\w)',
|
| @@ -862,7 +861,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator):
|
| def _GenerateToNative(self, emitter, idl_node, index,
|
| argument_name=None):
|
| """idl_node is IDLArgument or IDLAttribute."""
|
| - type_info = GetIDLTypeInfo(idl_node.type.id)
|
| + type_info = self._TypeInfo(idl_node.type.id)
|
| self._cpp_impl_includes |= set(type_info.to_native_includes())
|
| argument_name = argument_name or idl_node.id
|
| handle = 'Dart_GetNativeArgument(args, %i)' % index
|
| @@ -916,7 +915,7 @@ class NativeImplementationGenerator(systembase.BaseGenerator):
|
| idl_return_type, attributes, raises_dom_exceptions):
|
| invocation_template = ' $FUNCTION_CALL;\n'
|
| if idl_return_type != 'void':
|
| - return_type_info = GetIDLTypeInfo(idl_return_type)
|
| + return_type_info = self._TypeInfo(idl_return_type)
|
| self._cpp_impl_includes |= set(return_type_info.conversion_includes())
|
|
|
| # Generate to Dart conversion of C++ value.
|
| @@ -946,6 +945,9 @@ class NativeImplementationGenerator(systembase.BaseGenerator):
|
| return emitter.Format(invocation_template,
|
| FUNCTION_CALL='%s(%s)' % (function_expression, ', '.join(arguments)))
|
|
|
| + def _TypeInfo(self, type_name):
|
| + return self._system._type_registry.TypeInfo(type_name)
|
| +
|
|
|
| def _GenerateCPPIncludes(includes):
|
| return ''.join(['#include %s\n' % include for include in sorted(includes)])
|
|
|