This fake spec tried to exercise all aspects of WebIDL so as to do regression testing in this
complex piece of code.
Unsupported
The following aspects of WebIDL are not currently supported and are not yet tested for:
-
Names that begin with
_
in the IDL must drop the leading _
for
their real name.
-
Static, inherit, stringifier attributes.
- Static operations
- Default arguments
- IDL wrapping
- Special operations
- Union types
- partial dictionaries
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:
- Check that [], sequence, ?, and other such bothersome types are tested everywhere
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.