Index: Source/bindings/scripts/unstable/v8_types.py |
diff --git a/Source/bindings/scripts/unstable/v8_types.py b/Source/bindings/scripts/unstable/v8_types.py |
index 131b804ce9e7c792218028e3314687d19c046e8d..c3035360e66715c4a79682c6b529807c57bc0e36 100644 |
--- a/Source/bindings/scripts/unstable/v8_types.py |
+++ b/Source/bindings/scripts/unstable/v8_types.py |
@@ -142,6 +142,9 @@ def is_union_type(idl_type): |
return isinstance(idl_type, idl_definitions.IdlUnionType) |
+def is_integer_type(idl_type): |
+ return any(idl_type in s for s in [CPP_INT_TYPES, CPP_UNSIGNED_TYPES, CPP_LONG_LONG_TYPES]) |
Nils Barth (inactive)
2014/01/06 02:58:09
Simpler:
return idl_type in CPP_INT_TYPES | CPP_UN
sof
2014/01/06 21:01:25
Adopted wholesale; the transformation added here i
|
+ |
################################################################################ |
# V8-specific type handling |
################################################################################ |
@@ -237,6 +240,10 @@ CPP_SPECIAL_CONVERSION_RULES = { |
'ScriptValue': 'ScriptValue', |
'boolean': 'bool', |
} |
+CPP_LONG_LONG_TYPES = set([ |
Nils Barth (inactive)
2014/01/06 02:58:09
Could you put this set up *above* CPP_SPECIAL_CONV
sof
2014/01/06 21:01:25
Removed.
|
+ 'long long', |
+ 'unsigned long long', |
+]) |
def cpp_type(idl_type, extended_attributes=None, used_as_argument=False): |
"""Returns C++ type corresponding to IDL type.""" |
@@ -377,8 +384,10 @@ def v8_value_to_cpp_value(idl_type, extended_attributes, v8_value, index): |
add_includes_for_type(idl_type) |
if 'EnforceRange' in extended_attributes: |
- arguments = ', '.join([v8_value, 'EnforceRange', 'ok']) |
- else: # NormalConversion |
+ arguments = ', '.join([v8_value, 'EnforceRange', 'exceptionState']) |
+ elif is_integer_type(idl_type): # NormalConversion |
Nils Barth (inactive)
2014/01/06 02:58:09
Comment '# NormalConversion' should go on the defa
sof
2014/01/06 21:01:25
Isn't this the correct placement for it? i.e., thi
Nils Barth (inactive)
2014/01/07 02:11:35
OIC, you're right - sorry, thanks!
(NormalConversi
|
+ arguments = ', '.join([v8_value, 'exceptionState']) |
+ else: |
arguments = v8_value |
if idl_type in V8_VALUE_TO_CPP_VALUE: |
@@ -421,8 +430,8 @@ def v8_value_to_local_cpp_value(idl_type, extended_attributes, v8_value, variabl |
idl_type = preprocess_idl_type(idl_type) |
if idl_type == 'DOMString': |
format_string = 'V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID({cpp_type}, {variable_name}, {cpp_value})' |
- elif 'EnforceRange' in extended_attributes: |
- format_string = 'V8TRYCATCH_WITH_TYPECHECK_VOID({cpp_type}, {variable_name}, {cpp_value}, info.GetIsolate())' |
+ elif is_integer_type(idl_type): |
+ format_string = 'V8TRYCATCH_EXCEPTION_VOID({cpp_type}, {variable_name}, {cpp_value}, exceptionState)' |
else: |
format_string = 'V8TRYCATCH_VOID({cpp_type}, {variable_name}, {cpp_value})' |