mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-03-20 04:00:52 +00:00
This commit refactors WebIDL code generation to walk over the fields of `FirstPassRecord` instead of walking the AST again. This helps remove redundancies like checking `is_chrome_only` as well as revisiting partial interfaces and such. This should make it more clear that the first pass's job is to walk the AST and collect all relevant information, while the codegen pass is purely about appending items to a `Program`. Additionally this refactoring will also soon be used to prepare different data structures for operation overloadings, avoiding the need to walk those ASTs twice.
98 lines
1.7 KiB
Plaintext
Vendored
98 lines
1.7 KiB
Plaintext
Vendored
[Constructor(double value)]
|
|
interface Method {
|
|
[Pure]
|
|
boolean myCmp(Method bar);
|
|
};
|
|
|
|
[Constructor(double value)]
|
|
interface Property {
|
|
[Pure]
|
|
attribute double value;
|
|
};
|
|
|
|
[NamedConstructor=NamedConstructorBar(double value)]
|
|
interface NamedConstructor {
|
|
[Pure]
|
|
readonly attribute double value;
|
|
};
|
|
|
|
interface StaticMethod {
|
|
static double swap(double value);
|
|
};
|
|
|
|
interface StaticProperty {
|
|
static attribute double value;
|
|
};
|
|
|
|
[Constructor()]
|
|
interface UndefinedMethod {
|
|
boolean ok_method();
|
|
boolean bad_method(UndefinedType undef);
|
|
};
|
|
|
|
[Constructor()]
|
|
interface NullableMethod {
|
|
octet? opt(short? a);
|
|
};
|
|
|
|
[Global=GlobalMethod, Constructor()]
|
|
interface GlobalMethod {
|
|
octet m();
|
|
};
|
|
|
|
[Constructor()]
|
|
interface Indexing {
|
|
getter short (unsigned long index);
|
|
setter void (unsigned long index, short value);
|
|
deleter void (unsigned long index);
|
|
};
|
|
|
|
[Constructor()]
|
|
interface OptionalAndUnionArguments {
|
|
DOMString m(
|
|
DOMString a,
|
|
optional boolean b = true,
|
|
optional (short or DOMString) c = 123,
|
|
optional (long long or boolean)? d = 456
|
|
);
|
|
};
|
|
|
|
[Constructor()]
|
|
interface Unforgeable {
|
|
[Unforgeable] readonly attribute short uno;
|
|
readonly attribute short dos;
|
|
};
|
|
|
|
[Constructor]
|
|
interface PartialInterface {
|
|
readonly attribute short un;
|
|
short deux();
|
|
};
|
|
|
|
partial interface PartialInterface {
|
|
readonly attribute short trois;
|
|
short quatre();
|
|
};
|
|
|
|
[Constructor(short bar)]
|
|
interface MixinFoo {
|
|
static attribute short defaultBar;
|
|
};
|
|
|
|
interface mixin MixinBar {
|
|
readonly attribute short bar;
|
|
};
|
|
|
|
partial interface mixin MixinBar {
|
|
void addToBar(short other);
|
|
};
|
|
|
|
MixinFoo includes MixinBar;
|
|
|
|
[Constructor()]
|
|
interface Overloads {
|
|
void foo();
|
|
void foo(DOMString arg, optional long a);
|
|
void foo(DOMString arg, (float or short) b);
|
|
};
|