Commit 64a0734a authored by jsbell@chromium.org's avatar jsbell@chromium.org

Add [TreatReturnedNullStringAs] support for ScalarValueString

Copy/Paste&Find/Replace of r176370 - same thing for ByteString.

Not strictly needed by any existing IDLs, but trivial code change,
and no code size difference until used.

R=horo@chromium.org,haraken@chromium.org
BUG=379009

Review URL: https://codereview.chromium.org/344693002

git-svn-id: svn://svn.chromium.org/blink/trunk@176477 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 8885f9fa
...@@ -1078,12 +1078,28 @@ converter.testScalarValueString = "𝄞" ...@@ -1078,12 +1078,28 @@ converter.testScalarValueString = "𝄞"
PASS converter.testScalarValueString is "𝄞" PASS converter.testScalarValueString is "𝄞"
converter.testScalarValueString = true converter.testScalarValueString = true
PASS converter.testScalarValueString is "true" PASS converter.testScalarValueString is "true"
PASS converter.testScalarValueStringTreatReturnedNullStringAsNullAttribute is "true"
PASS converter.testScalarValueStringTreatReturnedNullStringAsUndefinedAttribute is "true"
PASS converter.getTestScalarValueStringTreatReturnedNullStringAsNullMethod() is "true"
PASS converter.getTestScalarValueStringTreatReturnedNullStringAsUndefinedMethod() is "true"
converter.testScalarValueString = 123 converter.testScalarValueString = 123
PASS converter.testScalarValueString is "123" PASS converter.testScalarValueString is "123"
PASS converter.testScalarValueStringTreatReturnedNullStringAsNullAttribute is "123"
PASS converter.testScalarValueStringTreatReturnedNullStringAsUndefinedAttribute is "123"
PASS converter.getTestScalarValueStringTreatReturnedNullStringAsNullMethod() is "123"
PASS converter.getTestScalarValueStringTreatReturnedNullStringAsUndefinedMethod() is "123"
converter.testScalarValueString = null converter.testScalarValueString = null
PASS converter.testScalarValueString is "null" PASS converter.testScalarValueString is "null"
PASS converter.testScalarValueStringTreatReturnedNullStringAsNullAttribute is "null"
PASS converter.testScalarValueStringTreatReturnedNullStringAsUndefinedAttribute is "null"
PASS converter.getTestScalarValueStringTreatReturnedNullStringAsNullMethod() is "null"
PASS converter.getTestScalarValueStringTreatReturnedNullStringAsUndefinedMethod() is "null"
converter.testScalarValueString = undefined converter.testScalarValueString = undefined
PASS converter.testScalarValueString is "undefined" PASS converter.testScalarValueString is "undefined"
PASS converter.testScalarValueStringTreatReturnedNullStringAsNullAttribute is "undefined"
PASS converter.testScalarValueStringTreatReturnedNullStringAsUndefinedAttribute is "undefined"
PASS converter.getTestScalarValueStringTreatReturnedNullStringAsNullMethod() is "undefined"
PASS converter.getTestScalarValueStringTreatReturnedNullStringAsUndefinedMethod() is "undefined"
PASS converter.setTestScalarValueString('abc') did not throw exception. PASS converter.setTestScalarValueString('abc') did not throw exception.
PASS converter.setTestScalarValueStringDefaultNull('abc') did not throw exception. PASS converter.setTestScalarValueStringDefaultNull('abc') did not throw exception.
PASS converter.setTestScalarValueString('\u0100') did not throw exception. PASS converter.setTestScalarValueString('\u0100') did not throw exception.
...@@ -1091,6 +1107,10 @@ PASS converter.setTestScalarValueStringDefaultNull('\u0100') did not throw excep ...@@ -1091,6 +1107,10 @@ PASS converter.setTestScalarValueStringDefaultNull('\u0100') did not throw excep
PASS converter.setTestScalarValueString() threw exception TypeError: Failed to execute 'setTestScalarValueString' on 'TypeConversions': 1 argument required, but only 0 present.. PASS converter.setTestScalarValueString() threw exception TypeError: Failed to execute 'setTestScalarValueString' on 'TypeConversions': 1 argument required, but only 0 present..
PASS converter.setTestScalarValueStringDefaultNull() did not throw exception. PASS converter.setTestScalarValueStringDefaultNull() did not throw exception.
PASS converter.testScalarValueString is "" PASS converter.testScalarValueString is ""
PASS converter.testScalarValueStringTreatReturnedNullStringAsNullAttribute is null
PASS converter.testScalarValueStringTreatReturnedNullStringAsUndefinedAttribute is undefined.
PASS converter.getTestScalarValueStringTreatReturnedNullStringAsNullMethod() is null
PASS converter.getTestScalarValueStringTreatReturnedNullStringAsUndefinedMethod() is undefined.
PASS successfullyParsed is true PASS successfullyParsed is true
TEST COMPLETE TEST COMPLETE
......
...@@ -625,6 +625,10 @@ shouldBeEqualToString("converter.testScalarValueString", "\u0100"); ...@@ -625,6 +625,10 @@ shouldBeEqualToString("converter.testScalarValueString", "\u0100");
["true", "123", "null", "undefined"].forEach(function(value) { ["true", "123", "null", "undefined"].forEach(function(value) {
evalAndLog("converter.testScalarValueString = " + value); evalAndLog("converter.testScalarValueString = " + value);
shouldBeEqualToString("converter.testScalarValueString", value); shouldBeEqualToString("converter.testScalarValueString", value);
shouldBeEqualToString("converter.testScalarValueStringTreatReturnedNullStringAsNullAttribute", value);
shouldBeEqualToString("converter.testScalarValueStringTreatReturnedNullStringAsUndefinedAttribute", value);
shouldBeEqualToString("converter.getTestScalarValueStringTreatReturnedNullStringAsNullMethod()", value);
shouldBeEqualToString("converter.getTestScalarValueStringTreatReturnedNullStringAsUndefinedMethod()", value);
}); });
shouldNotThrow("converter.setTestScalarValueString('abc')"); shouldNotThrow("converter.setTestScalarValueString('abc')");
shouldNotThrow("converter.setTestScalarValueStringDefaultNull('abc')"); shouldNotThrow("converter.setTestScalarValueStringDefaultNull('abc')");
...@@ -633,5 +637,9 @@ shouldNotThrow("converter.setTestScalarValueStringDefaultNull('\\u0100')"); ...@@ -633,5 +637,9 @@ shouldNotThrow("converter.setTestScalarValueStringDefaultNull('\\u0100')");
shouldThrow("converter.setTestScalarValueString()"); shouldThrow("converter.setTestScalarValueString()");
shouldNotThrow("converter.setTestScalarValueStringDefaultNull()"); shouldNotThrow("converter.setTestScalarValueStringDefaultNull()");
shouldBeEqualToString("converter.testScalarValueString", ""); shouldBeEqualToString("converter.testScalarValueString", "");
shouldBeNull("converter.testScalarValueStringTreatReturnedNullStringAsNullAttribute");
shouldBeUndefined("converter.testScalarValueStringTreatReturnedNullStringAsUndefinedAttribute");
shouldBeNull("converter.getTestScalarValueStringTreatReturnedNullStringAsNullMethod()");
shouldBeUndefined("converter.getTestScalarValueStringTreatReturnedNullStringAsUndefinedMethod()");
</script> </script>
...@@ -550,7 +550,7 @@ def v8_conversion_type(idl_type, extended_attributes): ...@@ -550,7 +550,7 @@ def v8_conversion_type(idl_type, extended_attributes):
return 'int' return 'int'
if base_idl_type in CPP_UNSIGNED_TYPES: if base_idl_type in CPP_UNSIGNED_TYPES:
return 'unsigned' return 'unsigned'
if base_idl_type in ('DOMString', 'ByteString'): if base_idl_type in ('DOMString', 'ByteString', 'ScalarValueString'):
if 'TreatReturnedNullStringAs' not in extended_attributes: if 'TreatReturnedNullStringAs' not in extended_attributes:
return base_idl_type return base_idl_type
treat_returned_null_string_as = extended_attributes['TreatReturnedNullStringAs'] treat_returned_null_string_as = extended_attributes['TreatReturnedNullStringAs']
......
...@@ -241,6 +241,8 @@ interface TestObject { ...@@ -241,6 +241,8 @@ interface TestObject {
[TreatReturnedNullStringAs=Undefined] attribute DOMString treatReturnedNullStringAsUndefinedStringAttribute; [TreatReturnedNullStringAs=Undefined] attribute DOMString treatReturnedNullStringAsUndefinedStringAttribute;
[TreatReturnedNullStringAs=Null] attribute ByteString treatReturnedNullStringAsNullByteStringAttribute; [TreatReturnedNullStringAs=Null] attribute ByteString treatReturnedNullStringAsNullByteStringAttribute;
[TreatReturnedNullStringAs=Undefined] attribute ByteString treatReturnedNullStringAsUndefinedByteStringAttribute; [TreatReturnedNullStringAs=Undefined] attribute ByteString treatReturnedNullStringAsUndefinedByteStringAttribute;
[TreatReturnedNullStringAs=Null] attribute ScalarValueString treatReturnedNullStringAsNullScalarValueStringAttribute;
[TreatReturnedNullStringAs=Undefined] attribute ScalarValueString treatReturnedNullStringAsUndefinedScalarValueStringAttribute;
[TypeChecking=Interface|Nullable] attribute float typeCheckingInterfaceNullableStringFloatAttribute; // nop for non-interface types [TypeChecking=Interface|Nullable] attribute float typeCheckingInterfaceNullableStringFloatAttribute; // nop for non-interface types
[TypeChecking=Interface] attribute TestInterface typeCheckingInterfaceTestInterfaceAttribute; [TypeChecking=Interface] attribute TestInterface typeCheckingInterfaceTestInterfaceAttribute;
[TypeChecking=Nullable] attribute TestInterface? typeCheckingNullableTestInterfaceOrNullAttribute; [TypeChecking=Nullable] attribute TestInterface? typeCheckingNullableTestInterfaceOrNullAttribute;
...@@ -504,6 +506,8 @@ interface TestObject { ...@@ -504,6 +506,8 @@ interface TestObject {
[TreatReturnedNullStringAs=Undefined] DOMString treatReturnedNullStringAsUndefinedStringMethod(); [TreatReturnedNullStringAs=Undefined] DOMString treatReturnedNullStringAsUndefinedStringMethod();
[TreatReturnedNullStringAs=Null] ByteString treatReturnedNullStringAsNullByteStringMethod(); [TreatReturnedNullStringAs=Null] ByteString treatReturnedNullStringAsNullByteStringMethod();
[TreatReturnedNullStringAs=Undefined] ByteString treatReturnedNullStringAsUndefinedByteStringMethod(); [TreatReturnedNullStringAs=Undefined] ByteString treatReturnedNullStringAsUndefinedByteStringMethod();
[TreatReturnedNullStringAs=Null] ScalarValueString treatReturnedNullStringAsNullScalarValueStringMethod();
[TreatReturnedNullStringAs=Undefined] ScalarValueString treatReturnedNullStringAsUndefinedScalarValueStringMethod();
[TypeChecking=Interface] void typeCheckingInterfaceVoidMethodTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg); [TypeChecking=Interface] void typeCheckingInterfaceVoidMethodTestInterfaceEmptyArg(TestInterfaceEmpty testInterfaceEmptyArg);
[TypeChecking=Nullable] void typeCheckingNullableVoidMethodTestInterfaceEmptyOrNullArg(TestInterfaceEmpty? testInterfaceEmptyOrNullArg); [TypeChecking=Nullable] void typeCheckingNullableVoidMethodTestInterfaceEmptyOrNullArg(TestInterfaceEmpty? testInterfaceEmptyOrNullArg);
[TypeChecking=Interface|Nullable] void typeCheckingInterfaceNullableVoidMethodTestInterfaceEmptyOrNullArg(TestInterfaceEmpty? testInterfaceEmptyOrNullArg); [TypeChecking=Interface|Nullable] void typeCheckingInterfaceNullableVoidMethodTestInterfaceEmptyOrNullArg(TestInterfaceEmpty? testInterfaceEmptyOrNullArg);
......
...@@ -55,6 +55,10 @@ ...@@ -55,6 +55,10 @@
[ImplementedAs=setTestByteString] void setTestByteStringDefaultNull(optional ByteString byteString = null); [ImplementedAs=setTestByteString] void setTestByteStringDefaultNull(optional ByteString byteString = null);
attribute ScalarValueString testScalarValueString; attribute ScalarValueString testScalarValueString;
[ImplementedAs=testScalarValueString, TreatReturnedNullStringAs=Null] attribute ScalarValueString testScalarValueStringTreatReturnedNullStringAsNullAttribute;
[ImplementedAs=testScalarValueString, TreatReturnedNullStringAs=Undefined] attribute ScalarValueString testScalarValueStringTreatReturnedNullStringAsUndefinedAttribute;
[ImplementedAs=testScalarValueString, TreatReturnedNullStringAs=Null] ScalarValueString getTestScalarValueStringTreatReturnedNullStringAsNullMethod();
[ImplementedAs=testScalarValueString, TreatReturnedNullStringAs=Undefined] ScalarValueString getTestScalarValueStringTreatReturnedNullStringAsUndefinedMethod();
void setTestScalarValueString(ScalarValueString scalarValueString); void setTestScalarValueString(ScalarValueString scalarValueString);
[ImplementedAs=setTestScalarValueString] void setTestScalarValueStringDefaultNull(optional ScalarValueString scalarValueString = null); [ImplementedAs=setTestScalarValueString] void setTestScalarValueStringDefaultNull(optional ScalarValueString scalarValueString = null);
}; };
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment