Index: Source/bindings/scripts/v8_types.py |
diff --git a/Source/bindings/scripts/v8_types.py b/Source/bindings/scripts/v8_types.py |
index 5f930d324866e2c464a5fc00dbfe2af65cc1d62c..569cac22c7306aa96dba3791a0057bcfa5320845 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 IdlTypeBase, IdlType, IdlUnionType, IdlArrayOrSequenceType |
+from idl_types import IdlTypeBase, IdlType, IdlUnionType, IdlArrayOrSequenceType, IdlNullableType |
import v8_attributes # for IdlType.constructor_type_name |
from v8_globals import includes |
@@ -72,12 +72,9 @@ 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) |
- |
-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)) |
@@ -239,7 +236,6 @@ IdlUnionType.cpp_type_initializer = property(cpp_type_initializer_union) |
IdlUnionType.cpp_type_args = cpp_type_union |
-IdlTypeBase.native_array_element_type = None |
IdlArrayOrSequenceType.native_array_element_type = property( |
lambda self: self.element_type) |
@@ -295,7 +291,6 @@ 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) |
@@ -307,7 +302,6 @@ 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) |
@@ -605,7 +599,10 @@ def preprocess_idl_type_and_value(idl_type, cpp_value, extended_attributes): |
if idl_type.base_type in ['long long', 'unsigned long long']: |
# long long and unsigned long long are not representable in ECMAScript; |
# we represent them as doubles. |
- idl_type = IdlType('double', is_nullable=idl_type.is_nullable) |
+ is_nullable = idl_type.is_nullable |
+ idl_type = IdlType('double') |
+ if is_nullable: |
+ idl_type = IdlNullableType(idl_type) |
cpp_value = 'static_cast<double>(%s)' % cpp_value |
# HTML5 says that unsigned reflected attributes should be in the range |
# [0, 2^31). When a value isn't in this range, a default value (or 0) |
@@ -742,7 +739,6 @@ IdlType.release = property(lambda self: self.is_interface_type) |
IdlUnionType.release = property( |
lambda self: [member_type.is_interface_type |
for member_type in self.member_types]) |
-IdlArrayOrSequenceType.release = False |
CPP_VALUE_TO_V8_VALUE = { |