|
1 def WebIDLTest(parser, harness): |
|
2 threw = False |
|
3 try: |
|
4 parser.parse(""" |
|
5 interface OptionalConstraints1 { |
|
6 void foo(optional byte arg1, byte arg2); |
|
7 }; |
|
8 """) |
|
9 |
|
10 results = parser.finish() |
|
11 except: |
|
12 threw = True |
|
13 |
|
14 harness.ok(not threw, |
|
15 "Should not have thrown on non-optional argument following " |
|
16 "optional argument.") |
|
17 |
|
18 parser = parser.reset() |
|
19 parser.parse(""" |
|
20 interface OptionalConstraints2 { |
|
21 void foo(optional byte arg1 = 1, optional byte arg2 = 2, |
|
22 optional byte arg3, optional byte arg4 = 4, |
|
23 optional byte arg5, optional byte arg6 = 9); |
|
24 }; |
|
25 """) |
|
26 results = parser.finish() |
|
27 args = results[0].members[0].signatures()[0][1] |
|
28 harness.check(len(args), 6, "Should have 6 arguments") |
|
29 harness.check(args[5].defaultValue.value, 9, |
|
30 "Should have correct default value") |