mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
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:
commit
35e95f55a1
159 changed files with 1148 additions and 1130 deletions
|
@ -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()"
|
||||
|
|
|
@ -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):
|
||||
"""
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
""")
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
def WebIDLTest(parser, harness):
|
||||
parser.parse("""
|
||||
interface Foo {
|
||||
void foo(object constructor);
|
||||
undefined foo(object constructor);
|
||||
};
|
||||
""")
|
||||
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
""")
|
||||
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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;
|
||||
""")
|
||||
|
|
|
@ -60,7 +60,7 @@ def WebIDLTest(parser, harness):
|
|||
try:
|
||||
parser.parse("""
|
||||
interface OptionalByteString {
|
||||
void passByteString(optional ByteString arg = "hello");
|
||||
undefined passByteString(optional ByteString arg = "hello");
|
||||
};
|
||||
""")
|
||||
results2 = parser.finish();
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
""")
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -3,7 +3,7 @@ import WebIDL
|
|||
def WebIDLTest(parser, harness):
|
||||
parser.parse("""
|
||||
interface TestIncompleteParent : NotYetDefined {
|
||||
void foo();
|
||||
undefined foo();
|
||||
};
|
||||
|
||||
interface NotYetDefined : EvenHigherOnTheChain {
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -2,8 +2,8 @@ def WebIDLTest(parser, harness):
|
|||
threw = False
|
||||
try:
|
||||
parser.parse("""
|
||||
interface NullableVoid {
|
||||
void? foo();
|
||||
interface NullableUndefined {
|
||||
undefined? foo();
|
||||
};
|
||||
""")
|
||||
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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,15 +27,15 @@ 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
|
||||
|
|
|
@ -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;
|
||||
""")
|
||||
|
@ -320,7 +320,7 @@ def WebIDLTest(parser, harness):
|
|||
parser.parse("""
|
||||
[NoInterfaceObject, SecureContext]
|
||||
interface TestSecureContextNoInterfaceObject {
|
||||
void testSecureMethod(byte foo);
|
||||
undefined testSecureMethod(byte foo);
|
||||
};
|
||||
""")
|
||||
results = parser.finish()
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
""")
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ def WebIDLTest(parser, harness):
|
|||
parser.parse(
|
||||
"""
|
||||
interface IndexedDeleter {
|
||||
deleter void(unsigned long index);
|
||||
deleter undefined(unsigned long index);
|
||||
};
|
||||
""")
|
||||
parser.finish()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
""")
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
""")
|
||||
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
""")
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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();
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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();
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
interface CanvasGradient {
|
||||
// opaque object
|
||||
[Throws]
|
||||
void addColorStop(double offset, DOMString color);
|
||||
undefined addColorStop(double offset, DOMString color);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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();
|
||||
};
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -7,6 +7,6 @@
|
|||
|
||||
[Exposed=Window]
|
||||
callback interface EventListener {
|
||||
void handleEvent(Event event);
|
||||
undefined handleEvent(Event event);
|
||||
};
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ interface EventSource : EventTarget {
|
|||
attribute EventHandler onopen;
|
||||
attribute EventHandler onmessage;
|
||||
attribute EventHandler onerror;
|
||||
void close();
|
||||
undefined close();
|
||||
};
|
||||
|
||||
dictionary EventSourceInit {
|
||||
|
|
|
@ -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 = {}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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>;
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
interface GPUTexture {
|
||||
GPUTextureView createView(optional GPUTextureViewDescriptor descriptor = {});
|
||||
|
||||
void destroy();
|
||||
undefined destroy();
|
||||
};
|
||||
GPUTexture includes GPUObjectBase;
|
||||
|
||||
|
|
|
@ -17,6 +17,6 @@ enum GPUErrorFilter {
|
|||
};
|
||||
|
||||
partial interface GPUDevice {
|
||||
void pushErrorScope(GPUErrorFilter filter);
|
||||
undefined pushErrorScope(GPUErrorFilter filter);
|
||||
Promise<GPUError?> popErrorScope();
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -15,5 +15,5 @@ interface HTMLDialogElement : HTMLElement {
|
|||
// [CEReactions]
|
||||
// void showModal();
|
||||
[CEReactions]
|
||||
void close(optional DOMString returnValue);
|
||||
undefined close(optional DOMString returnValue);
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -22,5 +22,5 @@ interface HTMLFieldSetElement : HTMLElement {
|
|||
readonly attribute DOMString validationMessage;
|
||||
boolean checkValidity();
|
||||
boolean reportValidity();
|
||||
void setCustomValidity(DOMString error);
|
||||
undefined setCustomValidity(DOMString error);
|
||||
};
|
||||
|
|
|
@ -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();
|
||||
};
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue