Auto merge of #28663 - saschanaz:void-undefined, r=jdm

Convert Web IDL void to undefined

<!-- Please describe your changes on the following line: -->

Thanks to my tool https://github.com/saschanaz/gecko-webidl 🙌

Build is failing on my current VS2022+Python 3.10 environment, but the IDL tests are passing anyway, so...

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #27660

<!-- Either: -->
- [x] There are tests for these changes

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
This commit is contained in:
bors-servo 2022-01-16 23:06:45 -05:00 committed by GitHub
commit 35e95f55a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
159 changed files with 1148 additions and 1130 deletions

View file

@ -1188,7 +1188,7 @@ def getJSToNativeConversionInfo(type, descriptorProvider, failureCode=None,
return handleOptional(template, declType, handleDefault(empty))
if type.isVoid():
if type.isUndefined():
# This one only happens for return values, and its easy: Just
# ignore the jsval.
return JSToNativeConversionInfo("", None, None)
@ -1439,7 +1439,7 @@ def getConversionConfigForType(type, isEnforceRange, isClamp, treatNullAs):
# Returns a CGThing containing the type of the return value.
def getRetvalDeclarationForType(returnType, descriptorProvider):
if returnType is None or returnType.isVoid():
if returnType is None or returnType.isUndefined():
# Nothing to declare
return CGGeneric("()")
if returnType.isPrimitive() and returnType.tag() in builtinNames:
@ -4338,7 +4338,7 @@ class CGMemberJITInfo(CGThing):
result += self.defineJitInfo(setterinfo, setter, "Setter",
False, False, "AliasEverything",
False, False, "0",
[BuiltinTypes[IDLBuiltinType.Types.void]],
[BuiltinTypes[IDLBuiltinType.Types.undefined]],
None)
return result
if self.member.isMethod():
@ -4426,7 +4426,7 @@ class CGMemberJITInfo(CGThing):
if t.nullable():
# Sometimes it might return null, sometimes not
return "JSVAL_TYPE_UNKNOWN"
if t.isVoid():
if t.isUndefined():
# No return, every time
return "JSVAL_TYPE_UNDEFINED"
if t.isSequence():
@ -4500,7 +4500,7 @@ class CGMemberJITInfo(CGThing):
@staticmethod
def getJSArgType(t):
assert not t.isVoid()
assert not t.isUndefined()
if t.nullable():
# Sometimes it might return null, sometimes not
return "JSJitInfo_ArgType::Null as i32 | %s" % CGMemberJITInfo.getJSArgType(t.inner)
@ -7336,7 +7336,7 @@ class CGNativeMember(ClassMethod):
# Mark our getters, which are attrs that
# have a non-void return type, as const.
const=(not member.isStatic() and member.isAttr()
and not signature[0].isVoid()),
and not signature[0].isUndefined()),
breakAfterSelf=breakAfterSelf,
unsafe=unsafe,
visibility=visibility)
@ -7608,7 +7608,7 @@ class CallbackMember(CGNativeMember):
convertType = instantiateJSToNativeConversionTemplate(
template, replacements, declType, "rvalDecl")
if self.retvalType is None or self.retvalType.isVoid():
if self.retvalType is None or self.retvalType.isUndefined():
retval = "()"
elif self.retvalType.isAny():
retval = "rvalDecl.get()"

View file

