Update web-platform-tests to revision 4f397167b4ed552a02201c92d363cfaecfe2c7f0

This commit is contained in:
WPT Sync Bot 2018-04-26 21:09:36 -04:00 committed by Anthony Ramine
parent 73b5bf201f
commit 84b40513c3
182 changed files with 4779 additions and 1937 deletions

View file

@ -4,37 +4,17 @@
"use strict";
const wp = require("../lib/webidl2");
const expect = require("expect");
const pth = require("path");
const { collect } = require("./util/collect");
const fs = require("fs");
const expect = require("expect");
describe("Parses all of the invalid IDLs to check that they blow up correctly", () => {
const dir = pth.join(__dirname, "invalid/idl");
const skip = {};
const idls = fs.readdirSync(dir)
.filter(it => (/\.w?idl$/).test(it) && !skip[it])
.map(it => pth.join(dir, it));
const errors = idls.map(it => pth.join(__dirname, "invalid", "json", pth.basename(it).replace(/\.w?idl/, ".json")));
for (let i = 0, n = idls.length; i < n; i++) {
const idl = idls[i];
const err = JSON.parse(fs.readFileSync(errors[i], "utf8"));
it(`should produce the right error for ${idl}`, () => {
let error;
try {
var ast = wp.parse(fs.readFileSync(idl, "utf8"));
console.log(JSON.stringify(ast, null, 4));
}
catch (e) {
error = e;
}
finally {
expect(error).toBeTruthy();
expect(error.message).toEqual(err.message);
expect(error.line).toEqual(err.line);
}
for (const test of collect("invalid", { expectError: true })) {
it(`should produce the right error for ${test.path}`, () => {
const err = test.readJSON();
expect(test.error).toBeTruthy();
expect(test.error.message).toEqual(err.message);
expect(test.error.line).toEqual(err.line);
});
}
});

View file

@ -0,0 +1,7 @@
callback interface NoSemicolon {
attribute boolean noSemiColon;
}
enum YouNeedOne {
"really"
}

View file

@ -0,0 +1,7 @@
partial interface NoSemicolon {
attribute boolean noSemiColon;
}
enum YouNeedOne {
"really"
}

View file

@ -0,0 +1,2 @@
// This is a comment.
/ This is not.

View file

@ -1,4 +1,4 @@
{
"message": "No name in attribute",
"message": "Got an error during or right after parsing `interface LotteryResults`: No name in attribute",
"line": 5
}
}

View file

@ -1,4 +1,4 @@
{
"message": "Invalid operation",
"message": "Got an error during or right after parsing `interface NumberQuadrupler`: Invalid operation",
"line": 6
}

View file

@ -1,4 +1,4 @@
{
"message": "Required member must not have a default"
"message": "Got an error during or right after parsing `dictionary Dict`: Required member must not have a default"
, "line": 4
}

View file

@ -1,4 +1,4 @@
{
"message": "The name \"Test\" of type \"typedef\" is already seen",
"message": "Got an error during or right after parsing `typedef Test`: The name \"Test\" of type \"typedef\" is already seen",
"line": 3
}
}

View file

@ -1,4 +1,4 @@
{
"message": "Unexpected value in enum"
"message": "Got an error during or right after parsing `enum foo`: Unexpected value in enum"
, "line": 1
}

View file

@ -1,4 +1,4 @@
{
"message": "Unrecognised tokens",
"message": "Got an error before parsing any named definition: Unrecognised tokens",
"line": 4
}

View file

@ -0,0 +1,4 @@
{
"message": "Got an error during or right after parsing `interface SessionManager`: Invalid operation",
"line": 5
}

View file

@ -1,4 +1,4 @@
{
"message": "Missing second type argument in maplike declaration",
"message": "Got an error during or right after parsing `interface MapLikeOneType`: Missing second type argument in maplike declaration",
"line": 2
}
}

View file

@ -1,4 +1,4 @@
{
"message": "Unrecognised tokens"
"message": "Got an error before parsing any named definition: Unrecognised tokens"
, "line": 2
}

View file

@ -0,0 +1,4 @@
{
"message": "Got an error during or right after parsing `callback interface NoSemicolon`: Missing semicolon after interface",
"line": 5
}

View file

@ -0,0 +1,4 @@
{
"message": "Got an error during or right after parsing `partial interface NoSemicolon`: Missing semicolon after interface",
"line": 5
}

View file

