| Index: bindings/dart/scripts/dart_utilities.py
|
| diff --git a/bindings/dart/scripts/dart_utilities.py b/bindings/dart/scripts/dart_utilities.py
|
| index 4f888d625676c9c0b03f5c396bb37869feb5c369..c9f4fa58a5245edbb4130882e999d6f61c249ebb 100644
|
| --- a/bindings/dart/scripts/dart_utilities.py
|
| +++ b/bindings/dart/scripts/dart_utilities.py
|
| @@ -44,6 +44,14 @@ import v8_types # Required
|
| import v8_utilities
|
|
|
|
|
| +def _enum_validation_expression(idl_type):
|
| + # FIXME: Add IdlEnumType, move property to derived type, and remove this check
|
| + if not idl_type.is_enum:
|
| + return None
|
| + return ' || '.join(['((String){param_name}) == "%s"' % enum_value
|
| + for enum_value in idl_type.enum_values])
|
| +
|
| +
|
| def _scoped_name(interface, definition, base_name):
|
| # partial interfaces are implemented as separate classes, with their members
|
| # implemented as static member functions
|
| @@ -90,6 +98,7 @@ _CALL_WITH_ARGUMENTS = {
|
| 'ScriptArguments': 'scriptArguments.release()',
|
| 'ActiveWindow': 'DartUtilities::callingDomWindowForCurrentIsolate()',
|
| 'FirstWindow': 'DartUtilities::enteredDomWindowForCurrentIsolate()',
|
| + 'Document': 'document',
|
| }
|
|
|
| # List because key order matters, as we want arguments in deterministic order
|
| @@ -99,12 +108,11 @@ _CALL_WITH_VALUES = [
|
| 'ScriptArguments',
|
| 'ActiveWindow',
|
| 'FirstWindow',
|
| + 'Document',
|
| ]
|
|
|
|
|
| -def _call_with_arguments(member, call_with_values=None):
|
| - # Optional parameter so setter can override with [SetterCallWith]
|
| - call_with_values = call_with_values or member.extended_attributes.get('CallWith')
|
| +def _call_with_arguments(call_with_values):
|
| if not call_with_values:
|
| return []
|
| return [_CALL_WITH_ARGUMENTS[value]
|
| @@ -132,36 +140,36 @@ def _measure_as(definition_or_member):
|
| return extended_attributes['MeasureAs']
|
|
|
|
|
| -def _generate_native_entry(interface_name, thing, name, kind,
|
| - optional_index, args, types):
|
| - index = thing.get('overload_index') or optional_index
|
| - is_static = bool(thing.get('is_static'))
|
| - tag = ""
|
| +def _generate_native_entry(interface_name, name, kind, is_static, arity):
|
| +
|
| + def mkPublic(s):
|
| + if s.startswith("_") or s.startswith("$"):
|
| + return "$" + s
|
| + return s
|
| +
|
| + arity_str = ""
|
| if kind == 'Getter':
|
| - tag = "%s_Getter" % name
|
| - blink_entry = tag
|
| + suffix = "_Getter"
|
| elif kind == 'Setter':
|
| - tag = "%s_Setter" % name
|
| - blink_entry = tag
|
| + suffix = "_Setter"
|
| elif kind == 'Constructor':
|
| - tag = "constructorCallback"
|
| - blink_entry = tag
|
| - if index is not None:
|
| - blink_entry = "_create_%s%s" % (index, blink_entry)
|
| + name = "constructor"
|
| + suffix = "Callback"
|
| + arity_str = "_" + str(arity)
|
| elif kind == 'Method':
|
| - tag = "%s_Callback" % name
|
| - if index is None:
|
| - blink_entry = tag
|
| - else:
|
| - blink_entry = "_%s_%d_Callback" % (name, index)
|
| - components = [interface_name, tag]
|
| - if types is not None:
|
| - components.extend(types)
|
| - native_entry = "_".join(components)
|
| + suffix = "_Callback"
|
| + arity_str = "_" + str(arity)
|
| +
|
| + tag = "%s%s" % (name, suffix)
|
| + blink_entry = mkPublic(tag + arity_str)
|
| + native_entry = "_".join([interface_name, tag])
|
| +
|
| + argument_names = ['__arg_%d' % i for i in range(0, arity)]
|
| if not is_static and kind != 'Constructor':
|
| - args.insert(0, "mthis")
|
| - return {'blink_entry': "$" + blink_entry,
|
| - 'argument_names': args,
|
| + argument_names.insert(0, "mthis")
|
| +
|
| + return {'blink_entry': blink_entry,
|
| + 'argument_names': argument_names,
|
| 'resolver_string': native_entry}
|
|
|
| ################################################################################
|
| @@ -184,6 +192,7 @@ DartUtilities.conditional_string = v8_utilities.conditional_string
|
| DartUtilities.cpp_name = v8_utilities.cpp_name
|
| DartUtilities.deprecate_as = _deprecate_as
|
| DartUtilities.extended_attribute_value_contains = v8_utilities.extended_attribute_value_contains
|
| +DartUtilities.enum_validation_expression = _enum_validation_expression
|
| DartUtilities.gc_type = v8_utilities.gc_type
|
| DartUtilities.generate_native_entry = _generate_native_entry
|
| DartUtilities.has_extended_attribute = v8_utilities.has_extended_attribute
|
|
|