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

Side by Side Diff: Source/bindings/scripts/v8_types.py

Issue 357413003: IDL: Drop redundant null check for string and wrapper type attributes (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: updated Created 6 years, 5 months 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 unified diff | Download patch
OLDNEW
1 # Copyright (C) 2013 Google Inc. All rights reserved. 1 # Copyright (C) 2013 Google Inc. All rights reserved.
2 # 2 #
3 # Redistribution and use in source and binary forms, with or without 3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are 4 # modification, are permitted provided that the following conditions are
5 # met: 5 # met:
6 # 6 #
7 # * Redistributions of source code must retain the above copyright 7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer. 8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above 9 # * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following disclaimer 10 # copyright notice, this list of conditions and the following disclaimer
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 return 'array' 551 return 'array'
552 552
553 # Simple types 553 # Simple types
554 base_idl_type = idl_type.base_type 554 base_idl_type = idl_type.base_type
555 # Basic types, without additional includes 555 # Basic types, without additional includes
556 if base_idl_type in CPP_INT_TYPES: 556 if base_idl_type in CPP_INT_TYPES:
557 return 'int' 557 return 'int'
558 if base_idl_type in CPP_UNSIGNED_TYPES: 558 if base_idl_type in CPP_UNSIGNED_TYPES:
559 return 'unsigned' 559 return 'unsigned'
560 if idl_type.is_string_type: 560 if idl_type.is_string_type:
561 if idl_type.is_nullable:
562 return 'StringOrNull'
561 if 'TreatReturnedNullStringAs' not in extended_attributes: 563 if 'TreatReturnedNullStringAs' not in extended_attributes:
562 return base_idl_type 564 return base_idl_type
563 treat_returned_null_string_as = extended_attributes['TreatReturnedNullSt ringAs'] 565 treat_returned_null_string_as = extended_attributes['TreatReturnedNullSt ringAs']
564 if treat_returned_null_string_as == 'Null': 566 if treat_returned_null_string_as == 'Null':
565 return 'StringOrNull' 567 return 'StringOrNull'
566 if treat_returned_null_string_as == 'Undefined': 568 if treat_returned_null_string_as == 'Undefined':
567 return 'StringOrUndefined' 569 return 'StringOrUndefined'
568 raise 'Unrecognized TreatReturnNullStringAs value: "%s"' % treat_returne d_null_string_as 570 raise 'Unrecognized TreatReturnNullStringAs value: "%s"' % treat_returne d_null_string_as
569 if idl_type.is_basic_type or base_idl_type == 'ScriptValue': 571 if idl_type.is_basic_type or base_idl_type == 'ScriptValue':
570 return base_idl_type 572 return base_idl_type
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 'ByteString': 'v8String({isolate}, {cpp_value})', 671 'ByteString': 'v8String({isolate}, {cpp_value})',
670 'ScalarValueString': 'v8String({isolate}, {cpp_value})', 672 'ScalarValueString': 'v8String({isolate}, {cpp_value})',
671 'boolean': 'v8Boolean({cpp_value}, {isolate})', 673 'boolean': 'v8Boolean({cpp_value}, {isolate})',
672 'int': 'v8::Integer::New({isolate}, {cpp_value})', 674 'int': 'v8::Integer::New({isolate}, {cpp_value})',
673 'unsigned': 'v8::Integer::NewFromUnsigned({isolate}, {cpp_value})', 675 'unsigned': 'v8::Integer::NewFromUnsigned({isolate}, {cpp_value})',
674 'float': 'v8::Number::New({isolate}, {cpp_value})', 676 'float': 'v8::Number::New({isolate}, {cpp_value})',
675 'unrestricted float': 'v8::Number::New({isolate}, {cpp_value})', 677 'unrestricted float': 'v8::Number::New({isolate}, {cpp_value})',
676 'double': 'v8::Number::New({isolate}, {cpp_value})', 678 'double': 'v8::Number::New({isolate}, {cpp_value})',
677 'unrestricted double': 'v8::Number::New({isolate}, {cpp_value})', 679 'unrestricted double': 'v8::Number::New({isolate}, {cpp_value})',
678 'void': 'v8Undefined()', 680 'void': 'v8Undefined()',
681 # [TreatNullReturnValueAs]
682 'StringOrNull': '{cpp_value}.isNull() ? v8::Handle<v8::Value>(v8::Null({isol ate})) : v8String({isolate}, {cpp_value})',
683 'StringOrUndefined': '{cpp_value}.isNull() ? v8Undefined() : v8String({isola te}, {cpp_value})',
679 # Special cases 684 # Special cases
680 'EventHandler': '{cpp_value} ? v8::Handle<v8::Value>(V8AbstractEventListener ::cast({cpp_value})->getListenerObject(impl->executionContext())) : v8::Handle<v 8::Value>(v8::Null({isolate}))', 685 'EventHandler': '{cpp_value} ? v8::Handle<v8::Value>(V8AbstractEventListener ::cast({cpp_value})->getListenerObject(impl->executionContext())) : v8::Handle<v 8::Value>(v8::Null({isolate}))',
681 'ScriptValue': '{cpp_value}.v8Value()', 686 'ScriptValue': '{cpp_value}.v8Value()',
682 'SerializedScriptValue': '{cpp_value} ? {cpp_value}->deserialize() : v8::Han dle<v8::Value>(v8::Null({isolate}))', 687 'SerializedScriptValue': '{cpp_value} ? {cpp_value}->deserialize() : v8::Han dle<v8::Value>(v8::Null({isolate}))',
683 # General 688 # General
684 'array': 'v8Array({cpp_value}, {creation_context}, {isolate})', 689 'array': 'v8Array({cpp_value}, {creation_context}, {isolate})',
685 'DOMWrapper': 'toV8({cpp_value}, {creation_context}, {isolate})', 690 'DOMWrapper': 'toV8({cpp_value}, {creation_context}, {isolate})',
686 } 691 }
687 692
688 693
(...skipping 11 matching lines...) Expand all
700 705
701 def literal_cpp_value(idl_type, idl_literal): 706 def literal_cpp_value(idl_type, idl_literal):
702 """Converts an expression that is a valid C++ literal for this type.""" 707 """Converts an expression that is a valid C++ literal for this type."""
703 # FIXME: add validation that idl_type and idl_literal are compatible 708 # FIXME: add validation that idl_type and idl_literal are compatible
704 literal_value = str(idl_literal) 709 literal_value = str(idl_literal)
705 if idl_type.base_type in CPP_UNSIGNED_TYPES: 710 if idl_type.base_type in CPP_UNSIGNED_TYPES:
706 return literal_value + 'u' 711 return literal_value + 'u'
707 return literal_value 712 return literal_value
708 713
709 IdlType.literal_cpp_value = literal_cpp_value 714 IdlType.literal_cpp_value = literal_cpp_value
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698