@ -1,4 +1,4 @@
{
"message": "Type any cannot be made nullable"
"message": "Got an error during or right after parsing `interface NonNullable`: Type any cannot be made nullable"
, "line": 2
}

View file

@ -1,4 +1,4 @@
{
"message": "Can't nullable more than once"
"message": "Got an error during or right after parsing `interface NonNullable`: Can't nullable more than once"
, "line": 4
}

View file

@ -1,4 +1,4 @@
{
"message": "Promise type cannot have extended attribute",
"message": "Got an error during or right after parsing `interface Foo`: Promise type cannot have extended attribute",
"line": 2
}

View file

@ -1,4 +1,4 @@
{
"message": "Unterminated attribute"
"message": "Got an error during or right after parsing `interface Person`: Unterminated attribute"
, "line": 5
}

View file

@ -1,4 +1,4 @@
{
"message": "Invalid operation",
"message": "Got an error during or right after parsing `interface ReadonlyIterable`: Invalid operation",
"line": 2
}
}

View file

@ -1,4 +1,4 @@
{
"message": "Record key cannot have extended attribute",
"message": "Got an error during or right after parsing `interface Foo`: Record key cannot have extended attribute",
"line": 2
}

View file

@ -1,4 +1,4 @@
{
"message": "Record key must be DOMString, USVString, or ByteString",
"message": "Got an error during or right after parsing `interface Foo`: Record key must be DOMString, USVString, or ByteString",
"line": 2
}

View file

@ -1,4 +1,4 @@
{
"message": "No name in typedef"
"message": "Got an error before parsing any named definition: No name in typedef"
, "line": 2
}

View file

@ -1,4 +1,4 @@
{
"message": "Attributes cannot accept sequence types"
"message": "Got an error during or right after parsing `interface sequenceAsAttribute`: Attributes cannot accept sequence types"
, "line": 2
}

View file

@ -1,4 +1,4 @@
{
"message": "Unterminated setlike declaration",
"message": "Got an error during or right after parsing `interface SetLikeTwoTypes`: Unterminated setlike declaration",
"line": 2
}
}

View file

@ -1,4 +1,4 @@
{
"message": "Invalid operation",
"message": "Got an error during or right after parsing `interface OrderedMap`: Invalid operation",
"line": 3
}

View file

@ -1,4 +1,4 @@
{
"message": "Invalid operation"
"message": "Got an error during or right after parsing `interface Dictionary`: Invalid operation"
, "line": 6
}

View file

@ -0,0 +1,4 @@
{
"message": "Got an error before parsing any named definition: Unrecognised tokens"
, "line": 2
}

View file

@ -1,4 +1,4 @@
{
"message": "No value for const"
"message": "Got an error during or right after parsing `interface Util`: No value for const"
, "line": 2
}

View file

@ -1,4 +1,4 @@
{
"message": "Invalid operation"
"message": "Got an error during or right after parsing `interface Widget`: Invalid operation"
, "line": 14
}
}

View file

