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

Unified Diff: Source/bindings/scripts/v8_attributes.py

Issue 352643005: Drop [TypeChecking=Nullable]; deduce from attribute type instead (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@cleanup-typechecking
Patch Set: rebased Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/bindings/IDLExtendedAttributes.txt ('k') | Source/bindings/templates/attributes.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/scripts/v8_attributes.py
diff --git a/Source/bindings/scripts/v8_attributes.py b/Source/bindings/scripts/v8_attributes.py
index 8d82ac9f77f32dbab2a052e1fdccf5f4bcbd513f..90abceaea86ef5e4c127744a1098525f6259d1d1 100644
--- a/Source/bindings/scripts/v8_attributes.py
+++ b/Source/bindings/scripts/v8_attributes.py
@@ -67,10 +67,6 @@ def attribute_context(interface, attribute):
if 'PerWorldBindings' in extended_attributes:
assert idl_type.is_wrapper_type or 'LogActivity' in extended_attributes, '[PerWorldBindings] should only be used with wrapper types: %s.%s' % (interface.name, attribute.name)
# [TypeChecking]
- has_type_checking_nullable = (
- (has_extended_attribute_value(interface, 'TypeChecking', 'Nullable') or
- has_extended_attribute_value(attribute, 'TypeChecking', 'Nullable')) and
- idl_type.is_wrapper_type)
has_type_checking_unrestricted = (
(has_extended_attribute_value(interface, 'TypeChecking', 'Unrestricted') or
has_extended_attribute_value(attribute, 'TypeChecking', 'Unrestricted')) and
@@ -98,7 +94,6 @@ def attribute_context(interface, attribute):
'enum_validation_expression': idl_type.enum_validation_expression,
'has_custom_getter': has_custom_getter,
'has_custom_setter': has_custom_setter,
- 'has_type_checking_nullable': has_type_checking_nullable,
'has_type_checking_unrestricted': has_type_checking_unrestricted,
'idl_type': str(idl_type), # need trailing [] on array for Dictionary::ConversionContext::setConversionType
'is_call_with_execution_context': v8_utilities.has_extended_attribute_value(attribute, 'CallWith', 'ExecutionContext'),
@@ -112,7 +107,8 @@ def attribute_context(interface, attribute):
'is_initialized_by_event_constructor':
'InitializedByEventConstructor' in extended_attributes,
'is_keep_alive_for_gc': is_keep_alive_for_gc(interface, attribute),
- 'is_nullable': attribute.idl_type.is_nullable,
+ 'is_nullable': idl_type.is_nullable,
+ 'is_nullable_simple': idl_type.is_nullable and idl_type.is_wrapper_type, # null value maps to C++ null pointer
'is_partial_interface_member':
'PartialInterfaceImplementedAs' in extended_attributes,
'is_per_world_bindings': 'PerWorldBindings' in extended_attributes,
@@ -207,7 +203,7 @@ def getter_expression(interface, attribute, context):
if ('PartialInterfaceImplementedAs' in attribute.extended_attributes and
not attribute.is_static):
arguments.append('*impl')
- if attribute.idl_type.is_nullable and not context['has_type_checking_nullable']:
+ if attribute.idl_type.is_nullable and not context['is_nullable_simple']:
arguments.append('isNull')
if context['is_getter_raises_exception']:
arguments.append('exceptionState')
@@ -299,7 +295,6 @@ def setter_context(interface, attribute, context):
context.update({
'has_setter_exception_state':
is_setter_raises_exception or has_type_checking_interface or
- context['has_type_checking_nullable'] or
context['has_type_checking_unrestricted'] or
idl_type.may_raise_exception_on_conversion,
'has_type_checking_interface': has_type_checking_interface,
« no previous file with comments | « Source/bindings/IDLExtendedAttributes.txt ('k') | Source/bindings/templates/attributes.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698