mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 14:32:46 +00:00 
			
		
		
		
	 f991e40d7f
			
		
	
	
		f991e40d7f
		
	
	
	
	
		
			
			This change allows IDL interfaces to be compiled using new AK String
which have a attribute in the interface that may return null.
Without this change we would run into a compile error from code such as
the following example:
```
auto retval = impl->deprecated_attribute(HTML::AttributeNames::ref);
if (!retval.has_value()) {
    return JS::js_null();
 }
 return JS::PrimitiveString::create(vm, retval.release_value());
```
As `deprecated_attribute` returns a `DeprecatedString` instead of an
`Optional<String>`. Fix that by using the non-deprecated attribute
implementation, and falling back to the empty string for where we cannot
return null.
Also add a test here to cover a regression I almost introduced here
which was not previously covered by our test suite.
Ideally, all of this should actually just be calling
Element::get_attribute_value, but I'm not entirely sure at this stage
what the behavioral change would be to test for here. Since this
implementation preserves the previous behavior, stick with it, and add a
FIXME for now.
		
	
			
		
			
				
	
	
		
			2 lines
		
	
	
	
		
			49 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			2 lines
		
	
	
	
		
			49 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| initial type = ''
 | |
| after setting to null = 'null'
 |