@ -2093,7 +2093,7 @@ class IDLType(IDLObject):
'utf8string',
'jsstring',
'object',
'void',
'undefined',
# Funny stuff
'interface',
'dictionary',
@ -2168,8 +2168,8 @@ class IDLType(IDLObject):
def isJSString(self):
return False
def isVoid(self):
return self.name == "Void"
def isUndefined(self):
return self.name == "Undefined"
def isSequence(self):
return False
@ -2355,7 +2355,7 @@ class IDLParametrizedType(IDLType):
class IDLNullableType(IDLParametrizedType):
def __init__(self, location, innerType):
assert not innerType.isVoid()
assert not innerType.isUndefined()
assert not innerType == BuiltinTypes[IDLBuiltinType.Types.any]
IDLParametrizedType.__init__(self, location, None, innerType)
@ -2414,7 +2414,7 @@ class IDLNullableType(IDLParametrizedType):
def isInteger(self):
return self.inner.isInteger()
def isVoid(self):
def isUndefined(self):
return False
def isSequence(self):
@ -2517,7 +2517,7 @@ class IDLNullableType(IDLParametrizedType):
class IDLSequenceType(IDLParametrizedType):
def __init__(self, location, parameterType):
assert not parameterType.isVoid()
assert not parameterType.isUndefined()
IDLParametrizedType.__init__(self, location, parameterType.name, parameterType)
# Need to set self.name up front if our inner type is already complete,
@ -2561,7 +2561,7 @@ class IDLSequenceType(IDLParametrizedType):
def isJSString(self):
return False
def isVoid(self):
def isUndefined(self):
return False
def isSequence(self):
@ -2602,7 +2602,7 @@ class IDLRecordType(IDLParametrizedType):
def __init__(self, location, keyType, valueType):
assert keyType.isString()
assert keyType.isComplete()
assert not valueType.isVoid()
assert not valueType.isUndefined()
IDLParametrizedType.__init__(self, location, valueType.name, valueType)
self.keyType = keyType
@ -2673,7 +2673,7 @@ class IDLUnionType(IDLType):
def prettyName(self):
return "(" + " or ".join(m.prettyName() for m in self.memberTypes) + ")"
def isVoid(self):
def isUndefined(self):
return False
def isUnion(self):
@ -2836,8 +2836,8 @@ class IDLTypedefType(IDLType):
def isJSString(self):
return self.inner.isJSString()
def isVoid(self):
return self.inner.isVoid()
def isUndefined(self):
return self.inner.isUndefined()
def isJSONType(self):
return self.inner.isJSONType()
@ -2972,7 +2972,7 @@ class IDLWrapperType(IDLType):
def isJSString(self):
return False
def isVoid(self):
def isUndefined(self):
return False
def isSequence(self):
@ -3178,7 +3178,7 @@ class IDLBuiltinType(IDLType):
'utf8string',
'jsstring',
'object',
'void',
'undefined',
# Funny stuff
'ArrayBuffer',
'ArrayBufferView',
@ -3215,7 +3215,7 @@ class IDLBuiltinType(IDLType):
Types.utf8string: IDLType.Tags.utf8string,
Types.jsstring: IDLType.Tags.jsstring,
Types.object: IDLType.Tags.object,
Types.void: IDLType.Tags.void,
Types.undefined: IDLType.Tags.undefined,
Types.ArrayBuffer: IDLType.Tags.interface,
Types.ArrayBufferView: IDLType.Tags.interface,
Types.Int8Array: IDLType.Tags.interface,
@ -3251,7 +3251,7 @@ class IDLBuiltinType(IDLType):
Types.utf8string: "USVString", # That's what it is in spec terms
Types.jsstring: "USVString", # Again, that's what it is in spec terms
Types.object: "object",
Types.void: "void",
Types.undefined: "undefined",
Types.ArrayBuffer: "ArrayBuffer",
Types.ArrayBufferView: "ArrayBufferView",
Types.Int8Array: "Int8Array",
@ -3456,8 +3456,8 @@ class IDLBuiltinType(IDLType):
return False
if self.isObject():
return other.isPrimitive() or other.isString() or other.isEnum()
if self.isVoid():
return not other.isVoid()
if self.isUndefined():
return not other.isUndefined()
# Not much else we could be!
assert self.isSpiderMonkeyInterface()
# Like interfaces, but we know we're not a callback
@ -3591,9 +3591,9 @@ BuiltinTypes = {
IDLBuiltinType.Types.object:
IDLBuiltinType(BuiltinLocation("<builtin type>"), "Object",
IDLBuiltinType.Types.object),
IDLBuiltinType.Types.void:
IDLBuiltinType(BuiltinLocation("<builtin type>"), "Void",
IDLBuiltinType.Types.void),
IDLBuiltinType.Types.undefined:
IDLBuiltinType(BuiltinLocation("<builtin type>"), "Undefined",
IDLBuiltinType.Types.undefined),
IDLBuiltinType.Types.ArrayBuffer:
IDLBuiltinType(BuiltinLocation("<builtin type>"), "ArrayBuffer",
IDLBuiltinType.Types.ArrayBuffer),
@ -4196,9 +4196,9 @@ class IDLIterable(IDLMaplikeOrSetlikeOrIterableBase):
self.addMethod("values", members, False, self.iteratorType,
affectsNothing=True, newObject=True)
# void forEach(callback(valueType, keyType), optional any thisArg)
# undefined forEach(callback(valueType, keyType), optional any thisArg)
self.addMethod("forEach", members, False,
BuiltinTypes[IDLBuiltinType.Types.void],
BuiltinTypes[IDLBuiltinType.Types.undefined],
self.getForEachArguments())
def isValueIterator(self):
@ -4256,8 +4256,8 @@ class IDLMaplikeOrSetlike(IDLMaplikeOrSetlikeOrIterableBase):
self.addMethod("values", members, False, BuiltinTypes[IDLBuiltinType.Types.object],
affectsNothing=True, isIteratorAlias=self.isSetlike())
# void forEach(callback(valueType, keyType), thisVal)
self.addMethod("forEach", members, False, BuiltinTypes[IDLBuiltinType.Types.void],
# undefined forEach(callback(valueType, keyType), thisVal)
self.addMethod("forEach", members, False, BuiltinTypes[IDLBuiltinType.Types.undefined],
self.getForEachArguments())
def getKeyArg():
@ -4270,8 +4270,8 @@ class IDLMaplikeOrSetlike(IDLMaplikeOrSetlikeOrIterableBase):
[getKeyArg()], isPure=True)
if not self.readonly:
# void clear()
self.addMethod("clear", members, True, BuiltinTypes[IDLBuiltinType.Types.void],
# undefined clear()
self.addMethod("clear", members, True, BuiltinTypes[IDLBuiltinType.Types.undefined],
[])
# boolean delete(keyType key)
self.addMethod("delete", members, True,
@ -4280,8 +4280,8 @@ class IDLMaplikeOrSetlike(IDLMaplikeOrSetlikeOrIterableBase):
# Always generate underscored functions (e.g. __add, __clear) for js
# implemented interfaces as convenience functions.
if isJSImplemented:
# void clear()
self.addMethod("clear", members, True, BuiltinTypes[IDLBuiltinType.Types.void],
# undefined clear()
self.addMethod("clear", members, True, BuiltinTypes[IDLBuiltinType.Types.undefined],
[], chromeOnly=True)
# boolean delete(keyType key)
self.addMethod("delete", members, True,
@ -5119,7 +5119,7 @@ class IDLMethod(IDLInterfaceMember, IDLScope):
assert (arguments[0].type == BuiltinTypes[IDLBuiltinType.Types.domstring] or
arguments[0].type == BuiltinTypes[IDLBuiltinType.Types.unsigned_long])
assert not arguments[0].optional and not arguments[0].variadic
assert not self._getter or not overload.returnType.isVoid()
assert not self._getter or not overload.returnType.isUndefined()
if self._setter:
assert len(self._overloads) == 1
@ -5480,8 +5480,8 @@ class IDLMethod(IDLInterfaceMember, IDLScope):
# This is called before we've done overload resolution
overloads = self._overloads
assert len(overloads) == 1
if not overloads[0].returnType.isVoid():
raise WebIDLError("[LenientFloat] used on a non-void method",
if not overloads[0].returnType.isUndefined():
raise WebIDLError("[LenientFloat] used on a non-undefined returning method",
[attr.location, self.location])
if not overloads[0].includesRestrictedFloatArgument():
raise WebIDLError("[LenientFloat] used on an operation with no "
@ -5837,7 +5837,7 @@ class Tokenizer(object):
"record": "RECORD",
"short": "SHORT",
"unsigned": "UNSIGNED",
"void": "VOID",
"undefined": "UNDEFINED",
":": "COLON",
";": "SEMICOLON",
"{": "LBRACE",
@ -6722,8 +6722,8 @@ class Parser(Tokenizer):
"optional" if arguments[0].optional else "variadic"),
[arguments[0].location])
if getter:
if returnType.isVoid():
raise WebIDLError("getter cannot have void return type",
if returnType.isUndefined():
raise WebIDLError("getter cannot have undefined return type",
[self.getLocation(p, 2)])
if setter:
if len(arguments) != 2:
@ -7103,7 +7103,7 @@ class Parser(Tokenizer):
| SYMBOL
| TRUE
| UNSIGNED
| VOID
| UNDEFINED
| ArgumentNameKeyword
"""
pass
@ -7145,7 +7145,7 @@ class Parser(Tokenizer):
"""
p[0] = BuiltinTypes[IDLBuiltinType.Types.any]
# Note: Promise<void> is allowed, so we want to parametrize on ReturnType,
# Note: Promise<undefined> is allowed, so we want to parametrize on ReturnType,
# not Type. Promise types can't be null, hence no "Null" in there.
def p_SingleTypePromiseType(self, p):
"""
@ -7413,11 +7413,11 @@ class Parser(Tokenizer):
"""
p[0] = p[1]
def p_ReturnTypeVoid(self, p):
def p_ReturnTypeUndefined(self, p):
"""
ReturnType : VOID
ReturnType : UNDEFINED
"""
p[0] = BuiltinTypes[IDLBuiltinType.Types.void]
p[0] = BuiltinTypes[IDLBuiltinType.Types.undefined]
def p_ScopedName(self, p):
"""

View file

@ -3,7 +3,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface ArgumentIdentifierConflict {
void foo(boolean arg1, boolean arg1);
undefined foo(boolean arg1, boolean arg1);
};
""")

View file

@ -1,7 +1,7 @@
def WebIDLTest(parser, harness):
parser.parse("""
interface Foo {
void foo(object constructor);
undefined foo(object constructor);
};
""")

View file

@ -2,8 +2,8 @@ def WebIDLTest(parser, harness):
threw = False
try:
parser.parse("""
interface VoidArgument1 {
void foo(void arg2);
interface UndefinedArgument1 {
undefined foo(undefined arg2);
};
""")

View file

@ -4,37 +4,37 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface TestArrayBuffer {
attribute ArrayBuffer bufferAttr;
void bufferMethod(ArrayBuffer arg1, ArrayBuffer? arg2, sequence<ArrayBuffer> arg3);
undefined bufferMethod(ArrayBuffer arg1, ArrayBuffer? arg2, sequence<ArrayBuffer> arg3);
attribute ArrayBufferView viewAttr;
void viewMethod(ArrayBufferView arg1, ArrayBufferView? arg2, sequence<ArrayBufferView> arg3);
undefined viewMethod(ArrayBufferView arg1, ArrayBufferView? arg2, sequence<ArrayBufferView> arg3);
attribute Int8Array int8ArrayAttr;
void int8ArrayMethod(Int8Array arg1, Int8Array? arg2, sequence<Int8Array> arg3);
undefined int8ArrayMethod(Int8Array arg1, Int8Array? arg2, sequence<Int8Array> arg3);
attribute Uint8Array uint8ArrayAttr;
void uint8ArrayMethod(Uint8Array arg1, Uint8Array? arg2, sequence<Uint8Array> arg3);
undefined uint8ArrayMethod(Uint8Array arg1, Uint8Array? arg2, sequence<Uint8Array> arg3);
attribute Uint8ClampedArray uint8ClampedArrayAttr;
void uint8ClampedArrayMethod(Uint8ClampedArray arg1, Uint8ClampedArray? arg2, sequence<Uint8ClampedArray> arg3);
undefined uint8ClampedArrayMethod(Uint8ClampedArray arg1, Uint8ClampedArray? arg2, sequence<Uint8ClampedArray> arg3);
attribute Int16Array int16ArrayAttr;
void int16ArrayMethod(Int16Array arg1, Int16Array? arg2, sequence<Int16Array> arg3);
undefined int16ArrayMethod(Int16Array arg1, Int16Array? arg2, sequence<Int16Array> arg3);
attribute Uint16Array uint16ArrayAttr;
void uint16ArrayMethod(Uint16Array arg1, Uint16Array? arg2, sequence<Uint16Array> arg3);
undefined uint16ArrayMethod(Uint16Array arg1, Uint16Array? arg2, sequence<Uint16Array> arg3);
attribute Int32Array int32ArrayAttr;
void int32ArrayMethod(Int32Array arg1, Int32Array? arg2, sequence<Int32Array> arg3);
undefined int32ArrayMethod(Int32Array arg1, Int32Array? arg2, sequence<Int32Array> arg3);
attribute Uint32Array uint32ArrayAttr;
void uint32ArrayMethod(Uint32Array arg1, Uint32Array? arg2, sequence<Uint32Array> arg3);
undefined uint32ArrayMethod(Uint32Array arg1, Uint32Array? arg2, sequence<Uint32Array> arg3);
attribute Float32Array float32ArrayAttr;
void float32ArrayMethod(Float32Array arg1, Float32Array? arg2, sequence<Float32Array> arg3);
undefined float32ArrayMethod(Float32Array arg1, Float32Array? arg2, sequence<Float32Array> arg3);
attribute Float64Array float64ArrayAttr;
void float64ArrayMethod(Float64Array arg1, Float64Array? arg2, sequence<Float64Array> arg3);
undefined float64ArrayMethod(Float64Array arg1, Float64Array? arg2, sequence<Float64Array> arg3);
};
""")
@ -55,7 +55,7 @@ def WebIDLTest(parser, harness):
harness.ok(attr.type.isSpiderMonkeyInterface(), "Should test as a js interface")
(retType, arguments) = method.signatures()[0]
harness.ok(retType.isVoid(), "Should have a void return type")
harness.ok(retType.isUndefined(), "Should have a undefined return type")
harness.check(len(arguments), 3, "Expect 3 arguments")
harness.check(str(arguments[0].type), t, "Expect an ArrayBuffer type")

View file

@ -20,16 +20,16 @@ def WebIDLTest(parser, harness):
attribute [EnforceRange] long foo;
attribute [Clamp] long bar;
attribute [TreatNullAs=EmptyString] DOMString baz;
void method([EnforceRange] long foo, [Clamp] long bar,
undefined method([EnforceRange] long foo, [Clamp] long bar,
[TreatNullAs=EmptyString] DOMString baz);
void method2(optional [EnforceRange] long foo, optional [Clamp] long bar,
undefined method2(optional [EnforceRange] long foo, optional [Clamp] long bar,
optional [TreatNullAs=EmptyString] DOMString baz);
};
interface C {
attribute [EnforceRange] long? foo;
attribute [Clamp] long? bar;
void method([EnforceRange] long? foo, [Clamp] long? bar);
void method2(optional [EnforceRange] long? foo, optional [Clamp] long? bar);
undefined method([EnforceRange] long? foo, [Clamp] long? bar);
undefined method2(optional [EnforceRange] long? foo, optional [Clamp] long? bar);
};
interface Setlike {
setlike<[Clamp] long>;
@ -98,13 +98,13 @@ def WebIDLTest(parser, harness):
interface B {
attribute Foo typedefFoo;
attribute [AllowShared] ArrayBufferView foo;
void method([AllowShared] ArrayBufferView foo);
void method2(optional [AllowShared] ArrayBufferView foo);
undefined method([AllowShared] ArrayBufferView foo);
undefined method2(optional [AllowShared] ArrayBufferView foo);
};
interface C {
attribute [AllowShared] ArrayBufferView? foo;
void method([AllowShared] ArrayBufferView? foo);
void method2(optional [AllowShared] ArrayBufferView? foo);
undefined method([AllowShared] ArrayBufferView? foo);
undefined method2(optional [AllowShared] ArrayBufferView? foo);
};
interface Setlike {
setlike<[AllowShared] ArrayBufferView>;
@ -154,7 +154,7 @@ def WebIDLTest(parser, harness):
"""),
("optional arguments", """
interface Foo {
void foo(%s optional %s foo);
undefined foo(%s optional %s foo);
};
"""),
("typedefs", """
@ -189,7 +189,7 @@ def WebIDLTest(parser, harness):
"""),
("partial interface","""
interface Foo {
void foo();
undefined foo();
};
%s
partial interface Foo {
@ -210,7 +210,7 @@ def WebIDLTest(parser, harness):
"""),
("partial namespace","""
namespace Foo {
void foo();
undefined foo();
};
%s
partial namespace Foo {
@ -387,7 +387,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface Foo {
void foo([Clamp] Bar arg);
undefined foo([Clamp] Bar arg);
};
typedef long Bar;
""")
@ -403,7 +403,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface Foo {
void foo(Bar arg);
undefined foo(Bar arg);
};
typedef [Clamp] long Bar;
""")

View file

@ -60,8 +60,8 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface OptionalByteString {
void passByteString(optional ByteString arg = "hello");
};
undefined passByteString(optional ByteString arg = "hello");
};
""")
results2 = parser.finish();
except WebIDL.WebIDLError as e:

View file

@ -48,31 +48,31 @@ def WebIDLTest(parser, harness):
parser = parser.reset()
parser.parse("""
callback interface TestCallbackInterface1 {
void foo();
undefined foo();
};
callback interface TestCallbackInterface2 {
void foo(DOMString arg);
void foo(TestCallbackInterface1 arg);
undefined foo(DOMString arg);
undefined foo(TestCallbackInterface1 arg);
};
callback interface TestCallbackInterface3 {
void foo(DOMString arg);
void foo(TestCallbackInterface1 arg);
static void bar();
undefined foo(DOMString arg);
undefined foo(TestCallbackInterface1 arg);
static undefined bar();
};
callback interface TestCallbackInterface4 {
void foo(DOMString arg);
void foo(TestCallbackInterface1 arg);
static void bar();
undefined foo(DOMString arg);
undefined foo(TestCallbackInterface1 arg);
static undefined bar();
const long baz = 5;
};
callback interface TestCallbackInterface5 {
static attribute boolean bool;
void foo();
undefined foo();
};
callback interface TestCallbackInterface6 {
void foo(DOMString arg);
void foo(TestCallbackInterface1 arg);
void bar();
undefined foo(DOMString arg);
undefined foo(TestCallbackInterface1 arg);
undefined bar();
};
callback interface TestCallbackInterface7 {
static attribute boolean bool;
@ -81,10 +81,10 @@ def WebIDLTest(parser, harness):
attribute boolean bool;
};
callback interface TestCallbackInterface9 : TestCallbackInterface1 {
void foo();
undefined foo();
};
callback interface TestCallbackInterface10 : TestCallbackInterface1 {
void bar();
undefined bar();
};
""")
results = parser.finish()

View file

@ -3,7 +3,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface Foo {
[CEReactions(DOMString a)] void foo(boolean arg2);
[CEReactions(DOMString a)] undefined foo(boolean arg2);
};
""")
@ -47,7 +47,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface Foo {
[CEReactions] void foo(boolean arg2);
[CEReactions] undefined foo(boolean arg2);
};
""")

View file

@ -158,7 +158,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(A arg);
undefined doFoo(A arg);
};
""")
results = parser.finish()
@ -174,7 +174,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(optional A arg);
undefined doFoo(optional A arg);
};
""")
results = parser.finish()
@ -190,7 +190,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo((A or DOMString) arg);
undefined doFoo((A or DOMString) arg);
};
""")
results = parser.finish()
@ -207,7 +207,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(optional (A or DOMString) arg);
undefined doFoo(optional (A or DOMString) arg);
};
""")
results = parser.finish()
@ -224,7 +224,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(A arg1, optional long arg2);
undefined doFoo(A arg1, optional long arg2);
};
""")
results = parser.finish()
@ -240,7 +240,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(optional A arg1, optional long arg2);
undefined doFoo(optional A arg1, optional long arg2);
};
""")
results = parser.finish()
@ -256,7 +256,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(A arg1, optional long arg2, long arg3);
undefined doFoo(A arg1, optional long arg2, long arg3);
};
""")
results = parser.finish()
@ -273,7 +273,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo((A or DOMString) arg1, optional long arg2);
undefined doFoo((A or DOMString) arg1, optional long arg2);
};
""")
results = parser.finish()
@ -291,7 +291,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(optional (A or DOMString) arg1, optional long arg2);
undefined doFoo(optional (A or DOMString) arg1, optional long arg2);
};
""")
results = parser.finish()
@ -307,7 +307,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(A arg1, long arg2);
undefined doFoo(A arg1, long arg2);
};
""")
results = parser.finish()
@ -320,7 +320,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(optional A? arg1 = {});
undefined doFoo(optional A? arg1 = {});
};
""")
results = parser.finish()
@ -339,7 +339,7 @@ def WebIDLTest(parser, harness):
required long x;
};
interface X {
void doFoo(A? arg1);
undefined doFoo(A? arg1);
};
""")
results = parser.finish()
@ -358,7 +358,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(optional (A or long)? arg1 = {});
undefined doFoo(optional (A or long)? arg1 = {});
};
""")
results = parser.finish()
@ -378,7 +378,7 @@ def WebIDLTest(parser, harness):
required long x;
};
interface X {
void doFoo((A or long)? arg1);
undefined doFoo((A or long)? arg1);
};
""")
results = parser.finish()
@ -397,7 +397,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(sequence<A?> arg1);
undefined doFoo(sequence<A?> arg1);
};
""")
results = parser.finish()
@ -414,7 +414,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(optional (A or long?) arg1);
undefined doFoo(optional (A or long?) arg1);
};
""")
results = parser.finish()
@ -430,7 +430,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(optional (long? or A) arg1);
undefined doFoo(optional (long? or A) arg1);
};
""")
results = parser.finish()
@ -455,7 +455,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(optional A arg = {});
undefined doFoo(optional A arg = {});
};
""")
results = parser.finish()
@ -466,7 +466,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(optional (A or DOMString) arg = {});
undefined doFoo(optional (A or DOMString) arg = {});
};
""")
results = parser.finish()
@ -477,7 +477,7 @@ def WebIDLTest(parser, harness):
dictionary A {
};
interface X {
void doFoo(optional (A or DOMString) arg = "abc");
undefined doFoo(optional (A or DOMString) arg = "abc");
};
""")
results = parser.finish()

View file

