for type in JsonTypes:
doTest(
f"interface Test {{ {type} toJSON(); }};", False,
f"{type} should be a JSON type",
)
doTest(
f"interface Test {{ sequence<{type}> toJSON(); }};", False,
f"sequence<{type}> should be a JSON type",
)
doTest(
f"dictionary Foo {{ {type} foo; }}; interface Test {{ Foo toJSON(); }}; ", False,
f"dictionary containing only JSON type ({type}) should be a JSON type",
)
doTest(
f"dictionary Foo {{ {type} foo; }}; dictionary Bar : Foo {{ }}; " "interface Test { Bar toJSON(); }; ", False, "dictionary whose ancestors only contain JSON types should be a JSON type",
)
doTest(
f"dictionary Foo {{ any foo; }}; dictionary Bar : Foo {{ {type} bar; }};" "interface Test { Bar toJSON(); };", True, "dictionary whose ancestors contain non-JSON types should not be a JSON type",
)
doTest(
f"interface Test {{ record<DOMString, {type}> toJSON(); }};", False,
f"record<DOMString, {type}> should be a JSON type",
)
doTest(
f"interface Test {{ record<ByteString, {type}> toJSON(); }};", False,
f"record<ByteString, {type}> should be a JSON type",
)
doTest(
f"interface Test {{ record<UTF8String, {type}> toJSON(); }};", False,
f"record<UTF8String, {type}> should be a JSON type",
)
doTest(
f"interface Test {{ record<USVString, {type}> toJSON(); }};", False,
f"record<USVString, {type}> should be a JSON type",
)
otherUnionType = "Foo"if type != "object"else"long"
doTest( "interface Foo { object toJSON(); };"
f"interface Test {{ ({otherUnionType} or {type}) toJSON(); }};", False,
f"union containing only JSON types ({otherUnionType} or {type}) should be a JSON type",
)
doTest(
f"interface test {{ {type}? toJSON(); }};", False,
f"Nullable type ({type}) should be a JSON type",
)
doTest(
f"interface Foo : InterfaceWithoutToJSON {{ {type} toJSON(); }};" "interface Test { Foo toJSON(); };", False, "interface with toJSON should be a JSON type",
)
doTest( "interface Foo : InterfaceWithToJSON { };interface Test { Foo toJSON(); };", False, "inherited interface with toJSON should be a JSON type",
)
for type in nonJsonTypes:
doTest(
f"interface Test {{ {type} toJSON(); }};", True,
f"{type} should not be a JSON type",
)
doTest(
f"interface Test {{ sequence<{type}> toJSON(); }};", True,
f"sequence<{type}> should not be a JSON type",
)
doTest(
f"dictionary Foo {{ {type} foo; }}; interface Test {{ Foo toJSON(); }}; ", True,
f"Dictionary containing a non-JSON type ({type}) should not be a JSON type",
)
doTest(
f"dictionary Foo {{ {type} foo; }}; dictionary Bar : Foo {{ }}; " "interface Test { Bar toJSON(); }; ", True, "dictionary whose ancestors only contain non-JSON types should not be a JSON type",
)
doTest(
f"interface Test {{ record<DOMString, {type}> toJSON(); }};", True,
f"record<DOMString, {type}> should not be a JSON type",
)
doTest(
f"interface Test {{ record<ByteString, {type}> toJSON(); }};", True,
f"record<ByteString, {type}> should not be a JSON type",
)
doTest(
f"interface Test {{ record<USVString, {type}> toJSON(); }};", True,
f"record<USVString, {type}> should not be a JSON type",
)
if type != "any":
doTest( "interface Foo { object toJSON(); }; "
f"interface Test {{ (Foo or {type}) toJSON(); }};", True,
f"union containing a non-JSON type ({type}) should not be a JSON type",
)
doTest(
f"interface test {{ {type}? toJSON(); }};", True,
f"Nullable type ({type}) should not be a JSON type",
)
doTest( "dictionary Foo { long foo; any bar; };interface Test { Foo toJSON(); };", True, "dictionary containing a non-JSON type should not be a JSON type",
)
doTest( "interface Foo : InterfaceWithoutToJSON { }; interface Test { Foo toJSON(); };", True, "interface without toJSON should not be a JSON type",
)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.