import WebIDL def WebIDLTest(parser, harness): threw = False try: parser.parse( """ interface X { const sequence foo = []; }; """ ) results = parser.finish() except Exception: threw = True harness.ok(threw, "Constant cannot have [] as a default value") parser = parser.reset() parser.parse( """ interface X { undefined foo(optional sequence arg = []); }; """ ) results = parser.finish() harness.ok( isinstance( results[0].members[0].signatures()[0][1][0].defaultValue, WebIDL.IDLEmptySequenceValue, ), "Should have IDLEmptySequenceValue as default value of argument", ) parser = parser.reset() parser.parse( """ dictionary X { sequence foo = []; }; """ ) results = parser.finish() harness.ok( isinstance(results[0].members[0].defaultValue, WebIDL.IDLEmptySequenceValue), "Should have IDLEmptySequenceValue as default value of " "dictionary member", )