@ -1,34 +1,14 @@
"use strict";
const wp = require("../lib/webidl2");
const { collect } = require("./util/collect");
const expect = require("expect");
const pth = require("path");
const fs = require("fs");
const jdp = require("jsondiffpatch");
const debug = true;
describe("Parses all of the IDLs to produce the correct ASTs", () => {
const dir = pth.join(__dirname, "syntax/idl");
const skip = {}; // use if we have a broken test
const idls = fs.readdirSync(dir)
.filter(it => (/\.widl$/).test(it) && !skip[it])
.map(it => pth.join(dir, it));
const jsons = idls.map(it => pth.join(__dirname, "syntax/json", pth.basename(it).replace(".widl", ".json")));
for (let i = 0, n = idls.length; i < n; i++) {
const idl = idls[i];
const json = jsons[i];
it(`should produce the same AST for ${idl}`, () => {
for (const test of collect("syntax")) {
it(`should produce the same AST for ${test.path}`, () => {
try {
const optFile = pth.join(__dirname, "syntax/opt", pth.basename(json));
let opt = undefined;
if (fs.existsSync(optFile))
opt = JSON.parse(fs.readFileSync(optFile, "utf8"));
const diff = jdp.diff(JSON.parse(fs.readFileSync(json, "utf8")),
wp.parse(fs.readFileSync(idl, "utf8").replace(/\r\n/g, "\n"), opt));
if (diff && debug) console.log(JSON.stringify(diff, null, 4));
expect(diff).toBe(undefined);
expect(test.diff()).toBeFalsy();
}
catch (e) {
console.log(e.toString());

View file

@ -20,4 +20,10 @@ interface Circle {
attribute double cx;
attribute double cy;
readonly attribute double circumference;
};
};
// Extracted from https://heycam.github.io/webidl/#idl-annotated-types on 2017-12-15
[Exposed=Window]
interface I {
attribute [XAttr] (long or Node) attrib;
};

View file

@ -12,6 +12,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -30,6 +31,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -43,6 +45,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -62,6 +65,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -82,6 +86,7 @@
}
],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -24,4 +25,4 @@
"inheritance": null,
"extAttrs": []
}
]
]

View file

@ -3,6 +3,7 @@
"type": "callback",
"name": "AsyncOperationCallback",
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -15,6 +16,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -39,6 +41,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -52,6 +55,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -71,6 +75,7 @@
"type": "callback",
"name": "SortCallback",
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -83,6 +88,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -96,6 +102,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -7,7 +7,10 @@
{
"type": "const",
"nullable": false,
"idlType": "boolean",
"idlType": {
"type": "const-type",
"idlType": "boolean"
},
"name": "DEBUG",
"value": {
"type": "boolean",
@ -18,7 +21,10 @@
{
"type": "const",
"nullable": false,
"idlType": "short",
"idlType": {
"type": "const-type",
"idlType": "short"
},
"name": "negative",
"value": {
"type": "number",
@ -29,7 +35,10 @@
{
"type": "const",
"nullable": false,
"idlType": "octet",
"idlType": {
"type": "const-type",
"idlType": "octet"
},
"name": "LF",
"value": {
"type": "number",
@ -40,7 +49,10 @@
{
"type": "const",
"nullable": false,
"idlType": "unsigned long",
"idlType": {
"type": "const-type",
"idlType": "unsigned long"
},
"name": "BIT_MASK",
"value": {
"type": "number",
@ -51,7 +63,10 @@
{
"type": "const",
"nullable": false,
"idlType": "float",
"idlType": {
"type": "const-type",
"idlType": "float"
},
"name": "AVOGADRO",
"value": {
"type": "number",
@ -62,7 +77,10 @@
{
"type": "const",
"nullable": false,
"idlType": "unrestricted float",
"idlType": {
"type": "const-type",
"idlType": "unrestricted float"
},
"name": "sobig",
"value": {
"type": "Infinity",
@ -73,7 +91,10 @@
{
"type": "const",
"nullable": false,
"idlType": "unrestricted double",
"idlType": {
"type": "const-type",
"idlType": "unrestricted double"
},
"name": "minusonedividedbyzero",
"value": {
"type": "Infinity",
@ -84,7 +105,10 @@
{
"type": "const",
"nullable": false,
"idlType": "short",
"idlType": {
"type": "const-type",
"idlType": "short"
},
"name": "notanumber",
"value": {
"type": "NaN"
@ -95,4 +119,4 @@
"inheritance": null,
"extAttrs": []
}
]
]

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -27,6 +28,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -43,6 +45,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -59,6 +62,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -85,6 +89,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -9,6 +9,7 @@
"name": "fillPattern",
"required": false,
"idlType": {
"type": "dictionary-type",
"sequence": false,
"generic": null,
"nullable": true,
@ -26,6 +27,7 @@
"name": "strokePattern",
"required": false,
"idlType": {
"type": "dictionary-type",
"sequence": false,
"generic": null,
"nullable": true,
@ -42,6 +44,7 @@
"name": "position",
"required": false,
"idlType": {
"type": "dictionary-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -64,6 +67,7 @@
"name": "hydrometry",
"required": false,
"idlType": {
"type": "dictionary-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -76,4 +80,4 @@
"inheritance": "PaintOptions",
"extAttrs": []
}
]
]

View file

@ -9,6 +9,7 @@
"name": "fillPattern",
"required": false,
"idlType": {
"type": "dictionary-type",
"sequence": false,
"generic": null,
"nullable": true,
@ -26,6 +27,7 @@
"name": "strokePattern",
"required": false,
"idlType": {
"type": "dictionary-type",
"sequence": false,
"generic": null,
"nullable": true,
@ -42,6 +44,7 @@
"name": "position",
"required": false,
"idlType": {
"type": "dictionary-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -55,11 +58,13 @@
"name": "seq",
"required": false,
"idlType": {
"type": "dictionary-type",
"sequence": true,
"generic": "sequence",
"nullable": false,
"union": false,
"idlType": {
"type": "dictionary-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -78,6 +83,7 @@
"name": "reqSeq",
"required": true,
"idlType": {
"type": "dictionary-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -100,6 +106,7 @@
"name": "h",
"required": false,
"idlType": {
"type": "dictionary-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -113,6 +120,7 @@
"name": "d",
"required": false,
"idlType": {
"type": "dictionary-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -124,4 +132,4 @@
],
"extAttrs": []
}
]
]

View file

@ -7,4 +7,4 @@
"inheritance": null,
"extAttrs": []
}
]
]

View file

@ -7,4 +7,4 @@
"inheritance": null,
"extAttrs": []
}
]
]

View file

@ -3,9 +3,18 @@
"type": "enum",
"name": "MealType",
"values": [
{ "type": "string", "value": "rice" },
{ "type": "string", "value": "noodles" },
{ "type": "string", "value": "other" }
{
"type": "string",
"value": "rice"
},
{
"type": "string",
"value": "noodles"
},
{
"type": "string",
"value": "other"
}
],
"extAttrs": []
},
@ -21,6 +30,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -37,6 +47,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -54,6 +65,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -67,6 +79,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -80,6 +93,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -99,9 +113,18 @@
"type": "enum",
"name": "AltMealType",
"values": [
{ "type": "string", "value": "rice" },
{ "type": "string", "value": "noodles" },
{ "type": "string", "value": "other" }
{
"type": "string",
"value": "rice"
},
{
"type": "string",
"value": "noodles"
},
{
"type": "string",
"value": "other"
}
],
"extAttrs": []
}

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -28,6 +29,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -41,6 +43,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -60,6 +63,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -73,6 +77,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -86,6 +91,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -113,6 +119,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -130,6 +137,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -143,6 +151,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -162,6 +171,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -175,6 +185,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -188,6 +199,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -207,6 +219,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -220,6 +233,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -239,6 +253,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -252,6 +267,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -265,6 +281,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -30,139 +30,205 @@
]
},
{
"type": "interface",
"name": "IdInterface",
"partial": false,
"members": [],
"inheritance": null,
"extAttrs": [
{
"name": "IntAttr",
"arguments": null,
"type": "extended-attribute",
"rhs": {
"type": "integer",
"value": "0"
}
},
{
"name": "FloatAttr",
"arguments": null,
"type": "extended-attribute",
"rhs": {
"type": "float",
"value": "3.14"
}
},
{
"name": "StringAttr",
"arguments": null,
"type": "extended-attribute",
"rhs": {
"type": "string",
"value": "\"abc\""
}
}
]
"type": "interface",
"name": "IdInterface",
"partial": false,
"members": [],
"inheritance": null,
"extAttrs": [
{
"name": "IntAttr",
"arguments": null,
"type": "extended-attribute",
"rhs": {
"type": "integer",
"value": "0"
}
},
{
"name": "FloatAttr",
"arguments": null,
"type": "extended-attribute",
"rhs": {
"type": "float",
"value": "3.14"
}
},
{
"name": "StringAttr",
"arguments": null,
"type": "extended-attribute",
"rhs": {
"type": "string",
"value": "\"abc\""
}
}
]
},
{
"type": "interface",
"name": "Circle",
"partial": false,
"members": [
{
"type": "attribute",
"static": false,
"stringifier": false,
"inherit": false,
"readonly": false,
"idlType": {
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "double"
},
"name": "r",
"extAttrs": []
},
{
"type": "attribute",
"static": false,
"stringifier": false,
"inherit": false,
"readonly": false,
"idlType": {
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "double"
},
"name": "cx",
"extAttrs": []
},
{
"type": "attribute",
"static": false,
"stringifier": false,
"inherit": false,
"readonly": false,
"idlType": {
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "double"
},
"name": "cy",
"extAttrs": []
},
{
"type": "attribute",
"static": false,
"stringifier": false,
"inherit": false,
"readonly": true,
"idlType": {
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "double"
},
"name": "circumference",
"extAttrs": []
}
],
"inheritance": null,
"extAttrs": [
{
"name": "Constructor",
"arguments": null,
"type": "extended-attribute",
"rhs": null
},
{
"name": "Constructor",
"arguments": [
"type": "interface",
"name": "Circle",
"partial": false,
"members": [
{
"optional": false,
"variadic": false,
"extAttrs": [],
"idlType": {
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "double"
},
"name": "radius"
"type": "attribute",
"static": false,
"stringifier": false,
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "double"
},
"name": "r",
"extAttrs": []
},
{
"type": "attribute",
"static": false,
"stringifier": false,
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "double"
},
"name": "cx",
"extAttrs": []
},
{
"type": "attribute",
"static": false,
"stringifier": false,
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "double"
},
"name": "cy",
"extAttrs": []
},
{
"type": "attribute",
"static": false,
"stringifier": false,
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "double"
},
"name": "circumference",
"extAttrs": []
}
],
"type": "extended-attribute",
"rhs": null
}
]
],
"inheritance": null,
"extAttrs": [
{
"name": "Constructor",
"arguments": null,
"type": "extended-attribute",
"rhs": null
},
{
"name": "Constructor",
"arguments": [
{
"optional": false,
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "double"
},
"name": "radius"
}
],
"type": "extended-attribute",
"rhs": null
}
]
},
{
"type": "interface",
"name": "I",
"partial": false,
"members": [
{
"type": "attribute",
"static": false,
"stringifier": false,
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
"union": true,
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long"
},
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "Node"
}
],
"extAttrs": [
{
"name": "XAttr",
"arguments": null,
"type": "extended-attribute",
"rhs": null
}
]
},
"name": "attrib",
"extAttrs": []
}
],
"inheritance": null,
"extAttrs": [
{
"name": "Exposed",
"arguments": null,
"type": "extended-attribute",
"rhs": {
"type": "identifier",
"value": "Window"
}
}
]
}
]

View file

@ -12,21 +12,25 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": "Promise",
"nullable": false,
"union": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": "ResponsePromise",
"nullable": false,
"union": false,
"idlType": {
"type": "return-type",
"sequence": true,
"generic": "sequence",
"nullable": false,
"union": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": true,
@ -47,11 +51,13 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": "Promise",
"nullable": false,
"union": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -79,11 +85,13 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": "Promise",
"nullable": false,
"union": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": true,
@ -103,11 +111,13 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": "Promise",
"nullable": false,
"union": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -136,11 +146,13 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": "ResponsePromise",
"nullable": false,
"union": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -28,6 +29,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -41,6 +43,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -60,6 +63,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -73,6 +77,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -86,6 +91,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -2,6 +2,7 @@
{
"type": "typedef",
"idlType": {
"type": "typedef-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -24,6 +25,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -37,6 +39,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -56,6 +59,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -69,6 +73,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -96,6 +101,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -112,6 +118,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": true,
@ -138,6 +145,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -151,6 +159,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -37,6 +38,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -50,6 +52,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -63,6 +66,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -76,6 +80,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -28,6 +29,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -41,6 +43,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -60,6 +63,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -73,6 +77,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -86,6 +91,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -105,6 +111,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -118,6 +125,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -137,6 +145,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -150,6 +159,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -169,6 +179,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -182,6 +193,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -195,6 +207,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -214,6 +227,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -227,6 +241,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -36,6 +37,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -52,6 +54,7 @@
"inherit": true,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -65,4 +68,4 @@
"inheritance": "Animal",
"extAttrs": []
}
]
]

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -36,6 +37,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -61,6 +63,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -74,4 +77,4 @@
"inheritance": "Animal",
"extAttrs": []
}
]
]