@ -12,10 +12,10 @@ def WebIDLTest(parser, harness):
};
interface Bar {
// Bit of a pain to get things that have dictionary types
void passDict(Dict arg);
void passFoo(Foo arg);
void passNullableUnion((object? or DOMString) arg);
void passNullable(Foo? arg);
undefined passDict(Dict arg);
undefined passFoo(Foo arg);
undefined passNullableUnion((object? or DOMString) arg);
undefined passNullable(Foo? arg);
};
""")
results = parser.finish()
@ -56,13 +56,13 @@ def WebIDLTest(parser, harness):
parser = parser.reset()
parser.parse("""
interface TestIface {
void passKid(Kid arg);
void passParent(Parent arg);
void passGrandparent(Grandparent arg);
void passUnrelated1(Unrelated1 arg);
void passUnrelated2(Unrelated2 arg);
void passArrayBuffer(ArrayBuffer arg);
void passArrayBuffer(ArrayBufferView arg);
undefined passKid(Kid arg);
undefined passParent(Parent arg);
undefined passGrandparent(Grandparent arg);
undefined passUnrelated1(Unrelated1 arg);
undefined passUnrelated2(Unrelated2 arg);
undefined passArrayBuffer(ArrayBuffer arg);
undefined passArrayBuffer(ArrayBufferView arg);
};
interface Kid : Parent {};
@ -97,10 +97,10 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface Dummy {};
interface TestIface {
void method(long arg1, TestIface arg2);
void method(long arg1, long arg2);
void method(long arg1, Dummy arg2);
void method(DOMString arg1, DOMString arg2, DOMString arg3);
undefined method(long arg1, TestIface arg2);
undefined method(long arg1, long arg2);
undefined method(long arg1, Dummy arg2);
undefined method(DOMString arg1, DOMString arg2, DOMString arg3);
};
""")
results = parser.finish()
@ -115,10 +115,10 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface Dummy {};
interface TestIface {
void method(long arg1, TestIface arg2);
void method(long arg1, long arg2);
void method(any arg1, Dummy arg2);
void method(DOMString arg1, DOMString arg2, DOMString arg3);
undefined method(long arg1, TestIface arg2);
undefined method(long arg1, long arg2);
undefined method(any arg1, Dummy arg2);
undefined method(DOMString arg1, DOMString arg2, DOMString arg3);
};
""")
results = parser.finish()
@ -135,10 +135,10 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface Dummy {};
interface TestIface {
void method(long arg1, TestIface arg2);
void method(long arg1, long arg2);
void method(any arg1, DOMString arg2);
void method(DOMString arg1, DOMString arg2, DOMString arg3);
undefined method(long arg1, TestIface arg2);
undefined method(long arg1, long arg2);
undefined method(any arg1, DOMString arg2);
undefined method(DOMString arg1, DOMString arg2, DOMString arg3);
};
""")
results = parser.finish()
@ -272,7 +272,7 @@ def WebIDLTest(parser, harness):
};
"""
methodTemplate = """
void myMethod(%s arg);"""
undefined myMethod(%s arg);"""
methods = (methodTemplate % type1) + (methodTemplate % type2)
idl = idlTemplate % methods
parser = parser.reset()

View file

@ -19,7 +19,7 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface X {
void foo(optional sequence<long> arg = []);
undefined foo(optional sequence<long> arg = []);
};
""")
results = parser.finish();

View file

@ -71,7 +71,7 @@ def WebIDLTest(parser, harness):
"c"
};
interface TestInterface {
void foo(optional Enum e = "d");
undefined foo(optional Enum e = "d");
};
""")
results = parser.finish()

View file

@ -8,7 +8,7 @@ def WebIDLTest(parser, harness):
[Exposed=(Foo,Bar1)]
interface Iface {
void method1();
undefined method1();
[Exposed=Bar1]
readonly attribute any attr;
@ -16,7 +16,7 @@ def WebIDLTest(parser, harness):
[Exposed=Foo]
partial interface Iface {
void method2();
undefined method2();
};
""")
@ -57,7 +57,7 @@ def WebIDLTest(parser, harness):
[Exposed=Foo]
interface Iface2 {
void method3();
undefined method3();
};
""")
results = parser.finish()
@ -87,12 +87,12 @@ def WebIDLTest(parser, harness):
[Exposed=Foo]
interface Iface3 {
void method4();
undefined method4();
};
[Exposed=(Foo,Bar1)]
interface mixin Mixin {
void method5();
undefined method5();
};
Iface3 includes Mixin;
@ -152,7 +152,7 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface Bar {
[Exposed=Foo]
void operation();
undefined operation();
};
""")
@ -188,7 +188,7 @@ def WebIDLTest(parser, harness):
[Exposed=Foo]
interface Baz {
[Exposed=Bar]
void method();
undefined method();
};
""")
@ -205,12 +205,12 @@ def WebIDLTest(parser, harness):
[Exposed=Foo]
interface Baz {
void method();
undefined method();
};
[Exposed=Bar]
interface mixin Mixin {
void otherMethod();
undefined otherMethod();
};
Baz includes Mixin;

View file

@ -48,8 +48,8 @@ def WebIDLTest(parser, harness):
parser = parser.reset()
parser.parse("""
interface TestClamp {
void testClamp([Clamp] long foo);
void testNotClamp(long foo);
undefined testClamp([Clamp] long foo);
undefined testNotClamp(long foo);
};
""")
@ -66,7 +66,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface TestClamp2 {
void testClamp([Clamp=something] long foo);
undefined testClamp([Clamp=something] long foo);
};
""")
results = parser.finish()
@ -78,8 +78,8 @@ def WebIDLTest(parser, harness):
parser = parser.reset()
parser.parse("""
interface TestEnforceRange {
void testEnforceRange([EnforceRange] long foo);
void testNotEnforceRange(long foo);
undefined testEnforceRange([EnforceRange] long foo);
undefined testNotEnforceRange(long foo);
};
""")
@ -96,7 +96,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface TestEnforceRange2 {
void testEnforceRange([EnforceRange=something] long foo);
undefined testEnforceRange([EnforceRange=something] long foo);
};
""")
results = parser.finish()
@ -104,4 +104,4 @@ def WebIDLTest(parser, harness):
threw = True
harness.ok(threw, "[EnforceRange] must take no arguments")

View file

@ -14,23 +14,23 @@ def WebIDLTest(parser, harness):
[LenientFloat]
attribute double ld;
void m1(float arg1, double arg2, float? arg3, double? arg4,
undefined m1(float arg1, double arg2, float? arg3, double? arg4,
myFloat arg5, unrestricted float arg6,
unrestricted double arg7, unrestricted float? arg8,
unrestricted double? arg9, myUnrestrictedFloat arg10);
[LenientFloat]
void m2(float arg1, double arg2, float? arg3, double? arg4,
undefined m2(float arg1, double arg2, float? arg3, double? arg4,
myFloat arg5, unrestricted float arg6,
unrestricted double arg7, unrestricted float? arg8,
unrestricted double? arg9, myUnrestrictedFloat arg10);
[LenientFloat]
void m3(float arg);
undefined m3(float arg);
[LenientFloat]
void m4(double arg);
undefined m4(double arg);
[LenientFloat]
void m5((float or FloatTypes) arg);
undefined m5((float or FloatTypes) arg);
[LenientFloat]
void m6(sequence<float> arg);
undefined m6(sequence<float> arg);
};
""")
@ -70,7 +70,7 @@ def WebIDLTest(parser, harness):
""")
except Exception as x:
threw = True
harness.ok(threw, "[LenientFloat] only allowed on void methods")
harness.ok(threw, "[LenientFloat] only allowed on undefined-retuning methods")
parser = parser.reset()
threw = False
@ -78,7 +78,7 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface FloatTypes {
[LenientFloat]
void m(unrestricted float arg);
undefined m(unrestricted float arg);
};
""")
except Exception as x:
@ -91,7 +91,7 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface FloatTypes {
[LenientFloat]
void m(sequence<unrestricted float> arg);
undefined m(sequence<unrestricted float> arg);
};
""")
except Exception as x:
@ -104,7 +104,7 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface FloatTypes {
[LenientFloat]
void m((unrestricted float or FloatTypes) arg);
undefined m((unrestricted float or FloatTypes) arg);
};
""")
except Exception as x:

View file

@ -22,7 +22,7 @@ def WebIDLTest(parser, harness):
[Global, Exposed=Foo]
interface Foo {
getter any(DOMString name);
setter void(DOMString name, any arg);
setter undefined(DOMString name, any arg);
};
""")
results = parser.finish()
@ -40,7 +40,7 @@ def WebIDLTest(parser, harness):
[Global, Exposed=Foo]
interface Foo {
getter any(DOMString name);
deleter void(DOMString name);
deleter undefined(DOMString name);
};
""")
results = parser.finish()

View file

