Chromium Code Reviews| Index: Source/bindings/scripts/v8_types.py |
| diff --git a/Source/bindings/scripts/v8_types.py b/Source/bindings/scripts/v8_types.py |
| index 95bb3adbfe46dd09d1d8e196e61aa930739d3882..e357766d4b3099fca64a9a940c86cf0c31833ddd 100644 |
| --- a/Source/bindings/scripts/v8_types.py |
| +++ b/Source/bindings/scripts/v8_types.py |
| @@ -558,6 +558,8 @@ def v8_conversion_type(idl_type, extended_attributes): |
| if base_idl_type in CPP_UNSIGNED_TYPES: |
| return 'unsigned' |
| if idl_type.is_string_type: |
| + if idl_type.is_nullable: |
| + return 'StringOrNull' |
| if 'TreatReturnedNullStringAs' not in extended_attributes: |
| return base_idl_type |
| treat_returned_null_string_as = extended_attributes['TreatReturnedNullStringAs'] |
| @@ -676,6 +678,9 @@ CPP_VALUE_TO_V8_VALUE = { |
| 'double': 'v8::Number::New({isolate}, {cpp_value})', |
| 'unrestricted double': 'v8::Number::New({isolate}, {cpp_value})', |
| 'void': 'v8Undefined()', |
| + # [TreatNullReturnValueAs] |
| + 'StringOrNull': '!{cpp_value}.isNull() ? v8String({isolate}, {cpp_value}) : v8::Handle<v8::Value>(v8::Null({isolate}))', |
|
haraken
2014/07/01 00:57:33
Flip the order and avoid a negation.
{cpp_value}.
Jens Widell
2014/07/01 06:43:22
Done.
|
| + 'StringOrUndefined': '!{cpp_value}.isNull() ? v8String({isolate}, {cpp_value}) : v8Undefined()', |
|
haraken
2014/07/01 00:57:33
Ditto.
BTW, who needs StringOrUndefined? The beha
Jens Widell
2014/07/01 06:43:22
A bit strange, yes. Kicks in with [TreatReturnedNu
|
| # Special cases |
| 'EventHandler': '{cpp_value} ? v8::Handle<v8::Value>(V8AbstractEventListener::cast({cpp_value})->getListenerObject(impl->executionContext())) : v8::Handle<v8::Value>(v8::Null({isolate}))', |
| 'ScriptValue': '{cpp_value}.v8Value()', |