View file

@ -6,13 +6,16 @@
"members": [
{
"type": "iterable",
"idlType": {
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long"
},
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long"
}
],
"extAttrs": []
}
],
@ -28,6 +31,7 @@
"type": "iterable",
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
@ -35,6 +39,7 @@
"idlType": "short"
},
{
"type": null,
"sequence": false,
"generic": null,
"nullable": true,
@ -55,21 +60,24 @@
"members": [
{
"type": "iterable",
"idlType": {
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long",
"extAttrs": [
{
"name": "XAttr",
"arguments": null,
"type": "extended-attribute",
"rhs": null
}
]
},
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long",
"extAttrs": [
{
"name": "XAttr",
"arguments": null,
"type": "extended-attribute",
"rhs": null
}
]
}
],
"extAttrs": []
}
],
@ -77,4 +85,3 @@
"extAttrs": []
}
]

View file

@ -6,13 +6,16 @@
"members": [
{
"type": "legacyiterable",
"idlType": {
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long"
},
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long"
}
],
"extAttrs": []
}
],
@ -20,4 +23,3 @@
"extAttrs": []
}
]

View file

@ -8,6 +8,7 @@
"type": "maplike",
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
@ -15,6 +16,7 @@
"idlType": "long"
},
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
@ -38,6 +40,7 @@
"type": "maplike",
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
@ -45,6 +48,7 @@
"idlType": "long"
},
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
@ -68,6 +72,7 @@
"type": "maplike",
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
@ -83,6 +88,7 @@
]
},
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
@ -106,4 +112,3 @@
"extAttrs": []
}
]

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -47,6 +48,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -23,6 +23,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -40,4 +41,4 @@
}
]
}
]
]

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -28,6 +29,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -41,6 +43,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -54,6 +57,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -73,6 +77,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -86,6 +91,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -99,6 +105,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -12,6 +12,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -25,6 +26,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -7,7 +7,10 @@
{
"type": "const",
"nullable": true,
"idlType": "boolean",
"idlType": {
"type": "const-type",
"idlType": "boolean"
},
"name": "ARE_WE_THERE_YET",
"value": {
"type": "boolean",
@ -31,6 +34,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": true,
@ -44,4 +48,4 @@
"inheritance": null,
"extAttrs": []
}
]
]