@ -3,7 +3,7 @@ import WebIDL
def WebIDLTest(parser, harness):
parser.parse("""
interface TestIncompleteParent : NotYetDefined {
void foo();
undefined foo();
};
interface NotYetDefined : EvenHigherOnTheChain {

View file

@ -32,7 +32,7 @@ def WebIDLTest(parser, harness):
interface QNameDerived : QNameBase {
attribute long long foo;
attribute byte bar;
attribute byte bar;
};
""")
results = parser.finish()
@ -99,11 +99,11 @@ def WebIDLTest(parser, harness):
constructor();
constructor(long arg);
readonly attribute boolean x;
void foo();
undefined foo();
};
partial interface A {
readonly attribute boolean y;
void foo(long arg);
undefined foo(long arg);
};
""");
results = parser.finish();
@ -127,13 +127,13 @@ def WebIDLTest(parser, harness):
parser.parse("""
partial interface A {
readonly attribute boolean y;
void foo(long arg);
undefined foo(long arg);
};
interface A {
constructor();
constructor(long arg);
readonly attribute boolean x;
void foo();
undefined foo();
};
""");
results = parser.finish();

View file

@ -358,7 +358,7 @@ def WebIDLTest(parser, harness):
interface Foo1 {
%s;
[Throws]
void %s(long test1, double test2, double test3);
undefined %s(long test1, double test2, double test3);
};
""" % (likeMember, conflictName), expectedMembers)
else:
@ -367,14 +367,14 @@ def WebIDLTest(parser, harness):
interface Foo1 {
%s;
[Throws]
void %s(long test1, double test2, double test3);
undefined %s(long test1, double test2, double test3);
};
""" % (likeMember, conflictName))
# Inherited conflicting methods should ALWAYS fail
shouldFail("Conflicting inherited method: %s and %s" % (likeMember, conflictName),
"""
interface Foo1 {
void %s(long test1, double test2, double test3);
undefined %s(long test1, double test2, double test3);
};
interface Foo2 : Foo1 {
%s;
@ -384,7 +384,7 @@ def WebIDLTest(parser, harness):
"""
interface Foo1 {
%s;
static void %s(long test1, double test2, double test3);
static undefined %s(long test1, double test2, double test3);
};
""" % (likeMember, conflictName))
shouldFail("Conflicting attribute: %s and %s" % (likeMember, conflictName),
@ -426,7 +426,7 @@ def WebIDLTest(parser, harness):
maplike<long, long>;
};
interface Foo2 : Foo1 {
void entries();
undefined entries();
};
""", mapRWMembers, numProductions=2)
@ -438,7 +438,7 @@ def WebIDLTest(parser, harness):
interface Foo2 : Foo1 {
};
interface Foo3 : Foo2 {
void entries();
undefined entries();
};
""", mapRWMembers, numProductions=3)
@ -448,7 +448,7 @@ def WebIDLTest(parser, harness):
maplike<long, long>;
};
interface mixin Foo2 {
void entries();
undefined entries();
};
Foo1 includes Foo2;
""")
@ -459,7 +459,7 @@ def WebIDLTest(parser, harness):
maplike<long, long>;
};
interface mixin Foo2 {
void entries();
undefined entries();
};
interface Foo3 : Foo1 {
};
@ -469,7 +469,7 @@ def WebIDLTest(parser, harness):
shouldFail("Inheritance of name collision with child maplike/setlike",
"""
interface Foo1 {
void entries();
undefined entries();
};
interface Foo2 : Foo1 {
maplike<long, long>;
@ -479,7 +479,7 @@ def WebIDLTest(parser, harness):
shouldFail("Inheritance of multi-level name collision with child maplike/setlike",
"""
interface Foo1 {
void entries();
undefined entries();
};
interface Foo2 : Foo1 {
};
@ -558,7 +558,7 @@ def WebIDLTest(parser, harness):
maplike<long, long>;
};
interface Foo2 : Foo1 {
void clear();
undefined clear();
};
""", mapRWMembers, numProductions=2)

View file

@ -30,11 +30,11 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface mixin A {
readonly attribute boolean x;
void foo();
undefined foo();
};
partial interface mixin A {
readonly attribute boolean y;
void foo(long arg);
undefined foo(long arg);
};
""")
results = parser.finish()
@ -56,11 +56,11 @@ def WebIDLTest(parser, harness):
parser.parse("""
partial interface mixin A {
readonly attribute boolean y;
void foo(long arg);
undefined foo(long arg);
};
interface mixin A {
readonly attribute boolean x;
void foo();
undefined foo();
};
""")
results = parser.finish()
@ -212,7 +212,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface mixin A {
setter void (DOMString propertyName, double propertyValue);
setter undefined (DOMString propertyName, double propertyValue);
};
""")
results = parser.finish()
@ -226,7 +226,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface mixin A {
deleter void (DOMString propertyName);
deleter undefined (DOMString propertyName);
};
""")
results = parser.finish()

View file

@ -3,17 +3,17 @@ import WebIDL
def WebIDLTest(parser, harness):
parser.parse("""
interface TestMethods {
void basic();
static void basicStatic();
void basicWithSimpleArgs(boolean arg1, byte arg2, unsigned long arg3);
undefined basic();
static undefined basicStatic();
undefined basicWithSimpleArgs(boolean arg1, byte arg2, unsigned long arg3);
boolean basicBoolean();
static boolean basicStaticBoolean();
boolean basicBooleanWithSimpleArgs(boolean arg1, byte arg2, unsigned long arg3);
void optionalArg(optional byte? arg1, optional sequence<byte> arg2);
void variadicArg(byte?... arg1);
undefined optionalArg(optional byte? arg1, optional sequence<byte> arg2);
undefined variadicArg(byte?... arg1);
object getObject();
void setObject(object arg1);
void setAny(any arg1);
undefined setObject(object arg1);
undefined setAny(any arg1);
float doFloats(float arg1);
};
""")
@ -70,12 +70,12 @@ def WebIDLTest(parser, harness):
(QName, name, type, optional, variadic) = expectedArgs[i]
checkArgument(gotArgs[i], QName, name, type, optional, variadic)
checkMethod(methods[0], "::TestMethods::basic", "basic", [("Void", [])])
checkMethod(methods[0], "::TestMethods::basic", "basic", [("Undefined", [])])
checkMethod(methods[1], "::TestMethods::basicStatic", "basicStatic",
[("Void", [])], static=True)
[("Undefined", [])], static=True)
checkMethod(methods[2], "::TestMethods::basicWithSimpleArgs",
"basicWithSimpleArgs",
[("Void",
[("Undefined",
[("::TestMethods::basicWithSimpleArgs::arg1", "arg1", "Boolean", False, False),
("::TestMethods::basicWithSimpleArgs::arg2", "arg2", "Byte", False, False),
("::TestMethods::basicWithSimpleArgs::arg3", "arg3", "UnsignedLong", False, False)])])
@ -89,22 +89,22 @@ def WebIDLTest(parser, harness):
("::TestMethods::basicBooleanWithSimpleArgs::arg3", "arg3", "UnsignedLong", False, False)])])
checkMethod(methods[6], "::TestMethods::optionalArg",
"optionalArg",
[("Void",
[("Undefined",
[("::TestMethods::optionalArg::arg1", "arg1", "ByteOrNull", True, False),
("::TestMethods::optionalArg::arg2", "arg2", "ByteSequence", True, False)])])
checkMethod(methods[7], "::TestMethods::variadicArg",
"variadicArg",
[("Void",
[("Undefined",
[("::TestMethods::variadicArg::arg1", "arg1", "ByteOrNull", True, True)])])
checkMethod(methods[8], "::TestMethods::getObject",
"getObject", [("Object", [])])
checkMethod(methods[9], "::TestMethods::setObject",
"setObject",
[("Void",
[("Undefined",
[("::TestMethods::setObject::arg1", "arg1", "Object", False, False)])])
checkMethod(methods[10], "::TestMethods::setAny",
"setAny",
[("Void",
[("Undefined",
[("::TestMethods::setAny::arg1", "arg1", "Any", False, False)])])
checkMethod(methods[11], "::TestMethods::doFloats",
"doFloats",
@ -116,7 +116,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface A {
void foo(optional float bar = 1);
undefined foo(optional float bar = 1);
};
""")
results = parser.finish()
@ -129,7 +129,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface A {
[GetterThrows] void foo();
[GetterThrows] undefined foo();
};
""")
results = parser.finish()
@ -142,7 +142,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface A {
[SetterThrows] void foo();
[SetterThrows] undefined foo();
};
""")
results = parser.finish()
@ -155,7 +155,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface A {
[Throw] void foo();
[Throw] undefined foo();
};
""")
results = parser.finish()
@ -168,7 +168,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface A {
void __noSuchMethod__();
undefined __noSuchMethod__();
};
""")
results = parser.finish()
@ -182,9 +182,9 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface A {
[Throws, LenientFloat]
void foo(float myFloat);
undefined foo(float myFloat);
[Throws]
void foo();
undefined foo();
};
""")
results = parser.finish()
@ -196,9 +196,9 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface A {
[Throws]
void foo();
undefined foo();
[Throws, LenientFloat]
void foo(float myFloat);
undefined foo(float myFloat);
};
""")
results = parser.finish()
@ -213,9 +213,9 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface A {
[Throws, LenientFloat]
void foo(float myFloat);
undefined foo(float myFloat);
[Throws]
void foo(float myFloat, float yourFloat);
undefined foo(float myFloat, float yourFloat);
};
""")
results = parser.finish()
@ -229,9 +229,9 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface A {
[Throws]
void foo(float myFloat, float yourFloat);
undefined foo(float myFloat, float yourFloat);
[Throws, LenientFloat]
void foo(float myFloat);
undefined foo(float myFloat);
};
""")
results = parser.finish()
@ -245,9 +245,9 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface A {
[Throws, LenientFloat]
void foo(float myFloat);
undefined foo(float myFloat);
[Throws, LenientFloat]
void foo(short myShort);
undefined foo(short myShort);
};
""")
results = parser.finish()

View file

@ -2,8 +2,8 @@ def WebIDLTest(parser, harness):
threw = False
try:
parser.parse("""
interface NullableVoid {
void? foo();
interface NullableUndefined {
undefined? foo();
};
""")

View file

@ -3,7 +3,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface OptionalConstraints1 {
void foo(optional byte arg1, byte arg2);
undefined foo(optional byte arg1, byte arg2);
};
""")
@ -18,7 +18,7 @@ def WebIDLTest(parser, harness):
parser = parser.reset()
parser.parse("""
interface OptionalConstraints2 {
void foo(optional byte arg1 = 1, optional byte arg2 = 2,
undefined foo(optional byte arg1 = 1, optional byte arg2 = 2,
optional byte arg3, optional byte arg4 = 4,
optional byte arg5, optional byte arg6 = 9);
};

View file

@ -3,16 +3,16 @@ import WebIDL
def WebIDLTest(parser, harness):
parser.parse("""
interface TestOverloads {
void basic();
void basic(long arg1);
undefined basic();
undefined basic(long arg1);
boolean abitharder(TestOverloads foo);
boolean abitharder(boolean foo);
void abitharder(ArrayBuffer? foo);
void withVariadics(long... numbers);
void withVariadics(TestOverloads iface);
void withVariadics(long num, TestOverloads iface);
void optionalTest();
void optionalTest(optional long num1, long num2);
undefined abitharder(ArrayBuffer? foo);
undefined withVariadics(long... numbers);
undefined withVariadics(TestOverloads iface);
undefined withVariadics(long num, TestOverloads iface);
undefined optionalTest();
undefined optionalTest(optional long num1, long num2);
};
""")
@ -37,11 +37,11 @@ def WebIDLTest(parser, harness):
(retval, argumentSet) = signatures[0]
harness.check(str(retval), "Void", "Expect a void retval")
harness.check(str(retval), "Undefined", "Expect a undefined retval")
harness.check(len(argumentSet), 0, "Expect an empty argument set")
(retval, argumentSet) = signatures[1]
harness.check(str(retval), "Void", "Expect a void retval")
harness.check(str(retval), "Undefined", "Expect a undefined retval")
harness.check(len(argumentSet), 1, "Expect an argument set with one argument")
argument = argumentSet[0]

View file

@ -64,7 +64,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface A {
void foo(Promise<any>? arg);
undefined foo(Promise<any>? arg);
};
""")
results = parser.finish();

View file

@ -4,7 +4,7 @@ def WebIDLTest(parser, harness):
parser.parse("""
dictionary Dict {};
interface RecordArg {
void foo(record<DOMString, Dict> arg);
undefined foo(record<DOMString, Dict> arg);
};
""")
@ -27,16 +27,16 @@ def WebIDLTest(parser, harness):
threw = False
try:
parser.parse("""
interface RecordVoidArg {
void foo(record<DOMString, void> arg);
interface RecordUndefinedArg {
undefined foo(record<DOMString, undefined> arg);
};
""")
results = parser.finish()
except Exception as x:
threw = True
harness.ok(threw, "Should have thrown because record can't have void as value type.")
harness.ok(threw, "Should have thrown because record can't have undefined as value type.")
parser = parser.reset()
threw = False
try:

View file

@ -6,12 +6,12 @@ def WebIDLTest(parser, harness):
interface TestSecureContextOnInterface {
const octet TEST_CONSTANT = 0;
readonly attribute byte testAttribute;
void testMethod(byte foo);
undefined testMethod(byte foo);
};
partial interface TestSecureContextOnInterface {
const octet TEST_CONSTANT_2 = 0;
readonly attribute byte testAttribute2;
void testMethod2(byte foo);
undefined testMethod2(byte foo);
};
""")
results = parser.finish()
@ -37,13 +37,13 @@ def WebIDLTest(parser, harness):
partial interface TestSecureContextOnInterfaceAfterPartialInterface {
const octet TEST_CONSTANT_2 = 0;
readonly attribute byte testAttribute2;
void testMethod2(byte foo);
undefined testMethod2(byte foo);
};
[SecureContext]
interface TestSecureContextOnInterfaceAfterPartialInterface {
const octet TEST_CONSTANT = 0;
readonly attribute byte testAttribute;
void testMethod(byte foo);
undefined testMethod(byte foo);
};
""")
results = parser.finish()
@ -68,13 +68,13 @@ def WebIDLTest(parser, harness):
interface TestSecureContextOnPartialInterface {
const octet TEST_CONSTANT = 0;
readonly attribute byte testAttribute;
void testMethod(byte foo);
undefined testMethod(byte foo);
};
[SecureContext]
partial interface TestSecureContextOnPartialInterface {
const octet TEST_CONSTANT_2 = 0;
readonly attribute byte testAttribute2;
void testMethod2(byte foo);
undefined testMethod2(byte foo);
};
""")
results = parser.finish()
@ -105,10 +105,10 @@ def WebIDLTest(parser, harness):
[SecureContext]
readonly attribute byte testSecureAttribute;
readonly attribute byte testNonSecureAttribute2;
void testNonSecureMethod1(byte foo);
undefined testNonSecureMethod1(byte foo);
[SecureContext]
void testSecureMethod(byte foo);
void testNonSecureMethod2(byte foo);
undefined testSecureMethod(byte foo);
undefined testNonSecureMethod2(byte foo);
};
""")
results = parser.finish()
@ -147,10 +147,10 @@ def WebIDLTest(parser, harness):
[SecureContext]
readonly attribute byte testSecureAttribute;
readonly attribute byte testNonSecureAttribute2;
void testNonSecureMethod1(byte foo);
undefined testNonSecureMethod1(byte foo);
[SecureContext]
void testSecureMethod(byte foo);
void testNonSecureMethod2(byte foo);
undefined testSecureMethod(byte foo);
undefined testNonSecureMethod2(byte foo);
};
""")
results = parser.finish()
@ -194,10 +194,10 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface TestSecureContextForOverloads1 {
[SecureContext]
void testSecureMethod(byte foo);
undefined testSecureMethod(byte foo);
};
partial interface TestSecureContextForOverloads1 {
void testSecureMethod(byte foo, byte bar);
undefined testSecureMethod(byte foo, byte bar);
};
""")
results = parser.finish()
@ -211,11 +211,11 @@ def WebIDLTest(parser, harness):
parser.parse("""
interface TestSecureContextForOverloads2 {
[SecureContext]
void testSecureMethod(byte foo);
undefined testSecureMethod(byte foo);
};
partial interface TestSecureContextForOverloads2 {
[SecureContext]
void testSecureMethod(byte foo, byte bar);
undefined testSecureMethod(byte foo, byte bar);
};
""")
results = parser.finish()
@ -230,7 +230,7 @@ def WebIDLTest(parser, harness):
[SecureContext]
interface TestSecureContextOnInterfaceAndMember {
[SecureContext]
void testSecureMethod(byte foo);
undefined testSecureMethod(byte foo);
};
""")
results = parser.finish()
@ -247,7 +247,7 @@ def WebIDLTest(parser, harness):
[SecureContext]
partial interface TestSecureContextOnPartialInterfaceAndMember {
[SecureContext]
void testSecureMethod(byte foo);
undefined testSecureMethod(byte foo);
};
""")
results = parser.finish()
@ -264,7 +264,7 @@ def WebIDLTest(parser, harness):
};
partial interface TestSecureContextOnInterfaceAndPartialInterfaceMember {
[SecureContext]
void testSecureMethod(byte foo);
undefined testSecureMethod(byte foo);
};
""")
results = parser.finish()
@ -280,7 +280,7 @@ def WebIDLTest(parser, harness):
interface TestSecureContextOnInheritedInterface {
};
interface TestSecureContextNotOnInheritingInterface : TestSecureContextOnInheritedInterface {
void testSecureMethod(byte foo);
undefined testSecureMethod(byte foo);
};
""")
results = parser.finish()
@ -298,7 +298,7 @@ def WebIDLTest(parser, harness):
interface mixin TestNonSecureContextMixin {
const octet TEST_CONSTANT_2 = 0;
readonly attribute byte testAttribute2;
void testMethod2(byte foo);
undefined testMethod2(byte foo);
};
TestSecureContextInterfaceThatIncludesNonSecureContextMixin includes TestNonSecureContextMixin;
""")
@ -314,13 +314,13 @@ def WebIDLTest(parser, harness):
"Attributes copied from non-[SecureContext] mixin should not be [SecureContext]")
harness.ok(results[0].members[3].getExtendedAttribute("SecureContext") is None,
"Methods copied from non-[SecureContext] mixin should not be [SecureContext]")
# Test SecureContext and NoInterfaceObject
parser = parser.reset()
parser.parse("""
[NoInterfaceObject, SecureContext]
interface TestSecureContextNoInterfaceObject {
void testSecureMethod(byte foo);
undefined testSecureMethod(byte foo);
};
""")
results = parser.finish()

View file

@ -17,7 +17,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface SpecialMethodSignatureMismatch2 {
getter void foo(unsigned long index);
getter undefined foo(unsigned long index);
};
""")

