webidl2
Version:
A WebIDL Parser
35 lines (32 loc) • 910 B
JavaScript
import { Container } from "./container.js";
import { Operation } from "./operation.js";
import { Constant } from "./constant.js";
export class CallbackInterface extends Container {
/**
* @param {import("../tokeniser.js").Tokeniser} tokeniser
* @param {*} callback
* @param {object} [options]
* @param {import("./container.js").AllowedMember[]} [options.extMembers]
*/
static parse(tokeniser, callback, { extMembers = [] } = {}) {
const tokens = { callback };
tokens.base = tokeniser.consume("interface");
if (!tokens.base) {
return;
}
return Container.parse(
tokeniser,
new CallbackInterface({ source: tokeniser.source, tokens }),
{
allowedMembers: [
...extMembers,
[Constant.parse],
[Operation.parse, { regular: true }],
],
},
);
}
get type() {
return "callback interface";
}
}