View file

@ -28,6 +28,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -41,6 +42,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": true,
@ -60,6 +62,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -73,6 +76,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": true,

View file

@ -12,6 +12,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -25,6 +26,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -38,6 +40,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -51,6 +54,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -64,6 +68,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -28,6 +28,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -41,6 +42,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -60,6 +62,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -73,6 +76,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -101,6 +105,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -114,6 +119,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -133,6 +139,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -153,6 +160,7 @@
}
],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -166,6 +174,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -179,6 +188,7 @@
"variadic": true,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -198,6 +208,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -216,6 +227,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -229,6 +241,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -242,6 +255,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -255,6 +269,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -268,6 +283,7 @@
"variadic": true,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -28,6 +29,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -41,6 +43,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -36,6 +37,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -48,4 +50,4 @@
],
"extAttrs": []
}
]
]

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -27,6 +28,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -43,6 +45,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -59,6 +62,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -75,6 +79,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -91,6 +96,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -107,6 +113,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -123,6 +130,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -139,6 +147,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -155,6 +164,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -171,6 +181,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -187,6 +198,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -203,6 +215,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -219,6 +232,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -235,6 +249,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -251,6 +266,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -267,6 +283,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -280,4 +297,4 @@
"inheritance": null,
"extAttrs": []
}
]
]

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -37,6 +38,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -50,4 +52,4 @@
"inheritance": null,
"extAttrs": []
}
]
]