View file

@ -61,7 +61,7 @@ def WebIDLTest(parser, harness):
parser.parse(
"""
interface IndexedDeleter {
deleter void(unsigned long index);
deleter undefined(unsigned long index);
};
""")
parser.finish()
@ -69,5 +69,5 @@ def WebIDLTest(parser, harness):
threw = True
harness.ok(threw, "There are no indexed deleters")

View file

@ -4,9 +4,9 @@ def WebIDLTest(parser, harness):
typedef long? mynullablelong;
interface Foo {
const mylong X = 5;
void foo(optional mynullablelong arg = 7);
void bar(optional mynullablelong arg = null);
void baz(mylong arg);
undefined foo(optional mynullablelong arg = 7);
undefined bar(optional mynullablelong arg = null);
undefined baz(mylong arg);
};
""")
@ -21,7 +21,7 @@ def WebIDLTest(parser, harness):
parser.parse("""
typedef long? mynullablelong;
interface Foo {
void foo(mynullablelong? Y);
undefined foo(mynullablelong? Y);
};
""")
results = parser.finish()
@ -44,7 +44,7 @@ def WebIDLTest(parser, harness):
threw = True
harness.ok(threw, "Should have thrown on nullable inside nullable const.")
parser = parser.reset()
threw = False
try:

View file

@ -47,7 +47,7 @@ def WebIDLTest(parser, harness):
parser = parser.reset();
parser.parse("""
interface Child : Parent {
static void foo();
static undefined foo();
};
interface Parent {
[Unforgeable] readonly attribute long foo;
@ -65,7 +65,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface Child : Parent {
void foo();
undefined foo();
};
interface Parent {
[Unforgeable] readonly attribute long foo;
@ -84,10 +84,10 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface Child : Parent {
void foo();
undefined foo();
};
interface Parent {
[Unforgeable] void foo();
[Unforgeable] undefined foo();
};
""")
@ -125,7 +125,7 @@ def WebIDLTest(parser, harness):
attribute short foo;
};
interface Parent {
[Unforgeable] void foo();
[Unforgeable] undefined foo();
};
""")
@ -157,7 +157,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface Child : Parent {
void foo();
undefined foo();
};
interface Parent {};
interface mixin Mixin {
@ -187,7 +187,7 @@ def WebIDLTest(parser, harness):
};
GrandParent includes Mixin;
interface mixin ChildMixin {
void foo();
undefined foo();
};
Child includes ChildMixin;
""")
@ -209,11 +209,11 @@ def WebIDLTest(parser, harness):
interface Parent : GrandParent {};
interface GrandParent {};
interface mixin Mixin {
[Unforgeable] void foo();
[Unforgeable] undefined foo();
};
GrandParent includes Mixin;
interface mixin ChildMixin {
void foo();
undefined foo();
};
Child includes ChildMixin;
""")

View file

@ -136,10 +136,10 @@ def WebIDLTest(parser, harness):
"""
for (i, type) in enumerate(validUnionTypes):
interface += string.Template("""
void method${i}(${type} arg);
undefined method${i}(${type} arg);
${type} returnMethod${i}();
attribute ${type} attr${i};
void optionalMethod${i}(${type}? arg);
undefined optionalMethod${i}(${type}? arg);
""").substitute(i=i, type=type)
interface += """
};
@ -152,7 +152,7 @@ def WebIDLTest(parser, harness):
for invalid in invalidUnionTypes:
interface = testPre + string.Template("""
interface TestUnion {
void method(${type} arg);
undefined method(${type} arg);
};
""").substitute(type=invalid)

View file

@ -3,7 +3,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface AnyNotInUnion {
void foo((any or DOMString) arg);
undefined foo((any or DOMString) arg);
};
""")

View file

@ -3,7 +3,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface OneNullableInUnion {
void foo((object? or DOMString?) arg);
undefined foo((object? or DOMString?) arg);
};
""")
@ -20,7 +20,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface NullableInNullableUnion {
void foo((object? or DOMString)? arg);
undefined foo((object? or DOMString)? arg);
};
""")
@ -40,7 +40,7 @@ def WebIDLTest(parser, harness):
interface NullableInUnionNullableUnionHelper {
};
interface NullableInUnionNullableUnion {
void foo(((object? or DOMString) or NullableInUnionNullableUnionHelper)? arg);
undefined foo(((object? or DOMString) or NullableInUnionNullableUnionHelper)? arg);
};
""")

View file

