This fake spec tried to exercise all aspects of WebIDL so as to do regression testing in this complex piece of code.

CUSTOM PARAGRAPH

Unsupported

The following aspects of WebIDL are not currently supported and are not yet tested for:

Support for these features will likely be added later.

The following features are supposedly supported but actually buggy:

Things that still need to be done:

Interfaces

Basic interface.

Interface with extended attribute.

Interface with inheritance.

Partial interface .

Callback interface .

Constants

All constants and some type testing

const boolean test = true
1
const byte bite = 8
2
const octet eight = 7
3
const short small = 42
4
const unsigned short shortish = 250
5
const long notSoLong = 99999
6
const unsigned long somewhatLong = 9999999
7
const long long veryLong = 9999999999999
8
const unsigned long long soLong = 99999999999999999
9
const float ationDevice = 4.2
10
const unrestricted float buoy = 4.2222222222
11
const double twice = 4.222222222
12
const unrestricted double rambaldi = 47.0
13
const boolean? why = false
14
const boolean? notSo = null
15
const short inf = Infinity
16
const short mininf = -Infinity
17
const short cheese = NaN
18
[Something] const short extAttr = NaN
18

Attributes

Basic attributes testing.

attribute DOMString regular
1
readonly attribute DOMString ro
2
[Something] readonly attribute DOMString ext
3
attribute sequence<Date> dates
3.5

Operations

Basic operations testing.

void basic()
1
[Something] void ext()
2
unsigned long long ull()
3
Perhaps? ull()
3.5
short[][][][] paramed()
4
Date[][][] one
4.1
[ExtAttrs] ByteString? ext
4.1
optional short maybe
4.2
short[] shorts
4.3
short[][][][] hypercubes
4.3
optional short defaulted = 3.5
4.3
DOMString defaulted2 = "one"
4.3
short... variable
4.last

Serializer

attribute DOMString foo
attribute DOMString bar
serializer = { foo, bar }

Dictionaries

Basic dictionary.

Inheriting dictionary.

Data in dictionary.

DOMString value
1
DOMString? nullable
2
[Something]float ext
3
unsigned long long longLong
4
boolean test = true
5
byte little = 2
7
byte big = Infinity
8
byte cheese = NaN
9
DOMString blah = "blah blah"
10

Exceptions

Basic exception.

Inheriting exception.

Exception with content.

[Something]const long value = 42
1
Object? message
2
sequence<float> floats
3
long[][] numbers
4

Enumerations

Basic enumeration.

one
1
two
2
three
3

Callbacks

Basic callback.

Less basic callback.

optional any value
1

Typedefs

Basic typedef.

Less basic typedef.

Implements

Basic implements.

Less basic implements.