View file

@ -12,6 +12,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -25,17 +26,20 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": true,
"generic": "sequence",
"nullable": false,
"union": false,
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": "record",
"nullable": false,
"union": false,
"idlType": [
{
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -43,6 +47,7 @@
"idlType": "ByteString"
},
{
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -65,12 +70,14 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": "record",
"nullable": false,
"union": false,
"idlType": [
{
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -78,12 +85,14 @@
"idlType": "DOMString"
},
{
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": true,
"union": true,
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
@ -91,6 +100,7 @@
"idlType": "float"
},
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
@ -113,6 +123,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -134,12 +145,14 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": "record",
"nullable": false,
"union": false,
"idlType": [
{
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -147,6 +160,7 @@
"idlType": "USVString"
},
{
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -176,12 +190,14 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": "record",
"nullable": false,
"union": false,
"idlType": [
{
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -189,6 +205,7 @@
"idlType": "DOMString"
},
{
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -27,6 +28,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -53,6 +55,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -71,6 +74,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -84,6 +88,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -103,6 +108,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -116,6 +122,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -129,6 +136,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -35,6 +36,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -12,6 +12,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -25,11 +26,13 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": true,
"generic": "sequence",
"nullable": false,
"union": false,
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -50,11 +53,13 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": true,
"generic": "sequence",
"nullable": false,
"union": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -75,7 +80,6 @@
"name": "Foo",
"partial": false,
"members": [
{
"type": "operation",
"getter": false,
@ -84,6 +88,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -98,7 +103,6 @@
"inheritance": null,
"extAttrs": []
},
{
"type": "interface",
"name": "I",
@ -112,6 +116,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -125,11 +130,13 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": true,
"generic": "sequence",
"nullable": false,
"union": false,
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -6,13 +6,16 @@
"members": [
{
"type": "setlike",
"idlType": {
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long"
},
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long"
}
],
"readonly": false,
"extAttrs": []
}
@ -27,13 +30,16 @@
"members": [
{
"type": "setlike",
"idlType": {
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long"
},
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long"
}
],
"readonly": true,
"extAttrs": []
}
@ -48,21 +54,24 @@
"members": [
{
"type": "setlike",
"idlType": {
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long",
"extAttrs": [
{
"name": "XAttr",
"arguments": null,
"type": "extended-attribute",
"rhs": null
}
]
},
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long",
"extAttrs": [
{
"name": "XAttr",
"arguments": null,
"type": "extended-attribute",
"rhs": null
}
]
}
],
"readonly": false,
"extAttrs": []
}
@ -71,4 +80,3 @@
"extAttrs": []
}
]

View file

@ -19,6 +19,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -35,6 +36,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -51,6 +53,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -67,6 +70,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -84,6 +88,7 @@
"static": true,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -97,6 +102,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -110,6 +116,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -123,6 +130,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -27,6 +28,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -27,6 +28,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": true,
@ -43,6 +45,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -60,6 +63,7 @@
"static": false,
"stringifier": true,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -12,6 +12,7 @@
"static": false,
"stringifier": true,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -27,6 +28,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -44,6 +46,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -67,6 +70,7 @@
}
],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -27,6 +28,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -44,6 +46,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -67,6 +70,7 @@
}
],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -1,49 +1,48 @@
[
{
"type" : "typedef",
"idlType" : {
"nullable" : false,
"generic" : null,
"union" : true,
"idlType" : [
{
"union" : false,
"generic" : null,
"nullable" : false,
"array" : false,
"sequence" : false,
"idlType" : "ImageData"
},
{
"generic" : null,
"union" : false,
"nullable" : false,
"array" : false,
"idlType" : "HTMLImageElement",
"sequence" : false
},
{
"array" : false,
"sequence" : false,
"idlType" : "HTMLCanvasElement",
"generic" : null,
"union" : false,
"nullable" : false
},
{
"union" : false,
"generic" : null,
"nullable" : false,
"array" : false,
"sequence" : false,
"idlType" : "HTMLVideoElement"
}
],
"sequence" : false,
"array" : false
},
"name" : "TexImageSource",
"extAttrs" : [],
"typeExtAttrs" : []
}
{
"type": "typedef",
"idlType": {
"type": "typedef-type",
"sequence": false,
"generic": null,
"nullable": false,
"union": true,
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "ImageData"
},
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "HTMLImageElement"
},
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "HTMLCanvasElement"
},
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "HTMLVideoElement"
}
]
},
"name": "TexImageSource",
"extAttrs": []
}
]

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -27,6 +28,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -43,11 +45,13 @@
{
"type": "typedef",
"idlType": {
"type": "typedef-type",
"sequence": true,
"generic": "sequence",
"nullable": false,
"union": false,
"idlType": {
"type": "typedef-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -70,6 +74,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -86,6 +91,7 @@
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -111,6 +117,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -128,6 +135,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -141,6 +149,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -160,6 +169,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -173,6 +183,7 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -191,6 +202,7 @@
{
"type": "typedef",
"idlType": {
"type": "typedef-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -12,6 +12,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -25,11 +26,13 @@
"variadic": false,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": true,
"generic": "sequence",
"nullable": true,
"union": false,
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": true,

View file

@ -1,118 +1,129 @@
[
{
"partial": false,
"members": [
{
"idlType": {
"idlType": [
{
"union": false,
"sequence": false,
"generic": null,
"idlType": "float",
"nullable": false
},
{
"idlType": [
{
"type": "interface",
"name": "Union",
"partial": false,
"members": [
{
"type": "attribute",
"static": false,
"stringifier": false,
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
"union": true,
"idlType": [
{
"nullable": false,
"idlType": "Date",
"sequence": false,
"generic": null,
"union": false
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "float"
},
{
"nullable": false,
"idlType": "Event",
"generic": null,
"sequence": false,
"union": false
}
],
"nullable": false,
"sequence": false,
"generic": null,
"union": true
},
{
"generic": null,
"sequence": false,
"idlType": [
{
"union": false,
"sequence": false,
"generic": null,
"nullable": false,
"idlType": "Node"
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": true,
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "Date"
},
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "Event"
}
]
},
{
"nullable": false,
"idlType": "DOMString",
"sequence": false,
"generic": null,
"union": false
"type": null,
"sequence": false,
"generic": null,
"nullable": true,
"union": true,
"idlType": [
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "Node"
},
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "DOMString"
}
]
}
],
"nullable": true,
"union": true
}
],
"nullable": false,
"generic": null,
"sequence": false,
"union": true
]
},
"name": "test",
"extAttrs": []
},
"name": "test",
"inherit": false,
"type": "attribute",
"extAttrs": [],
"readonly": false,
"stringifier": false,
"static": false
},
{
"readonly": false,
"extAttrs": [],
"stringifier": false,
"static": false,
"name": "test2",
"idlType": {
"nullable": false,
"idlType": [
{
"extAttrs": [
{
"type": "attribute",
"static": false,
"stringifier": false,
"inherit": false,
"readonly": false,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
"union": true,
"idlType": [
{
"name": "EnforceRange",
"arguments": null,
"type": "extended-attribute",
"rhs": null
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "long",
"extAttrs": [
{
"name": "EnforceRange",
"arguments": null,
"type": "extended-attribute",
"rhs": null
}
]
},
{
"type": null,
"sequence": false,
"generic": null,
"nullable": false,
"union": false,
"idlType": "Date"
}
],
"nullable": false,
"idlType": "long",
"generic": null,
"sequence": false,
"union": false
},
{
"union": false,
"sequence": false,
"generic": null,
"idlType": "Date",
"nullable": false
}
],
"generic": null,
"sequence": false,
"union": true
},
"inherit": false,
"type": "attribute"
}
],
"inheritance": null,
"name": "Union",
"extAttrs": [],
"type": "interface"
}
]
},
"name": "test2",
"extAttrs": []
}
],
"inheritance": null,
"extAttrs": []
}
]