@ -3,7 +3,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface VariadicConstraints1 {
void foo(byte... arg1, byte arg2);
undefined foo(byte... arg1, byte arg2);
};
""")
results = parser.finish()
@ -20,7 +20,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface VariadicConstraints2 {
void foo(byte... arg1, optional byte arg2);
undefined foo(byte... arg1, optional byte arg2);
};
""")
results = parser.finish();
@ -36,7 +36,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface VariadicConstraints3 {
void foo(optional byte... arg1);
undefined foo(optional byte... arg1);
};
""")
results = parser.finish()
@ -53,7 +53,7 @@ def WebIDLTest(parser, harness):
try:
parser.parse("""
interface VariadicConstraints4 {
void foo(byte... arg1 = 0);
undefined foo(byte... arg1 = 0);
};
""")
results = parser.finish()

View file

@ -9,7 +9,7 @@
[NoInterfaceObject, Exposed=Window]
interface ANGLEInstancedArrays {
const GLenum VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE = 0x88FE;
void drawArraysInstancedANGLE(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
void drawElementsInstancedANGLE(GLenum mode, GLsizei count, GLenum type, GLintptr offset, GLsizei primcount);
void vertexAttribDivisorANGLE(GLuint index, GLuint divisor);
undefined drawArraysInstancedANGLE(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
undefined drawElementsInstancedANGLE(GLenum mode, GLsizei count, GLenum type, GLintptr offset, GLsizei primcount);
undefined vertexAttribDivisorANGLE(GLuint index, GLuint divisor);
};

View file

@ -8,8 +8,8 @@
[Exposed=(Window,Worker)]
interface mixin ActivatableElement {
[Throws, Pref="dom.testing.element.activation.enabled"]
void enterFormalActivationState();
undefined enterFormalActivationState();
[Throws, Pref="dom.testing.element.activation.enabled"]
void exitFormalActivationState();
undefined exitFormalActivationState();
};

View file

@ -16,10 +16,10 @@ dictionary AnalyserOptions : AudioNodeOptions {
[Exposed=Window]
interface AnalyserNode : AudioNode {
[Throws] constructor(BaseAudioContext context, optional AnalyserOptions options = {});
void getFloatFrequencyData (Float32Array array);
void getByteFrequencyData (Uint8Array array);
void getFloatTimeDomainData (Float32Array array);
void getByteTimeDomainData (Uint8Array array);
undefined getFloatFrequencyData (Float32Array array);
undefined getByteFrequencyData (Uint8Array array);
undefined getFloatTimeDomainData (Float32Array array);
undefined getByteTimeDomainData (Uint8Array array);
[SetterThrows] attribute unsigned long fftSize;
readonly attribute unsigned long frequencyBinCount;
[SetterThrows] attribute double minDecibels;

View file

@ -20,10 +20,10 @@ interface AudioBuffer {
readonly attribute double duration;
readonly attribute unsigned long numberOfChannels;
[Throws] Float32Array getChannelData(unsigned long channel);
[Throws] void copyFromChannel(Float32Array destination,
[Throws] undefined copyFromChannel(Float32Array destination,
unsigned long channelNumber,
optional unsigned long startInChannel = 0);
[Throws] void copyToChannel(Float32Array source,
[Throws] undefined copyToChannel(Float32Array source,
unsigned long channelNumber,
optional unsigned long startInChannel = 0);
};

View file

@ -24,7 +24,7 @@ interface AudioBufferSourceNode : AudioScheduledSourceNode {
attribute boolean loop;
attribute double loopStart;
attribute double loopEnd;
[Throws] void start(optional double when = 0,
[Throws] undefined start(optional double when = 0,
optional double offset,
optional double duration);
};

View file

@ -30,8 +30,8 @@ interface AudioContext : BaseAudioContext {
AudioTimestamp getOutputTimestamp();
Promise<void> suspend();
Promise<void> close();
Promise<undefined> suspend();
Promise<undefined> close();
[Throws] MediaElementAudioSourceNode createMediaElementSource(HTMLMediaElement mediaElement);
[Throws] MediaStreamAudioSourceNode createMediaStreamSource(MediaStream mediaStream);

View file

@ -30,24 +30,24 @@ interface AudioNode : EventTarget {
optional unsigned long output = 0,
optional unsigned long input = 0);
[Throws]
void connect(AudioParam destinationParam,
undefined connect(AudioParam destinationParam,
optional unsigned long output = 0);
[Throws]
void disconnect();
undefined disconnect();
[Throws]
void disconnect(unsigned long output);
undefined disconnect(unsigned long output);
[Throws]
void disconnect(AudioNode destination);
undefined disconnect(AudioNode destination);
[Throws]
void disconnect(AudioNode destination, unsigned long output);
undefined disconnect(AudioNode destination, unsigned long output);
[Throws]
void disconnect(AudioNode destination,
undefined disconnect(AudioNode destination,
unsigned long output,
unsigned long input);
[Throws]
void disconnect(AudioParam destination);
undefined disconnect(AudioParam destination);
[Throws]
void disconnect(AudioParam destination, unsigned long output);
undefined disconnect(AudioParam destination, unsigned long output);
readonly attribute BaseAudioContext context;
readonly attribute unsigned long numberOfInputs;

View file

@ -9,6 +9,6 @@
[Exposed=Window]
interface AudioScheduledSourceNode : AudioNode {
attribute EventHandler onended;
[Throws] void start(optional double when = 0);
[Throws] void stop(optional double when = 0);
[Throws] undefined start(optional double when = 0);
[Throws] undefined stop(optional double when = 0);
};

View file

@ -12,8 +12,8 @@ enum AudioContextState {
"closed"
};
callback DecodeErrorCallback = void (DOMException error);
callback DecodeSuccessCallback = void (AudioBuffer decodedData);
callback DecodeErrorCallback = undefined (DOMException error);
callback DecodeSuccessCallback = undefined (AudioBuffer decodedData);
[Exposed=Window]
interface BaseAudioContext : EventTarget {
@ -22,7 +22,7 @@ interface BaseAudioContext : EventTarget {
readonly attribute double currentTime;
readonly attribute AudioListener listener;
readonly attribute AudioContextState state;
Promise<void> resume();
Promise<undefined> resume();
attribute EventHandler onstatechange;
[Throws] AudioBuffer createBuffer(unsigned long numberOfChannels,
unsigned long length,

View file

@ -10,8 +10,8 @@ interface BluetoothDevice : EventTarget {
readonly attribute DOMString? name;
readonly attribute BluetoothRemoteGATTServer? gatt;
Promise<void> watchAdvertisements();
void unwatchAdvertisements();
Promise<undefined> watchAdvertisements();
undefined unwatchAdvertisements();
readonly attribute boolean watchingAdvertisements;
};

View file

@ -16,7 +16,7 @@ interface BluetoothRemoteGATTCharacteristic : EventTarget {
getDescriptors(optional BluetoothDescriptorUUID descriptor);
Promise<ByteString> readValue();
//Promise<DataView> readValue();
Promise<void> writeValue(BufferSource value);
Promise<undefined> writeValue(BufferSource value);
Promise<BluetoothRemoteGATTCharacteristic> startNotifications();
Promise<BluetoothRemoteGATTCharacteristic> stopNotifications();
};

View file

@ -12,5 +12,5 @@ interface BluetoothRemoteGATTDescriptor {
readonly attribute ByteString? value;
Promise<ByteString> readValue();
//Promise<DataView> readValue();
Promise<void> writeValue(BufferSource value);
Promise<undefined> writeValue(BufferSource value);
};

View file

@ -11,7 +11,7 @@ interface BluetoothRemoteGATTServer {
readonly attribute boolean connected;
Promise<BluetoothRemoteGATTServer> connect();
[Throws]
void disconnect();
undefined disconnect();
Promise<BluetoothRemoteGATTService> getPrimaryService(BluetoothServiceUUID service);
Promise<sequence<BluetoothRemoteGATTService>> getPrimaryServices(optional BluetoothServiceUUID service);
};

View file

@ -11,8 +11,8 @@ interface BroadcastChannel : EventTarget {
constructor(DOMString name);
readonly attribute DOMString name;
[Throws] void postMessage(any message);
void close();
[Throws] undefined postMessage(any message);
undefined close();
attribute EventHandler onmessage;
attribute EventHandler onmessageerror;
};

View file

@ -7,6 +7,6 @@
interface CSSGroupingRule : CSSRule {
[SameObject] readonly attribute CSSRuleList cssRules;
[Throws] unsigned long insertRule(DOMString rule, unsigned long index);
[Throws] void deleteRule(unsigned long index);
[Throws] undefined deleteRule(unsigned long index);
};

View file

@ -9,7 +9,7 @@ interface CSSKeyframesRule : CSSRule {
attribute DOMString name;
readonly attribute CSSRuleList cssRules;
void appendRule(DOMString rule);
void deleteRule(DOMString select);
undefined appendRule(DOMString rule);
undefined deleteRule(DOMString select);
CSSKeyframeRule? findRule(DOMString select);
};

View file

@ -17,7 +17,7 @@ interface CSSStyleDeclaration {
DOMString getPropertyValue(DOMString property);
DOMString getPropertyPriority(DOMString property);
[CEReactions, Throws]
void setProperty(DOMString property, [TreatNullAs=EmptyString] DOMString value,
undefined setProperty(DOMString property, [TreatNullAs=EmptyString] DOMString value,
optional [TreatNullAs=EmptyString] DOMString priority = "");
[CEReactions, Throws]
DOMString removeProperty(DOMString property);

View file

@ -8,5 +8,5 @@ interface CSSStyleSheet : StyleSheet {
// readonly attribute CSSRule? ownerRule;
[Throws, SameObject] readonly attribute CSSRuleList cssRules;
[Throws] unsigned long insertRule(DOMString rule, optional unsigned long index = 0);
[Throws] void deleteRule(unsigned long index);
[Throws] undefined deleteRule(unsigned long index);
};

View file

@ -7,7 +7,7 @@
interface CanvasGradient {
// opaque object
[Throws]
void addColorStop(double offset, DOMString color);
undefined addColorStop(double offset, DOMString color);
};

View file

@ -42,17 +42,17 @@ CanvasRenderingContext2D includes CanvasPath;
[Exposed=(PaintWorklet, Window, Worker)]
interface mixin CanvasState {
// state
void save(); // push state on state stack
void restore(); // pop state stack and restore state
undefined save(); // push state on state stack
undefined restore(); // pop state stack and restore state
};
[Exposed=(PaintWorklet, Window, Worker)]
interface mixin CanvasTransform {
// transformations (default transform is the identity matrix)
void scale(unrestricted double x, unrestricted double y);
void rotate(unrestricted double angle);
void translate(unrestricted double x, unrestricted double y);
void transform(unrestricted double a,
undefined scale(unrestricted double x, unrestricted double y);
undefined rotate(unrestricted double angle);
undefined translate(unrestricted double x, unrestricted double y);
undefined transform(unrestricted double a,
unrestricted double b,
unrestricted double c,
unrestricted double d,
@ -60,14 +60,14 @@ interface mixin CanvasTransform {
unrestricted double f);
[NewObject] DOMMatrix getTransform();
void setTransform(unrestricted double a,
undefined setTransform(unrestricted double a,
unrestricted double b,
unrestricted double c,
unrestricted double d,
unrestricted double e,
unrestricted double f);
// void setTransform(optional DOMMatrixInit matrix);
void resetTransform();
undefined resetTransform();
};
[Exposed=(PaintWorklet, Window, Worker)]
@ -114,20 +114,20 @@ interface mixin CanvasFilters {
[Exposed=(PaintWorklet, Window, Worker)]
interface mixin CanvasRect {
// rects
void clearRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
void fillRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
void strokeRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
undefined clearRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
undefined fillRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
undefined strokeRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
};
[Exposed=(PaintWorklet, Window, Worker)]
interface mixin CanvasDrawPath {
// path API (see also CanvasPath)
void beginPath();
void fill(optional CanvasFillRule fillRule = "nonzero");
undefined beginPath();
undefined fill(optional CanvasFillRule fillRule = "nonzero");
//void fill(Path2D path, optional CanvasFillRule fillRule = "nonzero");
void stroke();
undefined stroke();
//void stroke(Path2D path);
void clip(optional CanvasFillRule fillRule = "nonzero");
undefined clip(optional CanvasFillRule fillRule = "nonzero");
//void clip(Path2D path, optional CanvasFillRule fillRule = "nonzero");
boolean isPointInPath(unrestricted double x, unrestricted double y,
optional CanvasFillRule fillRule = "nonzero");
@ -149,7 +149,7 @@ interface mixin CanvasUserInterface {
interface mixin CanvasText {
// text (see also the CanvasPathDrawingStyles and CanvasTextDrawingStyles interfaces)
[Pref="dom.canvas_text.enabled"]
void fillText(DOMString text, unrestricted double x, unrestricted double y,
undefined fillText(DOMString text, unrestricted double x, unrestricted double y,
optional unrestricted double maxWidth);
//void strokeText(DOMString text, unrestricted double x, unrestricted double y,
// optional unrestricted double maxWidth);
@ -161,12 +161,12 @@ interface mixin CanvasText {
interface mixin CanvasDrawImage {
// drawing images
[Throws]
void drawImage(CanvasImageSource image, unrestricted double dx, unrestricted double dy);
undefined drawImage(CanvasImageSource image, unrestricted double dx, unrestricted double dy);
[Throws]
void drawImage(CanvasImageSource image, unrestricted double dx, unrestricted double dy,
undefined drawImage(CanvasImageSource image, unrestricted double dx, unrestricted double dy,
unrestricted double dw, unrestricted double dh);
[Throws]
void drawImage(CanvasImageSource image, unrestricted double sx, unrestricted double sy,
undefined drawImage(CanvasImageSource image, unrestricted double sx, unrestricted double sy,
unrestricted double sw, unrestricted double sh,
unrestricted double dx, unrestricted double dy,
unrestricted double dw, unrestricted double dh);
@ -181,8 +181,8 @@ interface mixin CanvasImageData {
ImageData createImageData(ImageData imagedata);
[Throws]
ImageData getImageData(long sx, long sy, long sw, long sh);
void putImageData(ImageData imagedata, long dx, long dy);
void putImageData(ImageData imagedata,
undefined putImageData(ImageData imagedata, long dx, long dy);
undefined putImageData(ImageData imagedata,
long dx, long dy,
long dirtyX, long dirtyY,
long dirtyWidth, long dirtyHeight);
@ -221,13 +221,13 @@ interface mixin CanvasTextDrawingStyles {
[Exposed=(PaintWorklet, Window, Worker)]
interface mixin CanvasPath {
// shared path API methods
void closePath();
void moveTo(unrestricted double x, unrestricted double y);
void lineTo(unrestricted double x, unrestricted double y);
void quadraticCurveTo(unrestricted double cpx, unrestricted double cpy,
undefined closePath();
undefined moveTo(unrestricted double x, unrestricted double y);
undefined lineTo(unrestricted double x, unrestricted double y);
undefined quadraticCurveTo(unrestricted double cpx, unrestricted double cpy,
unrestricted double x, unrestricted double y);
void bezierCurveTo(unrestricted double cp1x,
undefined bezierCurveTo(unrestricted double cp1x,
unrestricted double cp1y,
unrestricted double cp2x,
unrestricted double cp2y,
@ -235,18 +235,18 @@ interface mixin CanvasPath {
unrestricted double y);
[Throws]
void arcTo(unrestricted double x1, unrestricted double y1,
undefined arcTo(unrestricted double x1, unrestricted double y1,
unrestricted double x2, unrestricted double y2,
unrestricted double radius);
void rect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
undefined rect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
[Throws]
void arc(unrestricted double x, unrestricted double y, unrestricted double radius,
undefined arc(unrestricted double x, unrestricted double y, unrestricted double radius,
unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false);
[Throws]
void ellipse(unrestricted double x, unrestricted double y, unrestricted double radius_x,
undefined ellipse(unrestricted double x, unrestricted double y, unrestricted double radius_x,
unrestricted double radius_y, unrestricted double rotation, unrestricted double startAngle,
unrestricted double endAngle, optional boolean anticlockwise = false);
};

View file

@ -15,13 +15,13 @@ interface CharacterData : Node {
[Pure] readonly attribute unsigned long length;
[Pure, Throws]
DOMString substringData(unsigned long offset, unsigned long count);
void appendData(DOMString data);
undefined appendData(DOMString data);
[Throws]
void insertData(unsigned long offset, DOMString data);
undefined insertData(unsigned long offset, DOMString data);
[Throws]
void deleteData(unsigned long offset, unsigned long count);
undefined deleteData(unsigned long offset, unsigned long count);
[Throws]
void replaceData(unsigned long offset, unsigned long count, DOMString data);
undefined replaceData(unsigned long offset, unsigned long count, DOMString data);
};
CharacterData includes ChildNode;

View file

@ -8,13 +8,13 @@
interface mixin ChildNode {
[Throws, CEReactions, Unscopable]
void before((Node or DOMString)... nodes);
undefined before((Node or DOMString)... nodes);
[Throws, CEReactions, Unscopable]
void after((Node or DOMString)... nodes);
undefined after((Node or DOMString)... nodes);
[Throws, CEReactions, Unscopable]
void replaceWith((Node or DOMString)... nodes);
undefined replaceWith((Node or DOMString)... nodes);
[CEReactions, Unscopable]
void remove();
undefined remove();
};
interface mixin NonDocumentTypeChildNode {

View file

@ -9,20 +9,20 @@
ProtoObjectHack]
namespace console {
// Logging
void log(DOMString... messages);
void debug(DOMString... messages);
void info(DOMString... messages);
void warn(DOMString... messages);
void error(DOMString... messages);
void assert(boolean condition, optional DOMString message);
void clear();
undefined log(DOMString... messages);
undefined debug(DOMString... messages);
undefined info(DOMString... messages);
undefined warn(DOMString... messages);
undefined error(DOMString... messages);
undefined assert(boolean condition, optional DOMString message);
undefined clear();
// Grouping
void group(DOMString... data);
void groupCollapsed(DOMString... data);
void groupEnd();
undefined group(DOMString... data);
undefined groupCollapsed(DOMString... data);
undefined groupEnd();
// Timing
void time(DOMString message);
void timeEnd(DOMString message);
undefined time(DOMString message);
undefined timeEnd(DOMString message);
};

View file

@ -6,13 +6,17 @@
[Exposed=Window, Pref="dom.custom_elements.enabled"]
interface CustomElementRegistry {
[Throws, CEReactions]
void define(DOMString name, CustomElementConstructor constructor_, optional ElementDefinitionOptions options = {});
undefined define(
DOMString name,
CustomElementConstructor constructor_,
optional ElementDefinitionOptions options = {}
);
any get(DOMString name);
Promise<CustomElementConstructor> whenDefined(DOMString name);
[CEReactions] void upgrade(Node root);
[CEReactions] undefined upgrade(Node root);
};
callback CustomElementConstructor = HTMLElement();

View file

@ -18,7 +18,7 @@ interface CustomEvent : Event {
[Throws] constructor(DOMString type, optional CustomEventInit eventInitDict = {});
readonly attribute any detail;
void initCustomEvent(DOMString type, boolean bubbles, boolean cancelable, any detail);
undefined initCustomEvent(DOMString type, boolean bubbles, boolean cancelable, any detail);
};
dictionary CustomEventInit : EventInit {

View file

@ -7,7 +7,7 @@
interface DOMStringMap {
getter DOMString (DOMString name);
[CEReactions, Throws]
setter void (DOMString name, DOMString value);
setter undefined (DOMString name, DOMString value);
[CEReactions]
deleter void (DOMString name);
deleter undefined (DOMString name);
};

View file

@ -13,9 +13,9 @@ interface DOMTokenList {
[Pure]
boolean contains(DOMString token);
[CEReactions, Throws]
void add(DOMString... tokens);
undefined add(DOMString... tokens);
[CEReactions, Throws]
void remove(DOMString... tokens);
undefined remove(DOMString... tokens);
[CEReactions, Throws]
boolean toggle(DOMString token, optional boolean force);
[CEReactions, Throws]

View file

@ -5,9 +5,9 @@
// https://html.spec.whatwg.org/multipage/#dedicatedworkerglobalscope
[Global=(Worker,DedicatedWorker), Exposed=DedicatedWorker]
/*sealed*/ interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
[Throws] void postMessage(any message, sequence<object> transfer);
[Throws] void postMessage(any message, optional PostMessageOptions options = {});
[Throws] undefined postMessage(any message, sequence<object> transfer);
[Throws] undefined postMessage(any message, optional PostMessageOptions options = {});
attribute EventHandler onmessage;
void close();
undefined close();
};

View file

@ -17,9 +17,9 @@
[Exposed=(Window,DissimilarOriginWindow), Unforgeable, NoInterfaceObject]
interface DissimilarOriginLocation {
[Throws] attribute USVString href;
[Throws] void assign(USVString url);
[Throws] void replace(USVString url);
[Throws] void reload();
[Throws] undefined assign(USVString url);
[Throws] undefined replace(USVString url);
[Throws] undefined reload();
[Throws] stringifier;
// TODO: finish this interface

View file

@ -23,11 +23,11 @@ interface DissimilarOriginWindow : GlobalScope {
[Replaceable] readonly attribute unsigned long length;
[Unforgeable] readonly attribute DissimilarOriginLocation location;
void close();
undefined close();
readonly attribute boolean closed;
[Throws] void postMessage(any message, USVString targetOrigin, optional sequence<object> transfer = []);
[Throws] void postMessage(any message, optional WindowPostMessageOptions options = {});
[Throws] undefined postMessage(any message, USVString targetOrigin, optional sequence<object> transfer = []);
[Throws] undefined postMessage(any message, optional WindowPostMessageOptions options = {});
attribute any opener;
void blur();
void focus();
undefined blur();
undefined focus();
};

View file

@ -126,11 +126,11 @@ partial /*sealed*/ interface Document {
[CEReactions, Throws]
WindowProxy? open(USVString url, DOMString name, DOMString features);
[CEReactions, Throws]
void close();
undefined close();
[CEReactions, Throws]
void write(DOMString... text);
undefined write(DOMString... text);
[CEReactions, Throws]
void writeln(DOMString... text);
undefined writeln(DOMString... text);
// user interaction
readonly attribute Window?/*Proxy?*/ defaultView;
@ -179,9 +179,9 @@ partial interface Document {
[SameObject]
readonly attribute HTMLCollection applets;
void clear();
void captureEvents();
void releaseEvents();
undefined clear();
undefined captureEvents();
undefined releaseEvents();
// Tracking issue for document.all: https://github.com/servo/servo/issues/7396
// readonly attribute HTMLAllCollection all;
@ -193,7 +193,7 @@ partial interface Document {
[LenientSetter] readonly attribute Element? fullscreenElement;
[LenientSetter] readonly attribute boolean fullscreen; // historical
Promise<void> exitFullscreen();
Promise<undefined> exitFullscreen();
attribute EventHandler onfullscreenchange;
attribute EventHandler onfullscreenerror;

View file

@ -44,13 +44,13 @@ interface Element : Node {
[CEReactions, Throws]
boolean toggleAttribute(DOMString name, optional boolean force);
[CEReactions, Throws]
void setAttribute(DOMString name, DOMString value);
undefined setAttribute(DOMString name, DOMString value);
[CEReactions, Throws]
void setAttributeNS(DOMString? namespace, DOMString name, DOMString value);
undefined setAttributeNS(DOMString? namespace, DOMString name, DOMString value);
[CEReactions]
void removeAttribute(DOMString name);
undefined removeAttribute(DOMString name);
[CEReactions]
void removeAttributeNS(DOMString? namespace, DOMString localName);
undefined removeAttributeNS(DOMString? namespace, DOMString localName);
boolean hasAttribute(DOMString name);
boolean hasAttributeNS(DOMString? namespace, DOMString localName);
@ -79,9 +79,9 @@ interface Element : Node {
[CEReactions, Throws]
Element? insertAdjacentElement(DOMString where_, Element element); // historical
[Throws]
void insertAdjacentText(DOMString where_, DOMString data);
undefined insertAdjacentText(DOMString where_, DOMString data);
[CEReactions, Throws]
void insertAdjacentHTML(DOMString position, DOMString html);
undefined insertAdjacentHTML(DOMString position, DOMString html);
[Throws, Pref="dom.shadowdom.enabled"] ShadowRoot attachShadow();
};
@ -92,13 +92,13 @@ partial interface Element {
[NewObject]
DOMRect getBoundingClientRect();
void scroll(optional ScrollToOptions options = {});
void scroll(unrestricted double x, unrestricted double y);
undefined scroll(optional ScrollToOptions options = {});
undefined scroll(unrestricted double x, unrestricted double y);
void scrollTo(optional ScrollToOptions options = {});
void scrollTo(unrestricted double x, unrestricted double y);
void scrollBy(optional ScrollToOptions options = {});
void scrollBy(unrestricted double x, unrestricted double y);
undefined scrollTo(optional ScrollToOptions options = {});
undefined scrollTo(unrestricted double x, unrestricted double y);
undefined scrollBy(optional ScrollToOptions options = {});
undefined scrollBy(unrestricted double x, unrestricted double y);
attribute unrestricted double scrollTop;
attribute unrestricted double scrollLeft;
readonly attribute long scrollWidth;
@ -120,7 +120,7 @@ partial interface Element {
// https://fullscreen.spec.whatwg.org/#api
partial interface Element {
Promise<void> requestFullscreen();
Promise<undefined> requestFullscreen();
};
Element includes ChildNode;

View file

@ -21,16 +21,16 @@ interface Event {
const unsigned short BUBBLING_PHASE = 3;
readonly attribute unsigned short eventPhase;
void stopPropagation();
undefined stopPropagation();
attribute boolean cancelBubble;
void stopImmediatePropagation();
undefined stopImmediatePropagation();
[Pure]
readonly attribute boolean bubbles;
[Pure]
readonly attribute boolean cancelable;
attribute boolean returnValue; // historical
void preventDefault();
undefined preventDefault();
[Pure]
readonly attribute boolean defaultPrevented;
@ -39,7 +39,7 @@ interface Event {
[Constant]
readonly attribute DOMHighResTimeStamp timeStamp;
void initEvent(DOMString type, optional boolean bubbles = false, optional boolean cancelable = false);
undefined initEvent(DOMString type, optional boolean bubbles = false, optional boolean cancelable = false);
};
dictionary EventInit {

View file

@ -7,6 +7,6 @@
[Exposed=Window]
callback interface EventListener {
void handleEvent(Event event);
undefined handleEvent(Event event);
};

View file

@ -22,7 +22,7 @@ interface EventSource : EventTarget {
attribute EventHandler onopen;
attribute EventHandler onmessage;
attribute EventHandler onerror;
void close();
undefined close();
};
dictionary EventSourceInit {

View file

@ -8,13 +8,13 @@
[Exposed=(Window,Worker,Worklet,DissimilarOriginWindow)]
interface EventTarget {
[Throws] constructor();
void addEventListener(
undefined addEventListener(
DOMString type,
EventListener? callback,
optional (AddEventListenerOptions or boolean) options = {}
);
void removeEventListener(
undefined removeEventListener(
DOMString type,
EventListener? callback,
optional (EventListenerOptions or boolean) options = {}

View file

@ -9,7 +9,7 @@
interface ExtendableEvent : Event {
[Throws] constructor(DOMString type,
optional ExtendableEventInit eventInitDict = {});
[Throws] void waitUntil(/*Promise<*/any/*>*/ f);
[Throws] undefined waitUntil(/*Promise<*/any/*>*/ f);
};
dictionary ExtendableEventInit : EventInit {

View file

@ -8,27 +8,27 @@
interface FakeXRDevice {
// Sets the values to be used for subsequent
// requestAnimationFrame() callbacks.
[Throws] void setViews(sequence<FakeXRViewInit> views);
[Throws] undefined setViews(sequence<FakeXRViewInit> views);
[Throws] void setViewerOrigin(FakeXRRigidTransformInit origin, optional boolean emulatedPosition = false);
void clearViewerOrigin();
[Throws] undefined setViewerOrigin(FakeXRRigidTransformInit origin, optional boolean emulatedPosition = false);
undefined clearViewerOrigin();
[Throws] void setFloorOrigin(FakeXRRigidTransformInit origin);
void clearFloorOrigin();
[Throws] undefined setFloorOrigin(FakeXRRigidTransformInit origin);
undefined clearFloorOrigin();
// // Simulates devices focusing and blurring sessions.
void simulateVisibilityChange(XRVisibilityState state);
undefined simulateVisibilityChange(XRVisibilityState state);
// void setBoundsGeometry(sequence<FakeXRBoundsPoint> boundsCoodinates);
[Throws] FakeXRInputController simulateInputSourceConnection(FakeXRInputSourceInit init);
// behaves as if device was disconnected
Promise<void> disconnect();
Promise<undefined> disconnect();
// Hit test extensions:
[Throws] void setWorld(FakeXRWorldInit world);
void clearWorld();
[Throws] undefined setWorld(FakeXRWorldInit world);
undefined clearWorld();
};
// https://immersive-web.github.io/webxr/#dom-xrwebgllayer-getviewport

View file

@ -6,19 +6,22 @@
[Exposed=Window, Pref="dom.webxr.test"]
interface FakeXRInputController {
void setHandedness(XRHandedness handedness);
void setTargetRayMode(XRTargetRayMode targetRayMode);
void setProfiles(sequence<DOMString> profiles);
[Throws] void setGripOrigin(FakeXRRigidTransformInit gripOrigin, optional boolean emulatedPosition = false);
void clearGripOrigin();
[Throws] void setPointerOrigin(FakeXRRigidTransformInit pointerOrigin, optional boolean emulatedPosition = false);
undefined setHandedness(XRHandedness handedness);
undefined setTargetRayMode(XRTargetRayMode targetRayMode);
undefined setProfiles(sequence<DOMString> profiles);
[Throws] undefined setGripOrigin(FakeXRRigidTransformInit gripOrigin, optional boolean emulatedPosition = false);
undefined clearGripOrigin();
[Throws] undefined setPointerOrigin(
FakeXRRigidTransformInit pointerOrigin,
optional boolean emulatedPosition = false
);
void disconnect();
void reconnect();
undefined disconnect();
undefined reconnect();
void startSelection();
void endSelection();
void simulateSelect();
undefined startSelection();
undefined endSelection();
undefined simulateSelect();
// void setSupportedButtons(sequence<FakeXRButtonStateInit> supportedButtons);
// void updateButtonState(FakeXRButtonStateInit buttonState);

View file

@ -11,13 +11,13 @@ interface FileReader: EventTarget {
// async read methods
[Throws]
void readAsArrayBuffer(Blob blob);
undefined readAsArrayBuffer(Blob blob);
[Throws]
void readAsText(Blob blob, optional DOMString label);
undefined readAsText(Blob blob, optional DOMString label);
[Throws]
void readAsDataURL(Blob blob);
undefined readAsDataURL(Blob blob);
void abort();
undefined abort();
// states
const unsigned short EMPTY = 0;

View file

@ -11,13 +11,13 @@ typedef (File or USVString) FormDataEntryValue;
[Exposed=(Window,Worker)]
interface FormData {
[Throws] constructor(optional HTMLFormElement form);
void append(USVString name, USVString value);
void append(USVString name, Blob value, optional USVString filename);
void delete(USVString name);
undefined append(USVString name, USVString value);
undefined append(USVString name, Blob value, optional USVString filename);
undefined delete(USVString name);
FormDataEntryValue? get(USVString name);
sequence<FormDataEntryValue> getAll(USVString name);
boolean has(USVString name);
void set(USVString name, USVString value);
void set(USVString name, Blob value, optional USVString filename);
undefined set(USVString name, USVString value);
undefined set(USVString name, Blob value, optional USVString filename);
iterable<USVString, FormDataEntryValue>;
};

View file

@ -5,11 +5,11 @@
// https://gpuweb.github.io/gpuweb/#gpubuffer
[Exposed=(Window, DedicatedWorker), Serializable, Pref="dom.webgpu.enabled"]
interface GPUBuffer {
Promise<void> mapAsync(GPUMapModeFlags mode, optional GPUSize64 offset = 0, optional GPUSize64 size);
Promise<undefined> mapAsync(GPUMapModeFlags mode, optional GPUSize64 offset = 0, optional GPUSize64 size);
[Throws] ArrayBuffer getMappedRange(optional GPUSize64 offset = 0, optional GPUSize64 size);
void unmap();
undefined unmap();
void destroy();
undefined destroy();
};
GPUBuffer includes GPUObjectBase;

View file

@ -8,24 +8,24 @@ interface GPUCommandEncoder {
GPURenderPassEncoder beginRenderPass(GPURenderPassDescriptor descriptor);
GPUComputePassEncoder beginComputePass(optional GPUComputePassDescriptor descriptor = {});
void copyBufferToBuffer(
undefined copyBufferToBuffer(
GPUBuffer source,
GPUSize64 sourceOffset,
GPUBuffer destination,
GPUSize64 destinationOffset,
GPUSize64 size);
void copyBufferToTexture(
undefined copyBufferToTexture(
GPUBufferCopyView source,
GPUTextureCopyView destination,
GPUExtent3D copySize);
void copyTextureToBuffer(
undefined copyTextureToBuffer(
GPUTextureCopyView source,
GPUBufferCopyView destination,
GPUExtent3D copySize);
void copyTextureToTexture(
undefined copyTextureToTexture(
GPUTextureCopyView source,
GPUTextureCopyView destination,
GPUExtent3D copySize);

View file

@ -5,16 +5,16 @@
// https://gpuweb.github.io/gpuweb/#gpucomputepassencoder
[Exposed=(Window, DedicatedWorker), Serializable, Pref="dom.webgpu.enabled"]
interface GPUComputePassEncoder {
void setPipeline(GPUComputePipeline pipeline);
void dispatch(GPUSize32 x, optional GPUSize32 y = 1, optional GPUSize32 z = 1);
void dispatchIndirect(GPUBuffer indirectBuffer, GPUSize64 indirectOffset);
undefined setPipeline(GPUComputePipeline pipeline);
undefined dispatch(GPUSize32 x, optional GPUSize32 y = 1, optional GPUSize32 z = 1);
undefined dispatchIndirect(GPUBuffer indirectBuffer, GPUSize64 indirectOffset);
//void beginPipelineStatisticsQuery(GPUQuerySet querySet, GPUSize32 queryIndex);
//void endPipelineStatisticsQuery();
//void writeTimestamp(GPUQuerySet querySet, GPUSize32 queryIndex);
void endPass();
undefined endPass();
};
GPUComputePassEncoder includes GPUObjectBase;
GPUComputePassEncoder includes GPUProgrammablePassEncoder;

View file

@ -5,7 +5,7 @@
// https://gpuweb.github.io/gpuweb/#gpuprogrammablepassencoder
[Exposed=(Window, DedicatedWorker)]
interface mixin GPUProgrammablePassEncoder {
void setBindGroup(GPUIndex32 index, GPUBindGroup bindGroup,
undefined setBindGroup(GPUIndex32 index, GPUBindGroup bindGroup,
optional sequence<GPUBufferDynamicOffset> dynamicOffsets = []);
// void setBindGroup(GPUIndex32 index, GPUBindGroup bindGroup,

View file

@ -5,19 +5,19 @@
// https://gpuweb.github.io/gpuweb/#gpuqueue
[Exposed=(Window, DedicatedWorker), Serializable, Pref="dom.webgpu.enabled"]
interface GPUQueue {
void submit(sequence<GPUCommandBuffer> commandBuffers);
undefined submit(sequence<GPUCommandBuffer> commandBuffers);
//GPUFence createFence(optional GPUFenceDescriptor descriptor = {});
//void signal(GPUFence fence, GPUFenceValue signalValue);
[Throws] void writeBuffer(
[Throws] undefined writeBuffer(
GPUBuffer buffer,
GPUSize64 bufferOffset,
/*[AllowShared]*/ BufferSource data,
optional GPUSize64 dataOffset = 0,
optional GPUSize64 size);
[Throws] void writeTexture(
[Throws] undefined writeTexture(
GPUTextureCopyView destination,
/*[AllowShared]*/ BufferSource data,
GPUTextureDataLayout dataLayout,

View file

@ -5,20 +5,25 @@
// https://gpuweb.github.io/gpuweb/#gpurenderencoderbase
[Exposed=(Window, DedicatedWorker)]
interface mixin GPURenderEncoderBase {
void setPipeline(GPURenderPipeline pipeline);
undefined setPipeline(GPURenderPipeline pipeline);
void setIndexBuffer(GPUBuffer buffer, optional GPUSize64 offset = 0, optional GPUSize64 size = 0);
void setVertexBuffer(GPUIndex32 slot, GPUBuffer buffer, optional GPUSize64 offset = 0, optional GPUSize64 size = 0);
undefined setIndexBuffer(GPUBuffer buffer, optional GPUSize64 offset = 0, optional GPUSize64 size = 0);
undefined setVertexBuffer(
GPUIndex32 slot,
GPUBuffer buffer,
optional GPUSize64 offset = 0,
optional GPUSize64 size = 0
);
void draw(GPUSize32 vertexCount, optional GPUSize32 instanceCount = 1,
undefined draw(GPUSize32 vertexCount, optional GPUSize32 instanceCount = 1,
optional GPUSize32 firstVertex = 0, optional GPUSize32 firstInstance = 0);
void drawIndexed(GPUSize32 indexCount, optional GPUSize32 instanceCount = 1,
undefined drawIndexed(GPUSize32 indexCount, optional GPUSize32 instanceCount = 1,
optional GPUSize32 firstIndex = 0,
optional GPUSignedOffset32 baseVertex = 0,
optional GPUSize32 firstInstance = 0);
void drawIndirect(GPUBuffer indirectBuffer, GPUSize64 indirectOffset);
void drawIndexedIndirect(GPUBuffer indirectBuffer, GPUSize64 indirectOffset);
undefined drawIndirect(GPUBuffer indirectBuffer, GPUSize64 indirectOffset);
undefined drawIndexedIndirect(GPUBuffer indirectBuffer, GPUSize64 indirectOffset);
};
typedef [EnforceRange] long GPUSignedOffset32;

View file

@ -5,15 +5,15 @@
// https://gpuweb.github.io/gpuweb/#gpurenderpassencoder
[Exposed=(Window, DedicatedWorker), Pref="dom.webgpu.enabled"]
interface GPURenderPassEncoder {
void setViewport(float x, float y,
undefined setViewport(float x, float y,
float width, float height,
float minDepth, float maxDepth);
void setScissorRect(GPUIntegerCoordinate x, GPUIntegerCoordinate y,
undefined setScissorRect(GPUIntegerCoordinate x, GPUIntegerCoordinate y,
GPUIntegerCoordinate width, GPUIntegerCoordinate height);
void setBlendColor(GPUColor color);
void setStencilReference(GPUStencilValue reference);
undefined setBlendColor(GPUColor color);
undefined setStencilReference(GPUStencilValue reference);
//void beginOcclusionQuery(GPUSize32 queryIndex);
//void endOcclusionQuery();
@ -23,8 +23,8 @@ interface GPURenderPassEncoder {
//void writeTimestamp(GPUQuerySet querySet, GPUSize32 queryIndex);
void executeBundles(sequence<GPURenderBundle> bundles);
void endPass();
undefined executeBundles(sequence<GPURenderBundle> bundles);
undefined endPass();
};
GPURenderPassEncoder includes GPUObjectBase;
GPURenderPassEncoder includes GPUProgrammablePassEncoder;

View file

@ -7,7 +7,7 @@
interface GPUTexture {
GPUTextureView createView(optional GPUTextureViewDescriptor descriptor = {});
void destroy();
undefined destroy();
};
GPUTexture includes GPUObjectBase;

View file

@ -17,6 +17,6 @@ enum GPUErrorFilter {
};
partial interface GPUDevice {
void pushErrorScope(GPUErrorFilter filter);
undefined pushErrorScope(GPUErrorFilter filter);
Promise<GPUError?> popErrorScope();
};

View file

@ -35,7 +35,7 @@ interface HTMLButtonElement : HTMLElement {
readonly attribute DOMString validationMessage;
boolean checkValidity();
boolean reportValidity();
void setCustomValidity(DOMString error);
undefined setCustomValidity(DOMString error);
readonly attribute NodeList labels;
};

View file

@ -15,5 +15,5 @@ interface HTMLDialogElement : HTMLElement {
// [CEReactions]
// void showModal();
[CEReactions]
void close(optional DOMString returnValue);
undefined close(optional DOMString returnValue);
};

View file

@ -32,11 +32,11 @@ interface HTMLElement : Element {
// user interaction
[CEReactions]
attribute boolean hidden;
void click();
undefined click();
// [CEReactions]
// attribute long tabIndex;
void focus();
void blur();
undefined focus();
undefined blur();
// [CEReactions]
// attribute DOMString accessKey;
//readonly attribute DOMString accessKeyLabel;

View file

@ -22,5 +22,5 @@ interface HTMLFieldSetElement : HTMLElement {
readonly attribute DOMString validationMessage;
boolean checkValidity();
boolean reportValidity();
void setCustomValidity(DOMString error);
undefined setCustomValidity(DOMString error);
};

View file

@ -34,10 +34,10 @@ interface HTMLFormElement : HTMLElement {
getter Element? (unsigned long index);
getter (RadioNodeList or Element) (DOMString name);
void submit();
[Throws] void requestSubmit(optional HTMLElement? submitter = null);
undefined submit();
[Throws] undefined requestSubmit(optional HTMLElement? submitter = null);
[CEReactions]
void reset();
undefined reset();
boolean checkValidity();
boolean reportValidity();
};

View file

@ -79,19 +79,19 @@ interface HTMLInputElement : HTMLElement {
// [CEReactions]
// attribute unsigned long width;
[Throws] void stepUp(optional long n = 1);
[Throws] void stepDown(optional long n = 1);
[Throws] undefined stepUp(optional long n = 1);
[Throws] undefined stepDown(optional long n = 1);
readonly attribute boolean willValidate;
readonly attribute ValidityState validity;
readonly attribute DOMString validationMessage;
boolean checkValidity();
boolean reportValidity();
void setCustomValidity(DOMString error);
undefined setCustomValidity(DOMString error);
readonly attribute NodeList? labels;
void select();
undefined select();
[SetterThrows]
attribute unsigned long? selectionStart;
[SetterThrows]
@ -99,18 +99,18 @@ interface HTMLInputElement : HTMLElement {
[SetterThrows]
attribute DOMString? selectionDirection;
[Throws]
void setRangeText(DOMString replacement);
undefined setRangeText(DOMString replacement);
[Throws]
void setRangeText(DOMString replacement, unsigned long start, unsigned long end,
undefined setRangeText(DOMString replacement, unsigned long start, unsigned long end,
optional SelectionMode selectionMode = "preserve");
[Throws]
void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
undefined setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
// also has obsolete members
// Select with file-system paths for testing purpose
[Pref="dom.testing.htmlinputelement.select_files.enabled"]
void selectFiles(sequence<DOMString> path);
undefined selectFiles(sequence<DOMString> path);
};
// https://html.spec.whatwg.org/multipage/#HTMLInputElement-partial

View file

@ -24,7 +24,7 @@ interface HTMLMediaElement : HTMLElement {
readonly attribute unsigned short networkState;
[CEReactions] attribute DOMString preload;
readonly attribute TimeRanges buffered;
void load();
undefined load();
CanPlayTypeResult canPlayType(DOMString type);
// ready state
@ -38,7 +38,7 @@ interface HTMLMediaElement : HTMLElement {
// playback state
attribute double currentTime;
void fastSeek(double time);
undefined fastSeek(double time);
readonly attribute unrestricted double duration;
// Date getStartDate();
readonly attribute boolean paused;
@ -49,8 +49,8 @@ interface HTMLMediaElement : HTMLElement {
readonly attribute boolean ended;
[CEReactions] attribute boolean autoplay;
[CEReactions] attribute boolean loop;
Promise<void> play();
void pause();
Promise<undefined> play();
undefined pause();
// controls
[CEReactions] attribute boolean controls;

View file

@ -30,7 +30,7 @@ interface HTMLObjectElement : HTMLElement {
readonly attribute DOMString validationMessage;
boolean checkValidity();
boolean reportValidity();
void setCustomValidity(DOMString error);
undefined setCustomValidity(DOMString error);
//legacycaller any (any... arguments);

View file

@ -9,10 +9,10 @@ interface HTMLOptionsCollection : HTMLCollection {
[CEReactions]
attribute unsigned long length; // shadows inherited length
[CEReactions, Throws]
setter void (unsigned long index, HTMLOptionElement? option);
setter undefined (unsigned long index, HTMLOptionElement? option);
[CEReactions, Throws]
void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
undefined add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
[CEReactions]
void remove(long index);
undefined remove(long index);
attribute long selectedIndex;
};

View file

@ -23,7 +23,7 @@ interface HTMLOutputElement : HTMLElement {
readonly attribute DOMString validationMessage;
boolean checkValidity();
boolean reportValidity();
void setCustomValidity(DOMString error);
undefined setCustomValidity(DOMString error);
readonly attribute NodeList labels;
};

View file

@ -30,12 +30,12 @@ interface HTMLSelectElement : HTMLElement {
HTMLOptionElement? namedItem(DOMString name);
[CEReactions, Throws]
void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
undefined add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
[CEReactions]
void remove(); // ChildNode overload
undefined remove(); // ChildNode overload
[CEReactions]
void remove(long index);
[CEReactions, Throws] setter void (unsigned long index, HTMLOptionElement? option);
undefined remove(long index);
[CEReactions, Throws] setter undefined (unsigned long index, HTMLOptionElement? option);
// readonly attribute HTMLCollection selectedOptions;
attribute long selectedIndex;
@ -46,7 +46,7 @@ interface HTMLSelectElement : HTMLElement {
readonly attribute DOMString validationMessage;
boolean checkValidity();
boolean reportValidity();
void setCustomValidity(DOMString error);
undefined setCustomValidity(DOMString error);
readonly attribute NodeList labels;
};

View file

@ -11,26 +11,26 @@ interface HTMLTableElement : HTMLElement {
attribute HTMLTableCaptionElement? caption;
HTMLTableCaptionElement createCaption();
[CEReactions]
void deleteCaption();
undefined deleteCaption();
[CEReactions, SetterThrows]
attribute HTMLTableSectionElement? tHead;
HTMLTableSectionElement createTHead();
[CEReactions]
void deleteTHead();
undefined deleteTHead();
[CEReactions, SetterThrows]
attribute HTMLTableSectionElement? tFoot;
HTMLTableSectionElement createTFoot();
[CEReactions]
void deleteTFoot();
undefined deleteTFoot();
readonly attribute HTMLCollection tBodies;
HTMLTableSectionElement createTBody();
readonly attribute HTMLCollection rows;
[Throws] HTMLTableRowElement insertRow(optional long index = -1);
[CEReactions, Throws] void deleteRow(long index);
[CEReactions, Throws] undefined deleteRow(long index);
// also has obsolete members
};

View file

@ -13,7 +13,7 @@ interface HTMLTableRowElement : HTMLElement {
[Throws]
HTMLElement insertCell(optional long index = -1);
[CEReactions, Throws]
void deleteCell(long index);
undefined deleteCell(long index);
// also has obsolete members
};

Some files were not shown because too many files have changed in this diff Show more