Index: Source/bindings/scripts/v8_types.py |
diff --git a/Source/bindings/scripts/v8_types.py b/Source/bindings/scripts/v8_types.py |
index 1ca7631c8ef85a9400fc9bfc4c11ac834d263bf9..0ad036b7350ea27008f57eff9eee2a7c7c94fd21 100644 |
--- a/Source/bindings/scripts/v8_types.py |
+++ b/Source/bindings/scripts/v8_types.py |
@@ -39,7 +39,7 @@ Design doc: http://www.chromium.org/developers/design-documents/idl-compiler |
import posixpath |
-from idl_types import IdlType, IdlUnionType |
+from idl_types import IdlTypeBase, IdlType, IdlUnionType |
import v8_attributes # for IdlType.constructor_type_name |
from v8_globals import includes |
@@ -72,11 +72,12 @@ TYPED_ARRAYS = { |
'Uint32Array': ('unsigned int', 'v8::kExternalUnsignedIntArray'), |
} |
+IdlTypeBase.is_typed_array_element_type = False |
IdlType.is_typed_array_element_type = property( |
lambda self: self.base_type in TYPED_ARRAYS) |
-IdlUnionType.is_typed_array_element_type = False |
+IdlTypeBase.is_wrapper_type = False |
IdlType.is_wrapper_type = property( |
lambda self: (self.is_interface_type and |
self.base_type not in NON_WRAPPER_TYPES)) |
@@ -218,11 +219,11 @@ def cpp_type_initializer_union(idl_type): |
# Allow access as idl_type.cpp_type if no arguments |
-IdlType.cpp_type = property(cpp_type) |
-IdlType.cpp_type_initializer = property(cpp_type_initializer) |
+IdlTypeBase.cpp_type = property(cpp_type) |
+IdlTypeBase.cpp_type_initializer = property(cpp_type_initializer) |
+IdlTypeBase.cpp_type_args = cpp_type |
IdlUnionType.cpp_type = property(cpp_type_union) |
IdlUnionType.cpp_type_initializer = property(cpp_type_initializer_union) |
-IdlType.cpp_type_args = cpp_type |
IdlUnionType.cpp_type_args = cpp_type_union |
@@ -277,6 +278,7 @@ IdlType.set_implemented_as_interfaces = classmethod( |
# [GarbageCollected] |
IdlType.garbage_collected_types = set() |
+IdlTypeBase.is_garbage_collected = False |
IdlType.is_garbage_collected = property( |
lambda self: self.base_type in IdlType.garbage_collected_types) |
@@ -288,6 +290,7 @@ IdlType.set_garbage_collected_types = classmethod( |
# [WillBeGarbageCollected] |
IdlType.will_be_garbage_collected_types = set() |
+IdlTypeBase.is_will_be_garbage_collected = False |
IdlType.is_will_be_garbage_collected = property( |
lambda self: self.base_type in IdlType.will_be_garbage_collected_types) |
@@ -303,7 +306,7 @@ def gc_type(idl_type): |
return 'WillBeGarbageCollectedObject' |
return 'RefCountedObject' |
-IdlType.gc_type = property(gc_type) |
+IdlTypeBase.gc_type = property(gc_type) |
################################################################################ |
@@ -381,8 +384,7 @@ IdlUnionType.includes_for_type = property( |
def add_includes_for_type(idl_type): |
includes.update(idl_type.includes_for_type) |
-IdlType.add_includes_for_type = add_includes_for_type |
-IdlUnionType.add_includes_for_type = add_includes_for_type |
+IdlTypeBase.add_includes_for_type = add_includes_for_type |
def includes_for_interface(interface_name): |
@@ -396,7 +398,7 @@ def add_includes_for_interface(interface_name): |
def impl_should_use_nullable_container(idl_type): |
return idl_type.native_array_element_type or idl_type.is_primitive_type |
-IdlType.impl_should_use_nullable_container = property( |
+IdlTypeBase.impl_should_use_nullable_container = property( |
impl_should_use_nullable_container) |
@@ -419,7 +421,7 @@ def impl_includes_for_type(idl_type, interfaces_info): |
includes_for_type.add(interface_info['include_path']) |
return includes_for_type |
-IdlType.impl_includes_for_type = impl_includes_for_type |
+IdlTypeBase.impl_includes_for_type = impl_includes_for_type |
component_dir = {} |
@@ -563,9 +565,7 @@ def v8_value_to_local_cpp_value(idl_type, extended_attributes, v8_value, variabl |
return '%s(%s)' % (macro + suffix, ', '.join(args)) |
- |
-IdlType.v8_value_to_local_cpp_value = v8_value_to_local_cpp_value |
-IdlUnionType.v8_value_to_local_cpp_value = v8_value_to_local_cpp_value |
+IdlTypeBase.v8_value_to_local_cpp_value = v8_value_to_local_cpp_value |
################################################################################ |
@@ -580,8 +580,7 @@ def preprocess_idl_type(idl_type): |
return IdlType('ScriptValue') |
return idl_type |
-IdlType.preprocessed_type = property(preprocess_idl_type) |
-IdlUnionType.preprocessed_type = property(preprocess_idl_type) |
+IdlTypeBase.preprocessed_type = property(preprocess_idl_type) |
def preprocess_idl_type_and_value(idl_type, cpp_value, extended_attributes): |
@@ -651,7 +650,7 @@ def v8_conversion_type(idl_type, extended_attributes): |
# Pointer type |
return 'DOMWrapper' |
-IdlType.v8_conversion_type = v8_conversion_type |
+IdlTypeBase.v8_conversion_type = v8_conversion_type |
V8_SET_RETURN_VALUE = { |
@@ -727,7 +726,7 @@ def v8_set_return_value_union(idl_type, cpp_value, extended_attributes=None, scr |
for i, member_type in |
enumerate(idl_type.member_types)] |
-IdlType.v8_set_return_value = v8_set_return_value |
+IdlTypeBase.v8_set_return_value = v8_set_return_value |
IdlUnionType.v8_set_return_value = v8_set_return_value_union |
IdlType.release = property(lambda self: self.is_interface_type) |
@@ -772,7 +771,7 @@ def cpp_value_to_v8_value(idl_type, cpp_value, isolate='info.GetIsolate()', crea |
statement = format_string.format(cpp_value=cpp_value, isolate=isolate, creation_context=creation_context) |
return statement |
-IdlType.cpp_value_to_v8_value = cpp_value_to_v8_value |
+IdlTypeBase.cpp_value_to_v8_value = cpp_value_to_v8_value |
def literal_cpp_value(idl_type, idl_literal): |
@@ -807,7 +806,6 @@ def is_explicit_nullable(idl_type): |
# we use Nullable<T> or similar explicit ways to represent a null value. |
return idl_type.is_nullable and not idl_type.is_implicit_nullable |
-IdlType.is_implicit_nullable = property(is_implicit_nullable) |
-IdlType.is_explicit_nullable = property(is_explicit_nullable) |
+IdlTypeBase.is_implicit_nullable = property(is_implicit_nullable) |
IdlUnionType.is_implicit_nullable = False |
-IdlUnionType.is_explicit_nullable = property(is_explicit_nullable) |
+IdlTypeBase.is_explicit_nullable = property(is_explicit_nullable) |