| OLD | NEW |
| 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 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 raw_type: | 130 raw_type: |
| 131 bool, True if idl_type's raw/primitive C++ type should be returned. | 131 bool, True if idl_type's raw/primitive C++ type should be returned. |
| 132 used_as_argument: | 132 used_as_argument: |
| 133 bool, True if the C++ type is used as an argument of a method. | 133 bool, True if the C++ type is used as an argument of a method. |
| 134 used_as_variadic_argument: | 134 used_as_variadic_argument: |
| 135 bool, True if the C++ type is used as a variadic argument of a metho
d. | 135 bool, True if the C++ type is used as a variadic argument of a metho
d. |
| 136 used_in_cpp_sequence: | 136 used_in_cpp_sequence: |
| 137 bool, True if the C++ type is used as an element of an array or sequ
ence. | 137 bool, True if the C++ type is used as an element of an array or sequ
ence. |
| 138 """ | 138 """ |
| 139 def string_mode(): | 139 def string_mode(): |
| 140 if idl_type.is_nullable: |
| 141 return 'WithNullCheck' |
| 140 # FIXME: the Web IDL spec requires 'EmptyString', not 'NullString', | 142 # FIXME: the Web IDL spec requires 'EmptyString', not 'NullString', |
| 141 # but we use NullString for performance. | 143 # but we use NullString for performance. |
| 142 if extended_attributes.get('TreatNullAs') != 'NullString': | 144 if extended_attributes.get('TreatNullAs') != 'NullString': |
| 143 return '' | 145 return '' |
| 144 if extended_attributes.get('TreatUndefinedAs') != 'NullString': | 146 if extended_attributes.get('TreatUndefinedAs') != 'NullString': |
| 145 return 'WithNullCheck' | 147 return 'WithNullCheck' |
| 146 return 'WithUndefinedOrNullCheck' | 148 return 'WithUndefinedOrNullCheck' |
| 147 | 149 |
| 148 extended_attributes = extended_attributes or {} | 150 extended_attributes = extended_attributes or {} |
| 149 idl_type = idl_type.preprocessed_type | 151 idl_type = idl_type.preprocessed_type |
| (...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 698 | 700 |
| 699 def literal_cpp_value(idl_type, idl_literal): | 701 def literal_cpp_value(idl_type, idl_literal): |
| 700 """Converts an expression that is a valid C++ literal for this type.""" | 702 """Converts an expression that is a valid C++ literal for this type.""" |
| 701 # FIXME: add validation that idl_type and idl_literal are compatible | 703 # FIXME: add validation that idl_type and idl_literal are compatible |
| 702 literal_value = str(idl_literal) | 704 literal_value = str(idl_literal) |
| 703 if idl_type.base_type in CPP_UNSIGNED_TYPES: | 705 if idl_type.base_type in CPP_UNSIGNED_TYPES: |
| 704 return literal_value + 'u' | 706 return literal_value + 'u' |
| 705 return literal_value | 707 return literal_value |
| 706 | 708 |
| 707 IdlType.literal_cpp_value = literal_cpp_value | 709 IdlType.literal_cpp_value = literal_cpp_value |
| OLD | NEW |