View file

@ -11,6 +11,7 @@
"inherit": false,
"readonly": true,
"idlType": {
"type": "attribute-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -28,6 +29,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -41,6 +43,7 @@
"variadic": true,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -60,6 +63,7 @@
"static": false,
"stringifier": false,
"idlType": {
"type": "return-type",
"sequence": false,
"generic": null,
"nullable": false,
@ -73,6 +77,7 @@
"variadic": true,
"extAttrs": [],
"idlType": {
"type": "argument-type",
"sequence": false,
"generic": null,
"nullable": false,

View file

@ -0,0 +1,8 @@
"use strict";
const { collect } = require("./collect");
const fs = require("fs");
for (const test of collect("syntax")) {
fs.writeFileSync(test.jsonPath, `${JSON.stringify(test.ast, null, 4)}\n`)
}

View file

@ -0,0 +1,59 @@
"use strict";
const wp = require("../../lib/webidl2");
const pth = require("path");
const fs = require("fs");
const jdp = require("jsondiffpatch");
/**
* Collects test items from the specified directory
* @param {string} base
*/
function* collect(base, { expectError } = {}) {
base = pth.join(__dirname, "..", base);
const dir = pth.join(base, "idl");
const idls = fs.readdirSync(dir)
.filter(it => (/\.widl$/).test(it))
.map(it => pth.join(dir, it));
for (const path of idls) {
const optFile = pth.join(base, "opt", pth.basename(path)).replace(".widl", ".json");
let opt;
if (fs.existsSync(optFile))
opt = JSON.parse(fs.readFileSync(optFile, "utf8"));
try {
const ast = wp.parse(fs.readFileSync(path, "utf8").replace(/\r\n/g, "\n"), opt);
yield new TestItem({ ast, path, opt });
}
catch (error) {
if (expectError) {
yield new TestItem({ path, error });
}
else {
throw error;
}
}
}
};
class TestItem {
constructor({ ast, path, error, opt }) {
this.ast = ast;
this.path = path;
this.error = error;
this.opt = opt;
this.jsonPath = pth.join(pth.dirname(path), "../json", pth.basename(path).replace(".widl", ".json"));
}
readJSON() {
return JSON.parse(fs.readFileSync(this.jsonPath, "utf8"));
}
diff(target = this.readJSON()) {
return jdp.diff(target, this.ast);
}
}
module.exports.collect = collect;

View file

@ -0,0 +1,23 @@
"use strict";
const { collect } = require("./util/collect");
const wp = require("../lib/webidl2");
const writer = require("../lib/writer");
const expect = require("expect");
const debug = true;
describe("Rewrite and parses all of the IDLs to produce the same ASTs", () => {
for (const test of collect("syntax")) {
it(`should produce the same AST for ${test.path}`, () => {
try {
const diff = test.diff(wp.parse(writer.write(test.ast), test.opt));
if (diff && debug) console.log(JSON.stringify(diff, null, 4));
expect(diff).toBe(undefined);
}
catch (e) {
console.log(e.toString());
throw e;
}
});
}
});