Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Unified Diff: Source/bindings/scripts/v8_union.py

Issue 713403004: IDL: Generic Dictionary support in union types (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/bindings/scripts/v8_union.py
diff --git a/Source/bindings/scripts/v8_union.py b/Source/bindings/scripts/v8_union.py
index 9d4fae6132ef654bde08bbfb2c4e7a71f452d2fb..1af7103e05965343b11170eb8efd358b21ce2f10 100644
--- a/Source/bindings/scripts/v8_union.py
+++ b/Source/bindings/scripts/v8_union.py
@@ -6,6 +6,7 @@ import v8_utilities
UNION_H_INCLUDES = frozenset([
+ 'bindings/core/v8/Dictionary.h',
'bindings/core/v8/ExceptionState.h',
'bindings/core/v8/V8Binding.h',
'platform/heap/Handle.h',
@@ -68,12 +69,13 @@ def container_context(union_type, interfaces_info):
if array_buffer_view_type:
raise Exception('%s is ambiguous.' % union_type.name)
array_buffer_view_type = context
- elif member.is_interface_type:
- interface_types.append(context)
- elif member.is_dictionary:
+ # FIXME: Remove generic Dictionary special casing.
+ elif member.is_dictionary or member.base_type == 'Dictionary':
if dictionary_type:
raise Exception('%s is ambiguous.' % union_type.name)
dictionary_type = context
+ elif member.is_interface_type:
+ interface_types.append(context)
elif member is union_type.boolean_member_type:
boolean_type = context
elif member is union_type.numeric_member_type:
@@ -125,5 +127,6 @@ def member_context(member, interfaces_info):
'specific_type_enum': 'SpecificType' + member.name,
'type_name': member.name,
'v8_value_to_local_cpp_value': member.v8_value_to_local_cpp_value(
- {}, 'v8Value', 'cppValue', needs_exception_state_for_string=True),
+ {}, 'v8Value', 'cppValue', isolate='isolate',
+ needs_exception_state_for_string=True),
}

Powered by Google App Engine
This is Rietveld 408576698