Index: bindings/dart/scripts/dart_utilities.py |
diff --git a/bindings/dart/scripts/dart_utilities.py b/bindings/dart/scripts/dart_utilities.py |
index f67437b159195cc78bc0d4cd404ad6071b156c64..38e3899aac92a7ebddcfe4231d999960652017b8 100644 |
--- a/bindings/dart/scripts/dart_utilities.py |
+++ b/bindings/dart/scripts/dart_utilities.py |
@@ -132,6 +132,39 @@ 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 = "" |
+ if kind == 'Getter': |
+ tag = "%s_Getter" % name |
+ blink_entry = tag |
+ elif kind == 'Setter': |
+ tag = "%s_Setter" % name |
+ blink_entry = tag |
+ elif kind == 'Constructor': |
+ tag = "constructorCallback" |
+ blink_entry = tag |
+ if index is not None: |
+ blink_entry = "_create_%s%s" % (index, blink_entry) |
+ elif kind == 'Method': |
+ tag = "%s_Callback" % name |
+ if index is None: |
+ blink_entry = tag |
+ else: |
+ blink_entry = "_%s_%d_Callback" % (name, index) |
+ native_entry = "%s_%s" % (interface_name, tag) |
+ if types is not None: |
+ count = len(types) |
+ types = "_".join(types) |
+ native_entry = "%s_RESOLVER_STRING_%d_%s" % (native_entry, count, types) |
+ if not is_static and kind != 'Constructor': |
+ args.insert(0, "mthis") |
+ return {'blink_entry': "$" + blink_entry, |
+ 'argument_names': args, |
+ 'resolver_string': native_entry} |
+ |
################################################################################ |
# This is the monkey patched methods most delegate to v8_utilities but some are |
# overridden in dart_utilities. |
@@ -153,6 +186,7 @@ DartUtilities.cpp_name = v8_utilities.cpp_name |
DartUtilities.deprecate_as = _deprecate_as |
DartUtilities.extended_attribute_value_contains = v8_utilities.extended_attribute_value_contains |
DartUtilities.gc_type = v8_utilities.gc_type |
+DartUtilities.generate_native_entry = _generate_native_entry |
DartUtilities.has_extended_attribute = v8_utilities.has_extended_attribute |
DartUtilities.has_extended_attribute_value = v8_utilities.has_extended_attribute_value |
DartUtilities.measure_as = _measure_as |