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

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

Issue 1711783003: Remove support for TreatReturnedNullStringAs=Null|Undefined (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 752 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 # Simple types 763 # Simple types
764 base_idl_type = idl_type.base_type 764 base_idl_type = idl_type.base_type
765 # Basic types, without additional includes 765 # Basic types, without additional includes
766 if base_idl_type in CPP_INT_TYPES: 766 if base_idl_type in CPP_INT_TYPES:
767 return 'int' 767 return 'int'
768 if base_idl_type in CPP_UNSIGNED_TYPES: 768 if base_idl_type in CPP_UNSIGNED_TYPES:
769 return 'unsigned' 769 return 'unsigned'
770 if idl_type.is_string_type: 770 if idl_type.is_string_type:
771 if idl_type.is_nullable: 771 if idl_type.is_nullable:
772 return 'StringOrNull' 772 return 'StringOrNull'
773 if 'TreatReturnedNullStringAs' not in extended_attributes: 773 return base_idl_type
774 return base_idl_type
775 treat_returned_null_string_as = extended_attributes['TreatReturnedNullSt ringAs']
776 if treat_returned_null_string_as == 'Null':
777 return 'StringOrNull'
778 if treat_returned_null_string_as == 'Undefined':
779 return 'StringOrUndefined'
780 raise 'Unrecognized TreatReturnedNullStringAs value: "%s"' % treat_retur ned_null_string_as
781 if idl_type.is_basic_type or base_idl_type == 'ScriptValue': 774 if idl_type.is_basic_type or base_idl_type == 'ScriptValue':
782 return base_idl_type 775 return base_idl_type
783 # Generic dictionary type 776 # Generic dictionary type
784 if base_idl_type == 'Dictionary': 777 if base_idl_type == 'Dictionary':
785 return 'Dictionary' 778 return 'Dictionary'
786 779
787 # Data type with potential additional includes 780 # Data type with potential additional includes
788 if base_idl_type in V8_SET_RETURN_VALUE: # Special v8SetReturnValue treatme nt 781 if base_idl_type in V8_SET_RETURN_VALUE: # Special v8SetReturnValue treatme nt
789 return base_idl_type 782 return base_idl_type
790 783
791 # Pointer type 784 # Pointer type
792 return 'DOMWrapper' 785 return 'DOMWrapper'
793 786
794 IdlTypeBase.v8_conversion_type = v8_conversion_type 787 IdlTypeBase.v8_conversion_type = v8_conversion_type
795 788
796 789
797 V8_SET_RETURN_VALUE = { 790 V8_SET_RETURN_VALUE = {
798 'boolean': 'v8SetReturnValueBool(info, {cpp_value})', 791 'boolean': 'v8SetReturnValueBool(info, {cpp_value})',
799 'int': 'v8SetReturnValueInt(info, {cpp_value})', 792 'int': 'v8SetReturnValueInt(info, {cpp_value})',
800 'unsigned': 'v8SetReturnValueUnsigned(info, {cpp_value})', 793 'unsigned': 'v8SetReturnValueUnsigned(info, {cpp_value})',
801 'DOMString': 'v8SetReturnValueString(info, {cpp_value}, info.GetIsolate())', 794 'DOMString': 'v8SetReturnValueString(info, {cpp_value}, info.GetIsolate())',
802 'ByteString': 'v8SetReturnValueString(info, {cpp_value}, info.GetIsolate())' , 795 'ByteString': 'v8SetReturnValueString(info, {cpp_value}, info.GetIsolate())' ,
803 'USVString': 'v8SetReturnValueString(info, {cpp_value}, info.GetIsolate())', 796 'USVString': 'v8SetReturnValueString(info, {cpp_value}, info.GetIsolate())',
804 # [TreatReturnedNullStringAs]
805 'StringOrNull': 'v8SetReturnValueStringOrNull(info, {cpp_value}, info.GetIso late())', 797 'StringOrNull': 'v8SetReturnValueStringOrNull(info, {cpp_value}, info.GetIso late())',
806 'StringOrUndefined': 'v8SetReturnValueStringOrUndefined(info, {cpp_value}, i nfo.GetIsolate())',
807 'void': '', 798 'void': '',
808 # No special v8SetReturnValue* function (set value directly) 799 # No special v8SetReturnValue* function (set value directly)
809 'float': 'v8SetReturnValue(info, {cpp_value})', 800 'float': 'v8SetReturnValue(info, {cpp_value})',
810 'unrestricted float': 'v8SetReturnValue(info, {cpp_value})', 801 'unrestricted float': 'v8SetReturnValue(info, {cpp_value})',
811 'double': 'v8SetReturnValue(info, {cpp_value})', 802 'double': 'v8SetReturnValue(info, {cpp_value})',
812 'unrestricted double': 'v8SetReturnValue(info, {cpp_value})', 803 'unrestricted double': 'v8SetReturnValue(info, {cpp_value})',
813 # No special v8SetReturnValue* function, but instead convert value to V8 804 # No special v8SetReturnValue* function, but instead convert value to V8
814 # and then use general v8SetReturnValue. 805 # and then use general v8SetReturnValue.
815 'array': 'v8SetReturnValue(info, {cpp_value})', 806 'array': 'v8SetReturnValue(info, {cpp_value})',
816 'Date': 'v8SetReturnValue(info, {cpp_value})', 807 'Date': 'v8SetReturnValue(info, {cpp_value})',
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
883 'ByteString': 'v8String({isolate}, {cpp_value})', 874 'ByteString': 'v8String({isolate}, {cpp_value})',
884 'USVString': 'v8String({isolate}, {cpp_value})', 875 'USVString': 'v8String({isolate}, {cpp_value})',
885 'boolean': 'v8Boolean({cpp_value}, {isolate})', 876 'boolean': 'v8Boolean({cpp_value}, {isolate})',
886 'int': 'v8::Integer::New({isolate}, {cpp_value})', 877 'int': 'v8::Integer::New({isolate}, {cpp_value})',
887 'unsigned': 'v8::Integer::NewFromUnsigned({isolate}, {cpp_value})', 878 'unsigned': 'v8::Integer::NewFromUnsigned({isolate}, {cpp_value})',
888 'float': 'v8::Number::New({isolate}, {cpp_value})', 879 'float': 'v8::Number::New({isolate}, {cpp_value})',
889 'unrestricted float': 'v8::Number::New({isolate}, {cpp_value})', 880 'unrestricted float': 'v8::Number::New({isolate}, {cpp_value})',
890 'double': 'v8::Number::New({isolate}, {cpp_value})', 881 'double': 'v8::Number::New({isolate}, {cpp_value})',
891 'unrestricted double': 'v8::Number::New({isolate}, {cpp_value})', 882 'unrestricted double': 'v8::Number::New({isolate}, {cpp_value})',
892 'void': 'v8Undefined()', 883 'void': 'v8Undefined()',
893 # [TreatReturnedNullStringAs]
894 'StringOrNull': '{cpp_value}.isNull() ? v8::Local<v8::Value>(v8::Null({isola te})) : v8String({isolate}, {cpp_value})', 884 'StringOrNull': '{cpp_value}.isNull() ? v8::Local<v8::Value>(v8::Null({isola te})) : v8String({isolate}, {cpp_value})',
895 'StringOrUndefined': '{cpp_value}.isNull() ? v8Undefined() : v8String({isola te}, {cpp_value})',
896 # Special cases 885 # Special cases
897 'Dictionary': '{cpp_value}.v8Value()', 886 'Dictionary': '{cpp_value}.v8Value()',
898 'EventHandler': '{cpp_value} ? v8::Local<v8::Value>(V8AbstractEventListener: :cast({cpp_value})->getListenerObject(impl->executionContext())) : v8::Local<v8: :Value>(v8::Null({isolate}))', 887 'EventHandler': '{cpp_value} ? v8::Local<v8::Value>(V8AbstractEventListener: :cast({cpp_value})->getListenerObject(impl->executionContext())) : v8::Local<v8: :Value>(v8::Null({isolate}))',
899 'ScriptValue': '{cpp_value}.v8Value()', 888 'ScriptValue': '{cpp_value}.v8Value()',
900 'SerializedScriptValue': '{cpp_value} ? {cpp_value}->deserialize() : v8::Loc al<v8::Value>(v8::Null({isolate}))', 889 'SerializedScriptValue': '{cpp_value} ? {cpp_value}->deserialize() : v8::Loc al<v8::Value>(v8::Null({isolate}))',
901 # General 890 # General
902 'array': 'toV8({cpp_value}, {creation_context}, {isolate})', 891 'array': 'toV8({cpp_value}, {creation_context}, {isolate})',
903 'DOMWrapper': 'toV8({cpp_value}, {creation_context}, {isolate})', 892 'DOMWrapper': 'toV8({cpp_value}, {creation_context}, {isolate})',
904 # Passing nullable dictionaries isn't a pattern currently used 893 # Passing nullable dictionaries isn't a pattern currently used
905 # anywhere in the web platform, and more work would be needed in 894 # anywhere in the web platform, and more work would be needed in
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1017 number_of_nullable_member_types_union) 1006 number_of_nullable_member_types_union)
1018 1007
1019 1008
1020 def includes_nullable_type_union(idl_type): 1009 def includes_nullable_type_union(idl_type):
1021 # http://heycam.github.io/webidl/#dfn-includes-a-nullable-type 1010 # http://heycam.github.io/webidl/#dfn-includes-a-nullable-type
1022 return idl_type.number_of_nullable_member_types == 1 1011 return idl_type.number_of_nullable_member_types == 1
1023 1012
1024 IdlTypeBase.includes_nullable_type = False 1013 IdlTypeBase.includes_nullable_type = False
1025 IdlNullableType.includes_nullable_type = True 1014 IdlNullableType.includes_nullable_type = True
1026 IdlUnionType.includes_nullable_type = property(includes_nullable_type_union) 1015 IdlUnionType.includes_nullable_type = property(includes_nullable_type_union)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698